home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mitsch75.zip / scheme-7_5_17-src.zip / scheme-7.5.17 / src / compiler / machines / i386 / compiler.pkg < prev    next >
Text File  |  1999-01-02  |  20KB  |  664 lines

  1. #| -*-Scheme-*-
  2.  
  3. $Id: compiler.pkg,v 1.24 1999/01/02 06:06:43 cph Exp $
  4.  
  5. Copyright (c) 1992-1999 Massachusetts Institute of Technology
  6.  
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or (at
  10. your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful, but
  13. WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15. General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20. |#
  21.  
  22. ;;;; Compiler Packaging
  23.  
  24. (global-definitions "../runtime/runtime")
  25.  
  26. (define-package (compiler)
  27.   (files "base/switch"
  28.      "base/object"            ;tagged object support
  29.      "base/enumer"            ;enumerations
  30.      "base/sets"            ;set abstraction
  31.      "base/mvalue"            ;multiple-value support
  32.      "base/scode"            ;SCode abstraction
  33.      "machines/i386/machin"        ;machine dependent stuff
  34.      "back/asutl"            ;back-end odds and ends
  35.      "base/utils"            ;odds and ends
  36.  
  37.      "base/cfg1"            ;control flow graph
  38.      "base/cfg2"
  39.      "base/cfg3"
  40.  
  41.      "base/ctypes"            ;CFG datatypes
  42.  
  43.      "base/rvalue"            ;Right hand values
  44.      "base/lvalue"            ;Left hand values
  45.      "base/blocks"            ;rvalue: blocks
  46.      "base/proced"            ;rvalue: procedures
  47.      "base/contin"            ;rvalue: continuations
  48.  
  49.      "base/subprb"            ;subproblem datatype
  50.  
  51.      "rtlbase/rgraph"        ;program graph abstraction
  52.      "rtlbase/rtlty1"        ;RTL: type definitions
  53.      "rtlbase/rtlty2"        ;RTL: type definitions
  54.      "rtlbase/rtlexp"        ;RTL: expression operations
  55.      "rtlbase/rtlcon"        ;RTL: complex constructors
  56.      "rtlbase/rtlreg"        ;RTL: registers
  57.      "rtlbase/rtlcfg"        ;RTL: CFG types
  58.      "rtlbase/rtlobj"        ;RTL: CFG objects
  59.      "rtlbase/regset"        ;RTL: register sets
  60.      "rtlbase/valclass"        ;RTL: value classes
  61.  
  62.      "back/insseq"            ;LAP instruction sequences
  63.      )
  64.   (parent ())
  65.   (export ()
  66.       compiler:analyze-side-effects?
  67.       compiler:cache-free-variables?
  68.       compiler:coalescing-constant-warnings?
  69.       compiler:code-compression?
  70.       compiler:compile-by-procedures?
  71.       compiler:cse?
  72.       compiler:default-top-level-declarations
  73.       compiler:enable-expansion-declarations?
  74.       compiler:enable-integration-declarations?
  75.       compiler:generate-lap-files?
  76.       compiler:generate-range-checks?
  77.       compiler:generate-rtl-files?
  78.       compiler:generate-stack-checks?
  79.       compiler:generate-type-checks?
  80.       compiler:implicit-self-static?
  81.       compiler:intersperse-rtl-in-lap?
  82.       compiler:noisy?
  83.       compiler:open-code-floating-point-arithmetic?
  84.       compiler:open-code-flonum-checks?
  85.       compiler:open-code-primitives?
  86.       compiler:optimize-environments?
  87.       compiler:package-optimization-level
  88.       compiler:preserve-data-structures?
  89.       compiler:show-phases?
  90.       compiler:show-procedures?
  91.       compiler:show-subphases?
  92.       compiler:show-time-reports?
  93.       compiler:use-multiclosures?))
  94.  
  95. (define-package (compiler reference-contexts)
  96.   (files "base/refctx")
  97.   (parent (compiler))
  98.   (export (compiler)
  99.       add-reference-context/adjacent-parents!
  100.       initialize-reference-contexts!
  101.       make-reference-context
  102.       modify-reference-contexts!
  103.       reference-context/adjacent-parent?
  104.       reference-context/block
  105.       reference-context/offset
  106.       reference-context/procedure
  107.       reference-context?
  108.       set-reference-context/offset!))
  109.  
  110. (define-package (compiler macros)
  111.   (files "base/macros")
  112.   (parent ())
  113.   (export (compiler)
  114.       assembler-syntax-table
  115.       compiler-syntax-table
  116.       early-syntax-table
  117.       lap-generator-syntax-table)
  118.   (import (runtime macros)
  119.       parse-define-syntax)
  120.   (initialization (initialize-package!)))
  121.  
  122. (define-package (compiler declarations)
  123.   (files "machines/i386/decls")
  124.   (parent (compiler))
  125.   (export (compiler)
  126.       sc
  127.       syntax-files!)
  128.   (import (scode-optimizer top-level)
  129.       sf/internal)
  130.   (initialization (initialize-package!)))
  131.  
  132. (define-package (compiler top-level)
  133.   (files "base/toplev"
  134.      "base/crstop"
  135.      "base/asstop")
  136.   (parent (compiler))
  137.   (export ()
  138.       cbf
  139.       cf
  140.       compile-bin-file
  141.       compile-file
  142.       compile-file:force?
  143.       compile-file:override-usual-integrations
  144.       compile-file:sf-only?
  145.       compile-procedure
  146.       compile-scode
  147.       compiler:reset!
  148.       cross-compile-bin-file
  149.       cross-compile-bin-file-end
  150.       lap->code)
  151.   (export (compiler)
  152.       canonicalize-label-name)
  153.   (export (compiler fg-generator)
  154.       compile-recursively)
  155.   (export (compiler rtl-generator)
  156.       *ic-procedure-headers*
  157.       *rtl-continuations*
  158.       *rtl-expression*
  159.       *rtl-graphs*
  160.       *rtl-procedures*)
  161.   (export (compiler lap-syntaxer)
  162.       *block-label*
  163.       *external-labels*
  164.       label->object)
  165.   (export (compiler debug)
  166.       *root-expression*
  167.       *rtl-procedures*
  168.       *rtl-graphs*)
  169.   (import (runtime compiler-info)
  170.       make-dbg-info-vector
  171.       split-inf-structure!)
  172.   (import (runtime unparser)
  173.       *unparse-uninterned-symbols-by-name?*))
  174.  
  175. (define-package (compiler debug)
  176.   (files "base/debug")
  177.   (parent (compiler))
  178.   (export ()
  179.       debug/find-continuation
  180.       debug/find-entry-node
  181.       debug/find-procedure
  182.       debug/where
  183.       dump-rtl
  184.       po
  185.       show-bblock-rtl
  186.       show-fg
  187.       show-fg-node
  188.       show-rtl
  189.       write-rtl-instructions)
  190.   (import (runtime pretty-printer)
  191.       *pp-primitives-by-name*)
  192.   (import (runtime unparser)
  193.       *unparse-uninterned-symbols-by-name?*))
  194.  
  195. (define-package (compiler pattern-matcher/lookup)
  196.   (files "base/pmlook")
  197.   (parent (compiler))
  198.   (export (compiler)
  199.       make-pattern-variable
  200.       pattern-lookup
  201.       pattern-variable-name
  202.       pattern-variable?
  203.       pattern-variables))
  204.  
  205. (define-package (compiler pattern-matcher/parser)
  206.   (files "base/pmpars")
  207.   (parent (compiler))
  208.   (export (compiler)
  209.       parse-rule
  210.       rule-result-expression)
  211.   (export (compiler macros)
  212.       parse-rule
  213.       rule-result-expression))
  214.  
  215. (define-package (compiler pattern-matcher/early)
  216.   (files  "base/pmerly")
  217.   (parent (compiler))
  218.   (export (compiler)
  219.       early-parse-rule
  220.       early-pattern-lookup
  221.       early-make-rule
  222.       make-database-transformer
  223.       make-symbol-transformer
  224.       make-bit-mask-transformer))
  225.  
  226. (define-package (compiler debugging-information)
  227.   (files "base/infnew")
  228.   (parent (compiler))
  229.   (export (compiler top-level)
  230.       info-generation-phase-1
  231.       info-generation-phase-2
  232.       info-generation-phase-3)
  233.   (export (compiler rtl-generator)
  234.       generated-dbg-continuation)
  235.   (import (runtime compiler-info)
  236.       make-dbg-info
  237.  
  238.       make-dbg-expression
  239.       dbg-expression/block
  240.       dbg-expression/label
  241.       set-dbg-expression/label!
  242.  
  243.       make-dbg-procedure
  244.       dbg-procedure/block
  245.       dbg-procedure/label
  246.       set-dbg-procedure/label!
  247.       dbg-procedure/name
  248.       dbg-procedure/required
  249.       dbg-procedure/optional
  250.       dbg-procedure/rest
  251.       dbg-procedure/auxiliary
  252.       dbg-procedure/external-label
  253.       set-dbg-procedure/external-label!
  254.       dbg-procedure<?
  255.  
  256.       make-dbg-continuation
  257.       dbg-continuation/block
  258.       dbg-continuation/label
  259.       set-dbg-continuation/label!
  260.       dbg-continuation<?
  261.  
  262.       make-dbg-block
  263.       dbg-block/parent
  264.       dbg-block/layout
  265.       dbg-block/stack-link
  266.       set-dbg-block/procedure!
  267.  
  268.       make-dbg-variable
  269.       dbg-variable/value
  270.       set-dbg-variable/value!
  271.  
  272.       dbg-block-name/dynamic-link
  273.       dbg-block-name/ic-parent
  274.       dbg-block-name/normal-closure
  275.       dbg-block-name/return-address
  276.       dbg-block-name/static-link
  277.  
  278.       make-dbg-label-2
  279.       dbg-label/offset
  280.       set-dbg-label/external?!))
  281.  
  282. (define-package (compiler constraints)
  283.    (files "base/constr")
  284.    (parent (compiler))
  285.    (export (compiler)
  286.        make-constraint
  287.        constraint/element
  288.        constraint/graph-head
  289.        constraint/afters
  290.        constraint/closed?
  291.        constraint-add!
  292.        add-constraint-element!
  293.        add-constraint-set!
  294.        make-constraint-graph
  295.        constraint-graph/entry-nodes
  296.        constraint-graph/closed?
  297.        close-constraint-graph!
  298.        close-constraint-node!
  299.        order-per-constraints
  300.        order-per-constraints/extracted
  301.        legal-ordering-per-constraints?
  302.        with-new-constraint-marks
  303.        constraint-marked?
  304.        constraint-mark!
  305.        transitively-close-dag!
  306.        reverse-postorder))
  307.  
  308. (define-package (compiler fg-generator)
  309.   (files "fggen/canon"            ;SCode canonicalizer
  310.      "fggen/fggen"            ;SCode->flow-graph converter
  311.      "fggen/declar"            ;Declaration handling
  312.      )
  313.   (parent (compiler))
  314.   (export (compiler top-level)
  315.       canonicalize/top-level
  316.       construct-graph)
  317.   (import (runtime scode-data)
  318.       &pair-car
  319.       &pair-cdr
  320.       &triple-first
  321.       &triple-second
  322.       &triple-third))
  323.  
  324. (define-package (compiler fg-optimizer)
  325.   (files "fgopt/outer"            ;outer analysis
  326.      "fgopt/sideff"            ;side effect analysis
  327.      )
  328.   (parent (compiler))
  329.   (export (compiler top-level)
  330.       clear-call-graph!
  331.       compute-call-graph!
  332.       outer-analysis
  333.       side-effect-analysis))
  334.  
  335. (define-package (compiler fg-optimizer fold-constants)
  336.   (files "fgopt/folcon")
  337.   (parent (compiler fg-optimizer))
  338.   (export (compiler top-level) fold-constants))
  339.  
  340. (define-package (compiler fg-optimizer operator-analysis)
  341.   (files "fgopt/operan")
  342.   (parent (compiler fg-optimizer))
  343.   (export (compiler top-level) operator-analysis))
  344.  
  345. (define-package (compiler fg-optimizer variable-indirection)
  346.   (files "fgopt/varind")
  347.   (parent (compiler fg-optimizer))
  348.   (export (compiler top-level) initialize-variable-indirections!))
  349.  
  350. (define-package (compiler fg-optimizer environment-optimization)
  351.   (files "fgopt/envopt")
  352.   (parent (compiler fg-optimizer))
  353.   (export (compiler top-level) optimize-environments!))
  354.  
  355. (define-package (compiler fg-optimizer closure-analysis)
  356.   (files "fgopt/closan")
  357.   (parent (compiler fg-optimizer))
  358.   (export (compiler top-level) identify-closure-limits!))
  359.  
  360. (define-package (compiler fg-optimizer continuation-analysis)
  361.   (files "fgopt/contan")
  362.   (parent (compiler fg-optimizer))
  363.   (export (compiler top-level)
  364.       continuation-analysis
  365.       setup-block-static-links!))
  366.  
  367. (define-package (compiler fg-optimizer compute-node-offsets)
  368.   (files "fgopt/offset")
  369.   (parent (compiler fg-optimizer))
  370.   (export (compiler top-level) compute-node-offsets))
  371.  
  372. (define-package (compiler fg-optimizer connectivity-analysis)
  373.   (files "fgopt/conect")
  374.   (parent (compiler fg-optimizer))
  375.   (export (compiler top-level) connectivity-analysis))
  376.  
  377. (define-package (compiler fg-optimizer delete-integrated-parameters)
  378.   (files "fgopt/delint")
  379.   (parent (compiler fg-optimizer))
  380.   (export (compiler top-level) delete-integrated-parameters))
  381.  
  382. (define-package (compiler fg-optimizer design-environment-frames)
  383.   (files "fgopt/desenv")
  384.   (parent (compiler fg-optimizer))
  385.   (export (compiler top-level) design-environment-frames!))
  386.  
  387. (define-package (compiler fg-optimizer setup-block-types)
  388.   (files "fgopt/blktyp")
  389.   (parent (compiler fg-optimizer))
  390.   (export (compiler top-level)
  391.       setup-block-types!
  392.       setup-closure-contexts!)
  393.   (export (compiler)
  394.       indirection-block-procedure))
  395.  
  396. (define-package (compiler fg-optimizer simplicity-analysis)
  397.   (files "fgopt/simple")
  398.   (parent (compiler fg-optimizer))
  399.   (export (compiler top-level) simplicity-analysis)
  400.   (export (compiler fg-optimizer subproblem-ordering)
  401.       new-subproblem/compute-simplicity!))
  402.  
  403. (define-package (compiler fg-optimizer simulate-application)
  404.   (files "fgopt/simapp")
  405.   (parent (compiler fg-optimizer))
  406.   (export (compiler top-level) simulate-application))
  407.  
  408. (define-package (compiler fg-optimizer subproblem-free-variables)
  409.   (files "fgopt/subfre")
  410.   (parent (compiler fg-optimizer))
  411.   (export (compiler top-level) compute-subproblem-free-variables)
  412.   (export (compiler fg-optimizer) map-union)
  413.   (export (compiler fg-optimizer subproblem-ordering)
  414.       new-subproblem/compute-free-variables!))
  415.  
  416. (define-package (compiler fg-optimizer subproblem-ordering)
  417.   (files "fgopt/order")
  418.   (parent (compiler fg-optimizer))
  419.   (export (compiler top-level) subproblem-ordering))
  420.  
  421. (define-package (compiler fg-optimizer subproblem-ordering reuse-frames)
  422.   (files "fgopt/reord" "fgopt/reuse")
  423.   (parent (compiler fg-optimizer subproblem-ordering))
  424.   (export (compiler top-level) setup-frame-adjustments)
  425.   (export (compiler fg-optimizer subproblem-ordering)
  426.       order-subproblems/maybe-overwrite-block))
  427.  
  428. (define-package (compiler fg-optimizer subproblem-ordering parameter-analysis)
  429.    (files "fgopt/param")
  430.    (parent (compiler fg-optimizer subproblem-ordering))
  431.    (export (compiler fg-optimizer subproblem-ordering)
  432.        parameter-analysis))
  433.  
  434. (define-package (compiler fg-optimizer return-equivalencing)
  435.   (files "fgopt/reteqv")
  436.   (parent (compiler fg-optimizer))
  437.   (export (compiler top-level) find-equivalent-returns!))
  438.  
  439. (define-package (compiler rtl-generator)
  440.   (files "rtlgen/rtlgen"        ;RTL generator
  441.      "rtlgen/rgstmt"        ;statements
  442.      "rtlgen/fndvar"        ;find variables
  443.      "machines/i386/rgspcm"        ;special close-coded primitives
  444.      "rtlbase/rtline"        ;linearizer
  445.      )
  446.   (parent (compiler))
  447.   (export (compiler)
  448.       make-linearizer)
  449.   (export (compiler top-level)
  450.       generate/top-level
  451.       linearize-rtl
  452.       setup-bblock-continuations!)
  453.   (export (compiler debug)
  454.       linearize-rtl)
  455.   (import (compiler top-level)
  456.       label->object))
  457.  
  458. (define-package (compiler rtl-generator generate/procedure-header)
  459.   (files "rtlgen/rgproc")
  460.   (parent (compiler rtl-generator))
  461.   (export (compiler rtl-generator) generate/procedure-header))
  462.  
  463. (define-package (compiler rtl-generator combination/inline)
  464.   (files "rtlgen/opncod")
  465.   (parent (compiler rtl-generator))
  466.   (export (compiler rtl-generator) combination/inline)
  467.   (export (compiler top-level) open-coding-analysis))
  468.  
  469. (define-package (compiler rtl-generator find-block)
  470.   (files "rtlgen/fndblk")
  471.   (parent (compiler rtl-generator))
  472.   (export (compiler rtl-generator) find-block))
  473.  
  474. (define-package (compiler rtl-generator generate/rvalue)
  475.   (files "rtlgen/rgrval")
  476.   (parent (compiler rtl-generator))
  477.   (export (compiler rtl-generator)
  478.       generate/rvalue
  479.       load-closure-environment
  480.       make-cons-closure-indirection
  481.       make-cons-closure-redirection
  482.       make-closure-redirection
  483.       make-ic-cons
  484.       make-non-trivial-closure-cons
  485.       make-trivial-closure-cons
  486.       redirect-closure))
  487.  
  488. (define-package (compiler rtl-generator generate/combination)
  489.   (files "rtlgen/rgcomb")
  490.   (parent (compiler rtl-generator))
  491.   (export (compiler rtl-generator)
  492.       generate/combination
  493.       rtl:bump-closure)
  494.   (export (compiler rtl-generator combination/inline)
  495.       generate/invocation-prefix))
  496.  
  497. (define-package (compiler rtl-generator generate/return)
  498.   (files "rtlgen/rgretn")
  499.   (parent (compiler rtl-generator))
  500.   (export (compiler rtl-generator)
  501.       make-return-operand
  502.       generate/return
  503.       generate/return*
  504.       generate/trivial-return))
  505.  
  506. (define-package (compiler rtl-cse)
  507.   (files "rtlopt/rcse1"            ;RTL common subexpression eliminator
  508.      "rtlopt/rcse2"
  509.      "rtlopt/rcseep"        ;CSE expression predicates
  510.      "rtlopt/rcseht"        ;CSE hash table
  511.      "rtlopt/rcserq"        ;CSE register/quantity abstractions
  512.      "rtlopt/rcsesr"        ;CSE stack references
  513.      )
  514.   (parent (compiler))
  515.   (export (compiler top-level) common-subexpression-elimination))
  516.  
  517. (define-package (compiler rtl-optimizer)
  518.   (files "rtlopt/rdebug")
  519.   (parent (compiler)))
  520.  
  521. (define-package (compiler rtl-optimizer invertible-expression-elimination)
  522.   (files "rtlopt/rinvex")
  523.   (parent (compiler rtl-optimizer))
  524.   (export (compiler top-level) invertible-expression-elimination))
  525.  
  526. (define-package (compiler rtl-optimizer common-suffix-merging)
  527.   (files "rtlopt/rtlcsm")
  528.   (parent (compiler rtl-optimizer))
  529.   (export (compiler top-level) merge-common-suffixes!))
  530.  
  531. (define-package (compiler rtl-optimizer rtl-dataflow-analysis)
  532.   (files "rtlopt/rdflow")
  533.   (parent (compiler rtl-optimizer))
  534.   (export (compiler top-level) rtl-dataflow-analysis))
  535.  
  536. (define-package (compiler rtl-optimizer rtl-rewriting)
  537.   (files "rtlopt/rerite")
  538.   (parent (compiler rtl-optimizer))
  539.   (export (compiler top-level)
  540.       rtl-rewriting:post-cse
  541.       rtl-rewriting:pre-cse)
  542.   (export (compiler lap-syntaxer)
  543.       add-rewriting-rule!
  544.       add-pre-cse-rewriting-rule!))
  545.  
  546. (define-package (compiler rtl-optimizer lifetime-analysis)
  547.   (files "rtlopt/rlife")
  548.   (parent (compiler rtl-optimizer))
  549.   (export (compiler top-level) lifetime-analysis)
  550.   (export (compiler rtl-optimizer code-compression) mark-set-registers!))
  551.  
  552. (define-package (compiler rtl-optimizer code-compression)
  553.   (files "rtlopt/rcompr")
  554.   (parent (compiler rtl-optimizer))
  555.   (export (compiler top-level) code-compression))
  556.  
  557. (define-package (compiler rtl-optimizer register-allocation)
  558.   (files "rtlopt/ralloc")
  559.   (parent (compiler rtl-optimizer))
  560.   (export (compiler top-level) register-allocation))
  561.  
  562. (define-package (compiler lap-syntaxer)
  563.   (files "back/lapgn1"            ;LAP generator
  564.      "back/lapgn2"            ; "      "
  565.      "back/lapgn3"            ; "      "
  566.      "back/regmap"            ;Hardware register allocator
  567.      "machines/i386/lapgen"        ;code generation rules
  568.      "machines/i386/rules1"        ;  "      "        "
  569.      "machines/i386/rules2"        ;  "      "        "
  570.      "machines/i386/rules3"        ;  "      "        "
  571.      "machines/i386/rules4"        ;  "      "        "
  572.      "machines/i386/rulfix"        ;  "      "        "
  573.      "machines/i386/rulflo"        ;  "      "        "
  574.      "machines/i386/rulrew"        ;code rewriting rules
  575.      "back/syntax"            ;Generic syntax phase
  576.      "back/syerly"            ;Early binding version
  577.      "machines/i386/coerce"        ;Coercions: integer -> bit string
  578.      "back/asmmac"            ;Macros for hairy syntax
  579.      "machines/i386/insmac"        ;Macros for hairy syntax
  580.      "machines/i386/inerly"        ;Early binding version
  581.      "machines/i386/insutl"        ;i386 instruction utilities
  582.      "machines/i386/instr1"        ;i386 instructions
  583.      "machines/i386/instr2"        ;  "        "
  584.      "machines/i386/instrf"        ;i387/i486 fp instructions
  585.      )
  586.   (parent (compiler))
  587.   (export (compiler)
  588.       available-machine-registers
  589.       lap-generator/match-rtl-instruction
  590.       lap:make-entry-point
  591.       lap:make-label-statement
  592.       lap:make-unconditional-branch
  593.       lap:syntax-instruction)
  594.   (export (compiler top-level)
  595.       *block-associations*
  596.       *interned-assignments*
  597.       *interned-constants*
  598.       *interned-global-links*
  599.       *interned-uuo-links*
  600.       *interned-static-variables*
  601.       *interned-variables*
  602.       *next-constant*
  603.       generate-lap)
  604.   (import (scode-optimizer expansion)
  605.       scode->scode-expander))
  606.  
  607. (define-package (compiler lap-syntaxer map-merger)
  608.   (files "back/mermap")
  609.   (parent (compiler lap-syntaxer))
  610.   (export (compiler lap-syntaxer)
  611.       merge-register-maps))
  612.  
  613. (define-package (compiler lap-syntaxer linearizer)
  614.   (files "back/linear")
  615.   (parent (compiler lap-syntaxer))
  616.   (export (compiler lap-syntaxer)
  617.       add-end-of-block-code!
  618.       add-extra-code!
  619.       bblock-linearize-lap
  620.       extra-code-block/xtra
  621.       declare-extra-code-block!
  622.       find-extra-code-block
  623.       linearize-lap
  624.       set-current-branches!
  625.       set-extra-code-block/xtra!)
  626.   (export (compiler top-level)
  627.       *end-of-block-code*
  628.       linearize-lap))
  629.  
  630. (define-package (compiler lap-optimizer)
  631.   (files "machines/i386/lapopt")
  632.   (parent (compiler))
  633.   (export (compiler top-level)
  634.       optimize-linear-lap))
  635.  
  636. (define-package (compiler assembler)
  637.   (files "machines/i386/assmd"        ;Machine dependent
  638.      "back/symtab"            ;Symbol tables
  639.      "back/bitutl"            ;Assembly blocks
  640.      "back/bittop"            ;Assembler top level
  641.      )
  642.   (parent (compiler))
  643.   (export (compiler)
  644.       instruction-append)
  645.   (export (compiler top-level)
  646.       assemble))
  647.  
  648. (define-package (compiler disassembler)
  649.   (files "machines/i386/dassm1"
  650.      "machines/i386/dassm2"
  651.      "machines/i386/dassm3")
  652.   (parent (compiler))
  653.   (export ()
  654.       compiler:write-lap-file
  655.       compiler:disassemble)
  656.   (import (runtime compiler-info)
  657.       compiled-code-block/dbg-info
  658.       dbg-info-vector/blocks-vector
  659.       dbg-info-vector?
  660.       dbg-info/labels
  661.       dbg-label/external?
  662.       dbg-label/name
  663.       dbg-labels/find-offset))
  664.