analyses: strictness & binding-time analysis (\cite{launchbury91a}) polymorphic-instance analysis (pldi 91; referred \cite{launchbury91a}, p 86 top left) facet analysis (part of [higher-order offline] parameterized partial evaluation) (pldi 91: \cite{consel91a}) binding-time analysis (fpca89; \cite{mogensen91}) strictness analysis (\cite{wadler87a}) update analysis (fpca; \cite{bloss89b}) path analysis (fpca; \cite{bloss89b}) interference, closure, and lifetime analysis (fpca; \cite{sestoft89a}) stacklessness anaysis (fpca; \cite{lester89b}) liveness analysis (AHU, reffed by lester89b) complexity analysis (fpca, \cite{rosendahl89a}) demand analysis time analysis type systems: refinement types (pldi 91; \cite{freeman91a}) soft typing (pldi 91; \cite{cartwright91a}) other: done in LML compiler: llift lambda lifter /Bconv simpl /asimpl arithmetic simplifications /casetr case of case ... (& a couple of others ?) /mlet mlet (inlining) ? /simpl constant folding, casefold, Esimpl, simpl, force arity, movelam strict very simple strictness analysis transform /case caseelim /casep condjoin /constr constrtr /lettrans let transformations unrec Gopt G-code optimiser mopt m-code optimiser done in yale compiler: (in flic) optimization : \beta-redn (constant propagation & inlining) constant folding dead code elim strictness analysis the competition: (mips compiler) compiles to "ucode" (symbolic assembler) optimisations on both ucode and binary assembler -O2 global ucode optimizer -O3 global register alloc -feedback file -cord procedure re-arranger ; reduce cache conflicts pixie adds things to binary for profiling pixstats generate exec stats from a pixified pgm prof analyse profile data (pc-sampling, basic-blk counting) data dependence analysis (pldi 91; \cite{maydan91a}) (nice table of stats-- pldi 91; \cite{goff91a}, p 25) tiling for better cache hits (pldi 91: \cite{wolf91a}) using real or estimated runtime profiles (pldi 91: \cite{wall91a}) procedure merging w/ instruction caches (pldi 91: \cite{mcfarling91a}) fortran @ 10 Gflops (pldi 91: \cite{bromley91a}) global instr scheduling for superscalar machines (pldi 91: \cite{bernstein91a})