[PATCH][PowerPC] More refactoring prior to real PPC emitPrologue()/emitEpilogue() changes
Bill Schmidt
wschmidt at linux.vnet.ibm.com
Mon Aug 19 20:18:10 PDT 2013
Committed as r188741. Please consider developing a test case for the
bug you fixed, verifying the correct code generation for the base
pointer restore for PPC32. I realize it's pretty evident, but we try to
add tests for each bug fixed.
Thanks,
Bill
On Mon, 2013-08-19 at 16:52 -0400, Mark Minich wrote:
> Revised to address comments regarding variable naming.... see http://llvm-reviews.chandlerc.com/D1430
> ...also attached to this email.
>
> -Mark
>
>
> -----Original Message-----
> From: Bill Schmidt [mailto:wschmidt at linux.vnet.ibm.com]
> Sent: Sunday, August 18, 2013 6:03 PM
> To: Hal Finkel
> Cc: Mark Minich; llvm-commits at cs.uiuc.edu
> Subject: Re: [PATCH][PowerPC] More refactoring prior to real PPC emitPrologue()/emitEpilogue() changes
>
> Mark, I'll echo Hal's comment about the variable names. This is one of
> those naming convention things that we all agree to live by.
>
> In addition, please change:
>
> STW_Inst to StoreInst
> STWU_Inst to StoreUpdInst
> STWUX_Inst to StoreUpdIdxInst
> LWZ_Inst to LoadInst
>
> or similar. The point is that STD is never a STW instruction, STDU is
> never a STWU instruction, etc. Please change the names to avoid bias
> for one subtarget or another.
>
> Other than that, the patch looks fine. Please generate a new version
> with the changed variable names and I will regression-test and commit
> for you (provided nobody else has further comments).
>
> BTW, thanks for doing this! Factoring this code is long overdue.
>
> Thanks,
> Bill
>
> On Fri, 2013-08-16 at 17:03 -0500, Hal Finkel wrote:
> > Mark,
> >
> > I'll look at this in more detail, but just a quick note: Please remove the underscores from the variable names.
> >
> > Thanks again,
> > Hal
> >
> > ----- Original Message -----
> > >
> > >
> > >
> > >
> > > This is a continuation of the refactorings performed in svn rev
> > > 188573 (see that rev's comments for more detail).
> > >
> > >
> > >
> > > This is my stage 2 refactoring: I combined the emitPrologue() &
> > > emitEpilogue() PPC32 & PPC64 code into a single flow, simplifying a
> > > lot of the code since in essence the PPC32 & PPC64 code generation
> > > logic is the same, only the instruction forms are different (in most
> > > cases). This simplification is necessary because my functional
> > > changes (yet to come) add significant complexity, and without the
> > > simplification of my stage 2 refactoring, the overall complexity of
> > > both emitPrologue() & emitEpilogue() would have become almost
> > > intractable for most mortal programmers (like me).
> > >
> > >
> > >
> > > This submission was intended to be a pure refactoring (no functional
> > > changes whatsoever). However, in the process of combining the PPC32
> > > & PPC64 flows, I spotted a difference that I believe is a bug (see
> > > svn rev 186478 line 863, or svn rev 188573 line 888): This line
> > > appears to be restoring the BP with the original FP content, not the
> > > original BP content. When I merged the 32-bit and 64-bit code, I
> > > used the corresponding code from the 64-bit flow, which I believe
> > > uses the correct offset (BPOffset) for this operation.
> > >
> > >
> > >
> > > http://llvm-reviews.chandlerc.com/D1430
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > 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