llvm-project/llvm/lib/Transforms/Scalar
Jingyue Wu e84f671830 [JumpThreading] make jump threading respect convergent annotation.
Summary:
JumpThreading shouldn't duplicate a convergent call, because that would move a convergent call into a control-inequivalent location. For example,
  if (cond) {
    ...
  } else {
    ...
  }
  convergent_call();
  if (cond) {
    ...
  } else {
    ...
  }
should not be optimized to
  if (cond) {
    ...
    convergent_call();
    ...
  } else {
    ...
    convergent_call();
    ...
  }

Test Plan: test/Transforms/JumpThreading/basic.ll

Patch by Xuetian Weng. 

Reviewers: resistor, arsenm, jingyue

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D12484

llvm-svn: 246415
2015-08-31 06:10:27 +00:00
..
ADCE.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
AlignmentFromAssumptions.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
BDCE.cpp Separate out BDCE's analysis into a separate DemandedBits analysis. 2015-08-14 11:09:09 +00:00
CMakeLists.txt Convert SampleProfile pass into a Module pass. 2015-08-25 15:25:11 +00:00
ConstantHoisting.cpp Replace some calls to isa<LandingPadInst> with isEHPad() 2015-08-19 19:54:02 +00:00
ConstantProp.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
CorrelatedValuePropagation.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DCE.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DeadStoreElimination.cpp Revert "[DSE] Enable removal of lifetime intrinsics in terminating blocks" 2015-08-20 08:58:47 +00:00
EarlyCSE.cpp Allow value forwarding past release fences in EarlyCSE 2015-08-27 01:32:33 +00:00
FlattenCFGPass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Float2Int.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
GVN.cpp Revert r246244 and r246243 2015-08-28 06:52:00 +00:00
IndVarSimplify.cpp Replace some calls to isa<LandingPadInst> with isEHPad() 2015-08-19 19:54:02 +00:00
InductiveRangeCheckElimination.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
JumpThreading.cpp [JumpThreading] make jump threading respect convergent annotation. 2015-08-31 06:10:27 +00:00
LICM.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
LLVMBuild.txt Update libdeps in LLVMipo and LLVMScalarOpts, corresponding to r245940. 2015-08-25 17:11:17 +00:00
LoadCombine.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopDeletion.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
LoopDistribute.cpp [LVer] Fix FIXME: hide addPHINodes, NFC 2015-08-20 17:22:29 +00:00
LoopIdiomRecognize.cpp More clean up, still NFC. Remove dead variables now that the casts are gone. 2015-08-19 06:25:30 +00:00
LoopInstSimplify.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
LoopInterchange.cpp [LoopVectorize] Extract InductionInfo into a helper class... 2015-08-27 09:53:00 +00:00
LoopRerollPass.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
LoopRotation.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
LoopStrengthReduce.cpp Replace some calls to isa<LandingPadInst> with isEHPad() 2015-08-19 19:54:02 +00:00
LoopUnrollPass.cpp Make helper functions static. NFC. 2015-08-20 09:57:22 +00:00
LoopUnswitch.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
LowerAtomic.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LowerExpectIntrinsic.cpp fix typo; NFC 2015-08-24 20:11:14 +00:00
Makefile
MemCpyOptimizer.cpp Rename Instruction::dropUnknownMetadata() to dropUnknownNonDebugMetadata() 2015-08-20 22:00:30 +00:00
MergedLoadStoreMotion.cpp Rename Instruction::dropUnknownMetadata() to dropUnknownNonDebugMetadata() 2015-08-20 22:00:30 +00:00
NaryReassociate.cpp [ValueTracking] computeOverflowForSignedAdd and isKnownNonNegative 2015-08-20 18:27:04 +00:00
PartiallyInlineLibCalls.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PlaceSafepoints.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
Reassociate.cpp [IR] Give catchret an optional 'return value' operand 2015-08-15 02:46:08 +00:00
Reg2Mem.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
RewriteStatepointsForGC.cpp [RewriteStatepointsForGC] Reduce the number of new instructions for base pointers 2015-08-27 01:02:28 +00:00
SCCP.cpp Convert a bunch of loops to foreach. NFC. 2015-08-06 20:22:46 +00:00
SROA.cpp [SROA] Fix PR24463, a crash I introduced in SROA by allowing it to 2015-08-28 09:03:52 +00:00
Scalar.cpp Convert SampleProfile pass into a Module pass. 2015-08-25 15:25:11 +00:00
ScalarReplAggregates.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Scalarizer.cpp Prevent the scalarizer from caching incorrect entries 2015-08-10 14:48:47 +00:00
SeparateConstOffsetFromGEP.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
SimplifyCFGPass.cpp fix typos; NFC 2015-06-24 20:42:33 +00:00
Sink.cpp [PM/AA] Extract the ModRef enums from the AliasAnalysis class in 2015-07-22 23:15:57 +00:00
SpeculativeExecution.cpp [Speculation] NFC: more header comments 2015-05-19 20:52:45 +00:00
StraightLineStrengthReduce.cpp [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
StructurizeCFG.cpp Convert a bunch of loops to foreach. NFC. 2015-08-06 20:22:46 +00:00
TailRecursionElimination.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00