llvm-6502/lib/Transforms/Scalar
Dan Gohman f5a309e989 Use a sign-extend instead of a zero-extend when promoting a
trip count value when the original loop iteration condition is
signed and the canonical induction variable won't undergo signed
overflow. This isn't required for correctness; it just preserves
more information about original loop iteration values.

Add a getTruncateOrSignExtend method to ScalarEvolution,
following getTruncateOrZeroExtend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64918 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18 17:22:41 +00:00
..
ADCE.cpp Let instcombiner remove redundant dbg intrinsics. 2008-11-19 18:59:41 +00:00
BasicBlockPlacement.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CMakeLists.txt CMake: updated list of source files. 2008-11-05 00:11:22 +00:00
CodeGenPrepare.cpp In CodeGenPrepare's debug output, use WriteAsOperand instead of 2009-02-13 17:45:12 +00:00
CondPropagate.cpp Insert space to avoid warning and make code more readable. 2009-02-07 03:36:02 +00:00
ConstantProp.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
DCE.cpp Eliminate several more unnecessary intptr_t casts. 2009-02-18 05:09:16 +00:00
DeadStoreElimination.cpp Rename getABITypeSize to getTypePaddedSize, as 2009-01-12 20:38:59 +00:00
GVN.cpp improve naming of values in GVN, patch by Jay Foad! 2009-02-12 07:00:35 +00:00
GVNPRE.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
IndVarSimplify.cpp Use a sign-extend instead of a zero-extend when promoting a 2009-02-18 17:22:41 +00:00
InstructionCombining.cpp commit a tweaked version of Daniel's patch for PR3599. We now 2009-02-17 20:47:23 +00:00
JumpThreading.cpp Fix PR3353, infinitely jump threading an infinite loop make from switches. 2009-01-19 21:20:34 +00:00
LICM.cpp This code doesn't actually use the ExitingBlocks list. 2009-02-12 16:36:26 +00:00
LoopDeletion.cpp Change create*Pass factory functions to return Pass* instead of 2008-10-22 23:32:42 +00:00
LoopIndexSplit.cpp LoopIndexSplit doesn't actually use ScalarEvolution. 2009-02-17 20:50:11 +00:00
LoopRotation.cpp Rename getAnalysisToUpdate to getAnalysisIfAvailable. 2009-01-28 13:14:17 +00:00
LoopStrengthReduce.cpp Fix a typo in a comment. 2009-02-18 00:08:39 +00:00
LoopUnroll.cpp Rename getAnalysisToUpdate to getAnalysisIfAvailable. 2009-01-28 13:14:17 +00:00
LoopUnswitch.cpp If "optimize for size" attribute is set then block non-trivial loop unswitches but allow trivial loop unswitches. 2009-02-03 22:04:27 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
MemCpyOptimizer.cpp Rename getABITypeSize to getTypePaddedSize, as 2009-01-12 20:38:59 +00:00
PredicateSimplifier.cpp Silence unused variable warnings. 2008-11-21 20:00:59 +00:00
Reassociate.cpp Fix build failure. 2008-11-21 21:00:20 +00:00
Reg2Mem.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
Scalar.cpp
ScalarReplAggregates.cpp Use early exits. Reduce indentation. 2009-02-10 19:28:07 +00:00
SCCP.cpp Add the private linkage. 2009-01-15 20:18:42 +00:00
SimplifyCFGPass.cpp Large mechanical patch. 2008-09-25 21:00:45 +00:00
SimplifyHalfPowrLibCalls.cpp eliminate warning when asserts disabled. 2008-12-14 21:36:23 +00:00
SimplifyLibCalls.cpp Update the list of function annotations for nocapture. All of these came up 2009-02-15 22:47:25 +00:00
TailDuplication.cpp simplify code. 2008-11-27 22:56:14 +00:00
TailRecursionElimination.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00