<div dir="ltr"><div><div>The reg2mem pass only eliminates phi nodes, using the stack to pass values between basic blocks.<br></div>LLVM models a register based CPU, not a stack based one. All calculations are assumed to be performed in registers with the arguments and results loaded and stored from the stack.<br>
</div><br>What other constraints are you hoping to enforce on your flavour of IR?<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Feb 2, 2014 at 3:27 AM,  <span dir="ltr"><<a href="mailto:nizam@cse.iitm.ac.in" target="_blank">nizam@cse.iitm.ac.in</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:Times New Roman">I mean to say didnt help. :) <br><br><hr><b>From: </b><a href="mailto:nizam@cse.iitm.ac.in" target="_blank">nizam@cse.iitm.ac.in</a><br>
<b>To: </b>"Benjamin Kramer" <<a href="mailto:benny.kra@gmail.com" target="_blank">benny.kra@gmail.com</a>><br><b>Cc: </b>"llvmdev" <<a href="mailto:llvmdev@cs.uiuc.edu" target="_blank">llvmdev@cs.uiuc.edu</a>><br>
<b>Sent: </b>Saturday, February 1, 2014 9:53:55 PM<div><div class="h5"><br><b>Subject: </b>Re: [LLVMdev] Eliminate SSA Virtual registers<br><br><div style="font-size:12pt;font-family:Times New Roman"><br><font size="3">Hi Ben,</font><div style="font-size:12pt;font-family:'Times New Roman'">
<br></div><div style="font-size:12pt;font-family:'Times New Roman'"><br></div><div style="font-size:12pt;font-family:'Times New Roman'">That did help. I continue to notice the virtual register in the program. I use LLVM 3.4. The program i am looking  at  is a very simple one. Listed below</div>
<div style="font-size:12pt;font-family:'Times New Roman'"><br></div><div><div>int global_var;</div><div>int *global_ptr;</div><div><br></div><div>int32_t main(int32_t argc, char ** argv){</div><div>   int p = 10;</div>
<div>   int k = 20;</div><div>   int *pp;</div><div>   char *c_pp;</div><div><br></div><div>   pp = &k;</div><div>   global_ptr = pp;</div><div>   pp = &p;</div><div>   global_ptr = &global_var;</div><div>   return 0;</div>
<div>}</div></div><div style="font-size:12pt;font-family:'Times New Roman'">BR/Nizam</div><div style="font-size:12pt;font-family:'Times New Roman'"><br></div><div style="font-size:12pt;font-family:'Times New Roman'">
<br></div><div style="font-size:12pt;font-family:'Times New Roman'"><br><hr><b>From: </b>"Benjamin Kramer" <<a href="mailto:benny.kra@gmail.com" target="_blank">benny.kra@gmail.com</a>><br><b>To: </b><a href="mailto:nizam@cse.iitm.ac.in" target="_blank">nizam@cse.iitm.ac.in</a><br>
<b>Cc: </b>"llvmdev" <<a href="mailto:llvmdev@cs.uiuc.edu" target="_blank">llvmdev@cs.uiuc.edu</a>><br><b>Sent: </b>Saturday, February 1, 2014 9:57:00 PM<br><b>Subject: </b>Re: [LLVMdev] Eliminate SSA Virtual registers<br>
<br><br>On 01.02.2014, at 16:47, <a href="mailto:nizam@cse.iitm.ac.in" target="_blank">nizam@cse.iitm.ac.in</a> wrote:<br><br>> Hi,<br>> <br>> is there a opt pass that replaces the SSA virtual registers to stack-variables? I want to eliminate the SSA virtual register from my IR. Kindly suggest <br>
<br>Try the register to memory demotion pass. opt -reg2mem<br><br>- Ben<br><br></div></div><br></div></div><div class="im">_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></div></div></div><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>