[llvm-commits] [PATCH] 64 functional units

Hal Finkel hfinkel at anl.gov
Tue Jun 19 14:54:05 PDT 2012


On Tue, 19 Jun 2012 11:48:29 -0700
Evan Cheng <evan.cheng at apple.com> wrote:

> Are you sure this is the right way to go?

100% sure? No. But it seems important, especially for bottom-up
scheduling. This is because the dispatch structure in many of these
chips looks like a forest where each tree has a common dispatch stage
and then several independent pipelines. The pipelines for
floating-point and for complex vector ops can be long (5-6 stages).
Conflict at the dispatch stage will cause stalling. 

> That's a lot of functional
> units and this change is probably increasing LLVM's memory foot print.

Fair enough, although I've not measured to see whether this change is
significant or not. Is the bitmap replicated per instruction?

> 
> The InstrStage data structure is already poorly packed even before
> this change: unsigned Cycles_;  ///< Length of stage in machine cycles
>   unsigned Units_;   ///< Choice of functional units
>   int NextCycles_;   ///< Number of machine cycles to next stage
>   ReservationKinds Kind_; ///< Kind of the FU reservation
> 
> We probably want to reduce the size of Cycles_ and NextCycles_ down
> to i16. This change is not helping. :-(

I understand. We may wish to reorder the fields so that Cycles and
NextCycles are adjacent. That should improve the packing regardless of
whether Units is 32 or 64 bits.

Thanks again,
Hal

> 
> Evan
> 
> On Jun 18, 2012, at 7:34 PM, Hal Finkel wrote:
> 
> > On Mon, 18 Jun 2012 02:19:51 -0700
> > Bill Wendling <wendling at apple.com> wrote:
> > 
> >> This looks fine.'
> >> -bw
> > 
> > Thanks! r158679.
> > 
> > -Hal
> > 
> >> 
> >> On Jun 13, 2012, at 7:04 AM, Hal Finkel wrote:
> >> 
> >>> Please review the attached patch which changes the datatype used
> >>> to hold the function-units bitmask from unsigned to uint64_t. In
> >>> order to describe some of the recent PowerPC chips (with all of
> >>> their relevant multi-stage pipelines), I need more than 32 FUs.
> >>> 
> >>> Thanks again,
> >>> Hal 
> >>> 
> >>> -- 
> >>> Hal Finkel
> >>> Postdoctoral Appointee
> >>> Leadership Computing Facility
> >>> Argonne National Laboratory
> >>> <64units_patch.patch>_______________________________________________
> >>> llvm-commits mailing list
> >>> llvm-commits at cs.uiuc.edu
> >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >> 
> > 
> > 
> > 
> > -- 
> > Hal Finkel
> > Postdoctoral Appointee
> > Leadership Computing Facility
> > Argonne National Laboratory
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 



-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list