Bugfix ====== P->current (Fix observable behaviour?) New calling convention for guard bifs (Recognize at load time). Long branches: timer:tc(hipe,c,[megaco_text_parser,[{timeout,infinity}]]). {4801210531, {error,[{problem,too_long_branch},{address,3381732},{length,-828622}]}} Performance =========== Better handling of multimove in regalloc. Faster closure creation. (Can static fields be preallocated?) Expand pseudo-ops before scheduler (SPARC) Stack maps for SPARC + Make frames in Sparc not in RTL. Coalesce spill locations. Feature ======= Stack traces from stack maps. Cleanup ======= Speedup renaming and other bottlenecks in the compiler. Only calls with fail label should end basic blocks. Remove fail-entry-points from RTL (sparc/x86). Cleanup hipe_*_registers.erl and interface/rules with regalloc. HiPE in bootstrap. Cleanup and merge loaders. (Better handling of data.) Re-examine switching code. Extensions ========== Design strategy for finding all processes holding a certain closure. Design strategy for native code unloading. mbufs: In guards -> throw away, in bifs -> trigger special GC. (fix for native.) Unified heap + process optimization (+ PE). Incremental GC. Old list compiled by Thomas Lindgren (needs cleaning up) ========================================================

Experimental implementations

RTL

Unimplemented optimizations

Erlang/Core source-level-optimizations

Icode-optimizations

RTL-optimizations

Sparc-optimizations

Other optimizations

Profile driven optimizations.