let compute_postdom kf =
let return = Kernel_function.find_return kf in
try
let _ = PostDom.find return.sid in
Parameters.result "(post) computed for function %a"
Kernel_function.pretty_name kf
with Not_found ->
Parameters.feedback "computing (post) for function %a"
Kernel_function.pretty_name kf;
let f = kf.fundec in
let stmts = match f with
| Definition (f,_) -> f.sallstmts
| Declaration _ ->
Parameters.fatal "cannot compute postdominators for a leaf function"
in
List.iter (fun s -> PostDom.add s.sid DomSet.Top) stmts;
PostCompute.compute [return];
Parameters.feedback "done for function %a"
Kernel_function.pretty_name kf