llvm-6502/lib/Transforms/Scalar
Chris Lattner f299184565 Fix a bogus optimization: folding (slt (zext i1 A to i32), 1) -> (slt i1 A, true)
This cause a regression in InstCombine/JavaCompare, which was doing the right
thing on accident.  To handle the missed case, generalize the comparisons based
on masked bits a little bit to handle comparisons against the max value. For 
example, we can now xform (slt i32 (and X, 4), 4) -> (setne i32 (and X, 4), 4)




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53443 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-11 04:09:09 +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 Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
CodeGenPrepare.cpp Remove comparison methods for MVT. The main cause 2008-06-08 20:54:56 +00:00
CondPropagate.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
ConstantProp.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
DCE.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
DeadStoreElimination.cpp 80 col / tabs fixes 2008-05-13 01:48:26 +00:00
GCSE.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
GVN.cpp Use information already present in the ValueTable to fast-fail when we know there won't be a value number match. This speeds up GVN on a case where there are very few redundancies by ~25%. 2008-07-03 17:44:33 +00:00
GVNPRE.cpp Update comments and documentation to reflect that GCSE and ValueNumbering are 2008-06-05 07:55:49 +00:00
IndVarSimplify.cpp Use Loop::block_iterator. 2008-06-22 20:18:58 +00:00
InstructionCombining.cpp Fix a bogus optimization: folding (slt (zext i1 A to i32), 1) -> (slt i1 A, true) 2008-07-11 04:09:09 +00:00
JumpThreading.cpp Fix some constructs that gcc-4.4 warns about. 2008-05-27 11:50:51 +00:00
LICM.cpp Use Loop::block_iterator. 2008-06-22 20:18:58 +00:00
LoopDeletion.cpp Use use_empty() instead of getNumUses(), avoiding a use list traversal. 2008-06-23 23:23:49 +00:00
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 Avoid using BasicBlock::getInstList directly in a few places. 2008-06-19 17:37:25 +00:00
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 remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
MemCpyOptimizer.cpp Fix two issues that Eli Friedman pointed out, where would misoptimized code like: 2008-06-01 22:26:26 +00:00
PredicateSimplifier.cpp InequalityGraph::node() can create new nodes, invalidating iterators across 2008-05-27 00:59:05 +00:00
Reassociate.cpp API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) 2008-05-16 19:29:10 +00:00
Reg2Mem.cpp API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) 2008-05-16 19:29:10 +00:00
Scalar.cpp C and Objective Caml bindings for mem2reg and reg2mem. 2008-03-20 17:16:03 +00:00
ScalarReplAggregates.cpp minor tidying of comments. 2008-06-23 17:11:23 +00:00
SCCP.cpp Tidy up some commments and use the getAggregateOperand and 2008-06-20 16:41:17 +00:00
SimplifyCFGPass.cpp rename SimplifyCFG.cpp -> SimplifyCFGPass.cpp 2008-05-14 20:38:44 +00:00
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 Revert 52223. 2008-06-12 20:55:39 +00:00
TailRecursionElimination.cpp Fix a case where tailcallelim wouldn't set the changed bit when it made a change. 2008-06-14 00:49:48 +00:00