llvm-project/llvm/lib
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
..
Analysis [ScalarEvolution] Refactor forgetLoop() to improve performance 2017-09-11 15:44:20 +00:00
AsmParser Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
BinaryFormat [BinaryFormat] Fix out of bounds read. 2017-08-31 12:50:42 +00:00
Bitcode [Bitcode] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-07 23:28:24 +00:00
CodeGen [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-11 23:00:48 +00:00
DebugInfo llvm-dwarfdump: Replace -debug-dump=sect option with individual options. 2017-09-11 22:59:45 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine [ORC] Add a pair of ORC layers that forward object-layer operations via RPC. 2017-09-05 03:34:09 +00:00
FuzzMutate Move some CLI utils out of llvm-isel-fuzzer and into the library 2017-09-02 23:43:04 +00:00
Fuzzer Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
IR Revert "adding autoUpgrade support to broadcast[f|i]32x2 intrinsics" 2017-09-10 09:07:21 +00:00
IRReader
LTO LowerTypeTests: Add import/export support for targets without absolute symbol constants. 2017-09-11 22:49:10 +00:00
LineEditor
Linker Linker: Create a function declaration when moving a non-prevailing alias of function type. 2017-08-10 01:07:44 +00:00
MC [WebAssembly] Update relocation names to match spec 2017-09-01 17:32:01 +00:00
Object Object: Downgrade invalid weak externals from an assert fail to an llvm::Error when creating an irsymtab. 2017-09-07 01:33:52 +00:00
ObjectYAML [yaml2obj][ELF] Add support for symbol indexes greater than SHN_LORESERVE 2017-09-07 20:44:16 +00:00
Option Revert "Revert r311552: [Bash-autocompletion] Add support for static analyzer flags" 2017-08-29 00:09:31 +00:00
Passes [DivRempairs] add a pass to optimize div/rem pairs (PR31028) 2017-09-09 13:38:18 +00:00
ProfileData [Coverage] Build sorted and unique segments 2017-09-08 18:44:50 +00:00
Support Don't call exit from cl::PrintHelpMessage. 2017-09-07 23:30:48 +00:00
TableGen Untabify. 2017-08-28 06:47:47 +00:00
Target Revert r312898 "[ARM] Use ADDCARRY / SUBCARRY" 2017-09-11 23:52:02 +00:00
Testing Mark LLVMTestingSupport as not installed in LLVMBuild. 2017-06-19 22:01:50 +00:00
ToolDrivers [llvm-dlltool] Mention arm64 in the lists of architecture alternatives 2017-09-08 06:49:46 +00:00
Transforms LowerTypeTests: Add import/export support for targets without absolute symbol constants. 2017-09-11 22:49:10 +00:00
WindowsManifest Fix crbug 759265 by suppressing llvm mt warnings. 2017-09-06 01:50:36 +00:00
XRay [XRay][tools] Support new kinds of instrumentation map entries 2017-08-21 00:14:06 +00:00
CMakeLists.txt Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
LLVMBuild.txt Re-apply "Introduce FuzzMutate library" 2017-08-21 22:57:06 +00:00