4
"Correct" error messages
5
3
P->current (Fix observable behaviour?)
6
New callingconvention for guardbifs (Recognize at load time).
4
New calling convention for guard bifs (Recognize at load time).
8
6
timer:tc(hipe,c,[megaco_text_parser,[{timeout,infinity}]]).
10
8
{error,[{problem,too_long_branch},{address,3381732},{length,-828622}]}}
18
13
Better handling of multimove in regalloc.
19
14
Faster closure creation. (Can static fields be preallocated?)
21
Inline BS-instructions.
23
15
Expand pseudo-ops before scheduler (SPARC)
24
16
Stack maps for SPARC + Make frames in Sparc not in RTL.
25
17
Coalesce spill locations.
30
module_info() -> beam/native.
31
22
Stack traces from stack maps.
36
27
Speedup renaming and other bottlenecks in the compiler.
37
Only calls with fail lable should end basic blocks.
28
Only calls with fail label should end basic blocks.
38
29
Remove fail-entry-points from RTL (sparc/x86).
39
Cleanup hipe_*_reigsters.erl and interface/rules with regalloc.
30
Cleanup hipe_*_registers.erl and interface/rules with regalloc.
41
32
Cleanup and merge loaders. (Better handling of data.)
42
Reexamine switching code.
33
Re-examine switching code.
58
BMs from Telia promotor, AXD301.
60
Release party HiPE 1.0
61
DVP 4th-year project in Erlang.
45
Old list compiled by Thomas Lindgren (needs cleaning up)
46
========================================================
48
<h1>Experimental implementations</h1>
51
<LI> Algebraiska f�renklingar av uttryck (ex. reducera integer multiply,
52
ta bort addition med 0, etc)
53
<LI> Partial redundancy elimination
56
<h1>Unimplemented optimizations</h1>
58
<H2>Erlang/Core source-level-optimizations</H2>
60
<LI> "Context compilation"
63
<LI> Compilation by transformation
66
<H2>Icode-optimizations</H2>
68
<LI> Convertion to loops from recursive programs
70
(<a href="./thomasl/icode/dominators.erl">l�ngsamma</a>, snabba)
73
<H2>RTL-optimizations</H2>
75
<LI> Common subexpression elimination
76
<LI> Ta bort redundanta tester globalt (ex. upprepade typtester)
77
<LI> Ordna om hopp (ex. byt ordning p� nil/cons-tester)
78
<LI> Goto eliminering (= expandera uncond. jumps m. k�nd m�ltavla)
79
<LI> Save/restore-placering: datafl�desanalys, interaktion m. catch-frames
80
<LI> Loop optimeringar
82
<LI> Dominatorer (se dominatorer f�r icode)
84
<LI> Invariant expression removal
86
<LI> Partial redundancy elimination by lazy code motion
87
<LI> Partially dead code
90
<H2>Sparc-optimizations</H2>
92
<LI> Global register allocation
94
<LI> <a href="./thomasl/regalloc/regalloc.erl">
95
Pessimistisk f�rgning</a>
96
<LI> Optimistisk f�rgning (kan sl�s p� i samma fil som pessimistisk
98
<LI> B�ttre ber�kning av spillkostnader
100
<LI> Callee-saves register
101
<LI> Live-range splitting
103
<LI> Instruktionsschedulering
105
<LI> Branch delay slot scheduling
106
<LI> Load delay slot scheduling
107
<LI> Spekulativa loads med lduwa
108
<LI> Kollapsa serier av tester med bpr
109
<LI> Begr�nsad predicated execution med movcc
111
<LI> Kodlayout: statiska f�ruts�gelser om riktning av hopp,
112
layout, s�tta branch prediction bits i hopp, etc.
113
<LI> Prefetching av kod med SparcV9:s bpn.
116
<H2>Other optimizations</H2>
118
Profile driven optimizations.
120
<LI> Utplacering av r�knare i CFG:er (per block, per b�ge)
121
<LI> Statiska metoder att uppskatta exekveringstid (inom och mellan proc.)
122
<LI> Feedback till program, annotering av CFG:er med profileringsinfo.
123
<LI> Kodlayout med profileringsinfo.
124
<LI> Skapa superblock
125
<LI> Skapa hyperblock
126
<LI> Plocka fram heta block, skapa en 'het' sub-CFG som hoppar
127
till den kalla huvud-CFG:n vid behov.
128
<LI> Optimering av het CFG, kodf�rflyttning fr�n het till kall CFG.
129
<LI> Spawn-time specialization