- Apr 29, 2009
-
-
Evan Cheng authored
spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in fixed_ IntervalPtrs. Reset them. llvm-svn: 70378
-
Nate Begeman authored
llvm-svn: 70372
-
Sanjiv Gupta authored
llvm-svn: 70366
-
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
-
Dan Gohman authored
llvm-svn: 70357
-
Evan Cheng authored
Determine allocation 'preference' with right register class. I haven't seen this changing codegen so no test case. llvm-svn: 70351
-
Bill Wendling authored
an optimization level instead of a simple boolean telling it to generate code "fast" or the other type of "fast". llvm-svn: 70347
-
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
-
- Apr 28, 2009
-
-
Anton Korobeynikov authored
This should fix PR3379 and PR4064. Patch inspired by Edwin Török! llvm-svn: 70328
-
Evan Cheng authored
llvm-svn: 70309
-
Sanjiv Gupta authored
llvm-svn: 70300
-
Stefanus Du Toit authored
Fix choice of version of Windows callback to use to consider not only the Visual Studio version, but also the Windows SDK version. Patch by Tareq Siraj. llvm-svn: 70299
-
Jakob Stoklund Olesen authored
If the physical register does not belong to the virtual register's regclass, don't coalesce. The physical register could be an invalid operand for an instruction using the vreg. The regclass matching is done after determining the actual subregisters being copied. llvm-svn: 70298
-
Sanjiv Gupta authored
llvm-svn: 70297
-
Jakob Stoklund Olesen authored
Also make the method non-asserting. It will return NULL when given an invalid subreg index. The method is needed by an upcoming patch. llvm-svn: 70296
-
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
-
Dan Gohman authored
llvm-svn: 70262
-
- 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
-
Owen Anderson authored
This should have no effect on generated code, but makes the intermediate state of the coalescer more sane. llvm-svn: 70238
-
Duncan Sands authored
no-longer needed workarounds. llvm-svn: 70234
-
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
-
Evan Cheng authored
llvm-svn: 70212
-
Dan Gohman authored
to precisely describe the h-register subreg register classes. Thanks to Jakob Stoklund Olesen for spotting this and for the initial patch! Also, make getStoreRegOpcode and getLoadRegOpcode aware of the needs of h registers. llvm-svn: 70211
-
Dan Gohman authored
GR32_ABCD, and GR64_ABCD, respectively, to help describe them. llvm-svn: 70210
-
Dan Gohman authored
llvm-svn: 70209
-
Mon P Wang authored
llvm-svn: 70197
-
Nick Lewycky authored
another stub, but then never calling the jitted function) can cause the JIT to leave a stub in place. Judging by the comments this is a known deficiency, so we're just not going to use AssertingVH for the StubToFunctionTy map. Also shorten some lines longer than 80 columns. This fixes the "make check" failure with ocaml on x86-64 linux. llvm-svn: 70185
-
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
-
-
Chris Lattner authored
state out of the BitstreamReader class into a BitstreamCursor class. Doing this allows the client to have multiple cursors into the same file, each with potentially different live block stacks and abbreviation records. llvm-svn: 70157
-
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
-
- Apr 25, 2009
-
-
Chris Lattner authored
llvm-svn: 70080
-
Chris Lattner authored
The real fix for this whole mess is to require the operand of the alias to be a *GlobalValue* (not a general constant, including constant exprs) but allow the operand and the alias type to be unrelated. This fixes PR4066 llvm-svn: 70079
-