llvm-6502/lib
Dan Gohman 4d8414f420 Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical
induction variable when the addrec to be expanded does not require
a wider type. This eliminates the need for IndVarSimplify to
micro-manage SCEV expansions, because SCEVExpander now
automatically expands them in the form that IndVarSimplify considers
to be canonical. (LSR still micro-manages its SCEV expansions,
because it's optimizing for the target, rather than for
other optimizations.)

Also, this uses the new getAnyExtendExpr, which has more clever
expression simplification logic than the IndVarSimplify code it
replaces, and this cleans up some ugly expansions in code such as
the included masked-iv.ll testcase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73294 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 16:25:49 +00:00
..
Analysis Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical 2009-06-13 16:25:49 +00:00
Archive
AsmParser
Bitcode Don't remove aggregate-typed module level constants before encoding functions 2009-06-12 05:20:12 +00:00
CodeGen Add a ARM specific pre-allocation pass that re-schedule loads / stores from 2009-06-13 09:12:55 +00:00
CompilerDriver
Debugger
ExecutionEngine After obtaining the lock, look if the function has been codegen'd by 2009-06-12 14:11:08 +00:00
Linker
Support
System
Target Add a ARM specific pre-allocation pass that re-schedule loads / stores from 2009-06-13 09:12:55 +00:00
Transforms Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical 2009-06-13 16:25:49 +00:00
VMCore Give Instruction::isSameOperationAs a corresponding comment to note 2009-06-12 19:03:05 +00:00
Makefile