let rec fold_blocks b =
    b.bstmts <- List.fold_right
        (fun s acc ->
          match s.skind with
            Block ib ->
              fold_blocks ib;
              if (List.length ib.battrs = 0 &&
                  List.length s.labels = 0) then
                ib.bstmts @ acc
              else
                s::acc
          | Instr (Skip _) when s.labels = [] ->
              acc
          | _ -> s::acc)
        b.bstmts
        []