llvm/lib/Transforms/Utils
Sanjoy Das 295be8492e [IndVarSimplify] use the "canonical" way to infer no-wrap.
Summary:
rL225282 introduced an ad-hoc way to promote some additions to nuw or
nsw.  Since then SCEV has become smarter in directly proving no-wrap;
and using the canonical "ext(A op B) == ext(A) op ext(B)" method of
proving no-wrap is just as powerful now.  Rip out the existing
complexity in favor of getting SCEV to do all the heaving lifting
internally.

This change does not add any unit tests because it is supposed to be a
non-functional change.  Tests added in rL225282 and rL226075 are valid
tests for this change.

Reviewers: atrick, majnemer

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231306 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-04 22:24:23 +00:00
..
AddDiscriminators.cpp IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
ASanStackFrameLayout.cpp [asan] Reuse a common function. 2015-02-16 14:49:37 +00:00
BasicBlockUtils.cpp Teach SplitBlockPredecessors how to handle landingpad blocks. 2015-01-28 23:06:47 +00:00
BreakCriticalEdges.cpp [PM] Remove the Pass argument from all of the critical edge splitting 2015-01-19 12:09:11 +00:00
BuildLibCalls.cpp [PM] Move TargetLibraryInfo into the Analysis library. 2015-01-15 02:16:27 +00:00
BypassSlowDivision.cpp
CloneFunction.cpp Remap frame variables for native Windows exception handling. 2015-02-23 20:01:56 +00:00
CloneModule.cpp Remove a bad cast in CloneModule() 2014-12-23 08:23:45 +00:00
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
CmpInstAnalysis.cpp
CodeExtractor.cpp
CtorUtils.cpp
DemoteRegToStack.cpp Fix a bug in DemoteRegToStack where a reload instruction was inserted into the 2015-02-09 06:38:23 +00:00
FlattenCFG.cpp
GlobalStatus.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
InlineFunction.cpp Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
InstructionNamer.cpp
IntegerDivision.cpp Fix heap-use-after-free bug in expandSDiv when the operands are 2014-11-05 21:28:24 +00:00
LCSSA.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
Local.cpp Don't promote asynch EH invokes of nounwind functions to calls 2015-02-11 01:23:16 +00:00
LoopSimplify.cpp Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
LoopUnroll.cpp Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
LoopUnrollRuntime.cpp Partial fix for bug 22589 2015-02-18 19:32:25 +00:00
LowerInvoke.cpp
LowerSwitch.cpp LowerSwitch: Use ConstantInt for CaseRange::{Low,High} 2015-02-05 16:58:10 +00:00
Makefile
Mem2Reg.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
MetaRenamer.cpp
ModuleUtils.cpp
PromoteMemoryToRegister.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
SimplifyCFG.cpp Prevent hoisting fmul from THEN/ELSE to IF if there is fmsub/fmadd opportunity. 2015-02-23 19:15:16 +00:00
SimplifyIndVar.cpp [IndVarSimplify] use the "canonical" way to infer no-wrap. 2015-03-04 22:24:23 +00:00
SimplifyInstructions.cpp Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
SimplifyLibCalls.cpp [SimplifyLibCalls] Don't confuse strcpy_chk for stpcpy_chk. 2015-01-27 21:52:16 +00:00
SSAUpdater.cpp SSAUpdater: Use range-based for. NFC. 2015-02-19 20:04:02 +00:00
SymbolRewriter.cpp [PM] Remove the old 'PassManager.h' header file at the top level of 2015-02-13 10:01:29 +00:00
UnifyFunctionExitNodes.cpp [LPM] Stop using the string based preservation API. It is an 2015-01-28 04:57:56 +00:00
Utils.cpp
ValueMapper.cpp Utils: Resolve cycles under distinct MDNodes 2015-02-04 19:44:34 +00:00