LLVM backend for 6502
Go to file
Chris Lattner 24011be956 Speed up the mem2reg transform for allocas which are only read/written in a single
basic block.  This is amazingly common in code generated by the C/C++ front-ends.
This change makes it not have to insert ANY phi nodes, whereas before it would insert
a ton of dead ones which DCE would have to clean up.

Thus, this fix improves compile-time performance of these trivial allocas in two ways:
  1. It doesn't have to do the walking and book-keeping for renaming
  2. It does not insert dead phi nodes for them which would have to
     subsequently be cleaned up.

On my favorite testcase from 252.eon, this special case handles 305 out of
356 promoted allocas in the function.  It speeds up the mem2reg pass from 7.5256s
to 1.2505s.  It inserts 677 fewer dead PHI nodes, which speeds up a subsequent
-dce pass from 18.7524s to 2.4806s.

There are still 120 trivially dead PHI nodes being inserted for variables used
in multiple basic blocks, but they are not handled by this patch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8881 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-05 20:54:03 +00:00
autoconf Removed the check for purify as we don't support its use at present. 2003-10-02 19:02:30 +00:00
docs The sparc backend now support invoke, but still doesn't support unwind 2003-10-05 19:17:10 +00:00
examples/ModuleMaker Checkin of autoconf-style object root. 2003-09-06 15:03:24 +00:00
include Add new prototype for createLowerInvokePass(). Make simplifycfg be a 2003-10-05 19:15:13 +00:00
lib Speed up the mem2reg transform for allocas which are only read/written in a single 2003-10-05 20:54:03 +00:00
projects Checkin of autoconf-style object root. 2003-09-06 15:03:24 +00:00
runtime Fix building outside the srcdir, again 2003-09-15 19:22:36 +00:00
test Constants are not getting merged together correctly when types are resolved 2003-10-04 18:27:51 +00:00
tools Add a file header 2003-09-30 18:28:53 +00:00
utils The support directory no longer exists 2003-10-05 19:33:27 +00:00
.cvsignore Ok, try #2, this time I'll not be stupid 2003-08-03 18:33:24 +00:00
configure Removed the check for purify as we don't support its use at present. 2003-10-02 19:02:30 +00:00
CREDITS.TXT Update email addr 2003-09-23 20:59:28 +00:00
LICENSE.TXT Add prerelease license to cvs 2003-06-04 19:46:36 +00:00
Makefile Revert back to keeping Burg and TableGen in the utils directory 2003-10-05 19:28:27 +00:00
Makefile.common Checkin of autoconf-style object root. 2003-09-06 14:44:17 +00:00
Makefile.config.in Fixed SPEC so that it would run correctly with the new autoconf-style object 2003-09-11 18:03:50 +00:00
Makefile.rules Fixed the conditional targets for postscript files and tags. 2003-10-02 19:02:02 +00:00