diff options
author | Chris Lattner <sabre@nondot.org> | 2010-11-30 00:28:45 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-11-30 00:28:45 +0000 |
commit | 201d1e56bb7535802c70d5eb46601afcc325045d (patch) | |
tree | 06126f5e9e4f595a6bf9392503975886c6ddfdb3 /lib/Analysis/BasicAliasAnalysis.cpp | |
parent | 532c2f1d503a42c5e8e0c5c9a513c459fed73d25 (diff) |
Teach basicaa that memset's modref set is at worst "mod" and never
contains "ref".
Enhance DSE to use a modref query instead of a store-specific hack
to generalize the "ignore may-alias stores" optimization to handle
memset and memcpy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120368 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r-- | lib/Analysis/BasicAliasAnalysis.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp index bf1b689587..3e63424090 100644 --- a/lib/Analysis/BasicAliasAnalysis.cpp +++ b/lib/Analysis/BasicAliasAnalysis.cpp @@ -703,6 +703,8 @@ BasicAliasAnalysis::getModRefInfo(ImmutableCallSite CS, if (isNoAlias(Location(Dest, Len), Loc)) return NoModRef; } + // We know that memset doesn't load anything. + Min = Mod; break; case Intrinsic::atomic_cmp_swap: case Intrinsic::atomic_swap: |