forked from OSchip/llvm-project
LoadStoreVectorizer: Check skipFunction first.
Also add test I forgot to add to r274296. llvm-svn: 274299
This commit is contained in:
parent
c73850c702
commit
079d0f19a2
|
@ -154,14 +154,14 @@ Pass *llvm::createLoadStoreVectorizerPass(unsigned VecRegSize) {
|
|||
}
|
||||
|
||||
bool LoadStoreVectorizer::runOnFunction(Function &F) {
|
||||
// Don't vectorize when the attribute NoImplicitFloat is used.
|
||||
if (skipFunction(F) || F.hasFnAttribute(Attribute::NoImplicitFloat))
|
||||
return false;
|
||||
|
||||
AliasAnalysis &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
|
||||
DominatorTree &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
|
||||
ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
|
||||
|
||||
// Don't vectorize when the attribute NoImplicitFloat is used.
|
||||
if (F.hasFnAttribute(Attribute::NoImplicitFloat) || skipFunction(F))
|
||||
return false;
|
||||
|
||||
Vectorizer V(F, AA, DT, SE, VecRegSize);
|
||||
return V.run();
|
||||
}
|
||||
|
|
|
@ -10,3 +10,13 @@ define void @optnone(i32 addrspace(1)* %out) noinline optnone {
|
|||
store i32 456, i32 addrspace(1)* %out
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK-LABEL: @do_opt(
|
||||
; CHECK: store <2 x i32>
|
||||
define void @do_opt(i32 addrspace(1)* %out) {
|
||||
%out.gep.1 = getelementptr i32, i32 addrspace(1)* %out, i32 1
|
||||
|
||||
store i32 123, i32 addrspace(1)* %out.gep.1
|
||||
store i32 456, i32 addrspace(1)* %out
|
||||
ret void
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue