summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/RDFCopy.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [RDF] Use faster version of findBlockKrzysztof Parzyszek2017-04-191-1/+1
| | | | llvm-svn: 300704
* [RDF] Remove the map of reaching defs from copy propagationKrzysztof Parzyszek2017-03-101-52/+20
| | | | | | Use Liveness::getNearestAliasedRef to find the reaching def instead. llvm-svn: 297526
* [RDF] Differentiate between defining and clobbering nodesKrzysztof Parzyszek2017-02-161-1/+1
| | | | | | | | | | Defining nodes should not alias with one another, while clobbering nodes can. When pushing defs on stacks, push clobbers first, link non-clobbering defs, then push the defs. The data flow in a statement is now: uses -> clobbers -> defs. llvm-svn: 295356
* [RDF] Switch RegisterRef to be a pair (Register, LaneMask)Krzysztof Parzyszek2016-10-141-38/+27
| | | | | | | | | Use PackedRegisterRef to store the register information in the graph nodes. This commit also removes support for virtual registers. It has never been tested or used. It will be possible to add it back if there is a need. llvm-svn: 284255
* [RDF] Replace RegisterAliasInfo with target-independent code using lane masksKrzysztof Parzyszek2016-10-031-2/+2
| | | | llvm-svn: 283122
* [hexagon] Move BlockRanges and RDF stuff into the llvm namespace.Benjamin Kramer2016-05-271-3/+2
| | | | | | No functional change intended. llvm-svn: 270980
* [RDF] Handle undefined registers in RDF copy propagationKrzysztof Parzyszek2016-04-281-1/+6
| | | | | | | When updating the graph, make sure that new uses without reaching defs are handled correctly. llvm-svn: 267891
* [RDF] Improvements to copy propagationKrzysztof Parzyszek2016-01-181-71/+138
| | | | | | | - Allow any instruction to define equality between registers. - Keep the DFG updated. llvm-svn: 258075
* RDF: Copy propagationKrzysztof Parzyszek2016-01-121-0/+180
This is a very limited implementation of DFG-based copy propagation. It only handles actual COPY instructions (does not handle other equivalents such as add-immediate with a 0 operand). The major limitation is that it does not update the DFG: that will be the change required to make it more robust (hopefully coming up soon). llvm-svn: 257490
OpenPOWER on IntegriCloud