LISA IRRWIW+poacquireacquire+ctrlonceonce+OnceRelease
"RfeOnceAcquire PodRRAcquireAcquire FreAcquireRelease RfeReleaseOnce DpCtrldWOnceOnce WseOnceOnce"
Cycle=PodRRAcquireAcquire FreAcquireRelease RfeReleaseOnce DpCtrldWOnceOnce WseOnceOnce RfeOnceAcquire
Relax=FreAcquireRelease RfeOnceAcquire RfeReleaseOnce
Safe=PodRRAcquireAcquire WseOnceOnce DpCtrldWOnceOnce
Prefetch=1:x=F,1:y=T,3:y=F,3:x=W
Com=Rf Fr Rf Ws
Orig=RfeOnceAcquire PodRRAcquireAcquire FreAcquireRelease RfeReleaseOnce DpCtrldWOnceOnce WseOnceOnce
{
}
P0 | P1 | P2 | P3 ;
w[once] x 2 | r[acquire] r0 x | w[release] y 1 | r[once] r0 y ;
| r[acquire] r1 y | | mov r1 (eq r0 0) ;
| | | b[] r1 LC00 ;
| | | LC00: ;
| | | w[once] x 1 ;
Observed
x=2; 3:r0=1; 1:r1=0; 1:r0=2;
and x=2; 3:r0=1; 1:r1=0; 1:r0=1;
and x=1; 3:r0=1; 1:r1=0; 1:r0=1;