[polly] r342010 - [ScopDetection] Use addUnknown for calls in the AliasSetTracker.
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 13 08:17:06 PDT 2018
Thanks for taking care.
Michael
Am Di., 11. Sep. 2018 um 18:49 Uhr schrieb Eli Friedman via
llvm-commits <llvm-commits at lists.llvm.org>:
>
> 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:
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list