[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