mit-scheme.git
36 years agoSignificant repackaging.
Chris Hanson [Tue, 13 Dec 1988 13:01:48 +0000 (13:01 +0000)]
Significant repackaging.

36 years agoRedefine `block-original-parent' to be `original-block-parent' in
Chris Hanson [Tue, 13 Dec 1988 13:00:22 +0000 (13:00 +0000)]
Redefine `block-original-parent' to be `original-block-parent' in
keeping with changes to closure analysis.

36 years agoChange analysis in two ways: (1) static link computation now uses
Chris Hanson [Tue, 13 Dec 1988 12:41:27 +0000 (12:41 +0000)]
Change analysis in two ways: (1) static link computation now uses
`initial-backward-links' to get much more precise notion of when
parent is the stack link.  (2) dynamic link computation stores all of
the popping limits in the caller block for use by the combination code
generator.

36 years agoUUO links to entities and some procedures with optional arguments have
Guillermo J. Rozas [Mon, 12 Dec 1988 22:11:35 +0000 (22:11 +0000)]
UUO links to entities and some procedures with optional arguments have
been improved.

36 years agoNew type: stack-overwrite. Remove changes to delete unreachable
Chris Hanson [Mon, 12 Dec 1988 21:53:00 +0000 (21:53 +0000)]
New type: stack-overwrite.  Remove changes to delete unreachable
nodes, as this code was buggy.  No longer needed because of changes to
code generator, but we'll replace it soon anyway.

36 years agoBlock->context changes. Improve handling of static links. New type:
Chris Hanson [Mon, 12 Dec 1988 21:52:53 +0000 (21:52 +0000)]
Block->context changes.  Improve handling of static links.  New type:
stack-overwrite.

36 years agoMultiple value changes. Block->context changes.
Chris Hanson [Mon, 12 Dec 1988 21:52:46 +0000 (21:52 +0000)]
Multiple value changes.  Block->context changes.

36 years agoMany changes for frame reuse stuff.
Chris Hanson [Mon, 12 Dec 1988 21:52:40 +0000 (21:52 +0000)]
Many changes for frame reuse stuff.

36 years agoSignificant changes for frame reuse stuff.
Chris Hanson [Mon, 12 Dec 1988 21:52:32 +0000 (21:52 +0000)]
Significant changes for frame reuse stuff.

36 years ago* Change `block' to `context' where needed.
Chris Hanson [Mon, 12 Dec 1988 21:52:22 +0000 (21:52 +0000)]
* Change `block' to `context' where needed.

* Change open coding stuff to avoid generating code that will be
dangling in the output.

36 years ago* Move everything except the core block search stuff to another file.
Chris Hanson [Mon, 12 Dec 1988 21:52:15 +0000 (21:52 +0000)]
* Move everything except the core block search stuff to another file.

* Update to use reference contexts.

36 years agoMany changes: see the diff.
Chris Hanson [Mon, 12 Dec 1988 21:52:08 +0000 (21:52 +0000)]
Many changes: see the diff.

36 years agoMajor changes to accomodate frame reuse.
Chris Hanson [Mon, 12 Dec 1988 21:51:58 +0000 (21:51 +0000)]
Major changes to accomodate frame reuse.

36 years agoSignificant changes: see the diff.
Chris Hanson [Mon, 12 Dec 1988 21:51:52 +0000 (21:51 +0000)]
Significant changes: see the diff.

36 years agoAdd new node type: `stack-overwrite'
Chris Hanson [Mon, 12 Dec 1988 21:51:48 +0000 (21:51 +0000)]
Add new node type: `stack-overwrite'

36 years ago* Make necessary changes to convert `block' to `context'.
Chris Hanson [Mon, 12 Dec 1988 21:51:40 +0000 (21:51 +0000)]
* Make necessary changes to convert `block' to `context'.

* Initialize the contexts at the end of FG generation.

36 years ago* Add `free-variables' slot to subproblem objects.
Chris Hanson [Mon, 12 Dec 1988 21:51:35 +0000 (21:51 +0000)]
* Add `free-variables' slot to subproblem objects.

