summary refs log tree commit diff
path: root/lisc/ssa.c
AgeCommit message (Collapse)Author
2016-02-27leave only the most important free todosQuentin Carbonneaux
2016-02-26oops, fix wrong bitset allocationQuentin Carbonneaux
2016-02-26convert ssa.c to bitsetsQuentin Carbonneaux
2016-02-04re-add ssa constructionQuentin Carbonneaux
2016-01-03index() conflicts with string.h on freebsdOri Bernstein
rename it to avoid the conflict.
2015-11-30update comment in ssa.cQuentin Carbonneaux
2015-11-30fill class information in filluse()Quentin Carbonneaux
2015-11-27disable optimizationsQuentin Carbonneaux
2015-11-19start memopt(), still buggyQuentin Carbonneaux
2015-11-16uniformize looping on instructionsQuentin Carbonneaux
I am actually not sure if "i-b->ins < b->nins" is the best way, maybe the comparison with the last instruction is a little more efficient... At least it is uniform now.
2015-11-13fix a few bugs in filluse()Quentin Carbonneaux
2015-11-13store the use locations for temporariesQuentin Carbonneaux
2015-11-11move usage computation in filluse()Quentin Carbonneaux
2015-11-10change debug formattingQuentin Carbonneaux
2015-11-10add a few safeguardsQuentin Carbonneaux
2015-11-10fix some bugs, call ssa() in func()Quentin Carbonneaux
2015-11-10now, cross fingers and testQuentin Carbonneaux
2015-11-09do not insert dead phisQuentin Carbonneaux
2015-11-09provide BZERO macro for bitsetsQuentin Carbonneaux
2015-11-09recognize locals in phiins()Quentin Carbonneaux
2015-11-09fix bug in frontier discoveryQuentin Carbonneaux
2015-11-09start conventional ssa constructionQuentin Carbonneaux
2015-10-31make phi-class handling more localQuentin Carbonneaux
The phi classes are no longer in a union-find structure, instead each temporary argument of a phi node gets a pointer to it. The hinting of the phi node is then shared with its the one of its arguments. When liveness proceeds and finds out that two elements with same hinting (a phi node and one of its arguments or two arguments of the same phi node) interfere, one of them has its phi pointer reset, that way, the hinting won't be shared.
2015-10-30remove liveness heuristic in fillphi()Quentin Carbonneaux
2015-10-06add pool memory managementQuentin Carbonneaux
2015-10-06use new vector functions instead of reallocsQuentin Carbonneaux
2015-09-26do not merge phi classes of interfering tempsQuentin Carbonneaux
2015-09-25add union-find based phi-class computationQuentin Carbonneaux
2015-09-15add a size to all operations (wip)Quentin Carbonneaux
2015-09-15use loop frequency in ties of rpoQuentin Carbonneaux
2015-09-15minor change in rpo walkingQuentin Carbonneaux
2015-09-15use a new Ref type for registersQuentin Carbonneaux
This might not be a good idea, the problem was that many spurious registers would be added to the Bits data-structures during compilation (and would always remain 0). However, doing the above modification de-uniformizes the handling of temps and regs, this makes the code longer and not really nicer. Also, additional Bits structures are required to track the registers independently. Overall this might be a bad idea to revert.
2015-09-15start change of representation for registersQuentin Carbonneaux
2015-09-15start work on word/long handlingQuentin Carbonneaux
2015-09-15export error functionsQuentin Carbonneaux
2015-09-15do not use _ in identifiersQuentin Carbonneaux
2015-09-15add rpo test and some liveness codeQuentin Carbonneaux
2015-09-15use argument array for all instructionsQuentin Carbonneaux
2015-09-15change Ref to a structQuentin Carbonneaux
2015-09-15patch jumps too in ssafixQuentin Carbonneaux
2015-09-15update ssa moduleQuentin Carbonneaux
2015-09-15give blocks an idQuentin Carbonneaux
2015-09-15remove useless parameter in top,bot defQuentin Carbonneaux
2015-09-15update ssafix, still buggyQuentin Carbonneaux
2015-09-15first blood at ssa reconstructionQuentin Carbonneaux
2015-09-15free old rpo information before overwritingQuentin Carbonneaux
2015-09-15add rpo information to functionsQuentin Carbonneaux
2015-09-15properly clear predecessors in fillpredsQuentin Carbonneaux
2015-09-15add predecessor computationQuentin Carbonneaux