On Mon, 2011-11-28 at 15:45 -0800, Andrew Trick wrote:> > On Nov 28, 2011, at 3:35 PM, Hal Finkel wrote: > > > > > > > Is EmitInstruction used in bottom-up scheduling at all? The > > > version in > > > the ARM recognizer seems essential, but in all of the regression > > > tests > > > (and some other .ll files I have lying around), it is never > > > called. It > > > seems that only Reset() and getHazardType() are called. Could you > > > please > > > explain the calling sequence? > > > > I feel that I should clarify my comment: For PPC, now that Hybrid > > scheduling is enabled, EmitInstruction seems never to be called (at > > least it is not called when running any PPC codegen test in the > > regression-test collection). > > > Hal, > > > Since PPCHazardRecognizer is not derived from > ScoreboardHazardRecognizer, you'll need to initialize MaxLookAhead to > the max depth of your target's itinerary.Andy, Thanks! Since I have to change PPCHazardRecognizer for bottom-up support anyway, is there any reason not to have it derive from ScoreboardHazardRecognizer at this point? It looks like the custom bundling logic could be implemented on top of the scoreboard recognizer (that seems similar to what ARM's recognizer is doing). -Hal> > > See how this is done in the ScoreboardHazardRecognizer ctor: > > MaxLookAhead = ScoreboardDepth; > > > > -Andy > >-- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
On Tue, 2011-11-29 at 08:29 -0600, Hal Finkel wrote:> On Mon, 2011-11-28 at 15:45 -0800, Andrew Trick wrote: > > > > On Nov 28, 2011, at 3:35 PM, Hal Finkel wrote: > > > > > > > > > > Is EmitInstruction used in bottom-up scheduling at all? The > > > > version in > > > > the ARM recognizer seems essential, but in all of the regression > > > > tests > > > > (and some other .ll files I have lying around), it is never > > > > called. It > > > > seems that only Reset() and getHazardType() are called. Could you > > > > please > > > > explain the calling sequence? > > > > > > I feel that I should clarify my comment: For PPC, now that Hybrid > > > scheduling is enabled, EmitInstruction seems never to be called (at > > > least it is not called when running any PPC codegen test in the > > > regression-test collection). > > > > > > Hal, > > > > > > Since PPCHazardRecognizer is not derived from > > ScoreboardHazardRecognizer, you'll need to initialize MaxLookAhead to > > the max depth of your target's itinerary. > > Andy, > > Thanks! Since I have to change PPCHazardRecognizer for bottom-up support > anyway, is there any reason not to have it derive from > ScoreboardHazardRecognizer at this point? It looks like the custom > bundling logic could be implemented on top of the scoreboard recognizer > (that seems similar to what ARM's recognizer is doing).Also, how does the ARM hazard recognizer get away with not implementing RecedeCycle? Thanks again, Hal> > -Hal > > > > > > > See how this is done in the ScoreboardHazardRecognizer ctor: > > > MaxLookAhead = ScoreboardDepth; > > > > > > > > -Andy > > > > >-- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
ARM can reuse all the default scoreboard hazard recognizer logic such as recede cycle (naturally since its the primary client). If you can do the same with PPC that's great. Andy On Nov 29, 2011, at 8:51 AM, Hal Finkel <hfinkel at anl.gov> wrote:>> Thanks! Since I have to change PPCHazardRecognizer for bottom-up support >> anyway, is there any reason not to have it derive from >> ScoreboardHazardRecognizer at this point? It looks like the custom >> bundling logic could be implemented on top of the scoreboard recognizer >> (that seems similar to what ARM's recognizer is doing). > > Also, how does the ARM hazard recognizer get away with not implementing > RecedeCycle? > > Thanks again, > Hal