summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/DAGISelMatcherOpt.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* switch from my nice hashtable based merging solution to aChris Lattner2010-02-261-66/+22
| | | | | | | | gross little neighbor merging implementation. This one has the benefit of not violating the ordering of patterns, so it generates code that passes tests again. llvm-svn: 97218
* finish off the factoring optimization along the lines of the Chris Lattner2010-02-261-11/+32
| | | | | | | | | | current design. This generates a matcher that successfully runs, but it turns out that the factoring we're doing violates the ordering of patterns, so we end up matching (e.g.) movups where we want movaps. This won't due, but I'll address this in a follow on patch. It's nice to not be on by default yet! :) llvm-svn: 97215
* change the scope node to include a list of children to be checkedChris Lattner2010-02-251-17/+22
| | | | | | | | | 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
* Implement the first half of redundancy factoring: efficiently Chris Lattner2010-02-251-4/+89
| | | | | | | | | splitting all the patterns under scope nodes into equality sets based on their first node. The second step is to rewrite the graph info a form that exposes the sharing. Before I do this, I want to redesign the Scope node. llvm-svn: 97130
* rename fooMatcherNode to fooMatcher.Chris Lattner2010-02-251-20/+20
| | | | llvm-svn: 97096
* add some noop code to push it out of my tree.Chris Lattner2010-02-251-0/+23
| | | | llvm-svn: 97094
* rename PushMatcherNode -> ScopeMatcherNode to more accuratelyChris Lattner2010-02-251-11/+10
| | | | | | | reflect what it does. Switch the sense of the Next and the Check arms to be more logical. No functionality change. llvm-svn: 97093
* contract movechild+checktype into a new checkchild node, shrinking theChris Lattner2010-02-241-4/+11
| | | | | | x86 table by 1200 bytes. llvm-svn: 97053
* split the movechild/record/moveparent -> recordchild optzn into aChris Lattner2010-02-241-16/+22
| | | | | | | | movechild/record -> recordchild/movechild and movechild/moveparent -> noop xforms. This slightly shrinks the tables (x86 to 117454) and enables adding future improvements. llvm-svn: 97051
* implement a simple proof-of-concept optimization forChris Lattner2010-02-241-2/+31
| | | | | | | | the new isel: fold movechild+record+moveparent into a single recordchild N node. This shrinks the X86 table from 125443 to 117502 bytes. llvm-svn: 97031
* The new isel passes all tests, time to start making it go fast.Chris Lattner2010-02-241-0/+19
Also add an easy macro at the top of DAGISelEmitter.cpp to enable it. Lets see if I can avoid accidentally turning it on :) llvm-svn: 97029
OpenPOWER on IntegriCloud