Clear Form of the .pred.rel Annotation

The .pred.rel annotation of the form "clear" erases predicates relations. If you specify the predicate register P1, IAS erases all the mutex relations containing P1, and all the implication relations in which P1 is the implicating predicate register. If you do not specify any predicate registers, IAS takes this as a shortcut to naming all the predicate registers.

Format:

.pred.rel "clear" [p1[,p2[,&ldots;]]]

where

p1, p2 are predicate registers

For example:

.pred.rel "clear" p1 ; clears all the p1 relations
.pred.rel "clear"    ; clears all predicate relations

The following example uses both mutex and implication relations. The form “clear” has different effects depending on the relations.

.pred.rel “mutex”,p1,p2
.pred.rel “mutex”,p3,p1
.pred.rel “imply”,p1,p4
.pred.rel “imply”,p5,p1
.pred.rel “clear”,p1
;
; clears the two mutex relations
; and the first implication form
;
(p1) mov r1=r2       ; => WAW on r1 is reported
(p2) mov r1=r2
;;
(p1) mov r2=r3
(p3) mov r2=r3       ; => WAW on r2 is reported
;;
(p1) mov r3=r4
(p4) br.cond.sptk.few b0
mov r3=r4            ; => WAW on r3 is reported
// WAW would not have been reported if p1 -> p4
;;
(p5) mov r4=r5
(p1) br.cond.sptk.few b0
mov r4=r5            ; WAW is not reported.
                  ; p5 -> p1 is still valid