Skip to content

Commit eb344da

Browse files
authored
flambda-backend: Add a constructor to stop after middle-end (#2333)
1 parent b1bc6bb commit eb344da

File tree

4 files changed

+11
-6
lines changed

4 files changed

+11
-6
lines changed

driver/maindriver.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ let main argv ppf =
6767
are incompatible with -pack, -a, -output-obj"
6868
(String.concat "|"
6969
(P.available_pass_names ~filter:(fun _ -> true) ~native:false))
70-
| Some (P.Scheduling | P.Simplify_cfg | P.Emit | P.Selection) ->
70+
| Some (P.Middle_end | P.Scheduling | P.Simplify_cfg | P.Emit | P.Selection) ->
7171
assert false (* native only *)
7272
end;
7373
if !make_archive then begin

driver/optmaindriver.ml

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ let main argv ppf =
7272
| None ->
7373
Compenv.fatal "Please specify at most one of -pack, -a, -shared, -c, \
7474
-output-obj";
75-
| Some ((P.Parsing | P.Typing | P.Lambda | P.Scheduling
75+
| Some ((P.Parsing | P.Typing | P.Lambda | P.Middle_end | P.Scheduling
7676
| P.Simplify_cfg | P.Emit | P.Selection) as p) ->
7777
assert (P.is_compilation_pass p);
7878
Printf.ksprintf Compenv.fatal

utils/clflags.ml

+8-3
Original file line numberDiff line numberDiff line change
@@ -509,13 +509,14 @@ module Compiler_pass = struct
509509
- the manpages in man/ocaml{c,opt}.m
510510
- the manual manual/src/cmds/unified-options.etex
511511
*)
512-
type t = Parsing | Typing | Lambda
512+
type t = Parsing | Typing | Lambda | Middle_end
513513
| Scheduling | Emit | Simplify_cfg | Selection
514514

515515
let to_string = function
516516
| Parsing -> "parsing"
517517
| Typing -> "typing"
518518
| Lambda -> "lambda"
519+
| Middle_end -> "middle_end"
519520
| Scheduling -> "scheduling"
520521
| Emit -> "emit"
521522
| Simplify_cfg -> "simplify_cfg"
@@ -525,6 +526,7 @@ module Compiler_pass = struct
525526
| "parsing" -> Some Parsing
526527
| "typing" -> Some Typing
527528
| "lambda" -> Some Lambda
529+
| "middle_end" -> Some Middle_end
528530
| "scheduling" -> Some Scheduling
529531
| "emit" -> Some Emit
530532
| "simplify_cfg" -> Some Simplify_cfg
@@ -535,6 +537,7 @@ module Compiler_pass = struct
535537
| Parsing -> 0
536538
| Typing -> 1
537539
| Lambda -> 2
540+
| Middle_end -> 3
538541
| Selection -> 20
539542
| Simplify_cfg -> 49
540543
| Scheduling -> 50
@@ -544,13 +547,15 @@ module Compiler_pass = struct
544547
Parsing;
545548
Typing;
546549
Lambda;
550+
Middle_end;
547551
Scheduling;
548552
Emit;
549553
Simplify_cfg;
550554
Selection;
551555
]
552556
let is_compilation_pass _ = true
553557
let is_native_only = function
558+
| Middle_end -> true
554559
| Scheduling -> true
555560
| Emit -> true
556561
| Simplify_cfg -> true
@@ -562,7 +567,7 @@ module Compiler_pass = struct
562567
| Scheduling -> true
563568
| Simplify_cfg -> true
564569
| Selection -> true
565-
| Parsing | Typing | Lambda | Emit -> false
570+
| Parsing | Typing | Lambda | Middle_end | Emit -> false
566571

567572
let available_pass_names ~filter ~native =
568573
passes
@@ -578,7 +583,7 @@ module Compiler_pass = struct
578583
| Scheduling -> prefix ^ Compiler_ir.(extension Linear)
579584
| Simplify_cfg -> prefix ^ Compiler_ir.(extension Cfg)
580585
| Selection -> prefix ^ Compiler_ir.(extension Cfg) ^ "-sel"
581-
| Emit | Parsing | Typing | Lambda -> Misc.fatal_error "Not supported"
586+
| Emit | Parsing | Typing | Lambda | Middle_end -> Misc.fatal_error "Not supported"
582587

583588
let of_input_filename name =
584589
match Compiler_ir.extract_extension_with_pass name with

utils/clflags.mli

+1-1
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ module Compiler_ir : sig
256256
end
257257

258258
module Compiler_pass : sig
259-
type t = Parsing | Typing | Lambda
259+
type t = Parsing | Typing | Lambda | Middle_end
260260
| Scheduling | Emit | Simplify_cfg | Selection
261261
val of_string : string -> t option
262262
val to_string : t -> string

0 commit comments

Comments
 (0)