- Mar 28, 2010
-
-
Chris Lattner authored
llvm-svn: 99747
-
Chris Lattner authored
by rotating it. llvm-svn: 99746
-
Chris Lattner authored
llvm-svn: 99744
-
- Mar 27, 2010
-
-
Chris Lattner authored
same vt multiple times for a register. For example, ECX is in 5 different i32 reg classes, just return 1 i32 instead of 5. llvm-svn: 99727
-
Chris Lattner authored
from two places in CodeGenDAGPatterns.cpp, and use it in DAGISelMatcherGen.cpp instead of using an incorrect predicate that happened to get lucky on our current targets. llvm-svn: 99726
-
Chris Lattner authored
results forward. We can now handle an instruction that produces one implicit def and one result instead of one or the other when not at the root of the pattern. llvm-svn: 99725
-
Chris Lattner authored
llvm-svn: 99703
-
- Mar 24, 2010
-
-
Chris Lattner authored
in some more places. llvm-svn: 99366
-
Chris Lattner authored
instead of reimplementing it wrong and poorly. llvm-svn: 99357
-
Chris Lattner authored
llvm-svn: 99354
-
Chris Lattner authored
llvm-svn: 99353
-
- Mar 22, 2010
-
-
Chris Lattner authored
instead of as a single element list with VoidTy. Now with a fix for the verifier. llvm-svn: 99206
-
- Mar 21, 2010
-
-
Daniel Dunbar authored
llvm-svn: 99111
-
- Mar 20, 2010
-
-
Eric Christopher authored
llvm-svn: 99011
-
- Mar 19, 2010
-
-
Chris Lattner authored
instead of as a single element list with VoidTy. llvm-svn: 99009
-
Chris Lattner authored
ApplyTypeConstraint) and make it handle multiple result nodes. llvm-svn: 99003
-
Chris Lattner authored
to maintain a list of types (one for each result of the node) instead of a single type. There are liberal hacks added to emulate the old behavior in various situations, but they can start disolving now. llvm-svn: 98999
-
Chris Lattner authored
we don't blow the smallvector as often. No functionality change. llvm-svn: 98968
-
Chris Lattner authored
from the pattern if present, and we use it instead of the bit. llvm-svn: 98938
-
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
llvm-svn: 98933
-
Daniel Dunbar authored
llvm-svn: 98927
-
Chris Lattner authored
llvm-svn: 98918
-
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
-
Chris Lattner authored
llvm-svn: 98900
-
Chris Lattner authored
like this: def : Pat<(add ...), (FOOINST)>; When fooinst only has a single implicit def (e.g. to R1). This will be handled as if written as (set R1, (FOOINST ...)) llvm-svn: 98897
-
- Mar 18, 2010
-
-
Chris Lattner authored
shouldn't change this. llvm-svn: 98872
-
Chris Lattner authored
Add checking that the input/output operand list in spelled right. llvm-svn: 98865
-
- Mar 15, 2010
-
-
Chris Lattner authored
now enforces that input/output named values have hte same type. llvm-svn: 98535
-
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
-
- Mar 08, 2010
-
-
Chris Lattner authored
needs to be majorly refactored, but this spot bugfix allows things like: def vmrghw_shuffle : PatFrag<(ops node:$lhs, node:$rhs), (vector_shuffle (v4i32 node:$lhs), node:$rhs), [{ ... llvm-svn: 97952
-
- Mar 01, 2010
-
-
Chris Lattner authored
(set GPR, somecomplexpattern) if somecomplexpattern doesn't declare what it can match. llvm-svn: 97513
-
Chris Lattner authored
ordered correctly. Previously it would get in trouble when two patterns were too similar and give them nondet ordering. We force this by using the record ID order as a fallback. The testsuite diff is due to alpha patterns being ordered slightly differently, the change is a semantic noop afaict: < lda $0,-100($16) --- > subq $16,100,$0 llvm-svn: 97509
-
- Feb 28, 2010
-
-
Chris Lattner authored
node is always guaranteed to have a particular type instead of hacking in ISD::STORE explicitly. This allows us to use implied types for a broad range of nodes, even target specific ones. llvm-svn: 97355
-
- Feb 27, 2010
-
-
Chris Lattner authored
respects -debug-only=something-else. llvm-svn: 97307
-
- Feb 23, 2010
-
-
Chris Lattner authored
input/output patterns have the same type. It turns out that this triggers all the time because we don't infer types between these boundaries. Until we do, don't turn this on. llvm-svn: 96905
-
Chris Lattner authored
of a pattern and where the uses have different types. llvm-svn: 96904
-
Chris Lattner authored
this is tidier and can find bugs. llvm-svn: 96900
-