llvm-project/llvm/lib/Transforms
Roman Lebedev 70472f34b2
[Reassociate] Convert `add`-like `or`'s into an `add`'s to allow reassociation
InstCombine is quite aggressive in doing the opposite transform,
folding `add` of operands with no common bits set into an `or`,
and that not many things support that new pattern..

In this case, teaching Reassociate about it is easy,
there's preexisting art for `sub`/`shl`:
just convert such an `or` into an `add`:
https://rise4fun.com/Alive/Xlyv
2020-11-03 22:30:51 +03:00
..
AggressiveInstCombine [AggressiveInstCombine] Generalize foldGuardedRotateToFunnelShift to generic funnel shifts 2020-11-03 10:49:49 +00:00
CFGuard [NFCI][IR] Introduce CallBase::Create() wrapper 2020-07-07 01:16:36 +03:00
Coroutines [NFC] Fix "ambiguous overload for ‘operator=’" 2020-10-30 00:43:32 -07:00
Hello
HelloNew Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00
IPO Revert "Add loop distribution to the LTO pipeline" 2020-11-03 19:29:27 +00:00
InstCombine [InstCombine] Perform C-(X+C2) --> (C-C2)-X transform before using Negator 2020-11-03 16:06:52 +03:00
Instrumentation [MemProf] Pass down memory profile name with optional path from clang 2020-11-01 17:38:23 -08:00
ObjCARC Remove unused parameter 2020-11-02 17:40:06 -08:00
Scalar [Reassociate] Convert `add`-like `or`'s into an `add`'s to allow reassociation 2020-11-03 22:30:51 +03:00
Utils [GVN] small improvements to comments 2020-11-03 13:21:48 -05:00
Vectorize [SLP] Pass VecPred argument to getCmpSelInstrCost. 2020-11-03 10:16:43 +00:00
CMakeLists.txt Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00
LLVMBuild.txt Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00