| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
PR3296 and PR3302.
llvm-svn: 62160
|
|
|
|
| |
llvm-svn: 60407
|
|
|
|
| |
llvm-svn: 57433
|
|
|
|
| |
llvm-svn: 53217
|
|
|
|
| |
llvm-svn: 52614
|
|
|
|
| |
llvm-svn: 52612
|
|
|
|
| |
llvm-svn: 52464
|
|
|
|
|
|
| |
function, and make use of it in several places.
llvm-svn: 52463
|
|
|
|
|
|
|
|
|
|
|
| |
take into account the instrucion pointed by InsertPt. Thanks to it,
returning the new value of InsertPt to the InsertBinop() caller can be
avoided. The bug was, actually, in visitAddRecExpr() method which wasn't
correctly handling changes of InsertPt. There shouldn't be any
performance regression, as -gvn pass (run after -indvars) removes any
redundant binops.
llvm-svn: 52291
|
|
|
|
|
|
|
|
|
| |
Add a safety measure. It isn't safe to assume in ScalarEvolutionExpander that
all loops are in canonical form (but it should be safe for loops that have
AddRecs).
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
llvm-svn: 52275
|
|
|
|
|
|
| |
Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
llvm-svn: 51200
|
|
|
|
|
|
|
|
| |
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Parse reversed smax and umax as smin and umin and express them with negative
or binary-not SCEVs (which are really just subtract under the hood).
Parse 'xor %x, -1' as (-1 - %x).
Remove dead code (ConstantInt::get always returns a ConstantInt).
Don't use getIntegerSCEV(-1, Ty). The first value is an int, then it gets
passed into a uint64_t. Instead, create the -1 directly from
ConstantInt::getAllOnesValue().
llvm-svn: 47360
|
|
|
|
|
|
| |
before we reuse it.
llvm-svn: 46908
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
| |
llvm-svn: 44319
|
|
|
|
|
|
|
| |
SCEV subclasses to being non-static member functions of the ScalarEvolution
class.
llvm-svn: 43224
|
|
|
|
|
|
| |
for consistency with many other transforms.
llvm-svn: 41957
|
|
|
|
|
|
| |
- Move SCEVExpander::expand() out-of-line workarounding possible toolchain bug
llvm-svn: 41197
|
|
|
|
| |
llvm-svn: 37602
|
|
|
|
|
|
|
|
|
|
| |
This created an ambiguity for expandInTy to decide when to use
sign-extension or zero-extension, but it turns out that most of its callers
don't actually need a type conversion, now that LLVM types don't have
explicit signedness. Drop expandInTy in favor of plain expand, and change
the few places that actually need a type conversion to do it themselves.
llvm-svn: 37591
|
|
|
|
|
|
| |
CodeGen/Generic/2007-04-17-lsr-crash.ll
llvm-svn: 36231
|
|
|
|
|
|
| |
less huge code that needs to be cleaned up by sdisel.
llvm-svn: 35959
|
|
|
|
|
|
| |
Constant::isNullValue() in situations where it is possible.
llvm-svn: 34821
|
|
|
|
| |
llvm-svn: 34798
|
|
|
|
|
|
|
| |
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!
llvm-svn: 33415
|
|
|
|
|
|
|
|
|
| |
rename Type::getIntegralTypeMask to Type::getIntegerTypeMask.
This makes naming much more consistent. For example, there are now no longer any
instances of IntegerType that are not considered isInteger! :)
llvm-svn: 33225
|
|
|
|
|
|
|
| |
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073
|
|
|
|
|
|
|
| |
so the decision of which opcode to use is pushed upward to the caller.
Adjust the callers to pass the expected opcode.
llvm-svn: 32535
|
|
|
|
|
|
|
| |
Rename getZeroExtend and getSignExtend to getZExt and getSExt to match
the the casting mnemonics in the rest of LLVM.
llvm-svn: 32514
|
|
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
|
|
|
| |
llvm-svn: 32179
|
|
|
|
|
|
|
| |
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
llvm-svn: 31990
|
|
|
|
|
|
|
|
|
|
| |
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
|
|
|
|
|
|
|
|
| |
This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.
llvm-svn: 31063
|
|
|
|
| |
llvm-svn: 25973
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When inserting code for an addrec expression with a non-unit stride, be
more careful where we insert the multiply. In particular, insert the multiply
in the outermost loop we can, instead of the requested insertion point.
This allows LSR to notice the mul in the right loop, reducing it when it gets
to it. This allows it to reduce the multiply, where before it missed it.
This happens quite a bit in the test suite, for example, eliminating 2
multiplies in art, 3 in ammp, 4 in apsi, reducing from 1050 multiplies to
910 muls in galgel (!), from 877 to 859 in applu, and 36 to 30 in bzip2.
This speeds up galgel from 16.45s to 16.01s, applu from 14.21 to 13.94s and
fourinarow from 66.67s to 63.48s.
This implements Transforms/LoopStrengthReduce/nested-reduce.ll
llvm-svn: 24102
|
|
other passes may use it.
llvm-svn: 22557
|