[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