<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
<div class="moz-cite-prefix">On 07/02/2018 12:27 PM, Tyler Nowicki
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAAJ+206OLsH1FyrkArVDP9ZhfyyqF0Wavbs_QZf1panRYL7ZwA@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">Hi Michael, Hal,
<div><br>
</div>
<div>Sorry it has been a while since I looked at this. My memory
is a little fuzzy. The intent of 'assume_safety' is to tell
LAA to skip dependency checking on loads and stores so the
vectorizer doesn't stop as soon as it sees both in a loop. At
the time 'assume_safety' was implemented the vectorizer was
limited to inner-loops. I am not up-to-date but it seems to
have the ability to perform some vectorization of non-inner
loop instructions? <br>
</div>
</div>
</blockquote>
<br>
The infrastructure to support outer loops is under active
development.<br>
<br>
<blockquote type="cite"
cite="mid:CAAJ+206OLsH1FyrkArVDP9ZhfyyqF0Wavbs_QZf1panRYL7ZwA@mail.gmail.com">
<div dir="ltr">
<div><br>
</div>
<div>If we can vectorize non-inner loop instructions then what
behavior would make the most sense: 'assume_safety' applies to
the same loop scope(s) as the other loop pragmas, or it
applies to all nested loops?</div>
<div><br>
</div>
<div>My opinion is that <span
style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">for
consistency</span>
'assume_safety' and similar options apply to the same scope(s)
as 'vectorize(enable)'. But I am open to alternatives if
others see it differently.</div>
</div>
</blockquote>
<br>
I agree. Should apply to the entire single loop under the pragma.
This proposed change is consistent with that.<br>
<br>
-Hal<br>
<br>
<blockquote type="cite"
cite="mid:CAAJ+206OLsH1FyrkArVDP9ZhfyyqF0Wavbs_QZf1panRYL7ZwA@mail.gmail.com">
<div dir="ltr">
<div><br>
</div>
<div>Tyler Nowicki</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Mon, Jul 2, 2018 at 10:44 AM Michael Kruse via
Phabricator <<a href="mailto:reviews@reviews.llvm.org"
target="_blank" moz-do-not-send="true">reviews@reviews.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">Meinersbur
added a comment.<br>
<br>
In <a href="https://reviews.llvm.org/D48808#1149534"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D48808#1149534</a>,
@ABataev wrote:<br>
<br>
> I don't think that this is the intended behavior of the
`#pragma clang loop`. it is better to ask the author of this
pragma is this correct or not.<br>
<br>
<br>
I understand it as the intended behavior of the
`assume_safety` option (also used for `#pragma omp simd`).<br>
<br>
@tyler.nowicki What is the intended behaviour?<br>
<br>
<br>
Repository:<br>
rC Clang<br>
<br>
<a href="https://reviews.llvm.org/D48808" rel="noreferrer"
target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D48808</a><br>
<br>
<br>
<br>
</blockquote>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</body>
</html>