1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test
Juneyoung Lee 7583be01a6 [SimplifyCFG] Update FoldBranchToCommonDest to be poison-safe
This patch makes FoldBranchToCommonDest merge branch conditions into `select i1` rather than `and/or i1` when it is called by SimplifyCFG.
It is known that merging conditions into and/or is poison-unsafe, and this is towards making things *more* correct by removing possible miscompilations.
Currently, InstCombine simply consumes these selects into and/or of i1 (which is also unsafe), so the visible effect would be very small. The unsafe select -> and/or transformation will be removed in the future.
There has been efforts for updating optimizations to support the select form as well, and they are linked to D93065.

The safe transformation is fired when it is called by SimplifyCFG only. This is done by setting the new `PoisonSafe` argument as true.
Another place that calls FoldBranchToCommonDest is LoopSimplify. `PoisonSafe` flag is set to false in this case because enabling it has a nontrivial impact in performance because SCEV is more conservative with select form and InductiveRangeCheckElimination isn't aware of select form of and/or i1.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D95026
2021-03-08 01:38:03 +09:00
..
Analysis [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
Assembler
Bindings
Bitcode [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
BugPoint
CodeGen [X86] canonicalizeShuffleWithBinOps - add X86ISD::PSHUFB handling. 2021-03-07 12:56:35 +00:00
DebugInfo [DebugInfo] Add DIArgList MD to store multple values in DbgVariableIntrinsics 2021-03-05 17:02:24 +00:00
Demangle
Examples Revert "patch" it wass my mistake inusing git 2021-02-24 11:06:16 +05:30
ExecutionEngine [Orc] Extend lli debug support tests to JITLink 2021-03-02 15:07:36 +01:00
Feature [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
FileCheck [FileCheck][NFC] Move -dump-input tests to a subdirectory 2021-03-04 12:43:48 -05:00
Instrumentation [dfsan] Remove hardcoded shadow width in array.ll 2021-03-04 17:12:16 -08:00
Integer
JitListener
Linker [llvm-link] fix IRMover returning wrong modified vector type 2021-02-22 11:29:42 +00:00
LTO [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
MachineVerifier GlobalISel: Verify G_CONCAT_VECTORS has at least 2 sources 2021-03-01 09:10:36 -05:00
MC [MC] Migrate some parseToken(AsmToken::EndOfStatement, ...) to parseEOL() 2021-03-06 19:25:22 -08:00
Object [AMDGPU] gfx90a support 2021-02-17 16:01:32 -08:00
ObjectYAML [WebAssembly][yaml2obj][obj2yaml] Elem sections for nonzero tables 2021-03-05 11:45:15 +01:00
Other [opt] Error if -debug-pass is specified alongside the new PM 2021-03-02 15:59:28 -08:00
Reduce
SafepointIRVerifier
Support
SymbolRewriter
TableGen [MCA] Add support for in-order CPUs 2021-03-04 14:08:19 +03:00
ThinLTO/X86 [IRSymTab] Set FB_used on llvm.compiler.used symbols 2021-03-03 16:22:30 -08:00
tools [test] Use host platform specific error message substitution in lit tests 2021-03-05 07:21:53 -05:00
Transforms [SimplifyCFG] Update FoldBranchToCommonDest to be poison-safe 2021-03-08 01:38:03 +09:00
Unit
Verifier [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg.py [FileCheck] Default --allow-unused-prefixes to false 2021-02-08 13:37:04 -08:00
lit.site.cfg.py.in
TestRunner.sh