* Define `continuation*/type' and `set-continuation*/type!'.

* Define `continuation*/context'.

* Change `block' to `context' in virtual continuations.

36 years agoChange `block' to `context' where needed.
Chris Hanson [Mon, 12 Dec 1988 21:51:30 +0000 (21:51 +0000)]
Change `block' to `context' where needed.

36 years agoUUO links to entities and some procedures with optional arguments have
Guillermo J. Rozas [Mon, 12 Dec 1988 21:51:29 +0000 (21:51 +0000)]
UUO links to entities and some procedures with optional arguments have
been improved.

36 years ago* Add new node type: `stack-overwrite'.
Chris Hanson [Mon, 12 Dec 1988 21:51:25 +0000 (21:51 +0000)]
* Add new node type: `stack-overwrite'.

36 years agoDelete popping-limit stuff from continuations. Also delete
Chris Hanson [Mon, 12 Dec 1988 21:51:21 +0000 (21:51 +0000)]
Delete popping-limit stuff from continuations.  Also delete
`reduction-continuation/block' which was never used.

36 years ago* Add `popping-limits' components to block.
Chris Hanson [Mon, 12 Dec 1988 21:51:16 +0000 (21:51 +0000)]
* Add `popping-limits' components to block.

* Change `ic-block?' to be non-integrable.

* Change `block-ancestry' to eliminate random extra argument.

* Define new procedure `block-partial-ancestry' which is like
`block-ancestry' except that it stops at a given ancestor.

* Make `stack-block/static-link?' be more sophisticated: static link
is not needed unless the block has some free variables.  Also, for IC
parent, check to see if lookup is being used on the parent.

* Define new procedures `block-original-parent', and
`{dis,}own-block-child!'.

36 years agoInitial revision
Chris Hanson [Mon, 12 Dec 1988 21:33:15 +0000 (21:33 +0000)]
Initial revision

36 years agoFix some bugs: (1) was allowing volatile expressions to be moved
Chris Hanson [Mon, 12 Dec 1988 21:30:30 +0000 (21:30 +0000)]
Fix some bugs: (1) was allowing volatile expressions to be moved
around; (2) was moving stack references over assignments to the same
stack location.

36 years agoNew definitions:
Chris Hanson [Mon, 12 Dec 1988 21:30:25 +0000 (21:30 +0000)]
New definitions:
rtl:invocation-prefix?
rtl:volatile-expression?
rtl:stack-reference-expression?
rtl:expression-contains?

36 years agoChange to store the initial links as well as the transitive closure.
Chris Hanson [Mon, 12 Dec 1988 21:30:21 +0000 (21:30 +0000)]
Change to store the initial links as well as the transitive closure.

36 years ago* Add two new slots to lvalue type.
Chris Hanson [Mon, 12 Dec 1988 21:30:16 +0000 (21:30 +0000)]
* Add two new slots to lvalue type.

