[polly] r342010 - [ScopDetection] Use addUnknown for calls in the AliasSetTracker.
Eli Friedman via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 11 16:48:14 PDT 2018
Author: efriedma
Date: Tue Sep 11 16:48:14 2018
New Revision: 342010
URL: http://llvm.org/viewvc/llvm-project?rev=342010&view=rev
Log:
[ScopDetection] Use addUnknown for calls in the AliasSetTracker.
The general-purpose add() now sometimes adds unexpected loop-variant
pointers to the AliasSetTracker, so certain loops would be rejected with
-polly-allow-modref-calls. Use addUnknown() instead, which has the old
behavior.
I'm not completely convinced the resulting behavior is actually
correct: ScopDetection::isValidAccess seems to mostly ignore
"unknown" instructions in the AliasSetTracker. But it's not any worse
than what was happening before.
Committing without pre-commit review to unbreak the buildbots; the
following tests were failing:
test/ScopInfo/mod_ref_access_pointee_arguments.ll
test/ScopInfo/mod_ref_read_pointee_arguments.ll
test/ScopInfo/multidim_2d_with_modref_call_2.ll
Modified:
polly/trunk/lib/Analysis/ScopDetection.cpp
Modified: polly/trunk/lib/Analysis/ScopDetection.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopDetection.cpp?rev=342010&r1=342009&r2=342010&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopDetection.cpp (original)
+++ polly/trunk/lib/Analysis/ScopDetection.cpp Tue Sep 11 16:48:14 2018
@@ -717,7 +717,9 @@ bool ScopDetection::isValidCallInst(Call
// Implicitly disable delinearization since we have an unknown
// accesses with an unknown access function.
Context.HasUnknownAccess = true;
- Context.AST.add(&CI);
+ // Explicitly use addUnknown so we don't put a loop-variant
+ // pointer into the alias set.
+ Context.AST.addUnknown(&CI);
return true;
case FMRB_OnlyReadsArgumentPointees:
case FMRB_OnlyAccessesArgumentPointees:
@@ -740,7 +742,9 @@ bool ScopDetection::isValidCallInst(Call
Context.HasUnknownAccess = true;
}
- Context.AST.add(&CI);
+ // Explicitly use addUnknown so we don't put a loop-variant
+ // pointer into the alias set.
+ Context.AST.addUnknown(&CI);
return true;
case FMRB_DoesNotReadMemory:
case FMRB_OnlyAccessesInaccessibleMem:
More information about the llvm-commits
mailing list