LLVM backend for 6502
Go to file
Vikram S. Adve 78bbec7fcb Implement 2 important changes: (1) rematerialization from the globals graph,
and (2) faster inlining by cloning only reachable nodes.  In particular:
(1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes
    to clone the subgraph reachable from a set of root nodes, into the
    current graph, merging the global nodes into thos in the current graph.
    The TD pass now uses this for faster inlining, and so does the
    next function.
(2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
    globals graph into the current graph in both BU and TD passes.
(3) `I' flags are removed from all nodes in the globals graph, because they
    are difficult to maintain correctly and are not needed anyway.
(4) Aux. function calls are only removed to the globals graph if they
    will never be resovled.  (This is what fixed gap.)  The immediate
    reason is that if we took these out of a function (and moved them to
    the globals graph) we would need to rematerialize these nodes into the
    function graph for every function in the BU pass.  The longer term
    problem is that we would need to find a way to remove them from the
    globals graph iff they have been resolved on all paths through the
    call graph.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7187 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16 21:36:31 +00:00
docs The word separate' only has one e'. 2003-07-14 17:20:40 +00:00
include The word separate' only has one e'. 2003-07-14 17:20:40 +00:00
lib Implement 2 important changes: (1) rematerialization from the globals graph, 2003-07-16 21:36:31 +00:00
projects Adding in sample project tree. 2003-06-30 22:13:48 +00:00
runtime Use uint32_t for table index and size: table will never be > 4GB. 2003-07-11 22:02:28 +00:00
support Fixed a bug: outputting name of variable instead of its value. 2003-07-15 21:26:09 +00:00
test *** empty log message *** 2003-07-10 19:32:38 +00:00
tools The word separate' only has one e'. 2003-07-14 17:20:40 +00:00
utils Fixed a bug: outputting name of variable instead of its value. 2003-07-15 21:26:09 +00:00
aclocal.m4 Merged in changes from PRE101 in the prerelease branch. 2003-07-14 16:52:07 +00:00
config.guess Merged in changes from PRE101 in the prerelease branch. 2003-07-14 16:52:07 +00:00
config.sub Merged in changes from PRE101 in the prerelease branch. 2003-07-14 16:52:07 +00:00
configure Merged in changes from PRE101 in the prerelease branch. 2003-07-14 16:52:07 +00:00
configure.ac Removed the --enable-profiling option (again). 2003-07-02 20:49:38 +00:00
install-sh Merged in autoconf branch. This provides configuration via the autoconf 2003-06-30 21:59:07 +00:00
LICENSE.TXT
ltmain.sh Merged in changes from PRE101 in the prerelease branch. 2003-07-14 16:52:07 +00:00
Makefile
Makefile.common Marked some of the phony targets are PHONY. This will hopefully speed 2003-07-16 20:26:06 +00:00
Makefile.config.in The word open' was really intended to be option'. 2003-07-02 21:20:04 +00:00
Makefile.rules Marked some of the phony targets are PHONY. This will hopefully speed 2003-07-16 20:26:06 +00:00
mkinstalldirs Merged in autoconf branch. This provides configuration via the autoconf 2003-06-30 21:59:07 +00:00