* Change vector modification definitions to return `unspecific' rather
than the original value.

36 years agoDelete all of the system predicate expansions: variable?, etc.
Chris Hanson [Mon, 12 Dec 1988 18:06:47 +0000 (18:06 +0000)]
Delete all of the system predicate expansions: variable?, etc.

36 years agoChange modifiers to return `unassigned'. This will result in superior
Chris Hanson [Sun, 11 Dec 1988 11:24:36 +0000 (11:24 +0000)]
Change modifiers to return `unassigned'.  This will result in superior
compiled code as the compiler will not attempt to produce the original
value of the location being modified.

36 years agoMissing \n\ in documentation string.
Chris Hanson [Thu, 8 Dec 1988 10:48:14 +0000 (10:48 +0000)]
Missing \n\ in documentation string.

36 years agoRewrite constant folding and closure analysis phases.
Guillermo J. Rozas [Tue, 6 Dec 1988 18:58:19 +0000 (18:58 +0000)]
Rewrite constant folding and closure analysis phases.
Write two new phases: compute-call-graph and side-effect-analysis.

36 years agoInitial revision
Guillermo J. Rozas [Tue, 6 Dec 1988 18:57:56 +0000 (18:57 +0000)]
Initial revision

36 years agoAdd a couple of fg optimizer phases:
Guillermo J. Rozas [Tue, 6 Dec 1988 18:49:43 +0000 (18:49 +0000)]
Add a couple of fg optimizer phases:
- compute call graph
- side effect analysis

36 years agoAdd a list? check to syntax-expression and some paranoia to syntax-sequence.
Guillermo J. Rozas [Mon, 5 Dec 1988 23:32:12 +0000 (23:32 +0000)]
Add a list? check to syntax-expression and some paranoia to syntax-sequence.

36 years agoFix a bug in blktyp, and allow envopt to keep data structures when desired.
Guillermo J. Rozas [Thu, 17 Nov 1988 05:20:43 +0000 (05:20 +0000)]
Fix a bug in blktyp, and allow envopt to keep data structures when desired.

36 years ago1) Integrated parameters are filtered before we design the closure
Guillermo J. Rozas [Thu, 17 Nov 1988 05:18:17 +0000 (05:18 +0000)]
1) Integrated parameters are filtered before we design the closure
block.  This fixes a bug by which closures with no free variables were
created.

2) Add paranoia checks to make sure that a trivial closure remains
trivial after its closure block is computed.  This is important
because if it was previously considered trivial, it may already have
been integrated into some other closure.  This check would have caught
the bug fixed in 1.

36 years agofree callers and callees lists are preserved if
Guillermo J. Rozas [Thu, 17 Nov 1988 05:12:25 +0000 (05:12 +0000)]
free callers and callees lists are preserved if
compiler:preserve-data-structures? is true.

36 years agoImprove constant folding:
Guillermo J. Rozas [Tue, 15 Nov 1988 16:37:29 +0000 (16:37 +0000)]
Improve constant folding:
- Mutable objects can now be known values of variables, although
operations will not be open coded over them.
- The outer analysis has been changed to have passed-out and passed-in
counters rather than flags.  In this way it is easy to recompute their
values value after an operation has been constant folded, and decide
whether further propagation can occur or not.
- Non-primitive operations can now be constant folded.  There is a new
declaration: USUAL-DEFINITION which allows the variables to which it
applies to be constant folded to their usual (global) definition.
Examples of this are ATAN, GCD, etc.
- Fix bug in base/utils.scm by which temporary label names were being
interned.  This would cause the compiler to run out of storage after
many compilations.

36 years agoAdd `flush-output' operation to file output ports. This change
Chris Hanson [Sat, 12 Nov 1988 09:21:08 +0000 (09:21 +0000)]
Add `flush-output' operation to file output ports.  This change
requires microcode 10.63 or later.

36 years agoRewrite unix file opening code to be really careful about what kinds
Chris Hanson [Sat, 12 Nov 1988 06:47:24 +0000 (06:47 +0000)]
Rewrite unix file opening code to be really careful about what kinds
of files can be opened, and how.  As of now, only regular files and
character special files are allowed; symbolic links are detected when
opening output files and deleted, thus overwriting the link rather
than writing through it.

Implement new primitive `file-flush-output' which is needed since we
changed file I/O to use buffered stdio some time ago.

36 years agoFix self evaluation of compiled entries which are not compiled
Guillermo J. Rozas [Thu, 10 Nov 1988 06:14:18 +0000 (06:14 +0000)]
Fix self evaluation of compiled entries which are not compiled
expressions.

36 years agoChange to use `for' loop on subdirectories.
Chris Hanson [Wed, 9 Nov 1988 16:35:48 +0000 (16:35 +0000)]
Change to use `for' loop on subdirectories.

36 years agoInitial revision
Chris Hanson [Wed, 9 Nov 1988 10:36:26 +0000 (10:36 +0000)]
Initial revision

36 years agoAdd fix:<mumble> to the list of constant-foldable-primitives.
Guillermo J. Rozas [Tue, 8 Nov 1988 21:25:58 +0000 (21:25 +0000)]
Add fix:<mumble> to the list of constant-foldable-primitives.

