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 / mips / compiler.pkg < prev    next >
Text File  |  1999-01-02  |  20KB  |  666 lines

  1. #| -*-Scheme-*-
  2.  
  3. $Id: compiler.pkg,v 1.20 1999/01/02 06:06:43 cph Exp $
  4.  
  5. Copyright (c) 1988-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.      "rtlbase/valclass"        ;RTL: value classes
  34.      "machines/mips/machin"        ;machine dependent stuff
  35.      "back/asutl"            ;back-end odds and ends
  36.      "base/utils"            ;odds and ends
  37.  
  38.      "base/cfg1"            ;control flow graph
  39.      "base/cfg2"
  40.      "base/cfg3"
  41.  
  42.      "base/ctypes"            ;CFG datatypes
  43.  
  44.      "base/rvalue"            ;Right hand values
  45.      "base/lvalue"            ;Left hand values
  46.      "base/blocks"            ;rvalue: blocks
  47.      "base/proced"            ;rvalue: procedures
  48.      "base/contin"            ;rvalue: continuations
  49.  
  50.      "base/subprb"            ;subproblem datatype
  51.  
  52.      "rtlbase/rgraph"        ;program graph abstraction
  53.      "rtlbase/rtlty1"        ;RTL: type definitions
  54.      "rtlbase/rtlty2"        ;RTL: type definitions
  55.      "rtlbase/rtlexp"        ;RTL: expression operations
  56.      "rtlbase/rtlcon"        ;RTL: complex constructors
  57.      "rtlbase/rtlreg"        ;RTL: registers
  58.      "rtlbase/rtlcfg"        ;RTL: CFG types
  59.      "rtlbase/rtlobj"        ;RTL: CFG objects
  60.      "rtlbase/regset"        ;RTL: register sets
  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-flonum-checks?
  84.       compiler:open-code-primitives?
  85.       compiler:optimize-environments?
  86.       compiler:package-optimization-level
  87.       compiler:preserve-data-structures?
  88.       compiler:show-phases?
  89.       compiler:show-procedures?
  90.       compiler:show-subphases?
  91.       compiler:show-time-reports?
  92.       compiler:use-multiclosures?))
  93.  
  94. (define-package (compiler reference-contexts)
  95.   (files "base/refctx")
  96.   (parent (compiler))
  97.   (export (compiler)
  98.       add-reference-context/adjacent-parents!
  99.       initialize-reference-contexts!
  100.       make-reference-context
  101.       modify-reference-contexts!
  102.       reference-context/adjacent-parent?
  103.       reference-context/block
  104.       reference-context/offset
  105.       reference-context/procedure
  106.       reference-context?
  107.       set-reference-context/offset!))
  108.  
  109. (define-package (compiler macros)
  110.   (files "base/macros")
  111.   (parent ())
  112.   (export (compiler)
  113.       assembler-syntax-table
  114.       compiler-syntax-table
  115.       early-syntax-table
  116.       lap-generator-syntax-table)
  117.   (import (runtime macros)
  118.       parse-define-syntax)
  119.   (initialization (initialize-package!)))
  120.  
  121. (define-package (compiler declarations)
  122.   (files "machines/mips/decls")
  123.   (parent (compiler))
  124.   (export (compiler)
  125.       sc
  126.       syntax-files!)
  127.   (import (scode-optimizer top-level)
  128.       sf/internal)
  129.   (initialization (initialize-package!)))
  130.  
  131. (define-package (compiler top-level)
  132.   (files "base/toplev"
  133.      "base/crstop"
  134.      "base/asstop")
  135.   (parent (compiler))
  136.   (export ()
  137.       cbf
  138.       cf
  139.       compile-bin-file
  140.       compile-procedure
  141.       compile-scode
  142.       compiler:dump-bci-file
  143.       compiler:dump-bci/bcs-files
  144.       compiler:dump-bif/bsm-files
  145.       compiler:dump-inf-file
  146.       compiler:dump-info-file
  147.       compiler:reset!
  148.       cross-compile-bin-file
  149.       cross-compile-bin-file-end)
  150.   (export (compiler)
  151.       canonicalize-label-name)
  152.   (export (compiler fg-generator)
  153.       compile-recursively)
  154.   (export (compiler rtl-generator)
  155.       *ic-procedure-headers*
  156.       *rtl-continuations*
  157.       *rtl-expression*
  158.       *rtl-graphs*
  159.       *rtl-procedures*)
  160.   (export (compiler lap-syntaxer)
  161.       *block-label*
  162.       *external-labels*
  163.       label->object)
  164.   (export (compiler debug)
  165.       *root-expression*
  166.       *rtl-procedures*
  167.       *rtl-graphs*)
  168.   (import (runtime compiler-info)
  169.       make-dbg-info-vector
  170.       split-inf-structure!)
  171.   (import (runtime unparser)
  172.       *unparse-uninterned-symbols-by-name?*))
  173.  
  174. (define-package (compiler debug)
  175.   (files "base/debug")
  176.   (parent (compiler))
  177.   (export ()
  178.       debug/find-continuation
  179.       debug/find-entry-node
  180.       debug/find-procedure
  181.       debug/where
  182.       dump-rtl
  183.       po
  184.       show-bblock-rtl
  185.       show-fg
  186.       show-fg-node
  187.       show-rtl
  188.       write-rtl-instructions)
  189.   (import (runtime pretty-printer)
  190.       *pp-primitives-by-name*)
  191.   (import (runtime unparser)
  192.       *unparse-uninterned-symbols-by-name?*))
  193.  
  194. (define-package (compiler pattern-matcher/lookup)
  195.   (files "base/pmlook")
  196.   (parent (compiler))
  197.   (export (compiler)
  198.       make-pattern-variable
  199.       pattern-lookup
  200.       pattern-variable-name
  201.       pattern-variable?
  202.       pattern-variables))
  203.  
  204. (define-package (compiler pattern-matcher/parser)
  205.   (files "base/pmpars")
  206.   (parent (compiler))
  207.   (export (compiler)
  208.       parse-rule
  209.       rule-result-expression)
  210.   (export (compiler macros)
  211.       parse-rule
  212.       rule-result-expression))
  213.  
  214. (define-package (compiler pattern-matcher/early)
  215.   (files  "base/pmerly")
  216.   (parent (compiler))
  217.   (export (compiler)
  218.       early-parse-rule
  219.       early-pattern-lookup
  220.       early-make-rule
  221.       make-database-transformer
  222.       make-symbol-transformer
  223.       make-bit-mask-transformer))
  224.  
  225. (define-package (compiler debugging-information)
  226.   (files "base/infnew")
  227.   (parent (compiler))
  228.   (export (compiler top-level)
  229.       info-generation-phase-1
  230.       info-generation-phase-2
  231.       info-generation-phase-3)
  232.   (export (compiler rtl-generator)
  233.       generated-dbg-continuation)
  234.   (import (runtime compiler-info)
  235.       make-dbg-info
  236.  
  237.       make-dbg-expression
  238.       dbg-expression/block
  239.       dbg-expression/label
  240.       set-dbg-expression/label!
  241.  
  242.       make-dbg-procedure
  243.       dbg-procedure/block
  244.       dbg-procedure/label
  245.       set-dbg-procedure/label!
  246.       dbg-procedure/name
  247.       dbg-procedure/required
  248.       dbg-procedure/optional
  249.       dbg-procedure/rest
  250.       dbg-procedure/auxiliary
  251.       dbg-procedure/external-label
  252.       set-dbg-procedure/external-label!
  253.       dbg-procedure<?
  254.  
  255.       make-dbg-continuation
  256.       dbg-continuation/block
  257.       dbg-continuation/label
  258.       set-dbg-continuation/label!
  259.       dbg-continuation<?
  260.  
  261.       make-dbg-block
  262.       dbg-block/parent
  263.       dbg-block/layout
  264.       dbg-block/stack-link
  265.       set-dbg-block/procedure!
  266.  
  267.       make-dbg-variable
  268.       dbg-variable/value
  269.       set-dbg-variable/value!
  270.  
  271.       dbg-block-name/dynamic-link
  272.       dbg-block-name/ic-parent
  273.       dbg-block-name/normal-closure
  274.       dbg-block-name/return-address
  275.       dbg-block-name/static-link
  276.  
  277.       make-dbg-label-2
  278.       dbg-label/offset
  279.       set-dbg-label/external?!))
  280.  
  281. (define-package (compiler constraints)
  282.    (files "base/constr")
  283.    (parent (compiler))
  284.    (export (compiler)
  285.        make-constraint
  286.        constraint/element
  287.        constraint/graph-head
  288.        constraint/afters
  289.        constraint/closed?
  290.        constraint-add!
  291.        add-constraint-element!
  292.        add-constraint-set!
  293.        make-constraint-graph
  294.        constraint-graph/entry-nodes
  295.        constraint-graph/closed?
  296.        close-constraint-graph!
  297.        close-constraint-node!
  298.        order-per-constraints
  299.        order-per-constraints/extracted
  300.        legal-ordering-per-constraints?
  301.        with-new-constraint-marks
  302.        constraint-marked?
  303.        constraint-mark!
  304.        transitively-close-dag!
  305.        reverse-postorder))
  306.  
  307. (define-package (compiler fg-generator)
  308.   (files "fggen/canon"            ;SCode canonicalizer
  309.      "fggen/fggen"            ;SCode->flow-graph converter
  310.      "fggen/declar"            ;Declaration handling
  311.      )
  312.   (parent (compiler))
  313.   (export (compiler top-level)
  314.       canonicalize/top-level
  315.       construct-graph)
  316.   (import (runtime scode-data)
  317.       &pair-car
  318.       &pair-cdr
  319.       &triple-first
  320.       &triple-second
  321.       &triple-third))
  322.  
  323. (define-package (compiler fg-optimizer)
  324.   (files "fgopt/outer"            ;outer analysis
  325.      "fgopt/sideff"            ;side effect analysis
  326.      )
  327.   (parent (compiler))
  328.   (export (compiler top-level)
  329.       clear-call-graph!
  330.       compute-call-graph!
  331.       outer-analysis
  332.       side-effect-analysis))
  333.  
  334. (define-package (compiler fg-optimizer fold-constants)
  335.   (files "fgopt/folcon")
  336.   (parent (compiler fg-optimizer))
  337.   (export (compiler top-level) fold-constants))
  338.  
  339. (define-package (compiler fg-optimizer operator-analysis)
  340.   (files "fgopt/operan")
  341.   (parent (compiler fg-optimizer))
  342.   (export (compiler top-level) operator-analysis))
  343.  
  344. (define-package (compiler fg-optimizer variable-indirection)
  345.   (files "fgopt/varind")
  346.   (parent (compiler fg-optimizer))
  347.   (export (compiler top-level) initialize-variable-indirections!))
  348.  
  349. (define-package (compiler fg-optimizer environment-optimization)
  350.   (files "fgopt/envopt")
  351.   (parent (compiler fg-optimizer))
  352.   (export (compiler top-level) optimize-environments!))
  353.  
  354. (define-package (compiler fg-optimizer closure-analysis)
  355.   (files "fgopt/closan")
  356.   (parent (compiler fg-optimizer))
  357.   (export (compiler top-level) identify-closure-limits!))
  358.  
  359. (define-package (compiler fg-optimizer continuation-analysis)
  360.   (files "fgopt/contan")
  361.   (parent (compiler fg-optimizer))
  362.   (export (compiler top-level)
  363.       continuation-analysis
  364.       setup-block-static-links!))
  365.  
  366. (define-package (compiler fg-optimizer compute-node-offsets)
  367.   (files "fgopt/offset")
  368.   (parent (compiler fg-optimizer))
  369.   (export (compiler top-level) compute-node-offsets))
  370.  
  371. (define-package (compiler fg-optimizer connectivity-analysis)
  372.   (files "fgopt/conect")
  373.   (parent (compiler fg-optimizer))
  374.   (export (compiler top-level) connectivity-analysis))
  375.  
  376. (define-package (compiler fg-optimizer delete-integrated-parameters)
  377.   (files "fgopt/delint")
  378.   (parent (compiler fg-optimizer))
  379.   (export (compiler top-level) delete-integrated-parameters))
  380.  
  381. (define-package (compiler fg-optimizer design-environment-frames)
  382.   (files "fgopt/desenv")
  383.   (parent (compiler fg-optimizer))
  384.   (export (compiler top-level) design-environment-frames!))
  385.  
  386. (define-package (compiler fg-optimizer setup-block-types)
  387.   (files "fgopt/blktyp")
  388.   (parent (compiler fg-optimizer))
  389.   (export (compiler top-level)
  390.       setup-block-types!
  391.       setup-closure-contexts!)
  392.   (export (compiler)
  393.       indirection-block-procedure))
  394.  
  395. (define-package (compiler fg-optimizer simplicity-analysis)
  396.   (files "fgopt/simple")
  397.   (parent (compiler fg-optimizer))
  398.   (export (compiler top-level) simplicity-analysis)
  399.   (export (compiler fg-optimizer subproblem-ordering)
  400.       new-subproblem/compute-simplicity!))
  401.  
  402. (define-package (compiler fg-optimizer simulate-application)
  403.   (files "fgopt/simapp")
  404.   (parent (compiler fg-optimizer))
  405.   (export (compiler top-level) simulate-application))
  406.  
  407. (define-package (compiler fg-optimizer subproblem-free-variables)
  408.   (files "fgopt/subfre")
  409.   (parent (compiler fg-optimizer))
  410.   (export (compiler top-level) compute-subproblem-free-variables)
  411.   (export (compiler fg-optimizer) map-union)
  412.   (export (compiler fg-optimizer subproblem-ordering)
  413.       new-subproblem/compute-free-variables!))
  414.  
  415. (define-package (compiler fg-optimizer subproblem-ordering)
  416.   (files "fgopt/order")
  417.   (parent (compiler fg-optimizer))
  418.   (export (compiler top-level) subproblem-ordering))
  419.  
  420. (define-package (compiler fg-optimizer subproblem-ordering reuse-frames)
  421.   (files "fgopt/reord" "fgopt/reuse")
  422.   (parent (compiler fg-optimizer subproblem-ordering))
  423.   (export (compiler top-level) setup-frame-adjustments)
  424.   (export (compiler fg-optimizer subproblem-ordering)
  425.       order-subproblems/maybe-overwrite-block))
  426.  
  427. (define-package (compiler fg-optimizer subproblem-ordering parameter-analysis)
  428.    (files "fgopt/param")
  429.    (parent (compiler fg-optimizer subproblem-ordering))
  430.    (export (compiler fg-optimizer subproblem-ordering)
  431.        parameter-analysis))
  432.  
  433. (define-package (compiler fg-optimizer return-equivalencing)
  434.   (files "fgopt/reteqv")
  435.   (parent (compiler fg-optimizer))
  436.   (export (compiler top-level) find-equivalent-returns!))
  437.  
  438. (define-package (compiler rtl-generator)
  439.   (files "rtlgen/rtlgen"        ;RTL generator
  440.      "rtlgen/rgstmt"        ;statements
  441.      "rtlgen/fndvar"        ;find variables
  442.      "machines/mips/rgspcm"        ;special close-coded primitives
  443.      "rtlbase/rtline"        ;linearizer
  444.      )
  445.   (parent (compiler))
  446.   (export (compiler)
  447.       make-linearizer)
  448.   (export (compiler top-level)
  449.       generate/top-level
  450.       linearize-rtl
  451.       setup-bblock-continuations!)
  452.   (export (compiler debug)
  453.       linearize-rtl)
  454.   (import (compiler top-level)
  455.       label->object))
  456.  
  457. (define-package (compiler rtl-generator generate/procedure-header)
  458.   (files "rtlgen/rgproc")
  459.   (parent (compiler rtl-generator))
  460.   (export (compiler rtl-generator) generate/procedure-header))
  461.  
  462. (define-package (compiler rtl-generator combination/inline)
  463.   (files "rtlgen/opncod")
  464.   (parent (compiler rtl-generator))
  465.   (export (compiler rtl-generator) combination/inline)
  466.   (export (compiler top-level) open-coding-analysis))
  467.  
  468. (define-package (compiler rtl-generator find-block)
  469.   (files "rtlgen/fndblk")
  470.   (parent (compiler rtl-generator))
  471.   (export (compiler rtl-generator) find-block))
  472.  
  473. (define-package (compiler rtl-generator generate/rvalue)
  474.   (files "rtlgen/rgrval")
  475.   (parent (compiler rtl-generator))
  476.   (export (compiler rtl-generator)
  477.       generate/rvalue
  478.       load-closure-environment
  479.       make-cons-closure-indirection
  480.       make-cons-closure-redirection
  481.       make-closure-redirection
  482.       make-ic-cons
  483.       make-non-trivial-closure-cons
  484.       make-trivial-closure-cons
  485.       redirect-closure))
  486.  
  487. (define-package (compiler rtl-generator generate/combination)
  488.   (files "rtlgen/rgcomb")
  489.   (parent (compiler rtl-generator))
  490.   (export (compiler rtl-generator)
  491.       generate/combination
  492.       rtl:bump-closure)
  493.   (export (compiler rtl-generator combination/inline)
  494.       generate/invocation-prefix))
  495.  
  496. (define-package (compiler rtl-generator generate/return)
  497.   (files "rtlgen/rgretn")
  498.   (parent (compiler rtl-generator))
  499.   (export (compiler rtl-generator)
  500.       make-return-operand
  501.       generate/return
  502.       generate/return*
  503.       generate/trivial-return))
  504.  
  505. (define-package (compiler rtl-cse)
  506.   (files "rtlopt/rcse1"            ;RTL common subexpression eliminator
  507.      "rtlopt/rcse2"
  508.      "rtlopt/rcseep"        ;CSE expression predicates
  509.      "rtlopt/rcseht"        ;CSE hash table
  510.      "rtlopt/rcserq"        ;CSE register/quantity abstractions
  511.      "rtlopt/rcsesr"        ;CSE stack references
  512.      )
  513.   (parent (compiler))
  514.   (export (compiler top-level) common-subexpression-elimination))
  515.  
  516. (define-package (compiler rtl-optimizer)
  517.   (files "rtlopt/rdebug")
  518.   (parent (compiler)))
  519.  
  520. (define-package (compiler rtl-optimizer invertible-expression-elimination)
  521.   (files "rtlopt/rinvex")
  522.   (parent (compiler rtl-optimizer))
  523.   (export (compiler top-level) invertible-expression-elimination))
  524.  
  525. (define-package (compiler rtl-optimizer common-suffix-merging)
  526.   (files "rtlopt/rtlcsm")
  527.   (parent (compiler rtl-optimizer))
  528.   (export (compiler top-level) merge-common-suffixes!))
  529.  
  530. (define-package (compiler rtl-optimizer rtl-dataflow-analysis)
  531.   (files "rtlopt/rdflow")
  532.   (parent (compiler rtl-optimizer))
  533.   (export (compiler top-level) rtl-dataflow-analysis))
  534.  
  535. (define-package (compiler rtl-optimizer rtl-rewriting)
  536.   (files "rtlopt/rerite")
  537.   (parent (compiler rtl-optimizer))
  538.   (export (compiler top-level)
  539.       rtl-rewriting:post-cse
  540.       rtl-rewriting:pre-cse)
  541.   (export (compiler lap-syntaxer) add-rewriting-rule!))
  542.  
  543. (define-package (compiler rtl-optimizer lifetime-analysis)
  544.   (files "rtlopt/rlife")
  545.   (parent (compiler rtl-optimizer))
  546.   (export (compiler top-level) lifetime-analysis)
  547.   (export (compiler rtl-optimizer code-compression) mark-set-registers!))
  548.  
  549. (define-package (compiler rtl-optimizer code-compression)
  550.   (files "rtlopt/rcompr")
  551.   (parent (compiler rtl-optimizer))
  552.   (export (compiler top-level) code-compression))
  553.  
  554. (define-package (compiler rtl-optimizer register-allocation)
  555.   (files "rtlopt/ralloc")
  556.   (parent (compiler rtl-optimizer))
  557.   (export (compiler top-level) register-allocation))
  558.  
  559. (define-package (compiler lap-syntaxer)
  560.   (files "back/lapgn1"            ;LAP generator
  561.      "back/lapgn2"            ; "      "
  562.      "back/lapgn3"            ; "      "
  563.      "back/regmap"            ;Hardware register allocator
  564.      "machines/mips/lapgen"    ;code generation rules
  565.      "machines/mips/rules1"    ;  "      "        "
  566.      "machines/mips/rules2"    ;  "      "        "
  567.      "machines/mips/rules3"    ;  "      "        "
  568.      "machines/mips/rules4"    ;  "      "        "
  569.      "machines/mips/rulfix"    ;  "      "        "
  570.      "machines/mips/rulflo"    ;  "      "        "
  571.      "machines/mips/rulrew"    ;code rewriting rules
  572.      "back/syntax"            ;Generic syntax phase
  573.      "back/syerly"            ;Early binding version
  574.      "machines/mips/coerce"    ;Coercions: integer -> bit string
  575.      "back/asmmac"            ;Macros for hairy syntax
  576.      "machines/mips/insmac"    ;Macros for hairy syntax
  577.      "machines/mips/inerly"    ;Early binding version
  578.      "machines/mips/instr1"    ;MIPS instruction set
  579.      "machines/mips/instr2a"; branch tensioning: branches
  580.      "machines/mips/instr2b"; branch tensioning: load/store
  581.      "machines/mips/instr3" ; floating point
  582.      )
  583.   (parent (compiler))
  584.   (export (compiler)
  585.       available-machine-registers
  586.       fits-in-16-bits-signed?
  587.       fits-in-16-bits-unsigned?
  588.       top-16-bits-only?
  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-static-variables*
  600.       *interned-uuo-links*
  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/mips/lapopt")
  632.   (parent (compiler))
  633.   (export (compiler top-level)
  634.       optimize-linear-lap))
  635.  
  636. (define-package (compiler assembler)
  637.   (files "machines/mips/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. #|
  649. (define-package (compiler disassembler)
  650.   (files "machines/mips/mips"
  651.      "machines/mips/dassm1"
  652.      "machines/mips/dassm2"
  653.      "machines/mips/dassm3")
  654.   (parent (compiler))
  655.   (export ()
  656.       compiler:write-lap-file
  657.       compiler:disassemble)
  658.   (import (runtime compiler-info)
  659.       compiled-code-block/dbg-info
  660.       dbg-info-vector/blocks-vector
  661.       dbg-info-vector?
  662.       dbg-info/labels
  663.       dbg-label/external?
  664.       dbg-label/name
  665.       dbg-labels/find-offset))
  666. |#