llvm-project/llvm/lib/Transforms
Sanjay Patel 9907d3c8b4 [InstCombine] canonicalize add/sub with bool
add A, sext(B) --> sub A, zext(B)

We have to choose 1 of these forms, so I'm opting for the
zext because that's easier for value tracking.

The backend should be prepared for this change after:
D57401
rL353433

This is also a preliminary step towards reducing the amount
of bit hackery that we do in IR to optimize icmp/select.
That should be waiting to happen at a later optimization stage.

The seeming regression in the fuzzer test was discussed in:
D58359

We were only managing that fold in instcombine by luck, and
other passes should be able to deal with that better anyway.

llvm-svn: 354748
2019-02-24 16:57:45 +00:00
..
AggressiveInstCombine Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Coroutines [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
Hello Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IPO [Inliner] Pass nullptr for the ORE param of getInlineCost if RemarkEnabled 2019-02-21 02:57:52 +00:00
InstCombine [InstCombine] canonicalize add/sub with bool 2019-02-24 16:57:45 +00:00
Instrumentation [Instrumentation][NFC] Fix warning. 2019-02-14 12:10:49 +00:00
ObjCARC [opaque pointer types] Pass function type for CallBase::setCalledFunction. 2019-02-01 20:44:54 +00:00
Scalar [DTU] Refine the interface and logic of applyUpdates 2019-02-22 13:48:38 +00:00
Utils BreakCriticalEdges: Update PostDominatorTree 2019-02-22 15:01:41 +00:00
Vectorize [MemorySSA & LoopPassManager] Add remaining book keeping [NFCI]. 2019-02-12 23:48:02 +00:00
CMakeLists.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00