diff options
author | Chris Lattner <sabre@nondot.org> | 2011-04-26 22:42:01 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-04-26 22:42:01 +0000 |
commit | cb5fd743a95898ddefd75b6d104f5e91c0d50b23 (patch) | |
tree | 77e606ba67cec80a4d3015c2f4cb86bad93eccdc /lib/Analysis/ScalarEvolution.cpp | |
parent | 9f4b893b84d9c2b56aa2abc3c96ce1e5ccc465e5 (diff) | |
download | external_llvm-cb5fd743a95898ddefd75b6d104f5e91c0d50b23.tar.gz external_llvm-cb5fd743a95898ddefd75b6d104f5e91c0d50b23.tar.bz2 external_llvm-cb5fd743a95898ddefd75b6d104f5e91c0d50b23.zip |
Enhance memdep to return clobber relation between noalias loads when
an earlier load could be widened to encompass a later load. For example,
if we see:
X = load i8* P, align 4
Y = load i8* (P+3), align 1
and we have a 32-bit native integer type, we can widen the former load
to i32 which then makes the second load redundant. GVN can't actually
do anything with this load/load relation yet, so this isn't testable, but
it is the next step to resolving PR6627, and a fairly general class of
"merge neighboring loads" missed optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130250 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ScalarEvolution.cpp')
0 files changed, 0 insertions, 0 deletions