- Sep 22, 2010
-
-
Chris Lattner authored
that complex patterns are matched after the entire pattern has a structural match, therefore the NodeStack isn't in a useful state when the actual call to the matcher happens. llvm-svn: 114489
-
- Sep 21, 2010
-
-
Chris Lattner authored
matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. llvm-svn: 114472
-
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
-
- Aug 06, 2010
-
-
Eric Christopher authored
llvm-svn: 110422
-
- Jun 15, 2010
-
-
Chris Lattner authored
llvm-svn: 105970
-
- Mar 29, 2010
-
-
Chris Lattner authored
comment in the generated table. llvm-svn: 99794
-
- Mar 28, 2010
-
-
Chris Lattner authored
1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. llvm-svn: 99740
-
- Mar 27, 2010
-
-
Chris Lattner authored
the index comments nested under OPC_SwitchOpcode were off by one. This fixes the comments. llvm-svn: 99722
-
- Mar 25, 2010
-
-
Chris Lattner authored
bytes instead of one byte. This is important because we're running up to too many opcodes to fit in a byte and it is aggrevated by FIRST_TARGET_MEMORY_OPCODE making the numbering sparse. This just bites the bullet and bloats out the table. In practice, this increases the size of the x86 isel table from 74.5K to 76K. I think we'll cope :) This fixes rdar://7791648 llvm-svn: 99494
-
- Mar 24, 2010
-
-
Chris Lattner authored
in some more places. llvm-svn: 99366
-
- 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
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
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
-
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
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
slot they're recording into, no functionality change. llvm-svn: 97433
-
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
-
Chris Lattner authored
immediate sizes into the opcode. llvm-svn: 97423
-
Chris Lattner authored
specifies whether there is an output flag or not. Use this instead of redundantly encoding the chain/flag results in the output vtlist. llvm-svn: 97419
-
Chris Lattner authored
is just a silly wrapper around MorphNodeTo. llvm-svn: 97416
-
Chris Lattner authored
even some the old isel didn't. There are several parts of this that make me feel dirty, but it's no worse than the old isel. I'll clean up the parts I can do without ripping out the old one next. llvm-svn: 97415
-
Chris Lattner authored
it will populate. llvm-svn: 97363
-
Chris Lattner authored
because I have to go on another detour first. llvm-svn: 97362
-
- Feb 27, 2010
-
-
Chris Lattner authored
the opcode name. This gives the optimizer more semantic info. llvm-svn: 97346
-
- Feb 26, 2010
-
-
Chris Lattner authored
llvm-svn: 97219
-
- Feb 25, 2010
-
-
Chris Lattner authored
instead of to have a chained series of scope nodes. This makes the generated table smaller, improves the efficiency of the interpreter, and make the factoring optimization much more reasonable to implement. llvm-svn: 97160
-
Chris Lattner authored
llvm-svn: 97097
-
Chris Lattner authored
llvm-svn: 97096
-
Chris Lattner authored
reflect what it does. Switch the sense of the Next and the Check arms to be more logical. No functionality change. llvm-svn: 97093
-
- Feb 24, 2010
-
-
Chris Lattner authored
x86 table by 1200 bytes. llvm-svn: 97053
-
Chris Lattner authored
llvm-svn: 97047
-