summary refs log tree commit diff
path: root/load.c
AgeCommit message (Collapse)Author
2018-04-26more compiler warnings...Quentin Carbonneaux
2017-05-17intern symbol namesQuentin Carbonneaux
Symbols in the source file are still limited in length because the rest of the code assumes that strings always fit in NString bytes. Regardless, there is already a benefit because comparing/copying symbol names does not require using strcmp()/strcpy() anymore.
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