cddc3e03e4ec99c0268c03a126195173e519ed58 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 (cherry picked from commit f3ef5332fa3f4d5ec72c178a2b19dac363a19383) Change-Id: Ic75dcb63191d65df1b69724576392c0aaeb47728
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
936910d9293f7118056498c75c7bca79a7fc579c |
|
05-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
596cfd045fa05c249083b5ff7cdb5e32f4d92b97 |
|
04-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Revert r191940 to see if it fixes the build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
d3562956789dbd0571a7e46052bee64b153fa7c4 |
|
04-Oct-2013 |
Craig Topper <craig.topper@gmail.com> |
Add OPC_CheckChildSame0-3 to the DAG isel matcher. This replaces sequences of MoveChild, CheckSame, MoveParent. Saves 846 bytes from the X86 DAG isel matcher, ~300 from ARM, ~840 from Hexagon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
cf458e91da31339f62130a1456f01d359ad433cb |
|
23-Sep-2013 |
Craig Topper <craig.topper@gmail.com> |
Add missing index comments to the left side of the DAG ISel matcher table for each individual case of SwitchOpcode/Type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
d07c2a5fa1fd3bee45104953714a128cf5e19158 |
|
05-Feb-2013 |
Eli Bendersky <eliben@google.com> |
Fix comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
4ffd89fa4d2788611187d1a534d2ed46adf1702c |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort the #include lines for utils/... I've tried to find main moudle headers where possible, but the TableGen stuff may warrant someone else looking at it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
af8d66ce9a9ebac0bf5629f3e39e78e57173c386 |
|
16-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Add 'virtual' keywoards to output file for overridden functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
b8d17643a5d4fc62aa420760eea92d0afdf2e46a |
|
19-Jul-2012 |
Jim Grosbach <grosbach@apple.com> |
TblGen: Tweak to pretty-print DAGISel.inc a bit better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
655b8de7b2ab773a977e0c524307e71354d8af29 |
|
05-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert assert(0) to llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
7c788888872233748da10a8177a9a1eb176c1bc8 |
|
01-Oct-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move TableGen's parser and entry point into a library This is the first step towards splitting LLVM and Clang's tblgen executables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
543790673c747ab2793fc657e239ce5f78419dc0 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Rework our internal representation of node predicates to expose more structure and fix some fixmes. We now have a TreePredicateFn class that handles all of the decoding of these things. This is an internal cleanup that has no impact on the code generated by tblgen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
4a6d735105ffac5f58499ef5a5de8713b458b233 |
|
11-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Teach TableGen to pre-calculate register enum values when creating the CodeGenRegister entries. Use this information to more intelligently build the literal register entires in the DAGISel matcher table. Specifically, use a single-byte OPC_EmitRegister entry for registers with a value of less than 256 and OPC_EmitRegister2 entry for registers with a larger value. rdar://9066491 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
9d40193d79052fb4ddd0f667f0fe47f07922c72a |
|
01-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
2d76c84514216f51526f2be123315f585995d860 |
|
01-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Generalize the register matching code in DAGISel a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
29d8f0cae425f1bba583565227eaebf58f26ce73 |
|
23-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
flags -> glue for selectiondag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
a4359be0328a91971c486b06892c742de1fa0f2b |
|
23-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
sdisel flag -> glue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
8950bcaa5aec9364bf4e7947d195c32433850816 |
|
23-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
continue renaming flag -> glue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
d847bc20b89679279e75412ddc51dc1d299da942 |
|
22-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
Rework passing parent pointers into complexpatterns, I forgot 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
78d3af47f532d67611e7d625b505fa832d713a26 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
just like they can opt into getting the root of the pattern being matched, allow ComplexPatterns to opt into getting the parent node of the operand being matched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
52a261b3c1391c5fec399ddeb3fc6ee9541e8790 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix a long standing wart: all the ComplexPattern's were being 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5759b9b8be05293e848308f01c6eeff70d2ce15d |
|
06-Aug-2010 |
Eric Christopher <echristo@apple.com> |
Moar words! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
f6c4a309844c11fc7483cc5d1c71be22b43acb56 |
|
15-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
generate better code in CheckComplexPattern git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
48e86dbe29e331357b0df11075b7974009c65f34 |
|
29-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
print the complexity of the pattern being matched in the comment in the generated table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
aa4e3391c8814c6ce0bbc530ea4d5905414b2763 |
|
28-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5d3569e93ce31052a55d6e64b7153d055d60d8e8 |
|
27-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug in my recent patch that increased opcode size to 2 bytes: the index comments nested under OPC_SwitchOpcode were off by one. This fixes the comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
d5d5a3dcbaa4e7f394ba045e2d7d0ec3aa76f50c |
|
25-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Change tblgen to emit FOOISD opcode names as two 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
084df627c82fdf4e1829723edf0a833b5bc31f89 |
|
24-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add plumbing for handling multiple result nodes in some more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
57fcd0361162ebe74d123d1d04a455c2c2b000a9 |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
so hey, it turns out that the histogram was completely wrong, because we sometimes emit nodes multiple times to string buffers to size them. Compute the histogram correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
57bf8a483edf97589c3e6085721e72fc187677a8 |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the new isel matcher to emit ComplexPattern matches 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
d1aca7c8b4ea45fbee18fc18a21ed963175dd7bc |
|
04-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
enhance comment output to specify what recorded slot numbers a ComplexPat will match into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
cfe2eab7446dedc471592fe702fefef783383171 |
|
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new SwitchTypeMatcher node (which is analogous to SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
c6d7ad3c7d83e9af29bf3ba3bf3280e72a952f98 |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Rewrite chain handling validation and input TokenFactor handling 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
38fd96731c2e2da872ff5c9a7c71869b5219eaad |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add some missing \n's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
8b30b8dd3366dce0bc486376eed221148a9ce1dd |
|
02-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fixme resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
e60f7b4412409f2ba641dd85c3aa1d06e005380d |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove a little hack I did for the old isel, not needed now that it is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5520ad4dd9e3e726f96cf2c32c2b90f9467ff783 |
|
01-Mar-2010 |
Torok Edwin <edwintorok@gmail.com> |
Missed a \n in previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5c7fc88b5534007c4a2e7b062b0d33fc060e75d6 |
|
01-Mar-2010 |
Torok Edwin <edwintorok@gmail.com> |
Add command-line flag to tblgen to turn off generating comments for the new isel (defaults it to generate comments). This reduces the size of the generated source file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
fa342faef9d1c89de356ed83a6c6529ed3e87610 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the CheckMultiOpcodeMatcher code and have each 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
eb66921adb943ea841e72c8eee4777607c48b70e |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add a new OPC_SwitchOpcode which is semantically equivalent 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
0cebe6181af8a2cf5e6cf9497cda4c47b426a0f8 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
enhance RecordNode and RecordChild comments to indicate what slot they're recording into, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
4d0c931ba7758a98864dc7e968a10df7fed7ab70 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
inline the node transforms and node predicates into the generated 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
ccd23cc2a49f02acbcdd50128a9022477f7cb6a4 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
simplify some code now that chain/flag results are not stored in the vtlist for emitnode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
d20c0bc5698688f69e52dc4d19cedfcd973a7088 |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
don't emit useless functions. These were producing warnings in release-assert builds if there were no cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5310654dc56c64b726bba7da82d568137ec81bbc |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
change a few opcodes to use VBRs instead of embedding immediate sizes into the opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
ff7fb60f2a7e2f3efd54df6480aadcb4adf5cab7 |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
enhance the EmitNode/MorphNodeTo operands to take a bit that specifies whether there is an output flag or not. Use this instead of redundantly encoding the chain/flag results in the output vtlist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
9a21500edc485a2c383a03fba429943f031c1398 |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
use MorphNodeTo instead of SelectNodeTo. SelectNodeTo is just a silly wrapper around MorphNodeTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
c78f2a39945339752a163949a2d7c27f28635d99 |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
enhance the new isel to use SelectNodeTo for most patterns, 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
6281cda6737bcda0e924318ddcce28392001691e |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
enhance EmitNodeMatcher to keep track of the recorded slot numbers it will populate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
e86097af5598e44727875f00e492d43c978239be |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add infrastructure to support forming selectnodeto. Not used yet because I have to go on another detour first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
a230f9623d864450d432bb76c397b0cb35a3437e |
|
27-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
change CheckOpcodeMatcher to hold the SDNodeInfo instead of the opcode name. This gives the optimizer more semantic info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5a56e5c82aec731cac58db5a86276d526f97a6e2 |
|
26-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add some helpful comments to the emitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
d6c84720df0b63e34081e0c7890f3074d8b110b9 |
|
25-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
change the scope node to include a list of children to be checked 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
499622b2b1555173006f478bcd8bb8d7c51782f2 |
|
25-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
b21ba71045420b4c0dc5f30e85b9b01c9165eb57 |
|
25-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
rename fooMatcherNode to fooMatcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
60df53e30a7e39c884f4ca4eb03346bea5825109 |
|
25-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
rename PushMatcherNode -> ScopeMatcherNode to more accurately reflect what it does. Switch the sense of the Next and the Check arms to be more logical. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
23cfda719e059ce7d761b08fbfb89e676d6c9737 |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
contract movechild+checktype into a new checkchild node, shrinking the x86 table by 1200 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
09b9f3928ee43fdc5af5ee6f4b5ce6d21db0daee |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
emit a histogram of the opcodes in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
c84edb7bdd345db280c908583d55bdf4e670a225 |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Since the new instruction selector now works, I don't need to keep the old one around for comparative purposes: have the ENABLE_NEW_ISEL #define (which is not enabled on mainline) stop emitting the old isel at all, yay for build time win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
19b5a7590b784f19875b9880ea8838c393431656 |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
implement a simple proof-of-concept optimization for the new isel: fold movechild+record+moveparent into a single recordchild N node. This shrinks the X86 table from 125443 to 117502 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
02f73585f7d018ea3ddcda88c8273ee4e5ea4de3 |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
The new isel was not properly handling patterns that covered internal nodes with flag results. Record these with a new OPC_MarkFlagResults opcode and use this to update the interior nodes' flag results properly. This fixes CodeGen/X86/i256-add.ll with the new isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
860d4a787f28f5f31e0c172e2ab80f5ab93cbf9b |
|
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
really fix an off-by-one error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5007e1e43541114f3737939234104b085fbe4aca |
|
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
switch the value# in OPC_CompleteMatch and OPC_EmitNode to use a VBR encoding for the insanity being perpetrated by the spu backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
3e22f2d489d6d1cff5123ae606cdea10d2c631f6 |
|
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add a new Push2 opcode for targets (like cellspu) which have ridiculously ginormous patterns and need more than one byte of displacement for encodings. This fixes CellSPU/fdiv.ll. SPU is still doing something else ridiculous though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
12a667c1e8fa57a13ae751164b6dd4412a62dc5d |
|
22-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add a new CheckMultiOpcode opcode for checking that a node has one of the list of acceptable opcodes for a complex pattern. This fixes 4 regtest failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
8fbad244bd436163296d81d4f182750e000fd16d |
|
21-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
emit table indexes before each row so that it is debuggable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
bef2a515f61d2f2cd57fe6a29f8d288631a777bd |
|
21-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a table size miscomputation, target opcodes are 2 bytes. With this, the matcher actually works reasonably well, but crashes on larger examples in the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
984e18823e863f2232ccf63f7e84b878dbd55b6f |
|
21-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
emit to the right streams, to avoid emitting the push body before the push. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
77f2e2724dc488bbf032e87f8f25f333730a0fb5 |
|
21-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
implement the last known missing feature: updating uses of results of the matched pattern to use the newly created node results. Onto the "making it actually work" phase! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
8e946bea146c15333ce5f9f1b7a9efe5e75fd892 |
|
21-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Lots of improvements to the new dagisel emitter. This gets it to the point where it is to the 95% feature complete mark, it just needs result updating to be done (then testing, optimization etc). More specificallly, this adds support for chain and flag handling on the result nodes, support for sdnodexforms, support for variadic nodes, memrefs, pinned physreg inputs, and probably lots of other stuff. In the old DAGISelEmitter, this deletes the dead code related to OperatorMap, cleans up a variety of dead stuff handling "implicit remapping" from things like globaladdr -> targetglobaladdr (which is no longer used because globaladdr always needs to be legalized), and some minor formatting fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
906b4995eeab9e6b6fd11a492498c95bba1ce0af |
|
19-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add emitter support for integer constants and simple physreg references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
845c04273461b2a10754a1455b02916a19ea72aa |
|
18-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add support for referencing registers and immediates, building the tree to represent them but not emitting table entries for them yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
b49985a8499e18675db7e9baf920d6ef4e2b65cf |
|
18-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
start sketching out the structure of code for result emission generation. Nothing real here yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
bd8227f5298f0ab7b96203a6d3875e5d26573376 |
|
18-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
rename the child field to 'next'. This is not a parent/child relationship, this is a linear list relationship. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
8ef9c7958ad7a23ad15d7ff59e1377aec10ca42a |
|
18-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate the MatcherNodeWithChild class, give the 'child' field to MatcherNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
781f359c1a7f590c4f8828ad9d542606c3a0ee12 |
|
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
improve comments, the matcher is now feature complete, on to codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
9a747f1305e76025df2323a03b805a284f2cde77 |
|
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Emulate the current isel's "IsChainCompatible" logic for now. I'd like to eventually rip it out, but for now producing the same selections as the old matcher is more important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
c96087b3433582f1c2bdb4f0ad3dad7f0b350339 |
|
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
improve comments on OPC_Record to say what we're recording a node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
5be6e5990b1da82e31f4236d1b392e52637cbe2e |
|
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
improve comments in generated matcher a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
e609a513f3c072bba28412c681465332a2822d9a |
|
17-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make the new isel generator plop out a CheckComplexPattern function for evaluating complex patterns. Some cleanup has to happen before this can be used though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
21390d79843050ae8b3226860cadc16ff51d0dcf |
|
16-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
convert the new matcher to check intermediate nodes for a single use and only call IsProfitableToFold/IsLegalToFold on the load being folded, like the old dagiselemitter does. This substantially simplifies the code and improves opportunities for sharing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
050a03d0f31ee7033d0459dae3c95b8bf12bff89 |
|
16-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
generate code for node and pattern predicates. Note that this won't build if enabled, it will fail with constness issues. I'll resolve these next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
e02ea54cfd71dee378ca6b11243710d1760ea7c1 |
|
16-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
refactor some code into a local class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
e39650a805425ffdbd79692c7d1bad80f7332dae |
|
16-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add support for the new isel matcher to generate (isprofitable|islegal)tofold checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|
da272d1a704bd564272e88cbdbcf14712e3abbdc |
|
15-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Check in the first big step of rewriting DAGISelEmitter to produce a table based matcher instead of gobs of C++ Code. Though it's not done yet, the shrinkage seems promising, the table for the X86 ISel is 75K and still has a lot of optimization to come (compare to the ~1.5M of .o generated the old way, much of which will go away). The code is currently disabled by default (the #if 0 in DAGISelEmitter.cpp). When enabled it generates a dead SelectCode2 function in the DAGISel Header which will eventually replace SelectCode. There is still a lot of stuff left to do, which are documented with a trail of FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
|