[llvm] r203852 - Fix a subtle issue introduced my my recent changes to MachineRegisterInfo iterators.

Hans Wennborg hans at chromium.org
Thu Mar 13 15:02:22 PDT 2014


Thanks! This fixed my build.

On Thu, Mar 13, 2014 at 2:25 PM, Owen Anderson <resistor at mac.com> wrote:
> Author: resistor
> Date: Thu Mar 13 16:25:10 2014
> New Revision: 203852
>
> URL: http://llvm.org/viewvc/llvm-project?rev=203852&view=rev
> Log:
> Fix a subtle issue introduced my my recent changes to MachineRegisterInfo iterators.
> When initializing an iterator, we may have to step forward to find the first
> operand that passes the current filter set.  When doing that stepping, we should
> always step one operand at a time, even if this is by-instr or by-bundle iterator,
> as we're stepping between invalid values, so the stride doesn't make sense there.
>
> Fixes a miscompilation of YASM on Win32 reported by Hans Wennborg.  I have not
> yet figured out how to reduce it to something testcase-able, because it's sensitive
> to the details of how the registers get spilled.
>
> Modified:
>     llvm/trunk/include/llvm/CodeGen/MachineRegisterInfo.h
>
> Modified: llvm/trunk/include/llvm/CodeGen/MachineRegisterInfo.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineRegisterInfo.h?rev=203852&r1=203851&r2=203852&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/MachineRegisterInfo.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/MachineRegisterInfo.h Thu Mar 13 16:25:10 2014
> @@ -677,7 +677,7 @@ public:
>          if ((!ReturnUses && op->isUse()) ||
>              (!ReturnDefs && op->isDef()) ||
>              (SkipDebug && op->isDebug()))
> -          ++*this;
> +          advance();
>        }
>      }
>      friend class MachineRegisterInfo;
>
>
> _______________________________________________
> 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