let hasnobranch_desc =
function
| IL0stmtLabel _ -> false
| IL0stmtDeclAutoScalar _ -> true
| IL0stmtDeclBulk _ -> true
| IL0stmtIf _ -> false
| IL0stmtSwitch _ -> false
| IL0stmtGoto _ -> false
| IL0stmtReturn _ -> false
(* basically from expression *)
| IL0stmtDefTemp _ -> true
| IL0stmtReadToTemp _ -> true
| IL0stmtWrite _ -> true
| IL0stmtSequence l -> List.for_all (fun t -> t.il0_nobranch) l
| IL0stmtParallel l -> List.for_all (fun t -> t.il0_nobranch) l