- Mar 14, 2010
-
-
Evan Cheng authored
llvm-svn: 98468
-
- 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 07, 2010
-
-
Chris Lattner authored
llvm-svn: 97912
-
Chris Lattner authored
llvm-svn: 97911
-
Chris Lattner authored
Now it will factor things like this: CheckType i32 ... CheckOpcode ISD::AND CheckType i64 ... into: SwitchType: i32: ... i64: CheckOpcode ISD::AND ... This shrinks hte table by a few bytes, nothing spectacular. llvm-svn: 97908
-
Chris Lattner authored
for CheckValueTypeMatcher. The isContradictory implementation helps us factor better, shrinking x86 table from 79144 -> 78896 bytes. llvm-svn: 97905
-
- Mar 05, 2010
-
-
Mikhail Glushenkov authored
As in 'llvmc -O2 -O2 test.c'. llvm-svn: 97787
-
- Mar 04, 2010
-
-
Chris Lattner authored
we sometimes emit nodes multiple times to string buffers to size them. Compute the histogram correctly. llvm-svn: 97708
-
Chris Lattner authored
llvm-svn: 97705
-
Chris Lattner authored
sequence, just emit instruction predicates right before them. This exposes yet more factoring opportunitites, shrinking the X86 table to 79144 bytes. llvm-svn: 97704
-
Chris Lattner authored
as the very last thing before node emission. This should dramatically reduce the number of times we do 'MatchAddress' on X86, speeding up compile time. This also improves comments in the tables and shrinks the table a bit, now down to 80506 bytes for x86. llvm-svn: 97703
-
Chris Lattner authored
numbers a ComplexPat will match into. llvm-svn: 97696
-
- Mar 03, 2010
-
-
Chris Lattner authored
SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. llvm-svn: 97645
-
- Mar 02, 2010
-
-
Chris Lattner authored
to itself, even though this isn't wildly useful. llvm-svn: 97574
-
Chris Lattner authored
llvm-svn: 97556
-
Chris Lattner authored
stuff now that we don't care about emulating the old broken behavior of the old isel. This eliminates the 'CheckChainCompatible' check (along with IsChainCompatible) which did an incorrect and inefficient scan *up* the chain nodes which happened as the pattern was being formed and does the validation at the end in HandleMergeInputChains when it forms a structural pattern. This scans "down" the graph, which means that it is quickly bounded by nodes already selected. This also handles token factors that get "trapped" in the dag. Removing the CheckChainCompatible nodes also shrinks the generated tables by about 6K for X86 (down to 83K). There are two pieces remaining before I can nuke PreprocessRMW: 1. I xfailed a test because we're now producing worse code in a case that has nothing to do with the change: it turns out that our use of MorphNodeTo will leave dead nodes in the graph which (depending on how the graph is walked) end up causing bogus uses of chains and blocking matches. This is really bad for other reasons, so I'll fix this in a follow-up patch. 2. CheckFoldableChainNode needs to be improved to handle the TF. llvm-svn: 97539
-
Chris Lattner authored
llvm-svn: 97527
-
Chris Lattner authored
llvm-svn: 97517
-
- Mar 01, 2010
-
-
Chris Lattner authored
now that it is gone. llvm-svn: 97516
-
Chris Lattner authored
llvm-svn: 97515
-
Chris Lattner authored
EmitMergeInputChainsMatcher node up into EmitResultCode. This doesn't have much of an effect on the generated code, the X86 table is exactly the same size. llvm-svn: 97514
-
Chris Lattner authored
(set GPR, somecomplexpattern) if somecomplexpattern doesn't declare what it can match. llvm-svn: 97513
-
Chris Lattner authored
llvm-svn: 97510
-
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
-
Chris Lattner authored
llvm-svn: 97508
-
Chris Lattner authored
llvm-svn: 97504
-
Chris Lattner authored
llvm-svn: 97486
-
Chris Lattner authored
with a release-asserts build on x86-64-darwin10: LLC Size: Old: 15,426,852 New: 12,759,140 (down 2.7M) LLI Size: Old: 9,926,876 New: 8,864,292 (down 1.1M) X86ISelDAGToDAG.o size: Old: 1,401,232 New: 162,868 (down 1.3M) Time to build X86ISelDAGToDAG.o: Old: 67.147u 2.060s 1:09.78 New: 4.234u 0.387s 0:04.77 llvm-svn: 97475
-
Torok Edwin authored
llvm-svn: 97472
-
Torok Edwin authored
isel (defaults it to generate comments). This reduces the size of the generated source file. llvm-svn: 97470
-
Chris Lattner authored
structural matching code to be factored and shared this shrinks the X86 isel table from 86537 to 83890 bytes. llvm-svn: 97442
-
Chris Lattner authored
This allows formation of OpcodeSwitch for top level patterns, in particular on X86. This saves about 1K of data space in the x86 table and makes the dispatch much more efficient. llvm-svn: 97440
-
Chris Lattner authored
ComplexPattern at the root be generated multiple times, once for each opcode they are part of. This encourages factoring because the opcode checks get treated just like everything else in the matcher. llvm-svn: 97439
-
Chris Lattner authored
to a scope where every child starts with a CheckOpcode, but executes more efficiently. Enhance DAGISelMatcherOpt to form it. This also fixes a bug in CheckOpcode: apparently the SDNodeInfo objects are not pointer comparable, we have to compare the enum name. llvm-svn: 97438
-
Chris Lattner authored
pair. This encourages MorphNodeTo formation, this gets us 200 more MorphNodeTo's on X86 and shrinks the table a bit. llvm-svn: 97434
-
Chris Lattner authored
slot they're recording into, no functionality change. llvm-svn: 97433
-
Chris Lattner authored
so that we get grouping at the top level. Add an optimization to reorder type check & record nodes after opcode checks. We prefer to expose tree shape matching which improves grouping and will enhance the next optimization. llvm-svn: 97432
-
Chris Lattner authored
dispatcher method. This eliminates the dependence of the new isel's generated code on the old isel's predicates, however some random hand written isel code still uses them. llvm-svn: 97431
-
Chris Lattner authored
the vtlist for emitnode. llvm-svn: 97429
-
- Feb 28, 2010
-
-
Chris Lattner authored
warnings in release-assert builds if there were no cases. llvm-svn: 97428
-