- Apr 29, 2009
-
-
Evan Cheng authored
spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in fixed_ IntervalPtrs. Reset them. llvm-svn: 70378
-
Chris Lattner authored
llvm-svn: 70375
-
Chris Lattner authored
anything larger than 64-bits, avoiding a crash. This should really be fixed to use APInts, though type legalization happens to help us out and we get good code on the attached testcase at least. This fixes rdar://6836460 llvm-svn: 70360
-
Bill Wendling authored
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
-
Dan Gohman authored
that it can't be trivially eliminated. llvm-svn: 70334
-
Dan Gohman authored
if indvars happens to optimize away the unused primary induction variable. llvm-svn: 70333
-
- Apr 28, 2009
-
-
Dan Gohman authored
llvm-svn: 70331
-
Anton Korobeynikov authored
This should fix PR3379 and PR4064. Patch inspired by Edwin Török! llvm-svn: 70328
-
Dale Johannesen authored
llvm-svn: 70302
-
Evan Cheng authored
llvm-svn: 70291
-
Evan Cheng authored
llvm-svn: 70279
-
Bill Wendling authored
llvm-svn: 70275
-
Bill Wendling authored
use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
-
- Apr 27, 2009
-
-
Dale Johannesen authored
llvm-svn: 70247
-
Evan Cheng authored
llvm-svn: 70245
-
Dan Gohman authored
between the comparison's iv stride and the candidate stride is exactly -1. llvm-svn: 70244
-
Dan Gohman authored
information to simplify [sz]ext({a,+,b}) to {zext(a),+,[zs]ext(b)}, as appropriate. These functions and the trip count code each call into the other, so this requires careful handling to avoid infinite recursion. During the initial trip count computation, conservative SCEVs are used, which are subsequently discarded once the trip count is actually known. Among other benefits, this change lets LSR automatically eliminate some unnecessary zext-inreg and sext-inreg operation where the operand is an induction variable. llvm-svn: 70241
-
Dale Johannesen authored
llvm-svn: 70233
-
Nate Begeman authored
llvm-svn: 70226
-
Nate Begeman authored
PR2957 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. llvm-svn: 70225
-
Evan Cheng authored
Fix PR4056. It's possible a physical register def is dead if its implicit use is deleted by two-address pass. llvm-svn: 70213
-
Dan Gohman authored
llvm-svn: 70208
-
Dan Gohman authored
llvm-svn: 70180
-
Dan Gohman authored
the trunc is directly replaced with the smaller load, so don't try to create a new sext node. This fixes PR4050. llvm-svn: 70179
-
Dan Gohman authored
llvm-svn: 70176
-
- Apr 26, 2009
-
-
Sanjiv Gupta authored
Any size of integral indices are allowed in gep for indexing into sequential types. Also adding a test case to check the indices type allowed into struct. llvm-svn: 70134
-
Chris Lattner authored
llvm-svn: 70085
-
- Apr 25, 2009
-
-
Chris Lattner authored
llvm-svn: 70080
-
Dan Gohman authored
into unsigned ones when the operands are known to have the same sign bit value. llvm-svn: 70053
-
Dan Gohman authored
common, but indvars shouldn't crash on them. This fixes PR4054. llvm-svn: 70051
-
Torok Edwin authored
Path.cpp:59: warning: case label value exceeds maximum value for type magic[0] is a (signed) char, but some case values are unsigned (e.g. 0xde). When magic[0] was 0xde, the switch has taken the default branch instead of case 0xde branch. Apparently this was the behaviour with older versions of gcc too, but not with g++. Now g++-4.4 behaves as gcc, and ignores unsigned case values out of range signed range. llvm-svn: 70038
-
Evan Cheng authored
Do not share a single unknown val# for all the live ranges merged into a physical sub-register live interval. When coalescer is merging in clobbered virtaul register live interval into a physical register live interval, give each virtual register val# a separate val# in the physical register live interval. Otherwise, the coalescer would have lost track of the definitions information it needs to make correct coalescing decisions. llvm-svn: 70026
-
- Apr 24, 2009
-
-
Dale Johannesen authored
This particular one is undefined behavior (although this isn't related to the crash), so it will no longer do it at compile time, which seems better. llvm-svn: 69990
-
David Greene authored
Fix multiclass inheritance to limit value resolution to new defs added by base multiclasses. Do not attempt to alter defs from previous base multiclasses. This fixes multiple multiclass inheritance. llvm-svn: 69974
-
Rafael Espindola authored
very elegant, but neither is the tls specification :-( llvm-svn: 69968
-
Rafael Espindola authored
llvm-svn: 69967
-
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
-
-
David Greene authored
Make BinOps typed and require a type specifier for !nameconcat. This allows binops to be used in typed contexts such as when passing arguments to classes. llvm-svn: 69921
-
Dan Gohman authored
work as intended no matter what the default setting of that option is. llvm-svn: 69911
-
Dale Johannesen authored
llvm-svn: 69901
-