diff options
Diffstat (limited to 'driver/Driver.ml')
-rw-r--r--[-rwxr-xr-x] | driver/Driver.ml | 80 |
1 files changed, 1 insertions, 79 deletions
diff --git a/driver/Driver.ml b/driver/Driver.ml index 9d5ed3b3..b68331a6 100755..100644 --- a/driver/Driver.ml +++ b/driver/Driver.ml @@ -19,8 +19,6 @@ open Frontend open Assembler open Linker -let dump_options = ref false - (* Optional sdump suffix *) let sdump_suffix = ref ".json" let sdump_folder = ref "" @@ -76,49 +74,6 @@ let compile_c_file sourcename ifile ofile = let ast = parse_c_file sourcename ifile in compile_c_ast sourcename ast ofile -(* From Cminor to asm *) - -let compile_cminor_file ifile ofile = - (* Prepare to dump RTL, Mach, etc, if requested *) - let set_dest dst opt ext = - dst := if !opt then Some (output_filename ifile ".cm" ext) - else None in - set_dest PrintRTL.destination option_drtl ".rtl"; - set_dest Regalloc.destination_alloctrace option_dalloctrace ".alloctrace"; - set_dest PrintLTL.destination option_dltl ".ltl"; - set_dest PrintMach.destination option_dmach ".mach"; - Sections.initialize(); - let ic = open_in ifile in - let lb = Lexing.from_channel ic in - (* Parse cminor *) - let cm = - try CMtypecheck.type_program (CMparser.prog CMlexer.token lb) - with Parsing.Parse_error -> - eprintf "File %s, character %d: Syntax error\n" - ifile (Lexing.lexeme_start lb); - exit 2 - | CMlexer.Error msg -> - eprintf "File %s, character %d: %s\n" - ifile (Lexing.lexeme_start lb) msg; - exit 2 - | CMtypecheck.Error msg -> - eprintf "File %s, type-checking error:\n%s" - ifile msg; - exit 2 in - (* Convert to Asm *) - let asm = - match Compiler.apply_partial - (Compiler.transf_cminor_program cm) - Asmexpand.expand_program with - | Errors.OK asm -> - asm - | Errors.Error msg -> - eprintf "%s: %a" ifile print_error msg; - exit 2 in - (* Print Asm in text form *) - let oc = open_out ofile in - PrintAsm.print_program oc asm; - close_out oc (* Processing of a .c file *) @@ -160,8 +115,6 @@ let process_c_file sourcename = if not !option_dasm then safe_remove asmname; objname end in - if !dump_options then - Optionsprinter.print (output_filename sourcename ".c" ".opt.json") !stdlib_path; name end @@ -176,8 +129,6 @@ let process_i_file sourcename = end else if !option_S then begin compile_c_file sourcename sourcename (output_filename ~final:true sourcename ".c" ".s"); - if !dump_options then - Optionsprinter.print (output_filename sourcename ".c" ".opt.json") !stdlib_path; "" end else begin let asmname = @@ -188,32 +139,9 @@ let process_i_file sourcename = let objname = output_filename ~final: !option_c sourcename ".c" ".o" in assemble asmname objname; if not !option_dasm then safe_remove asmname; - if !dump_options then - Optionsprinter.print (output_filename sourcename ".c" ".opt.json") !stdlib_path; objname end -(* Processing of a .cm file *) - -let process_cminor_file sourcename = - ensure_inputfile_exists sourcename; - if !option_S then begin - compile_cminor_file sourcename - (output_filename ~final:true sourcename ".cm" ".s"); - "" - end else begin - let asmname = - if !option_dasm - then output_filename sourcename ".cm" ".s" - else Filename.temp_file "compcert" ".s" in - compile_cminor_file sourcename asmname; - let objname = output_filename ~final: !option_c sourcename ".cm" ".o" in - assemble asmname objname; - if not !option_dasm then safe_remove asmname; - if !dump_options then - Optionsprinter.print (output_filename sourcename ".cm" ".opt.json") !stdlib_path; - objname - end (* Processing of .S and .s files *) @@ -269,7 +197,6 @@ let usage_string = Recognized source files: .c C source file .i or .p C source file that should not be preprocessed - .cm Cminor source file .s Assembly file .S or .sx Assembly file that must be preprocessed .o Object file @@ -329,7 +256,6 @@ Code generation options: (use -fno-<opt> to turn off -f<opt>) -dasm Save generated assembly in <file>.s -dall Save all generated intermediate files in <file>.<ext> -sdump Save info for post-linking validation in <file>.json - -doptions Save the compiler configurations in <file>.opt.json General options: -stdlib <dir> Set the path of the Compcert run-time library -v Print external commands before invoking them @@ -450,12 +376,10 @@ let cmdline_actions = option_drtl := true; option_dalloctrace := true; option_dmach := true; - option_dasm := true; - dump_options:=true); + option_dasm := true); Exact "-sdump", Set option_sdump; Exact "-sdump-suffix", String (fun s -> option_sdump := true; sdump_suffix:= s); Exact "-sdump-folder", String (fun s -> sdump_folder := s); - Exact "-doptions", Set dump_options; (* General options *) Exact "-v", Set option_v; Exact "-stdlib", String(fun s -> stdlib_path := s); @@ -498,8 +422,6 @@ let cmdline_actions = push_action process_i_file s; incr num_source_files; incr num_input_files); Suffix ".p", Self (fun s -> push_action process_i_file s; incr num_source_files; incr num_input_files); - Suffix ".cm", Self (fun s -> - push_action process_cminor_file s; incr num_source_files; incr num_input_files); Suffix ".s", Self (fun s -> push_action process_s_file s; incr num_source_files; incr num_input_files); Suffix ".S", Self (fun s -> |