36 years agoGeneralize rule for `cons-closure' so that it handles more types of
Chris Hanson [Tue, 8 Nov 1988 12:36:58 +0000 (12:36 +0000)]
Generalize rule for `cons-closure' so that it handles more types of
target expressions.

36 years agoChange `cons-closure' from a statement to an expression. This allows
Chris Hanson [Tue, 8 Nov 1988 11:17:29 +0000 (11:17 +0000)]
Change `cons-closure' from a statement to an expression.  This allows
us more freedom in choosing the target register.

36 years agoChange `cons-closure' from a statement to an expression. This allows
Chris Hanson [Tue, 8 Nov 1988 08:24:57 +0000 (08:24 +0000)]
Change `cons-closure' from a statement to an expression.  This allows
us more freedom in choosing the target register.

36 years agoAdd new primitive, `compiled-closure->entry'.
Chris Hanson [Tue, 8 Nov 1988 07:31:15 +0000 (07:31 +0000)]
Add new primitive, `compiled-closure->entry'.

36 years ago(rcd): Fix case where there is no error continuation. Allow
Chris Hanson [Tue, 8 Nov 1988 07:21:50 +0000 (07:21 +0000)]
(rcd): Fix case where there is no error continuation.  Allow
specification of continuation without filename.

36 years agoAdd new primitive `compiled-closure->entry', and new predicate
Chris Hanson [Tue, 8 Nov 1988 06:56:06 +0000 (06:56 +0000)]
Add new primitive `compiled-closure->entry', and new predicate
`compiled-closure?'.  Change the unparser to print compiled code
entries differently, showing their offset and absolute address for
better debugging.  Closures show this information for their entry
point, and additionally show the address of the closure itself.

36 years agoKill dead registers when not doing control merge.
Chris Hanson [Mon, 7 Nov 1988 23:50:50 +0000 (23:50 +0000)]
Kill dead registers when not doing control merge.

36 years agoFix incorrect reference.
Chris Hanson [Mon, 7 Nov 1988 23:24:32 +0000 (23:24 +0000)]
Fix incorrect reference.

36 years agoFix unbound variable bug. Delete unused variable.
Chris Hanson [Mon, 7 Nov 1988 14:33:30 +0000 (14:33 +0000)]
Fix unbound variable bug.  Delete unused variable.

36 years agoSubstantial rewrite of code that computes register map of a basic
Chris Hanson [Mon, 7 Nov 1988 14:08:14 +0000 (14:08 +0000)]
Substantial rewrite of code that computes register map of a basic
block with multiple "previous" edges.  The algorithm is roughly as
follows:

* Wait until all of the "previous" nodes have been generated.  This
depends on the absence of explicit loops in the graph, and will
require some rethinking when we introduce these loops.

* Compute a "weighted average" register map (the target map) from the
maps of the "previous" nodes.  This is a heuristic computation, but it
seems to have about the right effect for simple cases.

* Separate the "previous" maps into equivalence classes, where all the
maps in an equivalence class can be converted to the target map with
an identical sequence of instructions.  This could be made
substantially more sophisticated, but for now it will do.

* For each edge, insert code to coerce the "previous" map into the
target map.  Heed the equivalence classes that were just computed, and
causes all maps in a given equivalence class to share a single code
sequence.

36 years agoInitial revision
Chris Hanson [Mon, 7 Nov 1988 13:57:49 +0000 (13:57 +0000)]
Initial revision

36 years agoAdd new file: "back/mermap".
Chris Hanson [Mon, 7 Nov 1988 13:57:31 +0000 (13:57 +0000)]
Add new file: "back/mermap".

36 years ago(delete-dead-registers!): Rewrite to accomodate change to
Chris Hanson [Mon, 7 Nov 1988 13:57:02 +0000 (13:57 +0000)]
(delete-dead-registers!): Rewrite to accomodate change to
`delete-pseudo-registers'.

