Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [ARM][CGP] Negative constant operand handling | Sam Parker | 2018-11-01 | 1 | -135/+0 |
| | | | | | | | | | | | | | | | | | While mutating instructions, we sign extended negative constant operands for binary operators that can safely overflow. This was to allow instructions, such as add nuw i8 %a, -2, to still be able to perform a subtraction. However, the code to handle constants doesn't take into consideration that instructions, such as sub nuw i8 -2, %a, require the i8 -2 to be converted into i32 254. This is a relatively simple fix, but I've taken the time to reorganise the code a bit - mainly that instructions that can be promoted are cached and splitting up the Mutate function. Differential Revision: https://reviews.llvm.org/D53972 llvm-svn: 345840 | ||||
* | [ARM] Ignore GEPs in ARMCodeGenPrepare | Sam Parker | 2018-08-16 | 1 | -0/+51 |
| | | | | | | | | | | | While searching through the use-def tree, ignore GetElementPtrInst instructions because they don't need promoting and neither do their indices. Otherwise, the wide indices prevent the transformation from happening. Differential Revision: https://reviews.llvm.org/D50762 llvm-svn: 339871 | ||||
* | [ARM] Allow pointer values in ARMCodeGenPrepare | Sam Parker | 2018-08-15 | 1 | -0/+84 |
Add pointers to the list of allowed types, but don't try to promote them. Also fixed a bug with the promotion of undef values, so a new value is now created instead of mutating in place. We also now only promote if there's an instruction in the use-def chains other than the icmp, sinks and sources. Differential Revision: https://reviews.llvm.org/D50054 llvm-svn: 339754 |