[llvm] r182490 - Add the IncludeSelf parameter to the MCSubRegIterator and MCSuperRegIterator

Rafael EspĂ­ndola rafael.espindola at gmail.com
Wed May 22 11:46:03 PDT 2013


On 22 May 2013 13:26, Chad Rosier <mcrosier at apple.com> wrote:
> Author: mcrosier
> Date: Wed May 22 12:26:26 2013
> New Revision: 182490
>
> URL: http://llvm.org/viewvc/llvm-project?rev=182490&view=rev
> Log:
> Add the IncludeSelf parameter to the MCSubRegIterator and MCSuperRegIterator
> constructors.  No functional change.
> Part of rdar://12906217

Can you provide a bit more context on how this will be used?

> Modified:
>     llvm/trunk/include/llvm/MC/MCRegisterInfo.h
>
> Modified: llvm/trunk/include/llvm/MC/MCRegisterInfo.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCRegisterInfo.h?rev=182490&r1=182489&r2=182490&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/MCRegisterInfo.h (original)
> +++ llvm/trunk/include/llvm/MC/MCRegisterInfo.h Wed May 22 12:26:26 2013
> @@ -421,20 +421,28 @@ public:
>  // aliasing registers. Use these iterator classes to traverse the lists.
>
>  /// MCSubRegIterator enumerates all sub-registers of Reg.
> +/// If IncludeSelf is set, Reg itself is included in the list.
>  class MCSubRegIterator : public MCRegisterInfo::DiffListIterator {
>  public:
> -  MCSubRegIterator(unsigned Reg, const MCRegisterInfo *MCRI) {
> +  MCSubRegIterator(unsigned Reg, const MCRegisterInfo *MCRI,
> +                     bool IncludeSelf = false) {
>      init(Reg, MCRI->DiffLists + MCRI->get(Reg).SubRegs);
> -    ++*this;
> +    // Initially, the iterator points to Reg itself.
> +    if (!IncludeSelf)
> +      ++*this;
>    }
>  };
>
>  /// MCSuperRegIterator enumerates all super-registers of Reg.
> +/// If IncludeSelf is set, Reg itself is included in the list.
>  class MCSuperRegIterator : public MCRegisterInfo::DiffListIterator {
>  public:
> -  MCSuperRegIterator(unsigned Reg, const MCRegisterInfo *MCRI) {
> +  MCSuperRegIterator(unsigned Reg, const MCRegisterInfo *MCRI,
> +                     bool IncludeSelf = false) {
>      init(Reg, MCRI->DiffLists + MCRI->get(Reg).SuperRegs);
> -    ++*this;
> +    // Initially, the iterator points to Reg itself.
> +    if (!IncludeSelf)
> +      ++*this;
>    }
>  };
>
> @@ -443,7 +451,7 @@ public:
>  class MCRegAliasIterator : public MCRegisterInfo::DiffListIterator {
>  public:
>    MCRegAliasIterator(unsigned Reg, const MCRegisterInfo *MCRI,
> -                     bool IncludeSelf) {
> +                     bool IncludeSelf = false) {
>      init(Reg, MCRI->DiffLists + MCRI->get(Reg).Overlaps);
>      // Initially, the iterator points to Reg itself.
>      if (!IncludeSelf)
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list