1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/lib/Transforms/Utils
Sanjoy Das 40738ba4e6 [IndVars] Eliminate op.with.overflow when possible (re-apply)
Summary:
If we can prove that an op.with.overflow intrinsic does not overflow, we
can get rid of the intrinsic, and replace it with non-wrapping
arithmetic.

This was first checked in at r265913 but reverted in r265950 because it
exposed some issues around how SCEV handled post-inc add recurrences.
Those issues have now been fixed.

Reviewers: atrick, regehr

Subscribers: sanjoy, mcrosier, llvm-commits

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

llvm-svn: 271153
2016-05-29 00:36:25 +00:00
..
AddDiscriminators.cpp Revert http://reviews.llvm.org/D19926 as it breaks tests. 2016-05-05 20:47:53 +00:00
ASanStackFrameLayout.cpp Update to use new name alignTo(). 2016-01-14 21:06:47 +00:00
BasicBlockUtils.cpp improve documentation comments; NFC 2016-04-23 16:31:48 +00:00
BreakCriticalEdges.cpp improve documentation comments; NFC 2016-04-23 16:31:48 +00:00
BuildLibCalls.cpp [InferAttrs] Mark memset_pattern16 params nocapture. 2016-04-27 19:04:43 +00:00
BypassSlowDivision.cpp Clarify that the bypassSlowDivision optimization operates on a single BB [v2] 2016-01-04 23:18:58 +00:00
CloneFunction.cpp Cloning: Clean up the interface to the CloneFunction function. 2016-05-10 20:23:24 +00:00
CloneModule.cpp Preserve extern_weak linkage in CloneModule. 2016-03-31 20:21:31 +00:00
CMakeLists.txt Add a pass to name anonymous/nameless function 2016-04-12 21:35:28 +00:00
CmpInstAnalysis.cpp
CodeExtractor.cpp Avoid some copies by using const references. 2016-05-27 12:30:51 +00:00
CtorUtils.cpp TransformUtils: Remove implicit ilist iterator conversions, NFC 2015-10-13 02:39:05 +00:00
DemoteRegToStack.cpp TransformUtils: Remove implicit ilist iterator conversions, NFC 2015-10-13 02:39:05 +00:00
Evaluator.cpp Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
FlattenCFG.cpp LPM: Stop threading Pass * through all of the loop utility APIs. NFC 2015-12-15 19:40:57 +00:00
FunctionImportUtils.cpp ThinLTO: fix assertion and refactor check for hidden use from inline ASM in a helper function 2016-05-06 08:25:33 +00:00
GlobalStatus.cpp NFC: make AtomicOrdering an enum class 2016-04-06 21:19:33 +00:00
InlineFunction.cpp All llvm.deoptimize declarations must use the same calling convention 2016-05-12 01:17:38 +00:00
InstructionNamer.cpp
IntegerDivision.cpp TransformUtils: Avoid getNodePtrUnchecked() in integer division, NFC 2016-02-21 20:14:29 +00:00
LCSSA.cpp [LCSSA] Simplify. Suggested by Sanjoy. 2016-05-27 20:25:31 +00:00
LLVMBuild.txt
Local.cpp [InstCombine] Catch more bswap cases missed due to zext and truncs. 2016-05-26 14:58:51 +00:00
LoopSimplify.cpp [PM] Port of the DepndenceAnalysis to the new PM. 2016-05-12 22:19:39 +00:00
LoopUnroll.cpp The patch refactors unroll pass. 2016-05-27 23:15:06 +00:00
LoopUnrollRuntime.cpp The patch fixes PR27392. 2016-04-27 03:04:54 +00:00
LoopUtils.cpp Vectorizer: track non-fast FP instructions through phis when finding reductions. 2016-05-27 16:40:27 +00:00
LoopVersioning.cpp [LoopVersioning] Relax an assert for LCSSA PHIs 2016-03-22 18:38:15 +00:00
LowerInvoke.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
LowerSwitch.cpp TransformUtils: Remove implicit ilist iterator conversions, NFC 2015-10-13 02:39:05 +00:00
Mem2Reg.cpp Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
MemorySSA.cpp MemorySSA: Revert r269678 and r268068; replace with special casing in MemorySSA. 2016-05-26 04:58:46 +00:00
MetaRenamer.cpp
ModuleUtils.cpp [ThinLTO] Prevent importing of "llvm.used" values 2016-04-20 14:39:45 +00:00
NameAnonFunctions.cpp Fix mismatch on returned type between header and implementation for createNameAnonFunctionPass() 2016-04-12 23:25:11 +00:00
PromoteMemoryToRegister.cpp Correct IDF calculator for ReverseIDF 2016-04-19 06:13:28 +00:00
SanitizerStats.cpp Fix Clang-tidy modernize-use-nullptr and modernize-use-override warnings; other minor fixes. 2016-01-26 18:48:36 +00:00
SimplifyCFG.cpp [SimplifyCFG] Remove cleanuppads which are empty except for calls to lifetime.end 2016-05-21 05:12:32 +00:00
SimplifyIndVar.cpp [IndVars] Eliminate op.with.overflow when possible (re-apply) 2016-05-29 00:36:25 +00:00
SimplifyInstructions.cpp Add opt-bisect support to additional passes that can be skipped 2016-05-03 22:32:30 +00:00
SimplifyLibCalls.cpp Optimize a printf with a double procent to putchar. 2016-05-09 14:36:16 +00:00
SplitModule.cpp [GlobalDCE, Misc] Don't remove functions referenced by ifuncs 2016-05-04 00:20:48 +00:00
SSAUpdater.cpp
SymbolRewriter.cpp Make some headers self-contained, remove unused includes that violate layering. 2016-01-27 16:05:37 +00:00
UnifyFunctionExitNodes.cpp TransformUtils: Remove implicit ilist iterator conversions, NFC 2015-10-13 02:39:05 +00:00
Utils.cpp Add a pass to name anonymous/nameless function 2016-04-12 21:35:28 +00:00
ValueMapper.cpp ValueMapper: fix assertion when null-mapping a constant for linking metadata 2016-05-28 17:26:03 +00:00