summaryrefslogtreecommitdiffstats
path: root/clang/unittests/Frontend/CompilerInstanceTest.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2017-09-12 16:24:17 +0000
committerHans Wennborg <hans@hanshq.net>2017-09-12 16:24:17 +0000
commit8c1eb106bd25401f4791c4df9f5454d2ff149443 (patch)
tree0275ede25dc224797680d9fac6d7280f9fd13265 /clang/unittests/Frontend/CompilerInstanceTest.cpp
parenta5d53274f34f33a9c1edc833072d4159c7e7ba92 (diff)
downloadbcm5719-llvm-8c1eb106bd25401f4791c4df9f5454d2ff149443.tar.gz
bcm5719-llvm-8c1eb106bd25401f4791c4df9f5454d2ff149443.zip
Revert r313009 "[ARM] Use ADDCARRY / SUBCARRY"
This was causing PR34045 to fire again. > This is a preparatory step for D34515 and also is being recommitted as its > first version caused PR34045. > > This change: > - makes nodes ISD::ADDCARRY and ISD::SUBCARRY legal for i32 > - lowering is done by first converting the boolean value into the carry flag > using (_, C) ← (ARMISD::ADDC R, -1) and converted back to an integer value > using (R, _) ← (ARMISD::ADDE 0, 0, C). An ARMISD::ADDE between the two > operations does the actual addition. > - for subtraction, given that ISD::SUBCARRY second result is actually a > borrow, we need to invert the value of the second operand and result before > and after using ARMISD::SUBE. We need to invert the carry result of > ARMISD::SUBE to preserve the semantics. > - given that the generic combiner may lower ISD::ADDCARRY and > ISD::SUBCARRYinto ISD::UADDO and ISD::USUBO we need to update their lowering > as well otherwise i64 operations now would require branches. This implies > updating the corresponding test for unsigned. > - add new combiner to remove the redundant conversions from/to carry flags > to/from boolean values (ARMISD::ADDC (ARMISD::ADDE 0, 0, C), -1) → C > - fixes PR34045 > > Differential Revision: https://reviews.llvm.org/D35192 Also revert follow-up r313010: > [ARM] Fix typo when creating ISD::SUB nodes > > In D35192, I accidentally introduced a typo when creating ISD::SUB nodes, > giving them two values instead of one. > > This fails when the merge_values combiner finds one of these nodes. > > This change fixes PR34564. > > Differential Revision: https://reviews.llvm.org/D37690 llvm-svn: 313044
Diffstat (limited to 'clang/unittests/Frontend/CompilerInstanceTest.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud