- Apr 24, 2009
-
-
Rafael Espindola authored
llvm-svn: 69972
-
Rafael Espindola authored
llvm-svn: 69967
-
Chris Lattner authored
llvm-svn: 69962
-
Chris Lattner authored
true), and casts make me nervous and are verbose anyway, so here's a ConstantInt::getSigned(Ty, int64_t) method. Just overloading ConstantInt::get() to take an int64_t too would cause ambiguous overload errors." Patch by Jeffrey Yasskin! llvm-svn: 69958
-
Nate Begeman authored
ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. llvm-svn: 69952
-
- Apr 23, 2009
-
-
Dan Gohman authored
with the persistent insertion point, and change IndVars to make use of it. This fixes a bug where IndVars was holding on to a stale insertion point and forcing the SCEVExpander to continue to use it. This fixes PR4038. llvm-svn: 69892
-
- Apr 22, 2009
-
-
Dan Gohman authored
to better handle inserting instructions at the end of a block. llvm-svn: 69807
-
Dan Gohman authored
llvm-svn: 69806
-
Owen Anderson authored
llvm-svn: 69791
-
Owen Anderson authored
Patch by Peter Johnson. llvm-svn: 69785
-
Dan Gohman authored
practical benefit in the case of ScalarEvolution, and it's otherwise a nuisance. llvm-svn: 69749
-
Evan Cheng authored
This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. llvm-svn: 69743
-
- Apr 21, 2009
-
-
Dan Gohman authored
and SCEVSignExtendExpr. llvm-svn: 69649
-
Dan Gohman authored
the code to minimize dependencies on TargetData. llvm-svn: 69644
-
Dan Gohman authored
llvm-svn: 69640
-
- Apr 20, 2009
-
-
Bob Wilson authored
in the MachineFunction class, renaming it to addLiveIn for consistency with the same method in MachineBasicBlock. Thanks for Anton for suggesting this. llvm-svn: 69615
-
Bob Wilson authored
llvm-svn: 69607
-
Duncan Sands authored
64 bit platforms when building with optimization. So replace them by a hand-coded implementation. This fixes PR3822. llvm-svn: 69597
-
Douglas Gregor authored
llvm-svn: 69583
-
- Apr 19, 2009
-
-
Nick Lewycky authored
llvm-svn: 69529
-
Duncan Sands authored
value type union: this field was causing problems for some compilers on 64 bit systems, presumably because SimpleTy is 32 bits wide while the other fields are 64 bits wide. llvm-svn: 69515
-
- Apr 18, 2009
-
-
Duncan Sands authored
type as the vector element type: allow them to be of a wider integer type than the element type all the way through the system, and not just as far as LegalizeDAG. This should be safe because it used to be this way (the old type legalizer would produce such nodes), so backends should be able to handle it. In fact only targets which have legal vector types with an illegal promoted element type will ever see this (eg: <4 x i16> on ppc). This fixes a regression with the new type legalizer (vec_splat.ll). Also, treat SCALAR_TO_VECTOR the same as BUILD_VECTOR. After all, it is just a special case of BUILD_VECTOR. llvm-svn: 69467
-
Dan Gohman authored
instead of allocating and leaking new SCEVCouldNotCompute objects. llvm-svn: 69452
-
Dan Gohman authored
llvm-svn: 69450
-
Evan Cheng authored
Add a new LiveInterval::overlaps(). It checks if the live interval overlaps a range specified by [Start, End). llvm-svn: 69434
-
- Apr 17, 2009
-
-
Bob Wilson authored
punctuation. No functional changes. llvm-svn: 69378
-
Dan Gohman authored
llvm-svn: 69375
-
Bob Wilson authored
for ARM. Patch by Sandeep Patel. llvm-svn: 69371
-
- Apr 16, 2009
-
-
Bob Wilson authored
llvm-svn: 69313
-
Dan Gohman authored
and ptrtoint-of-inttoptr expressions. This fixes a regression in 300.twolf. llvm-svn: 69293
-
Dan Gohman authored
have pointer types, though in contrast to C pointer types, SCEV addition is never implicitly scaled. This not only eliminates the need for special code like IndVars' EliminatePointerRecurrence and LSR's own GEP expansion code, it also does a better job because it lets the normal optimizations handle pointer expressions just like integer expressions. Also, since LLVM IR GEPs can't directly index into multi-dimensional VLAs, moving the GEP analysis out of client code and into the SCEV framework makes it easier for clients to handle multi-dimensional VLAs the same way as other arrays. Some existing regression tests show improved optimization. test/CodeGen/ARM/2007-03-13-InstrSched.ll in particular improved to the point where if-conversion started kicking in; I turned it off for this test to preserve the intent of the test. llvm-svn: 69258
-
Devang Patel authored
If FastISel is run and it has known DebugLoc then use it. llvm-svn: 69253
-
- Apr 15, 2009
-
-
Dan Gohman authored
to support replacing a node with another that has a superset of the result types. Use this instead of calling ReplaceAllUsesOfValueWith for each value. llvm-svn: 69209
-
Douglas Gregor authored
llvm-svn: 69145
-
Dan Gohman authored
subclassed. llvm-svn: 69129
-
Dan Gohman authored
llvm-svn: 69128
-
Dan Gohman authored
llvm-svn: 69126
-
Dan Gohman authored
llvm-svn: 69125
-
Dan Gohman authored
code out of line. llvm-svn: 69124
-
Devang Patel authored
Construct and emit DW_TAG_inlined_subroutine DIEs for inlined subroutine scopes (only in FastISel mode). llvm-svn: 69116
-