[llvm-commits] [llvm] r157977 - in /llvm/trunk: include/llvm/CodeGen/ScheduleHazardRecognizer.h lib/CodeGen/ScoreboardHazardRecognizer.cpp
Hal Finkel
hfinkel at anl.gov
Tue Dec 3 09:19:30 PST 2013
----- Original Message -----
> From: "Andrew Trick" <atrick at apple.com>
> To: llvm-commits at cs.uiuc.edu
> Sent: Monday, June 4, 2012 10:44:32 PM
> Subject: [llvm-commits] [llvm] r157977 - in /llvm/trunk: include/llvm/CodeGen/ScheduleHazardRecognizer.h
> lib/CodeGen/ScoreboardHazardRecognizer.cpp
>
> Author: atrick
> Date: Mon Jun 4 22:44:32 2012
> New Revision: 157977
>
> URL: http://llvm.org/viewvc/llvm-project?rev=157977&view=rev
> Log:
> misched: Allow disabling scoreboard hazard checking for subtargets
> with a
> valid itinerary but no pipeline stages.
>
> An itinerary can contain useful scheduling information without
> specifying pipeline stages for each instruction.
>
> Modified:
> llvm/trunk/include/llvm/CodeGen/ScheduleHazardRecognizer.h
> llvm/trunk/lib/CodeGen/ScoreboardHazardRecognizer.cpp
>
> Modified: llvm/trunk/include/llvm/CodeGen/ScheduleHazardRecognizer.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/ScheduleHazardRecognizer.h?rev=157977&r1=157976&r2=157977&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/ScheduleHazardRecognizer.h
> (original)
> +++ llvm/trunk/include/llvm/CodeGen/ScheduleHazardRecognizer.h Mon
> Jun 4 22:44:32 2012
> @@ -46,6 +46,8 @@
>
> /// atIssueLimit - Return true if no more instructions may be
> issued in this
> /// cycle.
> + ///
> + /// FIXME: remove this once MachineScheduler is the only client.
Does this mean that the MachineScheduler does, or will, do PostRA scheduling as well?
-Hal
> virtual bool atIssueLimit() const { return false; }
>
> /// getHazardType - Return the hazard type of emitting this node.
> There are
>
> Modified: llvm/trunk/lib/CodeGen/ScoreboardHazardRecognizer.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/ScoreboardHazardRecognizer.cpp?rev=157977&r1=157976&r2=157977&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/ScoreboardHazardRecognizer.cpp (original)
> +++ llvm/trunk/lib/CodeGen/ScoreboardHazardRecognizer.cpp Mon Jun 4
> 22:44:32 2012
> @@ -39,9 +39,9 @@
> DebugType = ParentDebugType;
> #endif
>
> - // Determine the maximum depth of any itinerary. This determines
> the
> - // depth of the scoreboard. We always make the scoreboard at least
> 1
> - // cycle deep to avoid dealing with the boundary condition.
> + // Determine the maximum depth of any itinerary. This determines
> the depth of
> + // the scoreboard. We always make the scoreboard at least 1 cycle
> deep to
> + // avoid dealing with the boundary condition.
> unsigned ScoreboardDepth = 1;
> if (ItinData && !ItinData->isEmpty()) {
> IssueWidth = ItinData->IssueWidth;
> @@ -63,16 +63,22 @@
> // Find the next power-of-2 >= ItinDepth
> while (ItinDepth > ScoreboardDepth) {
> ScoreboardDepth *= 2;
> + // Don't set MaxLookAhead until we find at least one nonzero
> stage.
> + // This way, an itinerary with no stages has
> MaxLookAhead==0, which
> + // completely bypasses the scoreboard hazard logic.
> + MaxLookAhead = ScoreboardDepth;
> }
> }
> - MaxLookAhead = ScoreboardDepth;
> }
>
> ReservedScoreboard.reset(ScoreboardDepth);
> RequiredScoreboard.reset(ScoreboardDepth);
>
> - DEBUG(dbgs() << "Using scoreboard hazard recognizer: Depth = "
> - << ScoreboardDepth << '\n');
> + if (!MaxLookAhead)
> + DEBUG(dbgs() << "Disabled scoreboard hazard recognizer\n");
> + else
> + DEBUG(dbgs() << "Using scoreboard hazard recognizer: Depth = "
> + << ScoreboardDepth << '\n');
> }
>
> void ScoreboardHazardRecognizer::Reset() {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-commits
mailing list