summary refs log tree commit diff
path: root/load.c
AgeCommit message (Collapse)Author
2017-02-24wrong assumption killsl()Quentin Carbonneaux
2017-02-24improve the range of action of load eliminationQuentin 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-24deduplicate loadsz & storeszQuentin Carbonneaux
2017-02-06use uint for block idsQuentin Carbonneaux
2017-01-12use a less obtuse api for vnew()Quentin Carbonneaux
2016-12-28loosen assertion in load eliminationQuentin 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-21fix wrong assertion in load eliminationQuentin Carbonneaux
The assertion fails incorrectly on a block right after the end of a loop.
2016-12-12implement a simple load elimination passQuentin Carbonneaux