@@ -487,8 +487,7 @@ let print_assertions p =
487
487
let prologue = " \
488
488
From Coq Require Import String List ZArith.\n \
489
489
From compcert Require Import Coqlib Integers Floats AST Ctypes Cop Clight Clightdefs.\n \
490
- Local Open Scope Z_scope.\n \
491
- \n "
490
+ Local Open Scope Z_scope.\n "
492
491
493
492
(* Naming the compiler-generated temporaries occurring in the program *)
494
493
@@ -543,13 +542,30 @@ let name_globdef (id, g) =
543
542
let name_program p =
544
543
List. iter name_globdef p.Ctypes. prog_defs
545
544
545
+ (* Information about this run of clightgen *)
546
+
547
+ let print_clightgen_info p sourcefile normalized =
548
+ fprintf p " @[<v 2>Module Info." ;
549
+ fprintf p " @ Definition version := %S%%string." Version. version;
550
+ fprintf p " @ Definition build_number := %S%%string." Version. buildnr;
551
+ fprintf p " @ Definition build_tag := %S%%string." Version. tag;
552
+ fprintf p " @ Definition arch := %S%%string." Configuration. arch;
553
+ fprintf p " @ Definition model := %S%%string." Configuration. model;
554
+ fprintf p " @ Definition abi := %S%%string." Configuration. abi;
555
+ fprintf p " @ Definition bitsize := %d." (if Archi. ptr64 then 64 else 32 );
556
+ fprintf p " @ Definition big_endian := %B." Archi. big_endian;
557
+ fprintf p " @ Definition source_file := %S%%string." sourcefile;
558
+ fprintf p " @ Definition normalized := %B." normalized;
559
+ fprintf p " @]@ End Info.@ @ "
560
+
546
561
(* All together *)
547
562
548
- let print_program p prog =
563
+ let print_program p prog sourcefile normalized =
549
564
Hashtbl. clear temp_names;
550
565
name_program prog;
551
566
fprintf p " @[<v 0>" ;
552
567
fprintf p " %s" prologue;
568
+ print_clightgen_info p sourcefile normalized;
553
569
define_idents p;
554
570
List. iter (print_globdef p) prog.Ctypes. prog_defs;
555
571
fprintf p " Definition composites : list composite_definition :=@ " ;
0 commit comments