36 years ago(bblock-compress!): when counting previous edges to determine if this
Chris Hanson [Mon, 7 Nov 1988 13:56:13 +0000 (13:56 +0000)]
(bblock-compress!): when counting previous edges to determine if this
is the beginning of a basic block, we must include edges which have no
left node.

36 years agoFix bugs in previously unused `coerce-map-instructions'. Add new
Chris Hanson [Mon, 7 Nov 1988 13:54:44 +0000 (13:54 +0000)]
Fix bugs in previously unused `coerce-map-instructions'.  Add new
procedures `register-map:keep-live-registers' and `map-equal?'.

36 years agoAdd dependency for new file: "back/mermap".
Chris Hanson [Mon, 7 Nov 1988 13:53:43 +0000 (13:53 +0000)]
Add dependency for new file: "back/mermap".

36 years agoImprove generic arithmetic by adding branch preferences to type,
Chris Hanson [Sun, 6 Nov 1988 14:55:10 +0000 (14:55 +0000)]
Improve generic arithmetic by adding branch preferences to type,
range, and overflow tests.  These preferences cause the linearizer to
attempt to optimize for the preferred branch.

36 years agoExport switches to global environment.
Chris Hanson [Sun, 6 Nov 1988 14:53:29 +0000 (14:53 +0000)]
Export switches to global environment.

36 years agoHeed branch preferences when deciding which branch to generate in line.
Chris Hanson [Sun, 6 Nov 1988 14:50:00 +0000 (14:50 +0000)]
Heed branch preferences when deciding which branch to generate in line.

36 years agoSpecify branch preferences for things like type, range, and overflow
Chris Hanson [Sun, 6 Nov 1988 14:40:14 +0000 (14:40 +0000)]
Specify branch preferences for things like type, range, and overflow
checks; the linearizer will heed these when making decisions about
which branch falls through.  Recode string operations to do type and
range checks if these are enabled.

36 years agoAdd operations to allow specification of branch preference in pblocks.
Chris Hanson [Sun, 6 Nov 1988 14:38:21 +0000 (14:38 +0000)]
Add operations to allow specification of branch preference in pblocks.

36 years agoAn lvalue whose only backward link is itself may be known.
Guillermo J. Rozas [Sun, 6 Nov 1988 13:55:39 +0000 (13:55 +0000)]
An lvalue whose only backward link is itself may be known.
This is a patch. General loops should work as well.

36 years ago"machines/bobcat/dassm1" now uses the compiler syntax table.
Chris Hanson [Sat, 5 Nov 1988 22:34:28 +0000 (22:34 +0000)]
"machines/bobcat/dassm1" now uses the compiler syntax table.

36 years agoInitial revision
Chris Hanson [Sat, 5 Nov 1988 22:31:00 +0000 (22:31 +0000)]
Initial revision

36 years agoFix unbound variable error.
Chris Hanson [Sat, 5 Nov 1988 22:21:54 +0000 (22:21 +0000)]
Fix unbound variable error.

36 years agoEfficiency improvement to last change.
Chris Hanson [Sat, 5 Nov 1988 22:14:02 +0000 (22:14 +0000)]
Efficiency improvement to last change.

36 years ago*** empty log message ***
Chris Hanson [Sat, 5 Nov 1988 05:13:00 +0000 (05:13 +0000)]
*** empty log message ***

36 years agoLast change was a little too ambitious. Back off a bit.
Chris Hanson [Sat, 5 Nov 1988 03:03:05 +0000 (03:03 +0000)]
Last change was a little too ambitious.  Back off a bit.

36 years agoMust adjust stack pointer for special primitive invocations.
Chris Hanson [Sat, 5 Nov 1988 02:59:48 +0000 (02:59 +0000)]
Must adjust stack pointer for special primitive invocations.

36 years agoChange code generation for `&=' to significantly improve output code.
Chris Hanson [Fri, 4 Nov 1988 22:37:44 +0000 (22:37 +0000)]
Change code generation for `&=' to significantly improve output code.
Many minor editing changes also.

