DyC Implementation Details
Representations
- This time, we've added a new value type, VALUE_RTCONST,
to represent static variables. This will replace the old LTCONST
implementation.
- We've decided not to implement full SSA. We will only generate
new names only for RTCONSTs assigned new values. This eliminates
problems with aliases.
- We're going to split the setup code and templates in a way
similar to the previous system, then merge the two in a post-pass.
- Tag and Hole Naming Convention
New Compiler Modules
We've created new modules that will contain most of our code. To
create a new module, make a new directory under mflow and add
its name to the mod_list. Then create a new
pmakefile to correctly compile your new files. Then add the
name of your new pass to p2dep.H and p2dep.C. If
you want to be able to invoke your pass from the phase2 script,
p2_comp_script.csi, you also need to add entries to
csi.C. Use DYC_PrepForDynComp as an example.
- p2dyc
- This module invokes our analyses and transforms the CFG for
dynamic compilation.
- p2bta
- Performs our binding-time analyses.
- p2topo
- Computes topological numbers.