Go to file
Hans Wennborg 075e5a2e2b Revert r312898 "[ARM] Use ADDCARRY / SUBCARRY"
It caused PR34564.

> 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

llvm-svn: 312980
2017-09-11 23:52:02 +00:00
clang [codeview] omit debug locations for nested exprs unless column info enabled 2017-09-11 22:11:57 +00:00
clang-tools-extra [pp-trace] Update skipped source ranges in tests 2017-09-11 20:47:45 +00:00
compiler-rt Runtime detection of android_set_abort_message. 2017-09-11 23:27:58 +00:00
debuginfo-tests Restrict debuginfo-tests to native configurations. 2017-09-08 17:10:48 +00:00
libclc integer: Add popcount implementation using ctpop intrinsic 2017-09-09 02:23:54 +00:00
libcxx mark mersenne_twister_engine<>::seed(result_type __sd) with _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK to placate UBSAN. Fixes PR#34160 2017-09-11 18:10:33 +00:00
libcxxabi Revert "[libcxxabi] When built with ASan, __cxa_throw calls __asan_handle_no_return" 2017-09-06 03:00:42 +00:00
libunwind Revert r312240 2017-08-31 15:51:23 +00:00
lld Correct ALIGN expression when inside a section. 2017-09-11 23:44:53 +00:00
lldb Plugins: fix resolution ambiguity in PDB plugin 2017-09-09 00:13:49 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm Revert r312898 "[ARM] Use ADDCARRY / SUBCARRY" 2017-09-11 23:52:02 +00:00
openmp Read blocktime value set by kmp_set_blocktime() before reading from KMP_BLOCKTIME 2017-09-05 15:45:48 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly Unroll and separate the remaining parts of isolation 2017-09-11 17:46:47 +00:00