Skip to content

Commit ecb0201

Browse files
authored
flambda-backend: Add "-dcfg" flag to ocamlopt (#254)
* Use Format to print Cfg instructions Extends the interface to use Format, but does not change the formatting, which leaves much to be desired and will be improved later. Add functions [dump_basic] and [dump_terminator] to implement "-dcfg" compiler flag. Keep the functions [print_basic] and [print_terminator] for printing in dot format to a file. * Add -dcfg compiler flag to ocamlopt * Update asmgen to dump cfg * Fix asmgen tests * Keep preserve_orig_labels=true * Fix formatting
1 parent 32ec58a commit ecb0201

File tree

4 files changed

+11
-0
lines changed

4 files changed

+11
-0
lines changed

driver/main_args.ml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,10 @@ let mk_dcamlprimc f =
799799
"-dcamlprimc", Arg.Unit f, " (undocumented)"
800800
;;
801801

802+
let mk_dcfg f =
803+
"-dcfg", Arg.Unit f, " (undocumented)"
804+
;;
805+
802806
let mk_dcmm f =
803807
"-dcmm", Arg.Unit f, " (undocumented)"
804808
;;
@@ -1388,6 +1392,7 @@ module type Optcommon_options = sig
13881392
val _dflambda_verbose : unit -> unit
13891393
val _drawclambda : unit -> unit
13901394
val _dclambda : unit -> unit
1395+
val _dcfg : unit -> unit
13911396
val _dcmm : unit -> unit
13921397
val _dsel : unit -> unit
13931398
val _dcombine : unit -> unit
@@ -1867,6 +1872,7 @@ struct
18671872
mk_dfexpr F._dfexpr;
18681873
mk_dflexpect F._dflexpect;
18691874
mk_dclosure_offsets F._dclosure_offsets;
1875+
mk_dcfg F._dcfg;
18701876
mk_dcmm F._dcmm;
18711877
mk_dsel F._dsel;
18721878
mk_dcombine F._dcombine;
@@ -2040,6 +2046,7 @@ module Make_opttop_options (F : Opttop_options) = struct
20402046
mk_dclambda F._dclambda;
20412047
mk_drawflambda F._drawflambda;
20422048
mk_dflambda F._dflambda;
2049+
mk_dcfg F._dcfg;
20432050
mk_dcmm F._dcmm;
20442051
mk_dsel F._dsel;
20452052
mk_dcombine F._dcombine;
@@ -2219,6 +2226,7 @@ module Default = struct
22192226
let _dalloc = set dump_regalloc
22202227
let _davail () = dump_avail := true
22212228
let _dclambda = set dump_clambda
2229+
let _dcfg = set dump_cfg
22222230
let _dcmm = set dump_cmm
22232231
let _dcombine = set dump_combine
22242232
let _dcse = set dump_cse

driver/main_args.mli

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ module type Optcommon_options = sig
204204
val _dflambda_verbose : unit -> unit
205205
val _drawclambda : unit -> unit
206206
val _dclambda : unit -> unit
207+
val _dcfg : unit -> unit
207208
val _dcmm : unit -> unit
208209
val _dsel : unit -> unit
209210
val _dcombine : unit -> unit

utils/clflags.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ let optimize_for_speed = ref true (* -compact *)
117117
and opaque = ref false (* -opaque *)
118118

119119
and dump_cmm = ref false (* -dcmm *)
120+
let dump_cfg = ref false (* -dcfg *)
120121
let dump_selection = ref false (* -dsel *)
121122
let dump_cse = ref false (* -dcse *)
122123
let dump_live = ref false (* -dlive *)

utils/clflags.mli

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ val dump_instr : bool ref
116116
val keep_camlprimc_file : bool ref
117117
val keep_asm_file : bool ref
118118
val optimize_for_speed : bool ref
119+
val dump_cfg : bool ref
119120
val dump_cmm : bool ref
120121
val dump_selection : bool ref
121122
val dump_cse : bool ref

0 commit comments

Comments
 (0)