1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/lib/Transforms/Utils
Sameer Sahasrabuddhe 11bc679be9 [LoopSimplify] don't separate nested loops with convergent calls
Summary:
When a loop has multiple backedges, loop simplification attempts to
separate them out into nested loops. This results in incorrect control
flow in the presence of some functions like a GPU barrier. This change
skips the transformation when such "convergent" function calls are
present in the loop body.

Reviewed By: nhaehnle

Differential Revision: https://reviews.llvm.org/D80078
2020-05-19 09:22:39 +05:30
..
AddDiscriminators.cpp
AMDGPUEmitPrintf.cpp
ASanStackFrameLayout.cpp
AssumeBundleBuilder.cpp [AssumeBundles] fix crashes 2020-05-11 11:52:21 +02:00
BasicBlockUtils.cpp Introduce fix-irreducible pass 2020-04-15 15:05:51 +05:30
BreakCriticalEdges.cpp Revert "[BrachProbablityInfo] Set edge probabilities at once. NFC." 2020-05-13 08:23:09 -07:00
BuildLibCalls.cpp Introduce support for lib function aligned_alloc in TLI / memory builtins 2020-03-29 23:36:24 +05:30
BypassSlowDivision.cpp
CallGraphUpdater.cpp [NewPassManager] Add assertions when getting statefull cached analysis. 2020-05-13 12:38:38 -07:00
CallPromotionUtils.cpp [ICP] Handling must tail calls in indirect call promotion 2020-05-03 10:42:22 -07:00
CanonicalizeAliases.cpp
CloneFunction.cpp [CallSite removal][CloneFunction] Use CallSite instead of CallBase. NFC 2020-04-15 15:38:02 -07:00
CloneModule.cpp
CMakeLists.txt New pass to make internal linkage symbol names unique. 2020-04-20 15:05:22 -07:00
CodeExtractor.cpp StoreInst should store Align, not MaybeAlign 2020-05-15 12:26:58 -07:00
CodeMoverUtils.cpp
CtorUtils.cpp
Debugify.cpp [Debugify] Do not require named metadata to be present when stripping 2020-04-22 17:03:39 -07:00
DemoteRegToStack.cpp
EntryExitInstrumenter.cpp
EscapeEnumerator.cpp [CallSite removal] Remove unneeded includes of CallSite.h. NFC 2020-04-22 00:07:13 -07:00
Evaluator.cpp [IR] Replace all uses of CallBase::getCalledValue() with getCalledOperand(). 2020-04-27 22:17:03 -07:00
FixIrreducible.cpp Give helpers internal linkage. NFC. 2020-04-25 11:50:52 +02:00
FlattenCFG.cpp
FunctionComparator.cpp [MergeFuncs] Don't merge shufflevectors with different masks 2020-05-02 10:21:14 +02:00
FunctionImportUtils.cpp [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
GlobalStatus.cpp [CallSite removal][Transform] Replace CallSite with CallBase in Utils. NFC 2020-04-23 20:49:33 -07:00
GuardUtils.cpp
ImportedFunctionsInliningStatistics.cpp
InjectTLIMappings.cpp [VectorUtils] Expose vector-function-abi-variant mangling as a utility. 2020-05-15 11:42:20 -04:00
InlineFunction.cpp Revert "Revert "[llvm][NFC] Cleanup uses of std::function in Inlining-related APIs"" 2020-05-15 12:29:16 -07:00
InstructionNamer.cpp
IntegerDivision.cpp
LCSSA.cpp [NFC] Add missing 'const' notion to LCSSA-related functions 2020-04-17 17:49:34 +07:00
LibCallsShrinkWrap.cpp
LLVMBuild.txt
Local.cpp [Local] Do not ignore zexts in salvageDebugInfo, PR45923 2020-05-18 09:52:02 -07:00
LoopRotationUtils.cpp
LoopSimplify.cpp [LoopSimplify] don't separate nested loops with convergent calls 2020-05-19 09:22:39 +05:30
LoopUnroll.cpp [CallSite removal][Transform] Replace CallSite with CallBase in Utils. NFC 2020-04-23 20:49:33 -07:00
LoopUnrollAndJam.cpp [LoopUnrollAndJam] Changed safety checks to consider more than 2-levels 2020-05-06 21:47:44 +00:00
LoopUnrollPeel.cpp
LoopUnrollRuntime.cpp
LoopUtils.cpp [LAA] Move runtime-check generation to Transforms/Utils/loopUtils (NFC) 2020-05-10 17:39:26 +01:00
LoopVersioning.cpp [LAA] Move runtime-check generation to Transforms/Utils/loopUtils (NFC) 2020-05-10 17:39:26 +01:00
LowerInvoke.cpp [IR] Replace all uses of CallBase::getCalledValue() with getCalledOperand(). 2020-04-27 22:17:03 -07:00
LowerMemIntrinsics.cpp
LowerSwitch.cpp
Mem2Reg.cpp
MetaRenamer.cpp
MisExpect.cpp
ModuleUtils.cpp
NameAnonGlobals.cpp
PredicateInfo.cpp [PredicateInfo] Use new Instruction::comesBefore instead of OI (NFC). 2020-04-20 09:22:21 +01:00
PromoteMemoryToRegister.cpp [NFC] Deduplicate comment in PromoteMemoryToRegister.cpp 2020-05-15 15:18:07 -04:00
SanitizerStats.cpp
SimplifyCFG.cpp Add nomerge function attribute to supress tail merge optimization in simplifyCFG 2020-05-12 16:49:20 -07:00
SimplifyIndVar.cpp
SimplifyLibCalls.cpp [InstCombine] Allow denormal C in pow(C,y) -> exp2(log2(C)*y) 2020-05-05 16:25:48 +01:00
SizeOpts.cpp [PGO][PGSO] Prep for enabling non-cold code size opts under non-partial-profile sample PGO. 2020-04-29 08:57:47 -07:00
SplitModule.cpp
SSAUpdater.cpp
SSAUpdaterBulk.cpp
StripGCRelocates.cpp
StripNonLineTableDebugInfo.cpp
SymbolRewriter.cpp
UnifyFunctionExitNodes.cpp
UnifyLoopExits.cpp [NFC] UnifyLoopExits: correctly skip expensive checks 2020-04-27 15:10:35 +05:30
UniqueInternalLinkageNames.cpp New pass to make internal linkage symbol names unique. 2020-04-20 15:05:22 -07:00
Utils.cpp [NFC][DwarfDebug] Add test for variables with a single location which 2020-05-11 11:49:11 +02:00
ValueMapper.cpp ValueMapper does not preserve inline assembly dialect when remapping the type 2020-05-17 14:57:50 -07:00
VNCoercion.cpp [SVE] Remove calls to isScalable from Transforms 2020-04-23 13:50:07 -07:00