<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Is it possible to get a virtual register and then use that to create a real register? I've seen it done in unittests/CodeGen/MachineInstrTest.cpp like this:</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span>unsigned VirtualDef1 = -42;<br>
</span>
<div> VD1VU->addOperand(*MF,<br>
</div>
<div> MachineOperand::CreateReg(VirtualDef1, /*isDef*/ true));</div>
<div><br>
</div>
<div><br>
</div>
<div>But when I do that in my code I get an assertion so I wasn't sure if it's legal or not.</div>
<div>Thanks.<br>
</div>
<span></span><br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> David Greene <dag@cray.com><br>
<b>Sent:</b> Wednesday, January 2, 2019 9:23 AM<br>
<b>To:</b> m m<br>
<b>Cc:</b> via llvm-dev<br>
<b>Subject:</b> Re: [llvm-dev] New to LLVM. Need help getting available register</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">m m via llvm-dev <llvm-dev@lists.llvm.org> writes:<br>
<br>
> I'm new to LLVM. I'd like to know if there is a method I can call<br>
> whenever I need any available CPU register.<br>
<br>
Take a look at RegisterScavenging. Of course, this only works after<br>
register allocation. Before register allocation you'd just create a new<br>
virtual register.<br>
<br>
-David<br>
</div>
</span></font></div>
</body>
</html>