Check in the first big step of rewriting DAGISelEmitter to
authorChris Lattner <sabre@nondot.org>
Mon, 15 Feb 2010 08:04:42 +0000 (08:04 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 15 Feb 2010 08:04:42 +0000 (08:04 +0000)
commitda272d1a704bd564272e88cbdbcf14712e3abbdc
tree0f0a021cb55a151c44523e3f593bbc347f3e7e7a
parent9f06cb4fe5214c93cbe68b5359b43891875b30e5
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
include/llvm/CodeGen/DAGISelHeader.h
utils/TableGen/CMakeLists.txt
utils/TableGen/DAGISelEmitter.cpp
utils/TableGen/DAGISelMatcher.cpp [new file with mode: 0644]
utils/TableGen/DAGISelMatcher.h [new file with mode: 0644]
utils/TableGen/DAGISelMatcherEmitter.cpp [new file with mode: 0644]
utils/TableGen/DAGISelMatcherGen.cpp [new file with mode: 0644]