Anders Magnusson
2014-10-15 12:43:34 UTC
Hi,
here are some things that I have on the wish list for next release.
Comments/ideas/additions?
-- Ragge
- Optimizations:
* Move liveness analysis and dce to optim().
* Add constant propagation, cse, value tracing and strength
reduction in loops.
* Add Peter K:s type size reductions.
* Let stack space be assigned in pass2 to allow for structs etc in
registers
* Use graph coloring for stack space assignment. May give
interesting interaction with register allocation.
- Cpp
* Clean up the use of a large heap for macros (leftover since V6).
* Use recursive macro evaluation instead of rescanning (faster).
- C language
* Add a bunch of C11 functions (already exists but not official).
- Pass1
* Simplify handling of function calling conventions
* Use node attributes for passing extended information between
pass1 and 2.
* Better handling of complex numbers (and vector calculations).
* Floating point evaluation in software in the compiler to help
cross compiling.
- Pass2
* Let mkext generate code for COLORMAP(), tedious to do manually.
* Share constant evaluation code with pass1.
- C2
* Add support for instruction interleaving/delays (for RISC platforms).
* Simpler peephole optimization
* Merge constant data (like strings).
here are some things that I have on the wish list for next release.
Comments/ideas/additions?
-- Ragge
- Optimizations:
* Move liveness analysis and dce to optim().
* Add constant propagation, cse, value tracing and strength
reduction in loops.
* Add Peter K:s type size reductions.
* Let stack space be assigned in pass2 to allow for structs etc in
registers
* Use graph coloring for stack space assignment. May give
interesting interaction with register allocation.
- Cpp
* Clean up the use of a large heap for macros (leftover since V6).
* Use recursive macro evaluation instead of rescanning (faster).
- C language
* Add a bunch of C11 functions (already exists but not official).
- Pass1
* Simplify handling of function calling conventions
* Use node attributes for passing extended information between
pass1 and 2.
* Better handling of complex numbers (and vector calculations).
* Floating point evaluation in software in the compiler to help
cross compiling.
- Pass2
* Let mkext generate code for COLORMAP(), tedious to do manually.
* Share constant evaluation code with pass1.
- C2
* Add support for instruction interleaving/delays (for RISC platforms).
* Simpler peephole optimization
* Merge constant data (like strings).