Björn Lindqvist
|
d486de889d
|
compiler.cfg.*: smaller doc improvements
|
2015-04-29 09:31:57 -07:00 |
Björn Lindqvist
|
ded3760d46
|
compiler.*: merge of ##inc-r and ##inc-d into one instruction ##inc with a loc slot
this is nice because it leads to simpler code and matches how ##peek and ##replace instructions work
|
2015-04-29 09:31:53 -07:00 |
Björn Lindqvist
|
96396cb3ad
|
compiler.*: use block>cfg and insns>block in many tests instead of wordier code
|
2014-11-22 17:31:38 -08:00 |
Slava Pestov
|
6b5fffc026
|
compiler: preliminary implementation of tracking derived pointers in GC maps
|
2010-09-27 20:12:44 -07:00 |
Slava Pestov
|
ec2f42fd40
|
compiler.cfg.liveness: merge in compiler.cfg.liveness.ssa and simplify the code, since we don't compute live sets before SSA construction anymore
|
2010-09-25 14:36:58 -07:00 |
Slava Pestov
|
b5fc39c198
|
compiler.cfg: Reading the return value of a float-returning function on x86-32 had a side effect of popping the x87 stack, so it was not correct for DCE to just eliminate this if the return value was not used. Fix this by adding a new dead-outputs slot to alien-call-insns and having DCE move dead returns there
|
2010-08-13 23:19:56 -07:00 |
Slava Pestov
|
8e46305288
|
compiler.cfg.save-contexts: don't insert ##save-context in front of ##phi
|
2010-07-19 09:27:10 -04:00 |
Slava Pestov
|
d0c393aa60
|
compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO.
|
2009-08-08 20:02:56 -05:00 |
Slava Pestov
|
4b7ba38aab
|
compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case
|
2009-08-08 04:02:18 -05:00 |
Slava Pestov
|
725280d424
|
Split off the notion of a register representation from a register class
|
2009-08-07 17:44:50 -05:00 |
Slava Pestov
|
e1c7f7394a
|
compiler.cfg: clean up unit tests using some new utilities
|
2009-08-02 03:49:25 -05:00 |
Slava Pestov
|
1878b0dc32
|
compiler.cfg.liveness: fix liveness computation in case where instruction uses a register it defines
|
2009-07-28 06:45:02 -05:00 |
Slava Pestov
|
89db2e745d
|
Move liveness back to compiler.cfg.liveness, fix a corner-case where it didn't work on some forms of non-SSA code
|
2009-07-22 06:07:28 -05:00 |
Slava Pestov
|
21a012e3d7
|
compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework
|
2009-07-22 03:08:28 -05:00 |
Slava Pestov
|
6d46bf623c
|
compiler.cfg.liveness: update for new ##phi node representation
|
2009-07-02 17:28:02 -05:00 |