! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: namespaces make math math.order math.parser sequences accessors kernel layouts assocs words summary arrays combinators classes.algebra alien alien.private alien.c-types alien.strings alien.arrays alien.complex alien.libraries sets libc continuations.private fry cpu.architecture classes classes.struct locals source-files.errors slots parser generic.parser strings quotations compiler.errors compiler.alien compiler.constants compiler.cfg compiler.cfg.instructions compiler.cfg.stack-frame compiler.cfg.registers compiler.cfg.builder compiler.codegen.fixup compiler.utilities ; FROM: namespaces => set ; IN: compiler.codegen SYMBOL: insn-counts H{ } clone insn-counts set-global GENERIC: generate-insn ( insn -- ) ! Mapping _label IDs to label instances SYMBOL: labels : generate ( mr -- code ) dup label>> [ H{ } clone labels set instructions>> [ [ class insn-counts get inc-at ] [ generate-insn ] bi ] each ] with-fixup ; : lookup-label ( id -- label ) labels get [ drop