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