Example 1:
if (v) x = 0; else x = 1; y += x;where v is a dynamic variable.
stich (template1); template1: if (v) x = 0; else x = 1; y += x;
Example 2:
if (r) x = 0; else x = 1; y += x;where r is a run-time constant
if (r) x = 0; else x = 1; stich (template1, x->rtconst1); template1: y += rtconst1;
+---------------+ | if (sym) | +---------------+ /\ T / \ F / \ ------- ------- ( ( ( ( ) ) ) ) ( A ( ( B ( ) ) ) ) ------- ------- \ / \ / \ / +---------------+ | | +---------------+
x = constant; Add x to the set x = y op z; Add x only if y, z are in the set
{rtc:q} +---------------+ | if (sym) | +---------------+ /\ {rtc:q} T / \ F / \ +-----+ +-----+ b:| x=0 | c:| x=1 | +-----+ +-----+ {x:b,rtc:q} \ / {x:c,rtc:q} \ / \ / +---------------+ d:| y =+ x | +---------------+ {x:d,rtc:q}