Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make DetectDeadLanes preserve CFG | Matt Arsenault | 2016-06-15 | 1 | -0/+5 |
| | | | | llvm-svn: 272740 | ||||
* | DetectDeadLanes: Increase precision when detecting undef inputs | Matthias Braun | 2016-05-06 | 1 | -53/+121 |
| | | | | | | | | | | | | | In case of COPY-like instruction we may be able to deduce that a certain input is unused, based on the used lanes of the register defined by the instruction. This even works accross otherwise incompatible copies (no need to have compatible lanemasks, completely unused operands are still completely unused). It even makes sense to redo the analysis in this case since we gained information for a case we previously stopped at because of the incompatible masks. llvm-svn: 268815 | ||||
* | DetectDeadLanes: Cleanup, assert on some impossible cases. | Matthias Braun | 2016-05-06 | 1 | -9/+8 |
| | | | | llvm-svn: 268814 | ||||
* | [CodeGen] Remove extra ';' | Marcin Koscielnicki | 2016-04-28 | 1 | -1/+1 |
| | | | | | | Squashes a -Wpedantic warning. llvm-svn: 267944 | ||||
* | CodeGen: Add DetectDeadLanes pass. | Matthias Braun | 2016-04-28 | 1 | -0/+530 |
The DetectDeadLanes pass performs a dataflow analysis of used/defined subregister lanes across COPY instructions and instructions that will get lowered to copies. It detects dead definitions and uses reading undefined values which are obscured by COPY and subregister usage. These dead definitions cause trouble in the register coalescer which cannot deal with definitions suddenly becoming dead after coalescing COPY instructions. For now the pass only adds dead and undef flags to machine operands. It should be possible to extend it in the future to remove the dead instructions and redo the analysis for the affected virtual registers. Differential Revision: http://reviews.llvm.org/D18427 llvm-svn: 267851 |