llvm-project/llvm/lib/Transforms
Roman Lebedev 374ef57f13
[InstCombine] 'hoist xor-by-constant from xor-by-value': completely give up on constant exprs
As Mikael Holmén is noting in the post-commit review for the first fix
https://reviews.llvm.org/rGd4ccef38d0bb#967466
not hoisting constantexprs is not enough,
because if the xor originally was a constantexpr (i.e. X is a constantexpr).
`SimplifyAssociativeOrCommutative()` in `visitXor()` will immediately
undo this transform, thus again causing an infinite combine loop.

This transform has resulted in a surprising number of constantexpr failures.
2020-12-29 16:28:18 +03:00
..
AggressiveInstCombine [AggressiveInstCombine] Generalize foldGuardedRotateToFunnelShift to generic funnel shifts (REAPPLIED) 2020-12-21 15:22:27 +00:00
CFGuard llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Coroutines Add a llvm.coro.end.async intrinsic 2020-12-22 10:52:28 -08:00
Hello
HelloNew llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
IPO [IROutliner] Merging identical output blocks for extracted functions. 2020-12-28 21:01:48 -06:00
InstCombine [InstCombine] 'hoist xor-by-constant from xor-by-value': completely give up on constant exprs 2020-12-29 16:28:18 +03:00
Instrumentation [Transforms] Use llvm::append_range (NFC) 2020-12-27 09:57:29 -08:00
ObjCARC [ObjC][ARC] Fix a bug where the inline-asm retain/claim RV marker wasn't 2020-12-18 16:59:06 -08:00
Scalar [NewPM] Port infer-address-spaces 2020-12-28 19:58:12 -08:00
Utils [SimplifyCFG] FoldBranchToCommonDest: gracefully handle unreachable code () 2020-12-28 23:31:19 +03:00
Vectorize Reapply "[LV] Vectorize (some) early and multiple exit loops"" w/fix for builder 2020-12-28 10:13:28 -08:00
CMakeLists.txt Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00