Turn flambda invariants checks off by default (#1686)

master
Pierre Chambart 2018-04-06 10:49:57 +02:00 committed by Mark Shinwell
parent de6b8af8e2
commit 0a42259060
17 changed files with 36 additions and 4 deletions

View File

@ -56,11 +56,11 @@ EOF
case $XARCH in
x64)
./configure --prefix $PREFIX -with-debug-runtime \
-with-instrumented-runtime $CONFIG_ARG
-with-instrumented-runtime -with-flambda-invariants $CONFIG_ARG
;;
i386)
./configure --prefix $PREFIX -with-debug-runtime \
-with-instrumented-runtime $CONFIG_ARG \
-with-instrumented-runtime -with-flambda-invariants $CONFIG_ARG \
-host i686-pc-linux-gnu
;;
*)

View File

@ -195,6 +195,9 @@ Working version
* GPR#1617: Make string/bytes distinguishable in the bytecode.
(Hugo Heuzard, reviewed by Nicolás Ojeda Bär)
- GPR#1686: Turn off by default flambda invariants checks.
(Pierre Chambart)
### Runtime system:
- MPR#6411, GPR#1535: don't compile everything with -static-libgcc on mingw32,

View File

@ -333,6 +333,7 @@ utils/config.ml: utils/config.mlp config/Makefile Makefile
$(call SUBST,EXT_LIB) \
$(call SUBST,EXT_OBJ) \
$(call SUBST,FLAMBDA) \
$(call SUBST,WITH_FLAMBDA_INVARIANTS) \
$(call SUBST,FLEXLINK_FLAGS) \
$(call SUBST_QUOTE,FLEXDLL_DIR) \
$(call SUBST,HOST) \

View File

@ -96,6 +96,7 @@ UNIX_OR_WIN32=win32
UNIXLIB=win32unix
GRAPHLIB=win32graph
FLAMBDA=false
WITH_FLAMBDA_INVARIANTS=false
WITH_SPACETIME=false
ENABLE_CALL_COUNTS=false
WITH_PROFINFO=false

View File

@ -96,6 +96,7 @@ UNIX_OR_WIN32=win32
UNIXLIB=win32unix
GRAPHLIB=win32graph
FLAMBDA=false
WITH_FLAMBDA_INVARIANTS=false
WITH_PROFINFO=false
WITH_SPACETIME=false
ENABLE_CALL_COUNTS=false

View File

@ -89,6 +89,7 @@ UNIX_OR_WIN32=win32
UNIXLIB=win32unix
GRAPHLIB=win32graph
FLAMBDA=false
WITH_FLAMBDA_INVARIANTS=false
WITH_PROFINFO=false
WITH_SPACETIME=false
ENABLE_CALL_COUNTS=false

View File

@ -88,6 +88,7 @@ UNIX_OR_WIN32=win32
UNIXLIB=win32unix
GRAPHLIB=win32graph
FLAMBDA=false
WITH_FLAMBDA_INVARIANTS=false
WITH_PROFINFO=false
WITH_SPACETIME=false
ENABLE_CALL_COUNTS=false

9
configure vendored
View File

@ -67,6 +67,7 @@ max_testsuite_dir_retries=0
with_cplugins=false
with_fpic=false
flat_float_array=true
with_flambda_invariants=false
# we distinguish '' (not set) from 'true' (explicitly set by the user)
with_instrumented_runtime=''
@ -210,6 +211,8 @@ while : ; do
native_compiler=false;;
-flambda|--flambda)
flambda=true;;
-with-flambda-invariants|--with-flambda-invariants)
with_flambda_invariants=true;;
-with-cplugins|--with-cplugins)
with_cplugins=true;;
-no-cplugins|--no-cplugins)
@ -2132,6 +2135,7 @@ if [ "$ostype" = Cygwin ]; then
config DIFF "diff -q --strip-trailing-cr"
fi
config FLAMBDA "$flambda"
config WITH_FLAMBDA_INVARIANTS "$with_flambda_invariants"
config FORCE_SAFE_STRING "$force_safe_string"
config DEFAULT_SAFE_STRING "$default_safe_string"
config WINDOWS_UNICODE "0"
@ -2251,6 +2255,11 @@ else
fi
if test "$flambda" = "true"; then
inf " using flambda middle-end . yes"
if test "$with_flambda_invariants" = "true"; then
inf " ... with flambda invariants checks . yes"
else
inf " ... with flambda invariants checks . no"
fi
else
inf " using flambda middle-end . no"
fi

