llvm-6502/test
Dan Gohman c2390b14c9 Teach IndVarSimplify to optimize code using the C "int" type for
loop induction on LP64 targets. When the induction variable is
used in addressing, IndVars now is usually able to inserst a
64-bit induction variable and eliminates the sign-extending cast.
This is also useful for code using C "short" types for
induction variables on targets with 32-bit addressing.

Inserting a wider induction variable is easy; the tricky part is
determining when trunc(sext(i)) expressions are no-ops. This
requires range analysis of the loop trip count. A common case is
when the original loop iteration starts at 0 and exits when the
induction variable is signed-less-than a fixed value; this case
is now handled.

This replaces IndVarSimplify's OptimizeCanonicalIVType. It was
doing the same optimization, but it was limited to loops with
constant trip counts, because it was running after the loop
rewrite, and the information about the original induction
variable is lost by that point.

Rename ScalarEvolution's executesAtLeastOnce to
isLoopGuardedByCond, generalize it to be able to test for
ICMP_NE conditions, and move it to be a public function so that
IndVars can use it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64407 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-12 22:19:27 +00:00
..
Analysis Finish making AliasAnalysis aware of the fact that most atomic intrinsics only dereference their arguments, and enhance 2009-02-04 05:16:46 +00:00
Archive sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
Assembler Remove now-incorrect test. 2009-02-04 21:07:37 +00:00
Bindings/Ocaml Update to match space changes in .ll 2009-02-11 20:48:21 +00:00
Bitcode fix a bitcode reader bug where it can't handle extractelement correctly: 2009-02-03 02:11:28 +00:00
BugPoint this is unneeded now. 2008-06-16 04:25:39 +00:00
CodeGen Arrange to print constants that match "n" and "i" constraints 2009-02-12 20:58:09 +00:00
DebugInfo Do not add redundant arguments in a method definition DIE. 2009-02-02 17:51:41 +00:00
ExecutionEngine This is case is to uncover the bug in IntrinsicLowering.cpp, 2009-01-30 08:59:51 +00:00
Feature Reimplement the old and horrible bison parser for .ll files with a nice 2009-01-02 07:01:27 +00:00
FrontendAda Teach constant folding that an inttoptr of a 2008-08-13 20:20:35 +00:00
FrontendC This is now done using a real i33, rather than 2009-02-10 20:44:15 +00:00
FrontendC++ testcase for r64049 of llvm-gcc. 2009-02-07 23:37:03 +00:00
FrontendFortran Testcase for PR2437. 2009-02-09 09:41:49 +00:00
FrontendObjC testcase for rdar://6551276 and llvm-gcc r63873 2009-02-05 18:15:17 +00:00
FrontendObjC++ This is an objective-c test, not an objective-c++ one. 2008-10-06 18:42:48 +00:00
Integer alignment of 0 is not valid. 2009-01-05 08:14:35 +00:00
lib Run dsymutil on darwin, when it is expected, before running gdb test. 2009-02-02 21:09:36 +00:00
Linker Reimplement the old and horrible bison parser for .ll files with a nice 2009-01-02 07:01:27 +00:00
LLVMC Rename dg.exp to llvmc.exp. This is so I can ignore it during a make check if I want to. 2009-02-08 22:52:50 +00:00
Other Testcase for PR2894. 2008-10-15 22:34:34 +00:00
Scripts simplify shell syntax to work better on solaris, patch by 2008-06-25 16:03:42 +00:00
TableGen Fun x86 encoding tricks: when adding an immediate value of 128, 2008-10-17 01:33:43 +00:00
Transforms Teach IndVarSimplify to optimize code using the C "int" type for 2009-02-12 22:19:27 +00:00
Verifier Reimplement the old and horrible bison parser for .ll files with a nice 2009-01-02 07:01:27 +00:00
Makefile Run dsymutil on darwin, when it is expected, before running gdb test. 2009-02-02 21:09:36 +00:00
Makefile.tests
TestRunner.sh Fix a bashism in TestRunner.sh. 2008-07-28 18:41:03 +00:00