llvm-project/llvm/lib/Transforms/Scalar
David Majnemer 96f0d383a7 [SCCP] Resolve shifts beyond the bitwidth to undef
Shifts beyond the bitwidth are undef but SCCP resolved them to zero.
Instead, DTRT and resolve them to undef.

This reimplements the transform which caused PR27712.

llvm-svn: 269269
2016-05-12 03:07:40 +00:00
..
ADCE.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
AlignmentFromAssumptions.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
BDCE.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
CMakeLists.txt Introduce a @llvm.experimental.guard intrinsic 2016-03-31 00:18:46 +00:00
ConstantHoisting.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
ConstantProp.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
CorrelatedValuePropagation.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
DCE.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
DeadStoreElimination.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
EarlyCSE.cpp [EarlyCSE] Rename a variable for clarity [NFC] 2016-05-06 01:13:58 +00:00
FlattenCFGPass.cpp Scalar: Remove some implicit ilist iterator conversions, NFC 2015-10-13 18:26:00 +00:00
Float2Int.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
GVN.cpp [GVN] PRE of unordered loads 2016-05-06 21:43:51 +00:00
IndVarSimplify.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
InductiveRangeCheckElimination.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
JumpThreading.cpp [ValueTracking] Improve isImpliedCondition when the dominating cond is false. 2016-04-25 17:23:36 +00:00
LICM.cpp clang-format some files in preparation of coming patch reviews. 2016-05-05 00:54:54 +00:00
LLVMBuild.txt Update libdeps in LLVMipo and LLVMScalarOpts, corresponding to r245940. 2015-08-25 17:11:17 +00:00
LoadCombine.cpp Use a uniform name for the load combine pass. NFC. 2016-05-04 15:19:02 +00:00
LoopDataPrefetch.cpp [LoopDataPrefetch] Add optimization remark 2016-05-05 00:08:15 +00:00
LoopDeletion.cpp Use all_of instead of a raw loop; NFC 2016-05-03 17:50:06 +00:00
LoopDistribute.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
LoopIdiomRecognize.cpp [LIR] Set attributes on memset_pattern16. 2016-04-27 19:04:50 +00:00
LoopInstSimplify.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
LoopInterchange.cpp Remove dead include. NFC. 2016-05-05 17:53:43 +00:00
LoopLoadElimination.cpp [LAA] Rename "isStridedPtr" with "getPtrStride". NFC. 2016-05-10 05:55:16 +00:00
LoopRerollPass.cpp Enable loopreroll for sext of loop control only IV 2016-05-10 21:16:49 +00:00
LoopRotation.cpp Update Debug Intrinsics in RewriteUsesOfClonedInstructions in LoopRotation 2016-05-10 09:45:44 +00:00
LoopSimplifyCFG.cpp PM: Port LoopSimplifyCFG to the new pass manager 2016-05-03 21:47:32 +00:00
LoopStrengthReduce.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
LoopUnrollPass.cpp Loop unroller: set thresholds for optsize and minsize functions to zero 2016-05-10 21:45:55 +00:00
LoopUnswitch.cpp [LoopUnroll] Unroll loops which have exit blocks to EH pads 2016-05-03 03:57:40 +00:00
LoopVersioningLICM.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
LowerAtomic.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
LowerExpectIntrinsic.cpp [LowerExpectIntrinsic] make default likely/unlikely ratio bigger 2016-04-26 22:23:38 +00:00
LowerGuardIntrinsic.cpp [LowerGuardIntrinsics] Keep track of !make.implicit metadata 2016-04-30 00:55:59 +00:00
MemCpyOptimizer.cpp Revert "MemCpyOpt: combine local load/store sequences into memcpy." 2016-05-10 21:49:40 +00:00
MergedLoadStoreMotion.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
NaryReassociate.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
PartiallyInlineLibCalls.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
PlaceSafepoints.cpp [PlaceSafepoints] Use DEBUG() instead of TraceLSP 2016-01-28 23:49:27 +00:00
Reassociate.cpp PM: Port Reassociate to the new pass manager 2016-04-26 23:39:29 +00:00
Reg2Mem.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
RewriteStatepointsForGC.cpp [RS4GC] Fix typo in comment 2016-05-06 20:39:33 +00:00
SCCP.cpp [SCCP] Resolve shifts beyond the bitwidth to undef 2016-05-12 03:07:40 +00:00
SROA.cpp [SROA] Function canConvertValue needs to check whether both NewTy and OldTy pointers are 2016-05-03 19:30:48 +00:00
Scalar.cpp [PM] Port Interprocedural SCCP to the new pass manager. 2016-05-05 21:05:36 +00:00
ScalarReplAggregates.cpp isSafeToLoadUnconditionally support queries without a context 2016-04-27 11:00:48 +00:00
Scalarizer.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
SeparateConstOffsetFromGEP.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
SimplifyCFGPass.cpp Revert http://reviews.llvm.org/D19926 as it breaks tests. 2016-05-05 20:47:53 +00:00
Sink.cpp PM: Port SinkingPass to the new pass manager 2016-04-22 19:54:10 +00:00
SpeculativeExecution.cpp Mark that SpeculativeExecution preserves Globals Alias Analysis. 2016-05-03 08:33:26 +00:00
StraightLineStrengthReduce.cpp SLSR: Use UnknownAddressSpace instead of 0 for pure arithmetic. 2016-04-27 00:32:09 +00:00
StructurizeCFG.cpp [StructurizeCFG] Annotate branches that were treated as uniform 2016-04-14 17:42:35 +00:00
TailRecursionElimination.cpp isSafeToLoadUnconditionally support queries without a context 2016-04-27 11:00:48 +00:00