aboutsummaryrefslogtreecommitdiffstats
path: root/debug/Debug.mli
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-27 20:25:21 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-27 20:25:21 +0200
commit78df4fe4fad46fee83f5044525fd8e530d8da6ff (patch)
tree8d6ceedc108c46053b2f966693fb0c2e439ae39f /debug/Debug.mli
parent91ed1b752d2661478840e40a0d977b068d99490d (diff)
downloadcompcert-kvx-78df4fe4fad46fee83f5044525fd8e530d8da6ff.tar.gz
compcert-kvx-78df4fe4fad46fee83f5044525fd8e530d8da6ff.zip
More refactoring of the Debug Information.
In order to remove unnecessary dependecies the implemenation type is made and the DebugInit file initializes the fields in the record. This allows it to move more functions behind the Debug interface without introducing circular dependencies.
Diffstat (limited to 'debug/Debug.mli')
-rw-r--r--debug/Debug.mli30
1 files changed, 29 insertions, 1 deletions
diff --git a/debug/Debug.mli b/debug/Debug.mli
index 2954c300..5ef1e7f5 100644
--- a/debug/Debug.mli
+++ b/debug/Debug.mli
@@ -17,7 +17,35 @@ open DwarfTypes
open BinNums
-val init: unit -> unit
+(* Record used for stroring references to the actual implementation functions *)
+type implem =
+ {
+ mutable init: string -> unit;
+ mutable atom_function: ident -> atom -> unit;
+ mutable atom_global_variable: ident -> atom -> unit;
+ mutable set_composite_size: ident -> struct_or_union -> int option -> unit;
+ mutable set_member_offset: ident -> string -> int -> unit;
+ mutable set_bitfield_offset: ident -> string -> int -> string -> int -> unit;
+ mutable insert_global_declaration: Env.t -> globdecl -> unit;
+ mutable add_fun_addr: atom -> (int * int) -> unit;
+ mutable generate_debug_info: unit -> (dw_entry * dw_locations) option;
+ mutable all_files_iter: (string -> unit) -> unit;
+ mutable insert_local_declaration: storage -> ident -> typ -> location -> unit;
+ mutable atom_local_variable: ident -> atom -> unit;
+ mutable enter_scope: int -> int -> int -> unit;
+ mutable enter_function_scope: int -> int -> unit;
+ mutable add_lvar_scope: int -> ident -> int -> unit;
+ mutable open_scope: atom -> int -> positive -> unit;
+ mutable close_scope: atom -> int -> positive -> unit;
+ mutable start_live_range: atom -> positive -> int * int builtin_arg -> unit;
+ mutable end_live_range: atom -> positive -> unit;
+ mutable stack_variable: atom -> int * int builtin_arg -> unit;
+ mutable function_end: atom -> positive -> unit;
+ mutable add_label: atom -> positive -> int -> unit;
+ }
+
+val implem: implem
+
val init_compile_unit: string -> unit
val atom_function: ident -> atom -> unit
val atom_global_variable: ident -> atom -> unit