diff options
author | Sverker Eriksson <[email protected]> | 2017-11-15 14:42:06 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2017-11-15 14:42:06 +0100 |
commit | 0d9d1f1915ac70ba00418fd24a4293bb22c4fade (patch) | |
tree | 49df7cdfbd1e211dc7aace5db5ce7e3af6e40909 /lib/hipe/main | |
parent | 1836281f02004db2cc0185b877552377cd436d9a (diff) | |
parent | 7503303b0cba1e02320bdf604e0d0997b7c2ff59 (diff) | |
download | otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.tar.gz otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.tar.bz2 otp-0d9d1f1915ac70ba00418fd24a4293bb22c4fade.zip |
Merge PR-1621 from margnus1/hipe-literal-tag
HiPE: Support for literal tag, tests and bugfixes
Diffstat (limited to 'lib/hipe/main')
-rw-r--r-- | lib/hipe/main/hipe.app.src | 1 | ||||
-rw-r--r-- | lib/hipe/main/hipe.erl | 4 | ||||
-rw-r--r-- | lib/hipe/main/hipe_main.erl | 5 |
3 files changed, 9 insertions, 1 deletions
diff --git a/lib/hipe/main/hipe.app.src b/lib/hipe/main/hipe.app.src index fb750dd418..66008a4178 100644 --- a/lib/hipe/main/hipe.app.src +++ b/lib/hipe/main/hipe.app.src @@ -179,6 +179,7 @@ hipe_rtl_to_sparc, hipe_rtl_to_x86, hipe_rtl_varmap, + hipe_rtl_verify_gcsafe, hipe_segment_trees, hipe_sdi, hipe_sparc, diff --git a/lib/hipe/main/hipe.erl b/lib/hipe/main/hipe.erl index f5f5bf5830..acb9b7b062 100644 --- a/lib/hipe/main/hipe.erl +++ b/lib/hipe/main/hipe.erl @@ -1414,6 +1414,7 @@ opt_keys() -> use_clusters, use_jumptable, verbose, + verify_gcsafe, %% verbose_spills, x87]. @@ -1510,7 +1511,8 @@ opt_negations() -> {no_use_callgraph, use_callgraph}, {no_use_clusters, use_clusters}, {no_use_inline_atom_search, use_inline_atom_search}, - {no_use_indexing, use_indexing}]. + {no_use_indexing, use_indexing}, + {no_verify_gcsafe, verify_gcsafe}]. %% Don't use negative forms in right-hand sides of aliases and expansions! %% We only expand negations once, before the other expansions are done. diff --git a/lib/hipe/main/hipe_main.erl b/lib/hipe/main/hipe_main.erl index dca6fddec3..4b5eb4c63e 100644 --- a/lib/hipe/main/hipe_main.erl +++ b/lib/hipe/main/hipe_main.erl @@ -410,6 +410,11 @@ icode_to_rtl(MFA, Icode, Options, Servers) -> hipe_llvm_liveness:analyze(RtlCfg4) end, pp(RtlCfg5, MFA, rtl, pp_rtl, Options, Servers), + case proplists:get_bool(verify_gcsafe, Options) of + false -> ok; + true -> + ok = hipe_rtl_verify_gcsafe:check(RtlCfg5) + end, LinearRTL1 = hipe_rtl_cfg:linearize(RtlCfg5), LinearRTL2 = hipe_rtl_cleanup_const:cleanup(LinearRTL1), %% hipe_rtl:pp(standard_io, LinearRTL2), |