History log of /llvm-project/llvm/lib/CodeGen/PostRASchedulerList.cpp (Results 176 – 200 of 227)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2a767c0d 12-Aug-2009 Dan Gohman <gohman@apple.com>

This logic was accidentally inverted in r78767.

llvm-svn: 78773


# f7912edb 12-Aug-2009 Dan Gohman <gohman@apple.com>

Factor out the code for finding an available register for use
in breaking an anti-dependence into a separate function.

llvm-svn: 78767


# 92492f2f 11-Aug-2009 David Goodwin <david_goodwin@apple.com>

Use DEBUG macro for debug output.

llvm-svn: 78694


# ebd694bb 11-Aug-2009 David Goodwin <david_goodwin@apple.com>

Add some debug output.

llvm-svn: 78687


# f20236ac 11-Aug-2009 David Goodwin <david_goodwin@apple.com>

Replace DOUT.

llvm-svn: 78634


# 6021b4dc 10-Aug-2009 David Goodwin <david_goodwin@apple.com>

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.

llv

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

show more ...


# 0402315d 31-Jul-2009 Dan Gohman <gohman@apple.com>

Use setPreservesAll and setPreservesCFG in CodeGen passes.

llvm-svn: 77754


# 76673328 29-Jul-2009 Chris Lattner <sabre@nondot.org>

inline the global 'getInstrOperandRegClass' function into its callers
now that TargetOperandInfo does the heavy lifting.

llvm-svn: 77508


# fbcc663c 14-Jul-2009 Torok Edwin <edwintorok@gmail.com>

llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location i

llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").

llvm-svn: 75640

show more ...


# 56d06597 11-Jul-2009 Torok Edwin <edwintorok@gmail.com>

assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG bu

assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.

llvm-svn: 75379

show more ...


# 1ff2727c 05-May-2009 Evan Cheng <evan.cheng@apple.com>

Move getInstrOperandRegClass from the scheduler to TargetInstrInfo.

llvm-svn: 70950


# 51856173 09-Apr-2009 Bob Wilson <bob.wilson@apple.com>

Fix pr3954. The register scavenger asserts for inline assembly with
register destinations that are tied to source operands. The
TargetInstrDescr::findTiedToSrcOperand method silently fails for inli

Fix pr3954. The register scavenger asserts for inline assembly with
register destinations that are tied to source operands. The
TargetInstrDescr::findTiedToSrcOperand method silently fails for inline
assembly. The existing MachineInstr::isRegReDefinedByTwoAddr was very
close to doing what is needed, so this revision makes a few changes to
that method and also renames it to isRegTiedToUseOperand (for consistency
with the very similar isRegTiedToDefOperand and because it handles both
two-address instructions and inline assembly with tied registers).

llvm-svn: 68714

show more ...


# be69d60d 11-Mar-2009 Duncan Sands <baldrick@free.fr>

Add parentheses to pacify gcc-4.3.

llvm-svn: 66653


# 64613ace 10-Mar-2009 Dan Gohman <gohman@apple.com>

Fix a post-RA scheduling liveness bug. When a basic block is being
scheduled in multiple regions, liveness data used by the
anti-dependence breaker is carried from one region to the next, however
the

Fix a post-RA scheduling liveness bug. When a basic block is being
scheduled in multiple regions, liveness data used by the
anti-dependence breaker is carried from one region to the next, however
the information reflects the state of the instructions before scheduling.
After scheduling, there may be new live range overlaps. Handle this by
pessimizing the liveness data carried between regions to the point where
it will be conservatively correct now matter how the earlier region is
scheduled. This fixes a miscompilation in 176.gcc with the post-RA
scheduler enabled.

llvm-svn: 66558

show more ...


Revision tags: llvmorg-2.5.0
# dfaf646c 11-Feb-2009 Dan Gohman <gohman@apple.com>

When scheduling a block in parts, keep track of the overall
instruction index across each part. Instruction indices are used
to make live range queries, and live ranges can extend beyond
scheduling r

When scheduling a block in parts, keep track of the overall
instruction index across each part. Instruction indices are used
to make live range queries, and live ranges can extend beyond
scheduling region boundaries.

Refactor the ScheduleDAGSDNodes class some more so that it
doesn't have to worry about this additional information.

llvm-svn: 64288

show more ...


