diff options
author | Chris Lattner <sabre@nondot.org> | 2010-11-30 07:23:21 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-11-30 07:23:21 +0000 |
commit | cf82dc376a11acb1b5d46d56c032bb0b9326c682 (patch) | |
tree | 5465dd3586d482a9c497d0d4a84f94b3d44581b0 /include/llvm | |
parent | c413330c99a573ef3ffe80a46400b1d3eca2398d (diff) | |
download | external_llvm-cf82dc376a11acb1b5d46d56c032bb0b9326c682.zip external_llvm-cf82dc376a11acb1b5d46d56c032bb0b9326c682.tar.gz external_llvm-cf82dc376a11acb1b5d46d56c032bb0b9326c682.tar.bz2 |
Rewrite the main DSE loop to be written in terms of reasoning
about pairs of AA::Location's instead of looking for MemDep's
"Def" predicate. This is more powerful and general, handling
memset/memcpy/store all uniformly, and implementing PR8701 and
probably obsoleting parts of memcpyoptimizer.
This also fixes an obscure bug with init.trampoline and i8
stores, but I'm not surprised it hasn't been hit yet. Enhancing
init.trampoline to carry the size that it stores would allow
DSE to be much more aggressive about optimizing them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120406 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Analysis/MemoryDependenceAnalysis.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/llvm/Analysis/MemoryDependenceAnalysis.h b/include/llvm/Analysis/MemoryDependenceAnalysis.h index c9c8116..4d5dd19 100644 --- a/include/llvm/Analysis/MemoryDependenceAnalysis.h +++ b/include/llvm/Analysis/MemoryDependenceAnalysis.h @@ -47,6 +47,9 @@ namespace llvm { /// pair holds the instruction that clobbers the memory. For example, /// this occurs when we see a may-aliased store to the memory location we /// care about. + /// + /// A dependence query on the first instruction of the entry block will + /// return a clobber(self) result. Clobber, /// Def - This is a dependence on the specified instruction which |