llvm/lib/Transforms/Utils
Chandler Carruth 66ea2f9986 Fix non-determinism introduced in r168970 and pointed out by Duncan.
We're iterating over a non-deterministically ordered container looking
for two saturating flags. To do this correctly, we have to saturate
both, and only stop looping if both saturate to their final value.
Otherwise, which flag we see first changes the result.

This is also a micro-optimization of the previous version as now we
don't go into the (possibly expensive) test logic once the first
violation of either constraint is detected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168989 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-30 09:34:29 +00:00
..
AddrModeMatcher.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
BasicBlockUtils.cpp Move SplitBlockAndInsertIfThen to BasicBlockUtils. 2012-10-19 10:48:31 +00:00
BreakCriticalEdges.cpp Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
BuildLibCalls.cpp Make the AttrListPtr object a part of the LLVMContext. 2012-11-20 05:09:20 +00:00
BypassSlowDivision.cpp This patch corrects commit 165126 by using an integer bit width instead of 2012-10-04 21:33:40 +00:00
CloneFunction.cpp Add an enum for the return and function indexes into the AttrListPtr object. This gets rid of some magic numbers. 2012-10-15 07:29:08 +00:00
CloneModule.cpp Remove the dependent libraries feature. 2012-11-27 09:55:56 +00:00
CMakeLists.txt Implement new LibCallSimplifier class 2012-10-13 16:45:24 +00:00
CmpInstAnalysis.cpp Convert assert(0) to llvm_unreachable 2012-02-07 05:05:23 +00:00
CodeExtractor.cpp Have 'addFnAttr' take the attribute enum value. Then have it build the attribute object and add it appropriately. No functionality change. 2012-10-10 03:12:49 +00:00
DemoteRegToStack.cpp Remove redundant comment. Use a more efficient datatype. 2012-02-17 02:12:54 +00:00
InlineFunction.cpp Figure out <size> argument of llvm.lifetime intrinsics at the moment they are created (during function inlining) 2012-11-13 07:15:32 +00:00
InstructionNamer.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
IntegerDivision.cpp Expansions for u/srem, using the udiv expansion. More unit tests for udiv and u/srem. 2012-09-26 01:55:01 +00:00
LCSSA.cpp LCSSA: Try to recover compile time regressions due to SCEV updates. 2012-10-31 16:30:03 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Local.cpp Revert the majority of the next patch in the address space series: 2012-11-01 09:14:31 +00:00
LoopSimplify.cpp LoopSimplify: Preserve DependenceAnalysis. 2012-10-26 17:40:50 +00:00
LoopUnroll.cpp LoopUnroll: always check for NULL LoopPassManager 2012-06-05 17:51:05 +00:00
LoopUnrollRuntime.cpp Fix typos found by http://github.com/lyda/misspell-check 2012-06-02 10:20:22 +00:00
LowerExpectIntrinsic.cpp Move llvm/Support/MDBuilder.h to llvm/MDBuilder.h, to live with 2012-07-15 23:26:50 +00:00
LowerInvoke.cpp revert r166264 because the LTO build is still failing 2012-10-19 21:28:43 +00:00
LowerSwitch.cpp Reverted r156659, due to probable performance regressions, DenseMap should be used here: 2012-07-04 05:53:05 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
Mem2Reg.cpp Remove outdated references to dominance frontiers. 2011-01-18 03:53:26 +00:00
MetaRenamer.cpp Use empty parens for empty function parameter list instead of '(void)'. 2012-11-15 16:51:49 +00:00
ModuleUtils.cpp Move llvm/Support/IRBuilder.h -> llvm/IRBuilder.h 2012-06-29 12:38:19 +00:00
PromoteMemoryToRegister.cpp Fix typo. 2012-10-23 00:38:15 +00:00
SimplifyCFG.cpp Fix non-determinism introduced in r168970 and pointed out by Duncan. 2012-11-30 09:34:29 +00:00
SimplifyIndVar.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
SimplifyInstructions.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
SimplifyLibCalls.cpp instcombine: Migrate puts optimizations 2012-11-29 19:15:17 +00:00
SSAUpdater.cpp Fix undefined behavior (binding a reference to a dereferenced null pointer) if 2012-08-17 21:42:44 +00:00
UnifyFunctionExitNodes.cpp [unwind removal] We no longer have 'unwind' instructions being generated, so 2012-02-06 21:16:41 +00:00
Utils.cpp Add a pass that renames everything with metasyntatic names. This works well after using bugpoint to reduce the confusion presented by the original names, which no longer mean what they used to. 2012-09-11 02:46:18 +00:00
ValueMapper.cpp Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree. 2012-09-26 06:36:36 +00:00