<div dir="ltr">Samuel, <div><br></div><div>I hope <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10844&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=ZDCF9x8A1pK3oHPKuTwcP31D4GPGwTkY8Ut3hYQACcE&s=2xRQy6ORUlioUWnZNpsEdv7SDmHo8UXvafzmTTbFuEA&e=">http://reviews.llvm.org/D10844</a> fixes the issue on your end. LMK if it doesn't. </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 29, 2015 at 9:17 PM, Samuel Antao <span dir="ltr"><<a href="mailto:sfantao@us.ibm.com" target="_blank">sfantao@us.ibm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi jingyue,<br>
<br>
I got a regression caused by this patch. What I see is that %SP is still used if references to automatic vars (alloca) are passed to functions but %SP is no longer initialized to anything.<br>
<br>
I have this (broken) code being now generated:<br>
<br>
  .visible .entry __omptgt__0_db262_31_(<br>
          .param .u64 __omptgt__0_db262_31__param_0,<br>
          .param .u64 __omptgt__0_db262_31__param_1,<br>
          .param .u64 __omptgt__0_db262_31__param_2,<br>
          .param .u64 __omptgt__0_db262_31__param_3,<br>
          .param .u64 __omptgt__0_db262_31__param_4<br>
  )<br>
  {<br>
          .local .align 8 .b8     __local_depot0[56];<br>
          .reg .b64       %SP;<br>
          .reg .b64       %SPL;<br>
          .reg .pred      %p<18>;<br>
          .reg .s32       %r<31>;<br>
          .reg .s64       %rd<30>;<br>
<br>
          mov.u64         %SPL, __local_depot0;<br>
  ...<br>
            add.u64         %rd14, %SP, 36;<br>
          // Callseq Start 1<br>
          {<br>
          .reg .b32 temp_param_reg;<br>
          // <end>}<br>
          .param .b64 param0;<br>
          st.param.b64    [param0+0], %rd12;<br>
          .param .b32 param1;<br>
          st.param.b32    [param1+0], %r6;<br>
          .param .b32 param2;<br>
          st.param.b32    [param2+0], %r18;<br>
          .param .b64 param3;<br>
          st.param.b64    [param3+0], %rd13;<br>
          .param .b64 param4;<br>
          st.param.b64    [param4+0], %rd10;<br>
          .param .b64 param5;<br>
          st.param.b64    [param5+0], %rd8;<br>
          .param .b64 param6;<br>
          st.param.b64    [param6+0], %rd14;<br>
          .param .b32 param7;<br>
          st.param.b32    [param7+0], %r10;<br>
          .param .b32 param8;<br>
          st.param.b32    [param8+0], %r11;<br>
          call.uni<br>
          __kmpc_for_static_init_4,<br>
          (<br>
          param0,<br>
          param1,<br>
          param2,<br>
          param3,<br>
          param4,<br>
          param5,<br>
          param6,<br>
          param7,<br>
          param8<br>
          );<br>
<br>
`%rd14` is computed from %SP but %SP never gets initialized. Before I used to have:<br>
<br>
  .visible .entry __omptgt__0_db262_31_(<br>
          .param .u64 __omptgt__0_db262_31__param_0,<br>
          .param .u64 __omptgt__0_db262_31__param_1,<br>
          .param .u64 __omptgt__0_db262_31__param_2,<br>
          .param .u64 __omptgt__0_db262_31__param_3,<br>
          .param .u64 __omptgt__0_db262_31__param_4<br>
  )<br>
  {<br>
          .local .align 8 .b8     __local_depot0[56];<br>
          .reg .b64       %SP;<br>
          .reg .b64       %SPL;<br>
          .reg .pred      %p<18>;<br>
          .reg .s32       %r<31>;<br>
          .reg .s64       %rd<31>;<br>
<br>
          mov.u64         %rd30, __local_depot0;<br>
          cvta.local.u64  %SP, %rd30;<br>
<br>
`%SP` is initialized properly (and `%SPL` is not used at all) so the references are properly generated. I suspect that the changes in this patch have to be reflected in other pieces of the backend. What do you think is the best way to tackle the problem?<br>
<br>
Thanks,<br>
Samuel<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10549&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=ZDCF9x8A1pK3oHPKuTwcP31D4GPGwTkY8Ut3hYQACcE&s=8cqi7qvRJIvGM9JxuT9vzupYNHlw8y4PjSyINpi95IU&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/D10549</a><br>
<br>
EMAIL PREFERENCES<br>
  <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_settings_panel_emailpreferences_&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=ZDCF9x8A1pK3oHPKuTwcP31D4GPGwTkY8Ut3hYQACcE&s=RN9nNOWXIKqGVSH4ryu3v2ReSTJ1sftoZxyovxIrVpk&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/settings/panel/emailpreferences/</a><br>
<br>
<br>
</div></div></blockquote></div><br></div>