From 8d3c11c176aef24a97784228e86ba7d2f8815857 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 4 Feb 2010 01:36:52 +1300 Subject: [PATCH] compiler: remove some unnecessary complexity --- basis/bootstrap/compiler/compiler.factor | 3 +- basis/compiler/codegen/codegen.factor | 28 ++------------ basis/compiler/compiler-docs.factor | 8 ++-- basis/compiler/compiler.factor | 49 ++++-------------------- basis/compiler/tests/low-level-ir.factor | 2 +- 5 files changed, 18 insertions(+), 72 deletions(-) diff --git a/basis/bootstrap/compiler/compiler.factor b/basis/bootstrap/compiler/compiler.factor index 2d0613a7f5..8e167c076a 100644 --- a/basis/bootstrap/compiler/compiler.factor +++ b/basis/bootstrap/compiler/compiler.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2007, 2009 Slava Pestov. +! Copyright (C) 2007, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors cpu.architecture vocabs.loader system sequences namespaces parser kernel kernel.private classes @@ -33,6 +33,7 @@ enable-optimizer gc : compile-unoptimized ( words -- ) + [ [ subwords ] map ] keep suffix concat [ optimized? not ] filter compile ; "debug-compiler" get [ diff --git a/basis/compiler/codegen/codegen.factor b/basis/compiler/codegen/codegen.factor index ae9e5c2c3d..963ed0ab28 100755 --- a/basis/compiler/codegen/codegen.factor +++ b/basis/compiler/codegen/codegen.factor @@ -24,24 +24,12 @@ H{ } clone insn-counts set-global GENERIC: generate-insn ( insn -- ) -TUPLE: asm label code calls ; - -SYMBOL: calls - -: add-call ( word -- ) - #! Compile this word later. - calls get push ; - ! Mapping _label IDs to label instances SYMBOL: labels -: init-generator ( -- ) - H{ } clone labels set - V{ } clone calls set ; - -: generate-insns ( asm -- code ) +: generate ( mr -- code ) dup label>> [ - init-generator + H{ } clone labels set instructions>> [ [ class insn-counts get inc-at ] [ generate-insn ] @@ -49,22 +37,12 @@ SYMBOL: labels ] each ] with-fixup ; -: generate ( mr -- asm ) - [ - [ label>> ] [ generate-insns ] bi calls get - asm boa - ] with-scope ; - : lookup-label ( id -- label ) labels get [ drop