<p dir="ltr">Thanks, Matthias! My RA is a legacy one which is ported to LLVM. I will use regunit later for consistency. </p>
<div class="gmail_extra"><br><div class="gmail_quote">On Jul 19, 2016 11:40 AM, "Matthias Braun" <<a href="mailto:mbraun@apple.com">mbraun@apple.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A register can have multiple super registers/sub registers which you can query with the MCSuperRegIterator/MCSubRegIterator. You may also have register aliases that do not completely overlap a register, you can query those with the MCRegAliasIterator (super/sub registers count as aliases too), however arbitrary aliases are rare in llvm I believe the ARM target for example doesn't use any.<br>
<br>
BTW: Most register allocators in llvm work on the register unit level instead of walking the sub/super register hierarchies.<br>
<br>
Greetings<br>
    Matthias<br>
<br>
> On Jul 19, 2016, at 10:42 AM, Xiaochu Liu via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
><br>
> Hi there,<br>
><br>
> In my register allocator, I was trying to get the parent of a register in ARM.<br>
><br>
> That is:<br>
><br>
> D0 <-> S0, S1.<br>
><br>
> Given S0, how am I able to get D0?<br>
><br>
> Thanks,<br>
> Xiaochu<br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br>
</blockquote></div></div>