Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-02-24 | wrong assumption killsl() | Quentin Carbonneaux | |
2017-02-24 | improve the range of action of load elimination | Quentin Carbonneaux | |
When eliminating `load %foo`, don't limit the search to the live range of %foo, but to the live range of its aliasing information. For example, if %foo is a constant offset into a stack-allocated slot, %foo =l add %slot, 42 the search will proceed on all the code in which %slot is live, not only below the definition of %foo, like before. | |||
2017-02-24 | deduplicate loadsz & storesz | Quentin Carbonneaux | |
2017-02-06 | use uint for block ids | Quentin Carbonneaux | |
2017-01-12 | use a less obtuse api for vnew() | Quentin Carbonneaux | |
2016-12-28 | loosen assertion in load elimination | Quentin Carbonneaux | |
The assertion was invalid, I was assuming il->blk was b when writing it. The new assertion should be right: If the loop level were to decrease we would get out of a cycle in cfg, this should not be possible unless we go through a block with more than 1 predecessor. | |||
2016-12-21 | fix wrong assertion in load elimination | Quentin Carbonneaux | |
The assertion fails incorrectly on a block right after the end of a loop. | |||
2016-12-12 | implement a simple load elimination pass | Quentin Carbonneaux | |