Posted to tcl by kbk at Tue Aug 05 00:26:43 GMT 2014view pretty

isDouble(v) :- propagatesDouble(st), hasConstDoubleOperand(st), 
               writes(st, v).
isDouble(v) :- propagatesDouble(st), reads(st, v2), isDouble(v2),
               writes(st, v).
isDouble(v) :- isPhi(st), !nonDoubleReaches(st).
nonDoubleReaches(st) :- reads(st, v), writes(st2,v), !isDouble(v).