IAS analyzes predicate relations to determine dependency violations between pairs of predicated instructions. The following example displays a write-after-write dependency violation:
(p1) add r5 = 8, r6
(p2) add r5 = r7, r0
To understand how IAS performs predicate analysis, see Predicate Analysis.
The compare instructions define predicate register values and may result in definition of predicate relations.
To pass on information about predicate relations, use the predicate relation annotation .pred.rel.
The annotation .pred.rel takes the following forms:
“mutex” |
The mutex form defines a mutually exclusive relation. |
“imply” |
The imply form defines an implication relation. |
“clear” |
The clear form removes mutex and imply relations, as described below. When conflicting instructions follow an entry point, IAS ignores all existing predicate relations defined before the entry point. |
An entry point is any of the following:
a label, whether local, global, or temporary
the address of the bundle following a br.call instruction
the target of a direct branch
Use the predicate relation annotation to define the relations between predicates and prevent dependency violation errors.
This section includes:
st8.spill and ld8.fill in the Same Instruction Group