- Nov 02, 2010
-
-
Chris Lattner authored
llvm-svn: 118031
-
- Sep 21, 2010
-
-
Chris Lattner authored
passed the root of the match, even though only a few patterns actually needed this (one in X86, several in ARM [which should be refactored anyway], and some in CellSPU that I don't feel like detangling). Instead of requiring all ComplexPatterns to take the dead root, have targets opt into getting the root by putting SDNPWantRoot on the ComplexPattern. llvm-svn: 114471
-
- May 25, 2010
-
-
Jakob Stoklund Olesen authored
This passes lit tests, but I'll give it a go through the buildbots to smoke out any remaining places that depend on the old SubRegIndex numbering. Then I'll remove NumberHack entirely. llvm-svn: 104615
-
- May 24, 2010
-
-
Jakob Stoklund Olesen authored
structure that represents a mapping without any dependencies on SubRegIndex numbering. This brings us closer to being able to remove the explicit SubRegIndex numbering, and it is now possible to specify any mapping without inventing *_INVALID register classes. llvm-svn: 104563
-
- Mar 19, 2010
-
-
Chris Lattner authored
dag isel gen instead of instruction properties. This allows the oh-so-useful behavior of matching a variadic non-root node. llvm-svn: 98934
-
Chris Lattner authored
record* -> instrinfo instead of std::string -> instrinfo. This speeds up tblgen on cellcpu from 7.28 -> 5.98s with a debug build (20%). llvm-svn: 98916
-
Chris Lattner authored
Use CodeGenTarget::getInstNamespace in one place and fix it. llvm-svn: 98915
-
Chris Lattner authored
llvm-svn: 98914
-
Chris Lattner authored
llvm-svn: 98912
-
Chris Lattner authored
to a vector that CGT stores instead of synthesizing it on every call. llvm-svn: 98910
-
Chris Lattner authored
llvm-svn: 98906
-
Chris Lattner authored
llvm-svn: 98904
-
- Mar 15, 2010
-
-
Chris Lattner authored
changing the primary datastructure from being a "std::vector<unsigned char>" to being a new TypeSet class that actually has (gasp) invariants! This changes more things than I remember, but one major innovation here is that it enforces that named input values agree in type with their output values. This also eliminates code that transparently assumes (in some cases) that SDNodeXForm input/output types are the same, because this is wrong in many case. This also eliminates a bug which caused a lot of ambiguous patterns to go undetected, where a register class would sometimes pick the first possible type, causing an ambiguous pattern to get arbitrary results. With all the recent target changes, this causes no functionality change! llvm-svn: 98534
-
- Jan 04, 2010
-
-
Dan Gohman authored
for a refactoring I'm working on. llvm-svn: 92503
-
- Nov 06, 2009
-
-
Chris Lattner authored
llvm-svn: 86239
-
- Aug 11, 2009
-
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Owen Anderson authored
llvm-svn: 78610
-
- Jul 29, 2009
-
-
Daniel Dunbar authored
llvm-svn: 77404
-
- Jul 03, 2009
-
-
Daniel Dunbar authored
- Sorry, I can't help myself. - No intended functionality change. llvm-svn: 74742
-
- Jun 02, 2009
-
-
Dale Johannesen authored
llvm-svn: 72712
-
Dale Johannesen authored
ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-independent code to use this format. Most targets will still produce a Flag-setting target-dependent version when selection is done. X86 is converted to use i32 instead, which means TableGen needs to produce different code in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit in xxxInstrInfo, currently set only for X86; in principle this is temporary and should go away when all other targets have been converted. All relevant X86 instruction patterns are modified to represent setting and using EFLAGS explicitly. The same can be done on other targets. The immediate behavior change is that an ADC/ADD pair are no longer tightly coupled in the X86 scheduler; they can be separated by instructions that don't clobber the flags (MOV). I will soon add some peephole optimizations based on using other instructions that set the flags to feed into ADC. llvm-svn: 72707
-
- Apr 13, 2009
-
-
Dan Gohman authored
in multiple classes in the case that the classes are all in subset/superset relations. This function is used by the fast-isel emitter, which always wants the super-most set. llvm-svn: 68957
-
- Aug 20, 2008
-
-
Dan Gohman authored
namespace out of the isel emitters and into common code. llvm-svn: 55079
-
- 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 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
-
- Apr 03, 2008
-
-
Dan Gohman authored
CodeGenDAGPatterns, where it can be used in other tablegen backends. This allows the inference to be done for DAGISelEmitter so that it gets accurate mayLoad/mayStore/isSimpleLoad flags. This brings MemOperand functionality back to where it was before 48329. However, it doesn't solve the problem of anonymous patterns which expand to code that does loads or stores. llvm-svn: 49123
-
- 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 10, 2008
-
-
Chris Lattner authored
llvm-svn: 45822
-
Chris Lattner authored
Also, instructions with any nodes that are SDNPMayLoad also read memory. llvm-svn: 45817
-
- Jan 06, 2008
-
-
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
-
- Jan 05, 2008
-
-
Chris Lattner authored
Split the pattern parsing code out from the dag isel emitter into it's own file. No functionality change. llvm-svn: 45632
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45419
-
- Jul 13, 2007
-
-
Dan Gohman authored
llvm-svn: 39828
-
- Jun 04, 2007
-
-
Dan Gohman authored
being changed from an enum to an integer type, which can't have a custom operator<< overload. llvm-svn: 37412
-
- Oct 11, 2006
-
-
Evan Cheng authored
llvm-svn: 30890
-
- May 18, 2006
-
-
Evan Cheng authored
llvm-svn: 28376
-
- May 17, 2006
-
-
Evan Cheng authored
represent pointer type. llvm-svn: 28363
-
- May 16, 2006
-
-
Evan Cheng authored
register classes. llvm-svn: 28323
-
- Mar 28, 2006
-
-
Chris Lattner authored
llvm-svn: 27188
-
- Jan 27, 2006
-
-
Chris Lattner authored
llvm-svn: 25673
-