- Jan 21, 2011
-
-
Andrew Trick authored
flags. They are still not enable in this revision. Added TargetInstrInfo::isZeroCost() to fix a fundamental problem with the scheduler's model of operand latency in the selection DAG. Generalized unit tests to work with sched-cycles. llvm-svn: 123969
-
- Dec 24, 2010
-
-
Andrew Trick authored
DAG scheduling during isel. Most new functionality is currently guarded by -enable-sched-cycles and -enable-sched-hazard. Added InstrItineraryData::IssueWidth field, currently derived from ARM itineraries, but could be initialized differently on other targets. Added ScheduleHazardRecognizer::MaxLookAhead to indicate whether it is active, and if so how many cycles of state it holds. Added SchedulingPriorityQueue::HasReadyFilter to allowing gating entry into the scheduler's available queue. ScoreboardHazardRecognizer now accesses the ScheduleDAG in order to get information about it's SUnits, provides RecedeCycle for bottom-up scheduling, correctly computes scoreboard depth, tracks IssueCount, and considers potential stall cycles when checking for hazards. ScheduleDAGRRList now models machine cycles and hazards (under flags). It tracks MinAvailableCycle, drives the hazard recognizer and priority queue's ready filter, manages a new PendingQueue, properly accounts for stall cycles, etc. llvm-svn: 122541
-
- Dec 08, 2010
-
-
Andrew Trick authored
both forward and backward scheduling. Rename it to ScoreboardHazardRecognizer (Scoreboard is one word). Remove integer division from the scoreboard's critical path. llvm-svn: 121274
-
- Sep 10, 2010
-
-
Evan Cheng authored
take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. llvm-svn: 113570
-
- Jun 16, 2010
-
-
Evan Cheng authored
Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler. llvm-svn: 106091
-
- Jun 14, 2010
-
-
Evan Cheng authored
- Rename ExactHazardRecognizer to PostRAHazardRecognizer and move its header to include to allow targets to extend it. llvm-svn: 105959
-
- Apr 07, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 100645
-
Anton Korobeynikov authored
llvm-svn: 100644
-
- Feb 10, 2010
-
-
Dan Gohman authored
llvm-svn: 95781
-
- Jan 04, 2010
-
-
David Greene authored
Change errs() to dbgs(). llvm-svn: 92515
-
- Nov 03, 2009
-
-
David Goodwin authored
Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed. llvm-svn: 85939
-
- Oct 16, 2009
-
-
Evan Cheng authored
llvm-svn: 84244
-
- Sep 24, 2009
-
-
David Goodwin authored
llvm-svn: 82709
-
- Sep 22, 2009
-
-
David Goodwin authored
llvm-svn: 82554
-
- Sep 04, 2009
-
-
Duncan Sands authored
llvm-svn: 80997
-
David Goodwin authored
llvm-svn: 80962
-
- Aug 22, 2009
-
-
Bill Wendling authored
llvm-svn: 79750
-
- Aug 17, 2009
-
-
David Goodwin authored
Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed. llvm-svn: 79247
-
- Aug 12, 2009
-
-
David Goodwin authored
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one. llvm-svn: 78827
-
David Goodwin authored
llvm-svn: 78736
-
- Aug 11, 2009
-
-
Daniel Dunbar authored
- Since the function is never called in NDEBUG mode, just dropped the DEBUG() uses here. llvm-svn: 78649
-
David Goodwin authored
llvm-svn: 78634
-
- Aug 10, 2009
-
-
David Goodwin authored
Post RA scheduler changes. Introduce a hazard recognizer that uses the target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets. llvm-svn: 78563
-