llvm-6502/lib/Transforms/Scalar
Chandler Carruth 6f0ec20e8f Revert "indvars: Improve LFTR by eliminating truncation when comparing
against a constant."

This reverts commit r186107. It didn't handle wrapping arithmetic in the
loop correctly and thus caused the following C program to count from
0 to UINT64_MAX instead of from 0 to 255 as intended:

  #include <stdio.h>
  int main() {
    unsigned char first = 0, last = 255;
    do { printf("%d\n", first); } while (first++ != last);
  }

Full test case and instructions to reproduce with just the -indvars pass
sent to the original review thread rather than to r186107's commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186152 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-12 11:18:55 +00:00
..
ADCE.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
BasicBlockPlacement.cpp
CMakeLists.txt Remove the simplify-libcalls pass (finally) 2013-06-20 19:48:07 +00:00
CodeGenPrepare.cpp Remove a useless declarations (found by scan-build) 2013-07-05 15:58:12 +00:00
ConstantProp.cpp
CorrelatedValuePropagation.cpp CVP: If we have a PHI with an incoming select, try to skip the select. 2013-02-24 15:34:43 +00:00
DCE.cpp
DeadStoreElimination.cpp
EarlyCSE.cpp
GlobalMerge.cpp Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. 2013-06-19 21:07:11 +00:00
GVN.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
IndVarSimplify.cpp Revert "indvars: Improve LFTR by eliminating truncation when comparing 2013-07-12 11:18:55 +00:00
JumpThreading.cpp
LICM.cpp
LLVMBuild.txt
LoopDeletion.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
LoopIdiomRecognize.cpp
LoopInstSimplify.cpp
LoopRotation.cpp Rotate multi-exit loops even if the latch was simplified. 2013-05-06 17:58:18 +00:00
LoopStrengthReduce.cpp LSR: Fix the parameters used to compute the scaling factor cost. 2013-06-19 19:59:41 +00:00
LoopUnrollPass.cpp
LoopUnswitch.cpp
LowerAtomic.cpp
Makefile
MemCpyOptimizer.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-03 15:07:05 +00:00
Reassociate.cpp Reassociate: Remove unnecessary default operator=. 2013-07-06 15:10:13 +00:00
Reg2Mem.cpp
Scalar.cpp Remove the simplify-libcalls pass (finally) 2013-06-20 19:48:07 +00:00
ScalarReplAggregates.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-03 15:07:05 +00:00
SCCP.cpp dbgs() << Instruction doesn't print a newline on the end any more. Update these 2013-06-26 00:30:18 +00:00
SimplifyCFGPass.cpp
Sink.cpp
SROA.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-03 15:07:05 +00:00
StructurizeCFG.cpp Move StructurizeCFG out of R600 to generic Transforms. 2013-06-19 20:18:24 +00:00
TailRecursionElimination.cpp Teach TailRecursionElimination to handle certain cases of nocapture escaping allocas. 2013-07-11 04:40:01 +00:00