<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Matthias,<div><br></div><div>0001:</div><div>LGTM.</div><div><br></div><div>0002:</div><div><div>Unless I am missing the semantic of CHECK-DAG, this seems wrong:</div><div>+;CHECK-DAG: <span class="Apple-tab-span" style="white-space:pre">       </span>str<span class="Apple-tab-span" style="white-space:pre"> </span>r0, [sp, #8]</div><div>+;CHECK-DAG: <span class="Apple-tab-span" style="white-space:pre">    </span>add<span class="Apple-tab-span" style="white-space:pre"> </span>r0, sp, #8</div><div>How could a str-add sequence with a write-after-read dependency be semantically equivalent to a add-str with a read-after-write dependency?</div><div><br></div><div>At several places, you’ve replaced:</div><div>r0, r1, etc.</div><div>by</div><div>{{r[0-9]+}}</div><div>I didn’t check all the places, but in some of them, r0, r1, etc. directly come from the ABI constraints, so we want to explicitly check for them.</div><div>Please make sure, you are not obfuscated ABI constraints as it may emphasize we are doing something wrong!</div><div>One example is</div><div>-;CHECK: vst1.16 {d16[2]}, [r0:16]</div><div>+;CHECK: vst1.16 {{{d[0-9]+}}[2]}, [{{r[0-9]+}}:16]</div><div>r0 comes from the ABI.</div><div><br></div><div>Or here</div><div><div>-;CHECK: vst2.16 {d16[1], d17[1]}, [r0:32]</div><div>+;CHECK: vst2.16 {d16[1], d17[1]}, [{{r[0-9]+}}:32]</div></div><div>This one is even worse, because r0 comes from the ABI but not d16 and d17, thus they should have been “regexped” but not r0.</div><div><br></div><div>The last one should use CHECK and not CHECK-DAG:</div><div><div>+; CHECK-DAG:  add.w r[[ADDR:[0-9]+]], r[[SOURCE]], {{r[0-9]+}}, lsl #2</div><div>+; CHECK-DAG:  vld1.32 {[[DREG:d[0-9]+]][], [[DREG2:d[0-9]+]][]}, [r[[ADDR]]:32]       <— ADDR, read-after-write dependencies.</div></div><div><br></div><div>0003:</div><div>LGTM.</div><div> </div><div>Thanks,</div><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); font-family: Helvetica;  font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">-Quentin</div>

</div>
<br><div><div>On Oct 7, 2013, at 2:08 PM, Matthias Braun <<a href="mailto:mbraun@apple.com">mbraun@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Attached are a few improvements to make some (mostly arm) testcases less dependent on a particular schedule/register allocation. Maybe you want to have these changes in the repository. Descriptions:<br><br>* Tests: Use CHECK-LABEL where possible<br>* Tests: Be less dependent on a specific schedule/regalloc<br>* Tests: Do not unnecessarily depend on kill comments<br><br>Greetings<br><span class="Apple-tab-span" style="white-space:pre">      </span>Matthias<br><br><span><0001-Tests-Use-CHECK-LABEL-where-possible.patch></span><span><0002-Tests-Be-less-dependent-on-a-specific-schedule-regal.patch></span><span><0003-Tests-Do-not-unnecessarily-depend-on-kill-comments.patch></span>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br></blockquote></div><br></div></body></html>