<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I originally did do it a similar way, but that was before many of the more modern LLVM Machine structures existed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">You can see how I eventually did  it here:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><a href="http://llvm.org/svn/llvm-project/llvm/branches/AMDILBackend/lib/Target/AMDIL/AMDILModuleInfo.cpp">http://llvm.org/svn/llvm-project/llvm/branches/AMDILBackend/lib/Target/AMDIL/AMDILModuleInfo.cpp</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">You don’t need to put the information in a global variable as you can store it in the MachineModuleInfo and then query/modify it where needed from the various
 locations. <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Micah<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Anthony Yu [mailto:swpenim@gmail.com]
<br>
<b>Sent:</b> Monday, August 05, 2013 8:00 AM<br>
<b>To:</b> Micah Villmow<br>
<b>Cc:</b> llvmdev@cs.uiuc.edu<br>
<b>Subject:</b> Re: [LLVMdev] Can I add GlobalVariable in MachineFunctionPass ?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Micah,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div id="">
<p class="MsoNormal">As you expected, I am trying to create local memory but in the NVPTX backend. It's really not convenient that I can't create local memory in runOnMachineFunction.<o:p></o:p></p>
</div>
<div id="">
<p class="MsoNormal">Hmm....<o:p></o:p></p>
</div>
<div id="">
<p class="MsoNormal">Since I should do it at doInitialization stage, I also need to do some tricks in global variable and AsmPrinter to resize it.<o:p></o:p></p>
</div>
<div id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">
<p class="MsoNormal">Did you use the similar way?<o:p></o:p></p>
</div>
<div id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">
<p class="MsoNormal">Antony<o:p></o:p></p>
</div>
<div id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown">
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal">2013/8/5 Micah Villmow <<a href="mailto:micah.villmow@smachines.com" target="_blank">micah.villmow@smachines.com</a>><o:p></o:p></p>
<p class="MsoNormal">Antony,<br>
 What are you trying to accomplish in this case? I did something very similar in the AMDIL backend, but it was not the cleanest solution and you are correct it has to be do at doInitialization stage and not at runOnMachineFunction.<br>
Micah<br>
<br>
> -----Original Message-----<br>
> From: <a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a>]<br>
> On Behalf Of Antony Yu<br>
> Sent: Monday, August 05, 2013 3:41 AM<br>
> To: <a href="mailto:llvmdev@cs.uiuc.edu">llvmdev@cs.uiuc.edu</a><br>
> Subject: [LLVMdev] Can I add GlobalVariable in MachineFunctionPass ?<br>
><br>
> Hello,<br>
><br>
> I want to add a global variable of arrayType in my MachineFunctionPass.<br>
> However, I only get const Module from<br>
> MachineFunction.getMMI().getModule().<br>
> I can't add any global variable to a const Module.<br>
> Another way is to add a global variable in doInitialization in my<br>
> MachineFunctionPass, but I can't determine the size of my arrayType for<br>
> global variable in doInitialization.<br>
><br>
> Is there any suggestion that can help me achieve this?<br>
><br>
> Thanks in advance.<br>
> Antony Yu<br>
><br>
><br>
<span class="hoenzb"><span style="color:#888888">></span></span><span style="color:#888888"><br>
<span class="hoenzb">> --</span><br>
<span class="hoenzb">> View this message in context: <a href="http://llvm.1065342.n5.nabble.com/Can-I-add-" target="_blank">
http://llvm.1065342.n5.nabble.com/Can-I-add-</a></span><br>
<span class="hoenzb">> GlobalVariable-in-MachineFunctionPass-tp60165.html</span><br>
<span class="hoenzb">> Sent from the LLVM - Dev mailing list archive at Nabble.com.</span><br>
<span class="hoenzb">> _______________________________________________</span><br>
<span class="hoenzb">> LLVM Developers mailing list</span><br>
<span class="hoenzb">> <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></span><br>
<span class="hoenzb">> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a></span></span><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>