<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, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Instead of feature bits, you might use a more generic cl::opt/cl::list (e.g., cl::multi_val or cl::CommaSeparated) to</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
specify something like "-reserve-regs 8 32" or "-reserve-regs=8,32". This way, the user could specify a range of
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
registers to reserve rather than each register individually. Bitvector UserReservedRegister would be set elsewhere</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
according to the global variable specified in your cl::opt/cl::list declaration.<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<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> llvm-dev <llvm-dev-bounces@lists.llvm.org> on behalf of Braden Nelson via llvm-dev <llvm-dev@lists.llvm.org><br>
<b>Sent:</b> Saturday, March 27, 2021 9:22 PM<br>
<b>To:</b> llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org><br>
<b>Subject:</b> [llvm-dev] Handling user reserved registers on high register count architecture</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">External email: Use caution opening links or attachments<br>
<br>
<br>
I'm working with the Parallax Propeller 2, which has 496 allocatable<br>
registers. Needless to say, I can't do this:<br>
<br>
<br>
foreach i = {1-496} in<br>
     def FeatureReserveR#i :<br>
         SubtargetFeature<"reserve-r"#i, "UserReservedRegister[P2::R"#i#"]",<br>
                          "true", "Reserve R"#i>;<br>
<br>
So does anyone have a better idea?<br>
<br>
Thanks, Braden.<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
llvm-dev@lists.llvm.org<br>
<a href="https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-dev&amp;data=04%7C01%7Cjeckhardt%40nvidia.com%7Ce735a7c3597c48b073d608d8f190522c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637524949461106740%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=kNnMJn%2F1ElofuVvBsPOCXmS2KTdcIQV6QaiZKFZT16E%3D&amp;reserved=0">https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-dev&amp;data=04%7C01%7Cjeckhardt%40nvidia.com%7Ce735a7c3597c48b073d608d8f190522c%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637524949461106740%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=kNnMJn%2F1ElofuVvBsPOCXmS2KTdcIQV6QaiZKFZT16E%3D&amp;reserved=0</a><br>
</div>
</span></font></div>
</body>
</html>