View File

@ -645,6 +645,11 @@ let mk_drawflambda f =
"-drawflambda", Arg.Unit f, " Print Flambda terms after closure conversion"
;;
let mk_dflambda_invariants f =
"-dflambda-invariants", Arg.Unit f, " Check Flambda invariants \
around each pass"
;;
let mk_dflambda_no_invariants f =
"-dflambda-no-invariants", Arg.Unit f, " Do not Check Flambda invariants \
around each pass"
@ -941,6 +946,7 @@ module type Optcommon_options = sig
val _clambda_checks : unit -> unit
val _dflambda : unit -> unit
val _drawflambda : unit -> unit
val _dflambda_invariants : unit -> unit
val _dflambda_no_invariants : unit -> unit
val _dflambda_let : int -> unit
val _dflambda_verbose : unit -> unit
@ -1279,6 +1285,7 @@ struct
mk_dclambda F._dclambda;
mk_dflambda F._dflambda;
mk_drawflambda F._drawflambda;
mk_dflambda_invariants F._dflambda_invariants;
mk_dflambda_no_invariants F._dflambda_no_invariants;
mk_dflambda_let F._dflambda_let;
mk_dflambda_verbose F._dflambda_verbose;

View File

@ -173,6 +173,7 @@ module type Optcommon_options = sig
val _clambda_checks : unit -> unit
val _dflambda : unit -> unit
val _drawflambda : unit -> unit
val _dflambda_invariants : unit -> unit
val _dflambda_no_invariants : unit -> unit
val _dflambda_let : int -> unit
val _dflambda_verbose : unit -> unit

View File

@ -210,6 +210,7 @@ module Options = Main_args.Make_optcomp_options (struct
let _dflambda_verbose () =
set dump_flambda ();
set dump_flambda_verbose ()
let _dflambda_invariants = set flambda_invariant_checks
let _dflambda_no_invariants = clear flambda_invariant_checks
let _dcmm = set dump_cmm
let _dsel = set dump_selection

View File

@ -201,7 +201,7 @@ case $configure in
unix)
confoptions="$confoptions -with-debug-runtime"
if $flambda; then
confoptions="$confoptions -flambda"
confoptions="$confoptions -flambda -with-flambda-invariants"
fi
eval "./configure -prefix '$instdir' $confoptions"
;;

View File

@ -157,6 +157,7 @@ module Options = Main_args.Make_optcomp_options (struct
let _dclambda = option "-dclambda"
let _drawflambda = option "-drawflambda"
let _dflambda = option "-dflambda"
let _dflambda_invariants = option "-dflambda-invariants"
let _dflambda_no_invariants = option "-dflambda-no-invariants"
let _dflambda_let stamp = option_with_int "-dflambda-let" stamp
let _dflambda_verbose = option "-dflambda-verbose"

View File

@ -174,6 +174,7 @@ module Options = Main_args.Make_opttop_options (struct
let _dflambda_verbose () =
set dump_flambda ();
set dump_flambda_verbose ()
let _dflambda_invariants = set flambda_invariant_checks
let _dflambda_no_invariants = clear flambda_invariant_checks
let _labels = clear classic
let _alias_deps = clear transparent_modules

View File

@ -135,7 +135,8 @@ let native_code = ref false (* set to true under ocamlopt *)
let force_slash = ref false (* for ocamldep *)
let clambda_checks = ref false (* -clambda-checks *)
let flambda_invariant_checks = ref true (* -flambda-invariants *)
let flambda_invariant_checks =
ref Config.with_flambda_invariants (* -flambda-(no-)invariants *)
let dont_write_files = ref false (* set to true under ocamldoc *)

View File

@ -150,6 +150,8 @@ val profiling : bool
val flambda : bool
(* Whether the compiler was configured for flambda *)
val with_flambda_invariants : bool
(* Whether the invariants checks for flambda are enabled *)
val spacetime : bool
(* Whether the compiler was configured for Spacetime profiling *)

View File

@ -73,6 +73,7 @@ let mkdll, mkexe, mkmaindll =
let profiling = %%PROFILING%%
let flambda = %%FLAMBDA%%
let with_flambda_invariants = %%WITH_FLAMBDA_INVARIANTS%%
let safe_string = %%FORCE_SAFE_STRING%%
let default_safe_string = %%DEFAULT_SAFE_STRING%%
let windows_unicode = %%WINDOWS_UNICODE%% != 0