macro simpl!(X) { ccp(X); simplify-cfg(X); lift-dc-math(X); gvn(X); phi-elim(X); dce(X); infer-schedules(X); } phi-elim(*); let loop1 = outline(srad@loop1); let loop2 = outline(srad@loop2); let loop3 = outline(srad@loop3); simpl!(*); const-inline(*); crc(*); slf(*); write-predication(*); simpl!(*); predication(*); simpl!(*); predication(*); simpl!(*); fixpoint { forkify(*); fork-guard-elim(*); fork-coalesce(*); } simpl!(*); fork-split(*); unforkify(*); gcm(*);