36 years agoFix typo introduced in last changes.
Chris Hanson [Fri, 4 Nov 1988 21:49:26 +0000 (21:49 +0000)]
Fix typo introduced in last changes.

36 years agoPatch up several rules to capture common abstractions. Add a couple
Chris Hanson [Fri, 4 Nov 1988 12:16:32 +0000 (12:16 +0000)]
Patch up several rules to capture common abstractions.  Add a couple
of new rules which are conglomerates of existing rules, and which can
be more efficiently generated as a unit.

36 years agoAdd declarations to eliminate "unreferenced bound variable" warnings.
Chris Hanson [Fri, 4 Nov 1988 11:11:12 +0000 (11:11 +0000)]
Add declarations to eliminate "unreferenced bound variable" warnings.

36 years agoAdd declarations to eliminate "unreferenced bound variable" warnings.
Chris Hanson [Fri, 4 Nov 1988 11:08:55 +0000 (11:08 +0000)]
Add declarations to eliminate "unreferenced bound variable" warnings.

36 years agoDefine procedures to capture the object->{type,datum,address}
Chris Hanson [Fri, 4 Nov 1988 10:58:30 +0000 (10:58 +0000)]
Define procedures to capture the object->{type,datum,address}
conversions.

36 years agoDefine new procedure `load-temporary-register' which abstracts the
Chris Hanson [Fri, 4 Nov 1988 10:28:39 +0000 (10:28 +0000)]
Define new procedure `load-temporary-register' which abstracts the
idea of loading a temporary with the value of some expression, and
then using the temporary for something.  This is important because of
the timing problems associated with `rtl:make-assignment'.  Most
usages of the latter are now translated into usages of the new
procedure.

36 years agoDelete random definition of `rtl:make-address->fixnum'. This was a
Chris Hanson [Fri, 4 Nov 1988 10:26:02 +0000 (10:26 +0000)]
Delete random definition of `rtl:make-address->fixnum'.  This was a
duplicate definition, but what is worse, it caused incorrect code to
be generated.  This happened because `object->fixnum' gets elided in
certain places, in particular the places where `address->fixnum' is
used.

36 years agoConversion of a fixnum to an address must be a logical right shift,
Chris Hanson [Fri, 4 Nov 1988 10:23:30 +0000 (10:23 +0000)]
Conversion of a fixnum to an address must be a logical right shift,
not an arithmetic right shift.  This is because an address is an
unsigned quantity; thus a fixnum representing an address must also be
treated as unsigned.

36 years agoRename disassembler/write-compiled-entry to compiler:disassemble,
Guillermo J. Rozas [Fri, 4 Nov 1988 02:26:07 +0000 (02:26 +0000)]
Rename disassembler/write-compiled-entry to compiler:disassemble,
export it to the global package, and add some cleverness about
printing linkage sections.

36 years agoDon't run second pass unless there are some circularly dependent files
Chris Hanson [Thu, 3 Nov 1988 08:47:20 +0000 (08:47 +0000)]
Don't run second pass unless there are some circularly dependent files
being resyntaxed.

36 years agoDon't use the `utime()' or `utimes()' system calls to touch files,
Chris Hanson [Thu, 3 Nov 1988 08:35:47 +0000 (08:35 +0000)]
Don't use the `utime()' or `utimes()' system calls to touch files,
because they are subject to clock skew problems when used on remote
NFS files.  Also, add check for file type to file touching code.

36 years ago*** empty log message ***
Chris Hanson [Thu, 3 Nov 1988 08:21:25 +0000 (08:21 +0000)]
*** empty log message ***

36 years agoEcho file deletions, and show passes.
Chris Hanson [Thu, 3 Nov 1988 08:20:03 +0000 (08:20 +0000)]
Echo file deletions, and show passes.

36 years agoEcho message informing user when files are being touched. Fix big:
Chris Hanson [Thu, 3 Nov 1988 07:52:04 +0000 (07:52 +0000)]
Echo message informing user when files are being touched.  Fix big:
was touching file with no type!  Must touch files that SF outputs.
Always touch .bin file, conditionally touch .ext and .unf files.

36 years agoRedefine `invert-cc-noncommutative'. This was originally designed to
Chris Hanson [Thu, 3 Nov 1988 07:16:11 +0000 (07:16 +0000)]
Redefine `invert-cc-noncommutative'.  This was originally designed to
be like `invert-cc'.  However, it is used to adjust the condition code
for the situation of reversing the arguments to a conditional, while
`invert-cc' is used to adjust for reversing the branches.  These are
quite different.

36 years agoBecause special primitive invocations may now have `next' nodes, it is
Chris Hanson [Thu, 3 Nov 1988 06:33:23 +0000 (06:33 +0000)]
Because special primitive invocations may now have `next' nodes, it is
necessary to invalidate at least the value register and free pointer.
Perhaps we need to invalidate other things as well?

36 years agoDefine these procedures:
Chris Hanson [Thu, 3 Nov 1988 06:31:15 +0000 (06:31 +0000)]
Define these procedures:
    interpreter-value-register
    interpreter-environment-register
    interpreter-environment-register?

36 years agoReset the set of source nodes whenever the compiler band is reloaded.
Chris Hanson [Thu, 3 Nov 1988 03:09:00 +0000 (03:09 +0000)]
Reset the set of source nodes whenever the compiler band is reloaded.
This should help prevent problems with non-existent files.  Also,
during second pass to resyntax files that have circular dependencies,
touch the dependents that have been syntaxed in the first pass, so
that they have the proper time relationships to the resyntaxed files.

36 years agoEliminate random unreferenced labels from RTL and LAP output.
Chris Hanson [Wed, 2 Nov 1988 22:02:08 +0000 (22:02 +0000)]
Eliminate random unreferenced labels from RTL and LAP output.
Eliminate dead branches to continuations.  Implement declarations to
disable detection of traps in cached variable references and
assignments.

36 years ago(reference->register-transfer): When source was an address register
Chris Hanson [Wed, 2 Nov 1988 21:55:33 +0000 (21:55 +0000)]
(reference->register-transfer): When source was an address register
this compared it to target, succeeding when target was a data
register.

36 years agoUse definition of `compiler:default-top-level-declarations'. Add new
Chris Hanson [Wed, 2 Nov 1988 21:54:15 +0000 (21:54 +0000)]
Use definition of `compiler:default-top-level-declarations'.  Add new
class of variables: `assigned'.  Add two new declarations:
`ignore-assignment-traps' and  `ignore-reference-traps'.

