llvm-project/llvm/lib/Transforms
Congzhe Cao c42772752a [CodeMoverUtils] Enhance isSafeToMoveBefore() when control flow equivalence is satisfied
With improved analysis in determining CFG equivalence that does
not require strict dominance and post-dominance conditions, we
now relax  isSafeToMoveBefore() such that an instruction I can
be moved before InsertPoint even if they do not strictly dominate
each other, as long as they follow the same control flow path.

For example,  we can move Instruction 0 before Instruction 1,
and vice versa.

```
if (cond1)
   // Instruction 0: %add = add i32 1, 2
if (cond1)
   // Instruction 1: %add2 = add i32 2, 1
```

Reviewed By: Whitney

Differential Revision: https://reviews.llvm.org/D110456
2021-09-27 18:37:36 -04:00
..
AggressiveInstCombine [AggressiveInstCombine] Add `{insert/extract}element` to `TruncInstCombine` DAG 2021-09-16 11:24:31 +03:00
CFGuard llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Coroutines Pass some DataLayout arguments by const-ref 2021-09-23 15:50:31 +01:00
Hello
IPO [ThinLTO] Add noRecurse and noUnwind thinlink function attribute propagation 2021-09-27 12:28:07 -07:00
InstCombine [InstCombine] reduce code for shl-of-sub transform; NFC 2021-09-27 14:56:01 -04:00
Instrumentation [hwasan] also omit safe mem[cpy|mov|set]. 2021-09-22 11:08:27 +01:00
ObjCARC [Transforms] Use make_early_inc_range (NFC) 2021-09-15 19:55:24 -07:00
Scalar Revert "Recommit "Revert "[CVP] processSwitch: Remove default case when switch cover all possible values.""" 2021-09-27 20:39:05 +08:00
Utils [CodeMoverUtils] Enhance isSafeToMoveBefore() when control flow equivalence is satisfied 2021-09-27 18:37:36 -04:00
Vectorize Bad SLPVectorization shufflevector replacement, resulting in write to wrong memory location 2021-09-27 14:06:13 -04:00
CMakeLists.txt [NewPM][HelloWorld] Move HelloWorld to Utils 2021-02-03 12:59:40 -08:00