Guarding Example
If (condition) then instrA, instrB, instrCelse instrD, instrE, instrFendif
No guarding: r1 = compute_condition() Bz r1, skip instrA, instrB, instrC jmp resume skip: instrD, instrE, instrF resume instrG….
If (condition) then instrA, instrB, instrCelse instrD, instrE, instrFendif
Guarding: r1 = compute_condition() true(r1) instrA true(r1) instrB true (r1) instrC false(r1) instrD false(r1) instrE false(r1) instrF instrG
Note that for guarding, instructions in not-taken path have to be fetched and their guards evaluated.