36 years agoAdd definition of `compiler:default-top-level-declarations', used by
Chris Hanson [Wed, 2 Nov 1988 21:52:31 +0000 (21:52 +0000)]
Add definition of `compiler:default-top-level-declarations', used by
declaration processor.  This is used to force defaults, and may also
be fluid bound to provide special defaults.

36 years agoRedefine `add-rgraph-entry-node!' to be `add-rgraph-entry-edge!',
Chris Hanson [Wed, 2 Nov 1988 21:51:17 +0000 (21:51 +0000)]
Redefine `add-rgraph-entry-node!' to be `add-rgraph-entry-edge!',
because the caller needs an edge to that node, and we wish to avoid
creation of duplicate edges.

36 years agoBe more careful when `sblock-continuation' is known. If the
Chris Hanson [Wed, 2 Nov 1988 21:49:33 +0000 (21:49 +0000)]
Be more careful when `sblock-continuation' is known.  If the
continuation has already been generated, we were previously generating
a jump to the continuation at this point.  This jump was dead code
because nobody referenced it.

36 years agoImplement `ignore-reference-traps' declaration on free variables.
Chris Hanson [Wed, 2 Nov 1988 21:46:00 +0000 (21:46 +0000)]
Implement `ignore-reference-traps' declaration on free variables.

36 years agoImplement `ignore-assignment-traps' declaration on free variables.
Chris Hanson [Wed, 2 Nov 1988 21:45:43 +0000 (21:45 +0000)]
Implement `ignore-assignment-traps' declaration on free variables.