- Apr 30, 2009
-
-
Evan Cheng authored
llvm-svn: 70461
-
Bill Wendling authored
which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
-
Nate Begeman authored
llvm-svn: 70425
-
- Apr 29, 2009
-
-
Nate Begeman authored
llvm-svn: 70372
-
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
-
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
-
-
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
-
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
-
- Apr 25, 2009
-
-
Chris Lattner authored
Nicolas Capens! llvm-svn: 70057
-
- Apr 24, 2009
-
-
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
-
-
Dan Gohman authored
memory operand tuples. This doesn't ever come up in normal code however. llvm-svn: 69848
-
- Apr 21, 2009
-
-
Duncan Sands authored
Spotted by gcc-4.5. llvm-svn: 69673
-
Rafael Espindola authored
This fixes PR4002. llvm-svn: 69672
-
Dan Gohman authored
This makes the extra copyRegToReg calls in ScheduleDAGSDNodesEmit.cpp unnecessary. Derived from a patch by Jakob Stoklund Olesen. llvm-svn: 69635
-
- 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
-
- Apr 18, 2009
-
-
Mon P Wang authored
llvm-svn: 69417
-
Bill Wendling authored
llvm-svn: 69394
-
- Apr 17, 2009
-
-
Rafael Espindola authored
leaq foo@TLSGD(%rip), %rdi as part of the instruction sequence. Using a register other than %rdi and then copying it to %rdi is not valid. llvm-svn: 69350
-
Bill Wendling authored
llvm-svn: 69347
-
Dan Gohman authored
matter, because this instruction isn't generated until after things that care. llvm-svn: 69336
-
Dan Gohman authored
present, but it's inconsistent. llvm-svn: 69335
-
- Apr 16, 2009
-
-
Rafael Espindola authored
llvm-svn: 69284
-
- Apr 15, 2009
-
-
Dan Gohman authored
llvm-svn: 69204
-
Dan Gohman authored
llvm-svn: 69203
-
Dan Gohman authored
llvm-svn: 69127
-
Dan Gohman authored
the local register allocator. llvm-svn: 69115
-
Dan Gohman authored
either the source or destination is a physical h register. This fixes sqlite3 with the post-RA scheduler enabled. llvm-svn: 69111
-
Dan Gohman authored
REX prefixes. llvm-svn: 69108
-
Dan Gohman authored
any non-address uses of the address value. This fixes 186.crafty. llvm-svn: 69094
-
- Apr 14, 2009
-
-
Evan Cheng authored
llvm-svn: 69049
-
- Apr 13, 2009
-
-
Dan Gohman authored
it accordingly. Thanks to Jakob Stoklund Olesen for pointing out how this might be useful. llvm-svn: 68986
-
Devang Patel authored
Reapply 68847. Now debug_inlined section is covered by TAI->doesDwarfUsesInlineInfoSection(), which is false by default. llvm-svn: 68964
-
Dan Gohman authored
- Add patterns for h-register extract, which avoids a shift and mask, and in some cases a temporary register. - Add address-mode matching for turning (X>>(8-n))&(255<<n), where n is a valid address-mode scale value, into an h-register extract and a scaled-offset address. - Replace X86's MOV32to32_ and related instructions with the new target-independent COPY_TO_SUBREG instruction. On x86-64 there are complicated constraints on h registers, and CodeGen doesn't currently provide a high-level way to express all of them, so they are handled with a bunch of special code. This code currently only supports extracts where the result is used by a zero-extend or a store, though these are fairly common. These transformations are not always beneficial; since there are only 4 h registers, they sometimes require extra move instructions, and this sometimes increases register pressure because it can force out values that would otherwise be in one of those registers. However, this appears to be relatively uncommon. llvm-svn: 68962
-