# b3dbb21d 10-Feb-2009 Dan Gohman <gohman@apple.com>

Consider any instruction that modifies the stack pointer to be
a scheduling region boundary. This isn't necessary for
correctness; it helps with compile time, as it avoids the need
for data- and ant

Consider any instruction that modifies the stack pointer to be
a scheduling region boundary. This isn't necessary for
correctness; it helps with compile time, as it avoids the need
for data- and anti-dependencies from all spills and reloads on
the stack-pointer modification.

llvm-svn: 64255

show more ...


# b9543435 10-Feb-2009 Dan Gohman <gohman@apple.com>

Factor out more code for computing register live-range informationfor
scheduling, and generalize is so that preserves state across
scheduling regions. This fixes incorrect live-range information arou

Factor out more code for computing register live-range informationfor
scheduling, and generalize is so that preserves state across
scheduling regions. This fixes incorrect live-range information around
terminators and labels, which are effective region boundaries.

In place of looking for terminators to anchor inter-block dependencies,
introduce special entry and exit scheduling units for this purpose.

llvm-svn: 64254

show more ...


# 066757ee 06-Feb-2009 Evan Cheng <evan.cheng@apple.com>

Move getPointerRegClass from TargetInstrInfo to TargetRegisterInfo.

llvm-svn: 63938


# f4b08b4f 06-Feb-2009 Dan Gohman <gohman@apple.com>

Move ScheduleDAGInstrs.h to be a private header. Front-ends
that used this header to select a scheduling policy should
use SchedulerRegistry.h instead (llvm-gcc and clang were
updated a while ago).

Move ScheduleDAGInstrs.h to be a private header. Front-ends
that used this header to select a scheduling policy should
use SchedulerRegistry.h instead (llvm-gcc and clang were
updated a while ago).

llvm-svn: 63934

show more ...


# d5643531 03-Feb-2009 Dan Gohman <gohman@apple.com>

Change the post-RA scheduler to iterate through the
basic-block segments bottom-up instead of top down. This
is the first step in a general restructuring of the way
register liveness is tracked in th

Change the post-RA scheduler to iterate through the
basic-block segments bottom-up instead of top down. This
is the first step in a general restructuring of the way
register liveness is tracked in the post-RA scheduler.

llvm-svn: 63643

show more ...


# 5f8a2598 16-Jan-2009 Dan Gohman <gohman@apple.com>

Instead of adding dependence edges between terminator instructions
and every other instruction in their blocks to keep the terminator
instructions at the end, teach the post-RA scheduler how to opera

Instead of adding dependence edges between terminator instructions
and every other instruction in their blocks to keep the terminator
instructions at the end, teach the post-RA scheduler how to operate
on ranges of instructions, and exclude terminators from the range
of instructions that get scheduled.

Also, exclude mid-block labels, such as EH_LABEL instructions, and
schedule code before them separately from code after them. This
fixes problems with the post-RA scheduler moving code past
EH_LABELs.

llvm-svn: 62366

show more ...


# 157e0088 16-Jan-2009 Dan Gohman <gohman@apple.com>

If an anti-dependence uses a non-allocatable register, set AntiDepReg
to 0, to ensure that the subsequent code doesn't try to break the
dependence.

llvm-svn: 62365


# 014142fd 16-Jan-2009 Dan Gohman <gohman@apple.com>

Fix the check for an empty basic block to check for an empty SUnits
array instead, since this is what the scheduler actually cares about.
And remove a check that is unnecessary, since it can assume t

Fix the check for an empty basic block to check for an empty SUnits
array instead, since this is what the scheduler actually cares about.
And remove a check that is unnecessary, since it can assume that
SUnits isn't empty.

llvm-svn: 62362

show more ...


# b9030717 16-Jan-2009 Dan Gohman <gohman@apple.com>

Fix a "comparison between signed and unsigned integer expressions"
warning.

llvm-svn: 62327


# ceac7c34 16-Jan-2009 Dan Gohman <gohman@apple.com>

Initial hazard recognizer support in post-pass scheduling. This includes
a new toy hazard recognizier heuristic which attempts to direct the
scheduler to avoid clumping large groups of loads or store

Initial hazard recognizer support in post-pass scheduling. This includes
a new toy hazard recognizier heuristic which attempts to direct the
scheduler to avoid clumping large groups of loads or stores too densely.

llvm-svn: 62291

show more ...


12345678910