llvm-6502/lib/Transforms/Scalar
Chris Lattner fdb19e5887 Fix PR2506 by being a bit more careful about reverse fact propagation when
disproving a condition.  This actually compiles the existing testcase
(udiv_select_to_select_shift) to:

define i64 @test(i64 %X, i1 %Cond) {
entry:
	%divisor1.t = lshr i64 %X, 3		; <i64> [#uses=1]
	%quotient2 = lshr i64 %X, 3		; <i64> [#uses=1]
	%sum = add i64 %divisor1.t, %quotient2		; <i64> [#uses=1]
	ret i64 %sum
}

instead of:

define i64 @test(i64 %X, i1 %Cond) {
entry:
	%quotient1.v = select i1 %Cond, i64 3, i64 4		; <i64> [#uses=1]
	%quotient1 = lshr i64 %X, %quotient1.v		; <i64> [#uses=1]
	%quotient2 = lshr i64 %X, 3		; <i64> [#uses=1]
	%sum = add i64 %quotient1, %quotient2		; <i64> [#uses=1]
	ret i64 %sum
}



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53534 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 00:15:52 +00:00
..
ADCE.cpp Remove the ability for ADCE to remove unreachable blocks in loop nests, because, as Eli pointed out, SimplifyCFG already does this. 2008-07-03 17:21:41 +00:00
BasicBlockPlacement.cpp
CodeGenPrepare.cpp
CondPropagate.cpp
ConstantProp.cpp
DCE.cpp
DeadStoreElimination.cpp
GCSE.cpp
GVN.cpp Don't call lookupNumber more than we have to. 2008-07-11 20:05:13 +00:00
GVNPRE.cpp
IndVarSimplify.cpp
InstructionCombining.cpp Fix PR2506 by being a bit more careful about reverse fact propagation when 2008-07-14 00:15:52 +00:00
JumpThreading.cpp
LICM.cpp
LoopDeletion.cpp
LoopIndexSplit.cpp If loop induction variable's start value is less then its exit value then do not split the loop. 2008-07-09 00:12:01 +00:00
LoopRotation.cpp
LoopStrengthReduce.cpp Fix two serious LSR bugs. 2008-07-07 19:51:32 +00:00
LoopUnroll.cpp Preserve dom info. 2008-07-03 07:04:22 +00:00
LoopUnswitch.cpp Do not try to update dominator info while manipulating CFG. This code does not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream. 2008-07-03 17:37:52 +00:00
Makefile
MemCpyOptimizer.cpp
PredicateSimplifier.cpp
Reassociate.cpp
Reg2Mem.cpp
Scalar.cpp
ScalarReplAggregates.cpp
SCCP.cpp
SimplifyCFGPass.cpp
SimplifyLibCalls.cpp - Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag. 2008-06-30 07:31:25 +00:00
TailDuplication.cpp
TailRecursionElimination.cpp