- Oct 03, 2008
-
-
Dale Johannesen authored
incidentally making the case where the memop is a pointer deref work. Fix cmp-and-swap regression. llvm-svn: 57027
-
- Oct 02, 2008
-
-
Dale Johannesen authored
llvm-svn: 56963
-
- Oct 01, 2008
-
-
Dan Gohman authored
This allows the 64-bit forms to use+def RSP instead of ESP. This doesn't fix any real bugs today, but it is more precise and it makes the debug dumps on x86-64 look more consistent. Also, add some comments describing the CALL instructions' physreg operand uses and defs. llvm-svn: 56925
-
Dan Gohman authored
llvm-svn: 56911
-
- Sep 29, 2008
-
-
Evan Cheng authored
llvm-svn: 56792
-
- Sep 27, 2008
-
-
Evan Cheng authored
Implement "punpckldq %xmm0, $xmm0" as "pshufd $0x50, %xmm0, %xmm" unless optimizing for code size. llvm-svn: 56711
-
- Sep 25, 2008
-
-
Evan Cheng authored
Fix patterns for SSE4.1 move and sign extend instructions. Also add instructions which fold VZEXT_MOVL and VZEXT_LOAD. llvm-svn: 56594
-
- Sep 16, 2008
-
-
Bill Wendling authored
Apologies for the thrashing. llvm-svn: 56251
-
Bill Wendling authored
- Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage. llvm-svn: 56249
-
- Sep 12, 2008
-
-
Dan Gohman authored
with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. llvm-svn: 56159
-
- Aug 30, 2008
-
-
Evan Cheng authored
Transform (x << (y&31)) -> (x << y). This takes advantage of the fact x86 shift instructions 2nd operand (shift count) is limited to 0 to 31 (or 63 in the x86-64 case). llvm-svn: 55558
-
- Aug 28, 2008
-
-
Dale Johannesen authored
ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD. Increased the Hardcoded Constant OpActionsCapacity to match. Large but boring; no functional change. This is to support partial-word atomics on ppc; i8 is not a valid type there, so by the time we get to lowering, the ATOMIC_LOAD nodes looks the same whether the type was i8 or i32. The information can be added to the AtomicSDNode, but that is the largest SDNode; I don't fully understand the SDNode allocation, but it is sensitive to the largest node size, so increasing that must be bad. This is the alternative. llvm-svn: 55457
-
- Aug 22, 2008
-
-
Bill Wendling authored
{standard input}:17:bad register name `%sil' make[4]: *** [libgcc/./_addvsi3.o] Error 1 make[4]: *** Waiting for unfinished jobs.... {standard input}:23:bad register name `%dil' {standard input}:28:bad register name `%dil' make[4]: *** [libgcc/./_addvdi3.o] Error 1 {standard input}:18:bad register name `%sil' make[4]: *** [libgcc/./_subvsi3.o] Error 1 llvm-svn: 55200
-
Dan Gohman authored
instructions that define the full 32 or 64-bit value. When anyexting from i8 to i16 or i32, it's not necessary to zero out the high portion of the register. llvm-svn: 55190
-
- Aug 20, 2008
-
-
Dan Gohman authored
out of X86ISelDAGToDAG.cpp C++ code and into tablegen code. Among other things, using tablegen for these things makes them friendlier to FastISel. Tablegen can handle the case of i8 subregs on x86-32, but currently the C++ code for that case uses MVT::Flag in a tricky way, and it happens to schedule better in some cases. So for now, leave the C++ code in place to handle the i8 case on x86-32. llvm-svn: 55078
-
Dan Gohman authored
necessary to use dyn_cast in these predicates. llvm-svn: 55055
-
Bill Wendling authored
Just expand it like the other X-bit sub_and_fetches. llvm-svn: 55023
-
Bill Wendling authored
was already present, but not hooked up to anything. llvm-svn: 55018
-
- Aug 19, 2008
-
-
Dale Johannesen authored
builtins on X86. Change "lock" instructions to be on a separate line. This is needed to work around a bug in the Darwin assembler. llvm-svn: 54999
-
- Aug 06, 2008
-
-
Dan Gohman authored
this time using MOV32to32_ and MOV16to16_. Thanks to Evan for suggesting this. llvm-svn: 54418
-
Dan Gohman authored
llvm-svn: 54411
-
- Jul 30, 2008
-
-
Dan Gohman authored
subreg form on x86-64, to avoid the problem with x86-32 having GPRs that don't have 8-bit subregs. Also, change several 16-bit instructions to use equivalent 32-bit instructions. These have a smaller encoding and avoid partial-register updates. llvm-svn: 54223
-
- Jul 29, 2008
-
-
Dan Gohman authored
llvm-svn: 54148
-
Dan Gohman authored
which is represented in codegen as an 'and' operation. This matches them with movz instructions, instead of leaving them to be matched by and instructions with an immediate field. llvm-svn: 54147
-
- Jul 22, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 53911
-
- Jun 25, 2008
-
-
Mon P Wang authored
Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub llvm-svn: 52706
-
- Jun 18, 2008
-
-
Evan Cheng authored
llvm-svn: 52454
-
- Jun 14, 2008
-
-
Andrew Lenharth authored
llvm-svn: 52270
-
- May 31, 2008
-
-
Dan Gohman authored
index for the input pattern in terms of the output pattern. Instead keep track of how many fixed operands the input pattern actually has, and have the input matching code pass the output-emitting function that index value. This simplifies the code, disentangles variables_ops from the support for predication operations, and makes variable_ops more robust. llvm-svn: 51808
-
- May 29, 2008
-
-
Dan Gohman authored
cases due to an isel deficiency already noted in lib/Target/X86/README.txt, but they can be matched in this fold-call.ll testcase, for example. This is interesting mainly because it exposes a tricky tblgen bug; tblgen was incorrectly computing the starting index for variable_ops in the case of a complex pattern. llvm-svn: 51706
-
Dan Gohman authored
definitions. This adds a new construct, "discard", for indicating that a named node in the input matching pattern is to be discarded, instead of corresponding to a node in the output pattern. This allows tblgen to know where the arguments for the varaible_ops are supposed to begin. This fixes "rdar://5791600", whatever that is ;-). llvm-svn: 51699
-
Bill Wendling authored
llvm-svn: 51664
-
Bill Wendling authored
like. llvm-svn: 51662
-
- May 14, 2008
-
-
Evan Cheng authored
llvm-svn: 51092
-
- May 13, 2008
-
-
Evan Cheng authored
- Incorporate Chris' comment suggestion. llvm-svn: 51061
-
Evan Cheng authored
- Correct a pasto. llvm-svn: 51054
-
Evan Cheng authored
llvm-svn: 51019
-
- May 12, 2008
-
-
Dan Gohman authored
encoding information. llvm-svn: 50997
-
- May 05, 2008
-
-
Mon P Wang authored
llvm-svn: 50663
-
- May 04, 2008
-
-
Anton Korobeynikov authored
but should work. Work is in progress, more models will follow llvm-svn: 50630
-