- Jun 25, 2008
-
-
Dan Gohman authored
the base SDNode's VTList. llvm-svn: 52722
-
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 14, 2008
-
-
Andrew Lenharth authored
llvm-svn: 52270
-
- Jun 06, 2008
-
-
Duncan Sands authored
and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). llvm-svn: 52044
-
- 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
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
-
- May 12, 2008
-
-
Nate Begeman authored
This is necessary to unbreak the build. llvm-svn: 50988
-
- May 05, 2008
-
-
Mon P Wang authored
llvm-svn: 50663
-
- Mar 16, 2008
-
-
Christopher Lamb authored
Make insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass. Add a new TII, subreg_to_reg, which is like insert_subreg except that it takes an immediate implicit value to insert into rather than a register. llvm-svn: 48412
-
- Mar 13, 2008
-
-
Christopher Lamb authored
Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects. Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes. llvm-svn: 48329
-
- Mar 08, 2008
-
-
Evan Cheng authored
Implement x86 support for @llvm.prefetch. It corresponds to prefetcht{0|1|2} and prefetchnta instructions. llvm-svn: 48042
-
- Feb 21, 2008
-
-
Andrew Lenharth authored
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet llvm-svn: 47430
-
- Feb 16, 2008
-
-
Andrew Lenharth authored
llvm-svn: 47204
-
- Feb 14, 2008
-
-
Nate Begeman authored
1) ConstantFP is now expand by default 2) ConstantFP is not turned into TargetConstantFP during Legalize if it is legal. This allows ConstantFP to be handled like Constant, allowing for targets that can encode FP immediates as MachineOperands. As a bonus, fix up Itanium FP constants, which now correctly match, and match more constants! Hooray. llvm-svn: 47121
-
- Feb 11, 2008
-
-
Nate Begeman authored
Add some notes to the README. llvm-svn: 46949
-
- Feb 09, 2008
-
-
Nate Begeman authored
llvm-svn: 46901
-
- Jan 31, 2008
-
-
Christopher Lamb authored
Allow ComplexExpressions in InstrInfo.td files to be slightly more... complex! ComplexExpressions can now have attributes which affect how TableGen interprets the pattern when generating matchin code. The first (and currently, only) attribute causes the immediate parent node of the ComplexPattern operand to be passed into the matching code rather than the node at the root of the entire DAG containing the pattern. llvm-svn: 46606
-
- Jan 30, 2008
-
-
Dan Gohman authored
and StoreSDNode into their common base class LSBaseSDNode. Member functions getLoadedVT and getStoredVT are replaced with the common getMemoryVT to simplify code that will handle both loads and stores. llvm-svn: 46538
-
- Jan 17, 2008
-
-
Chris Lattner authored
1. Legalize now always promotes truncstore of i1 to i8. 2. Remove patterns and gunk related to truncstore i1 from targets. 3. Rename the StoreXAction stuff to TruncStoreAction in TLI. 4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions. 5. Mark a wide variety of invalid truncstores as such in various targets, e.g. X86 currently doesn't support truncstore of any of its integer types. 6. Add legalize support for truncstores with invalid value input types. 7. Add a dag combine transform to turn store(truncate) into truncstore when safe. The later allows us to compile CodeGen/X86/storetrunc-fp.ll to: _foo: fldt 20(%esp) fldt 4(%esp) faddp %st(1) movl 36(%esp), %eax fstps (%eax) ret instead of: _foo: subl $4, %esp fldt 24(%esp) fldt 8(%esp) faddp %st(1) fstps (%esp) movl 40(%esp), %eax movss (%esp), %xmm0 movss %xmm0, (%eax) addl $4, %esp ret llvm-svn: 46140
-
- Jan 15, 2008
-
-
Chris Lattner authored
Move definition of 'trap' sdnode up from x86 instrinfo to targetselectiondag.td. llvm-svn: 46017
-
- Jan 10, 2008
-
-
Chris Lattner authored
llvm-svn: 45825
-
Chris Lattner authored
instructions (with patterns) that load memory marked, for example. llvm-svn: 45818
-
- Jan 06, 2008
-
-
Chris Lattner authored
llvm-svn: 45656
-
Chris Lattner authored
instead of "ISD::STORE". This allows us to mark target-specific dag nodes as storing (such as ppc byteswap stores). This allows us to remove more explicit isStore flags from the .td files. Finally, add a warning for when a .td file contains an explicit isStore and tblgen is able to infer it. llvm-svn: 45654
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Nov 24, 2007
-
-
Chris Lattner authored
llvm-svn: 44303
-
- Nov 13, 2007
-
-
Bill Wendling authored
llvm-svn: 44045
-
- Sep 25, 2007
-
-
Evan Cheng authored
llvm-svn: 42282
-
- Sep 13, 2007
-
-
Evan Cheng authored
1. [(set GR32:$dst, (add GR32:$src1, GR32:$src2)), (modify EFLAGS)] This indicates the source pattern expects the instruction would produce 2 values. The first is the result of the addition. The second is an implicit definition in register EFLAGS. 2. def : Pat<(parallel (addc GR32:$src1, GR32:$src2), (modify EFLAGS)), ()> Similar to #1 except this is used for def : Pat patterns. llvm-svn: 41897
-
- Aug 05, 2007
-
-
Dale Johannesen authored
Lots of problems yet but some simple things work. llvm-svn: 40847
-
- Jul 26, 2007
-
-
Christopher Lamb authored
llvm-svn: 40516
-
- Jul 16, 2007
-
-
Dan Gohman authored
llvm-svn: 39921
-
- Apr 20, 2007
-
-
Lauro Ramos Venancio authored
X86 32 bits. llvm-svn: 36283
-
- Jan 26, 2007
-
-
Jim Laskey authored
llvm-svn: 33537
-
- Nov 14, 2006
-
-
Chris Lattner authored
stores. llvm-svn: 31735
-
- Nov 09, 2006
-
-
Evan Cheng authored
llvm-svn: 31596
-
Evan Cheng authored
llvm-svn: 31576
-
- Oct 26, 2006
-
-
Evan Cheng authored
llvm-svn: 31210
-
- Oct 13, 2006
-
-
Evan Cheng authored
llvm-svn: 30945
-
- Oct 11, 2006
-
-
Evan Cheng authored
llvm-svn: 30891
-