mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 07:34:33 +00:00
Fix incorrect ScheduleDAG comment and formalize Weak edges.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176315 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bf32b7f844
commit
ebff1d9035
@ -52,11 +52,21 @@ namespace llvm {
|
||||
Order ///< Any other ordering dependency.
|
||||
};
|
||||
|
||||
// Strong dependencies must be respected by the scheduler. Artificial
|
||||
// dependencies may be removed only if they are redundant with another
|
||||
// strong depedence.
|
||||
//
|
||||
// Weak dependencies may be violated by the scheduling strategy, but only if
|
||||
// the strategy can prove it is correct to do so.
|
||||
//
|
||||
// Strong OrderKinds must occur before "Weak".
|
||||
// Weak OrderKinds must occur after "Weak".
|
||||
enum OrderKind {
|
||||
Barrier, ///< An unknown scheduling barrier.
|
||||
MayAliasMem, ///< Nonvolatile load/Store instructions that may alias.
|
||||
MustAliasMem, ///< Nonvolatile load/Store instructions that must alias.
|
||||
Artificial, ///< Arbitrary weak DAG edge (no actual dependence).
|
||||
Artificial, ///< Arbitrary strong DAG edge (no real dependence).
|
||||
Weak, ///< Arbitrary weak DAG edge.
|
||||
Cluster ///< Weak DAG edge linking a chain of clustered instrs.
|
||||
};
|
||||
|
||||
@ -205,7 +215,7 @@ namespace llvm {
|
||||
/// not force ordering. Breaking a weak edge may require the scheduler to
|
||||
/// compensate, for example by inserting a copy.
|
||||
bool isWeak() const {
|
||||
return getKind() == Order && Contents.OrdKind == Cluster;
|
||||
return getKind() == Order && Contents.OrdKind >= Weak;
|
||||
}
|
||||
|
||||
/// isArtificial - Test if this is an Order dependence that is marked
|
||||
|
Loading…
x
Reference in New Issue
Block a user