Commit Graph

81 Commits

Author SHA1 Message Date
Owen Anderson c201cbc802 Add a flag to mark a dirty cache entry. This is not yet used, but will eventually
help non-local memdep caching.

llvm-svn: 42137
2007-09-19 16:13:57 +00:00
Owen Anderson f9203ab36a Fix a typo in memdep, which was causing PR1648.
llvm-svn: 41833
2007-09-11 04:31:00 +00:00
Owen Anderson 82e4fa1020 Remove an un-needed dependence query. This improves compile time marginally on 401.bzip2.
llvm-svn: 41792
2007-09-09 21:43:49 +00:00
Owen Anderson 5f208bea91 Cache non-local memory dependence analysis. This is a significant compile
time performance win in most cases.

llvm-svn: 41126
2007-08-16 21:27:05 +00:00
Owen Anderson 9b1cc8cac0 Make NonLocal and None const in the right way. :-)
llvm-svn: 40961
2007-08-09 04:42:44 +00:00
Owen Anderson 2b21c3c7a8 Add more comments to memdep.
llvm-svn: 40953
2007-08-08 22:26:03 +00:00
Owen Anderson fa788358d5 Make memdep fit in 80 cols.
llvm-svn: 40950
2007-08-08 22:01:54 +00:00
Owen Anderson b84d3b1c92 Change the None and NonLocal markers in memdep to be const.
llvm-svn: 40946
2007-08-08 21:39:39 +00:00
Owen Anderson 68c6732d2c Clean up a bunch of caching stuff in memdep. This reduces the time to run GVN
on 403.gcc from ~15s to ~10s.

llvm-svn: 40884
2007-08-07 00:33:45 +00:00
Owen Anderson 4898513d96 Improve the accuracy of memdep for determining the dependencies of loads.
This brings GVN to parity with GCSE+LoadVN.

llvm-svn: 40882
2007-08-06 23:26:03 +00:00
Owen Anderson 0ac1fc8ac1 Fix a bug that was causing several miscompilations on SPEC.
llvm-svn: 40746
2007-08-02 17:56:05 +00:00
Owen Anderson c321e5e272 Make non-local memdep not be recursive, and fix a bug on 403.gcc that this exposed.
llvm-svn: 40692
2007-08-01 22:01:54 +00:00
David Greene 87801e8773 Fix GLIBCXX_DEBUG error owing to dereference of end iterator. There's
no guarantee that an instruction returned by getDependency exists in
the maps.

llvm-svn: 40647
2007-07-31 20:01:27 +00:00
Owen Anderson 212d5c27f6 Use more caching when computing non-local dependence. This makes bzip2 not
use up the entire 32-bit address space.

llvm-svn: 40596
2007-07-30 17:29:24 +00:00
Owen Anderson 0f692f27a3 Fix a bug introduced in my last commit.
llvm-svn: 40542
2007-07-26 18:57:04 +00:00
Owen Anderson dbf23ccaa0 Fix a couple more bugs in the phi construction by pulling in code that does
almost the same things from LCSSA.

llvm-svn: 40540
2007-07-26 18:26:51 +00:00
Owen Anderson 9b796348bd Fix a bug in non-local memdep that was causing an infinite loop on 175.vpr.
llvm-svn: 40495
2007-07-25 21:26:36 +00:00
Owen Anderson 5e5599b7ce Add basic support for performing whole-function RLE.
Note: This has not yet been thoroughly tested.  Use at your own risk.

llvm-svn: 40489
2007-07-25 19:57:03 +00:00
Owen Anderson d998be79cc Add initial support for non-local memory dependence analysis.
NOTE: This has only been cursorily tested.  Expected improvements soon.

llvm-svn: 40476
2007-07-24 21:52:37 +00:00
Owen Anderson edb926bfe3 When removing instructions from the analysis, be sure to check the confirmed
flag when determining what to do with dependencies.

llvm-svn: 40079
2007-07-20 06:16:07 +00:00
Owen Anderson 7fcaaadf1c Add support for walking up memory def chains, which enables finding many more
dead stores on 400.perlbench.

llvm-svn: 39929
2007-07-16 21:52:50 +00:00
Owen Anderson 1e1bace52b Let MemoryDependenceAnalysis take care of updating AliasAnalysis.
llvm-svn: 39769
2007-07-12 00:06:21 +00:00
Owen Anderson c432490b4c Calculate the size of a array allocation correctly.
llvm-svn: 38511
2007-07-10 20:48:38 +00:00
Owen Anderson faf9e42479 Fix a crasher when finding the dependency of a call.
llvm-svn: 38510
2007-07-10 20:39:07 +00:00
Owen Anderson 1279eaf776 Make this pass registration static as well.
llvm-svn: 38509
2007-07-10 20:21:08 +00:00
Owen Anderson 1fa6132e85 Handle vaarg instructions correctly.
llvm-svn: 38504
2007-07-10 18:43:15 +00:00
Owen Anderson 94a21dd1e0 Volatile loads and stores depend on each other.
llvm-svn: 38502
2007-07-10 18:11:42 +00:00
Owen Anderson 9c88457abe Add support for finding the dependencies of call and invoke instructions.
llvm-svn: 38497
2007-07-10 17:59:22 +00:00
Owen Anderson 2552a12e65 Fix the build, and fix the handling of pointer sizes.
llvm-svn: 38494
2007-07-10 17:25:03 +00:00
Owen Anderson 47352db672 Fix a bunch of things from Chris' feedback
llvm-svn: 38493
2007-07-10 17:08:11 +00:00
Owen Anderson c0daf5fe53 A first stab at memory dependence analysis. This is an interface on top of
alias analysis, adding caching and lazy computation of queries.  This will
be used in planned improvements to memory access optimizations.

llvm-svn: 37958
2007-07-06 23:14:35 +00:00