History log of /llvm-project/llvm/lib/CodeGen/MachineScheduler.cpp (Results 401 – 425 of 480)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 90f711da 15-Oct-2012 Andrew Trick <atrick@apple.com>

misched: ILP scheduler for experimental heuristics.

llvm-svn: 165950


# dd79f0fc 10-Oct-2012 Andrew Trick <atrick@apple.com>

misched: Use the TargetSchedModel interface wherever possible.

Allows the new machine model to be used for NumMicroOps and OutputLatency.

Allows the HazardRecognizer to be disabled along with itine

misched: Use the TargetSchedModel interface wherever possible.

Allows the new machine model to be used for NumMicroOps and OutputLatency.

Allows the HazardRecognizer to be disabled along with itineraries.

llvm-svn: 165603

show more ...


# 984d98bf 08-Oct-2012 Andrew Trick <atrick@apple.com>

misched: avoid scheduling an instruction twice.

llvm-svn: 165416


# a2733e95 14-Sep-2012 Andrew Trick <atrick@apple.com>

misched: add a hook for custom DAG postprocessing.

llvm-svn: 163915


# 19f49ac6 11-Sep-2012 Manman Ren <mren@apple.com>

Release build: guard dump functions with
"#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)"

No functional change. Update r163339.

llvm-svn: 163653


# 7a8e1004 11-Sep-2012 Andrew Trick <atrick@apple.com>

Reorganize MachineScheduler interfaces and publish them in the header.

The Hexagon target decided to use a lot of functionality from the
target-independent scheduler. That's fine, and other targets

Reorganize MachineScheduler interfaces and publish them in the header.

The Hexagon target decided to use a lot of functionality from the
target-independent scheduler. That's fine, and other targets should be
able to do the same. This reorg and API update makes that easy.

For the record, ScheduleDAGMI was not meant to be subclassed. Instead,
new scheduling algorithms should be able to implement
MachineSchedStrategy and be done. But if need be, it's nice to be
able to extend ScheduleDAGMI, so I also made that easier. The target
scheduler is somewhat more apt to break that way though.

llvm-svn: 163580

show more ...


# 742534c4 06-Sep-2012 Manman Ren <mren@apple.com>

Release build: guard dump functions with "ifndef NDEBUG"

No functional change.

llvm-svn: 163339


# ae53561b 23-Aug-2012 Andrew Trick <atrick@apple.com>

Simplify the computeOperandLatency API.

The logic for recomputing latency based on a ScheduleDAG edge was
shady. This bypasses the problem by requiring the client to provide
operand indices. This en

Simplify the computeOperandLatency API.

The logic for recomputing latency based on a ScheduleDAG edge was
shady. This bypasses the problem by requiring the client to provide
operand indices. This ensures consistent use of the machine model's
API.

llvm-svn: 162420

show more ...


# a538d831 22-Aug-2012 Craig Topper <craig.topper@gmail.com>

Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed.

llvm-svn: 162347


# 35521e23 23-Jul-2012 Sylvestre Ledru <sylvestre@debian.org>

Fix a typo (the the => the)

llvm-svn: 160621


# 87255e34 07-Jul-2012 Andrew Trick <atrick@apple.com>

I'm introducing a new machine model to simultaneously allow simple
subtarget CPU descriptions and support new features of
MachineScheduler.

MachineModel has three categories of data:
1) Basic proper

I'm introducing a new machine model to simultaneously allow simple
subtarget CPU descriptions and support new features of
MachineScheduler.

MachineModel has three categories of data:
1) Basic properties for coarse grained instruction cost model.
2) Scheduler Read/Write resources for simple per-opcode and operand cost model (TBD).
3) Instruction itineraties for detailed per-cycle reservation tables.

These will all live side-by-side. Any subtarget can use any
combination of them. Instruction itineraries will not change in the
near term. In the long run, I expect them to only be relevant for
in-order VLIW machines that have complex contraints and require a
precise scheduling/bundling model. Once itineraries are only actively
used by VLIW-ish targets, they could be replaced by something more
appropriate for those targets.

This tablegen backend rewrite sets things up for introducing
MachineModel type #2: per opcode/operand cost model.

llvm-svn: 159891

show more ...


# 2f26b348 02-Jul-2012 Andrew Trick <atrick@apple.com>

misched: allow NULL InstrItineraries.

llvm-svn: 159599


# 8c9e6728 29-Jun-2012 Andrew Trick <atrick@apple.com>

misched: avoid scheduling instructions that can't be dispatched.

llvm-svn: 159408


# ce27bb99 29-Jun-2012 Andrew Trick <atrick@apple.com>

misched: count micro-ops toward the issue limit.

llvm-svn: 159407


# b9f84bb0 16-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com>

Guard private fields that are unused in Release builds with #ifndef NDEBUG.

llvm-svn: 158608


# 05ff4667 06-Jun-2012 Andrew Trick <atrick@apple.com>

Move RegisterClassInfo.h.

Allow targets to access this API. It's required for RegisterPressure.

llvm-svn: 158102


# 88517f60 06-Jun-2012 Andrew Trick <atrick@apple.com>

Move RegisterPressure.h.

Make it a general utility for use by Targets.

llvm-svn: 158097


# 4544606c 05-Jun-2012 Andrew Trick <atrick@apple.com>

misched: API for minimum vs. expected latency.

Minimum latency determines per-cycle scheduling groups.
Expected latency determines critical path and cost.

llvm-svn: 158021


# d36adece 05-Jun-2012 Andrew Trick <atrick@apple.com>

misched: comments from code review.

llvm-svn: 157975


# 4e7f6a77 25-May-2012 Andrew Trick <atrick@apple.com>

misched: trace formatting

llvm-svn: 157455


# 85d8f0cb 24-May-2012 Kaelyn Uhrain <rikka@google.com>

Silence unused variable warnings from when assertions are disabled.

llvm-svn: 157438


# a306a8a8 24-May-2012 Andrew Trick <atrick@apple.com>

misched: Use the same scheduling heuristics with -misched-topdown/bottomup.

(except the part about choosing direction)

llvm-svn: 157437


# 79d3eecb 24-May-2012 Andrew Trick <atrick@apple.com>

misched: Trace regpressure.

llvm-svn: 157429


# a8ad5f7c 24-May-2012 Andrew Trick <atrick@apple.com>

misched: Give each ReadyQ a unique ID

llvm-svn: 157428


# 61f1a278 24-May-2012 Andrew Trick <atrick@apple.com>

misched: Added ScoreboardHazardRecognizer.

The Hazard checker implements in-order contraints, or interlocked
resources. Ready instructions with hazards do not enter the available
queue and are not v

misched: Added ScoreboardHazardRecognizer.

The Hazard checker implements in-order contraints, or interlocked
resources. Ready instructions with hazards do not enter the available
queue and are not visible to other heuristics.

The major code change is the addition of SchedBoundary to encapsulate
the state at the top or bottom of the schedule, including both a
pending and available queue.

The scheduler now counts cycles in sync with the hazard checker. These
are minimum cycle counts based on known hazards.

Targets with no itinerary (x86_64) currently remain at cycle 0. To fix
this, we need to provide some maximum issue width for all targets. We
also need to add the concept of expected latency vs. minimum latency.

llvm-svn: 157427

show more ...


1...<<11121314151617181920