aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Duplicateaux.ml
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2020-03-18 11:23:01 +0100
committerCyril SIX <cyril.six@kalray.eu>2020-03-18 11:23:01 +0100
commit54ff3d4da4677284cc538eb7e89c83aa2d7eaea5 (patch)
tree972e274517d9cb9b69d7954b286f85d98a83f3a3 /backend/Duplicateaux.ml
parent5d1b51ae43e3b2784805aae60144870a6f14b6e0 (diff)
parentfb43d1078c0b0824132b30d7dd9bfe6b0ac47122 (diff)
downloadcompcert-kvx-54ff3d4da4677284cc538eb7e89c83aa2d7eaea5.tar.gz
compcert-kvx-54ff3d4da4677284cc538eb7e89c83aa2d7eaea5.zip
Merge branch 'mppa-work' into mppa-branch-info
Conflicts: backend/Duplicateaux.ml
Diffstat (limited to 'backend/Duplicateaux.ml')
-rw-r--r--backend/Duplicateaux.ml19
1 files changed, 11 insertions, 8 deletions
diff --git a/backend/Duplicateaux.ml b/backend/Duplicateaux.ml
index c2839bc3..1548765e 100644
--- a/backend/Duplicateaux.ml
+++ b/backend/Duplicateaux.ml
@@ -508,12 +508,15 @@ let rec invert_iconds code = function
let duplicate_aux f =
let entrypoint = f.fn_entrypoint in
- let code = update_directions (f.fn_code) entrypoint in
- let traces = select_traces code entrypoint in
- let icond_code = invert_iconds code traces in
- let preds = get_predecessors_rtl icond_code in
- if !Clflags.option_fduplicate >= 1 then
- let (new_code, pTreeId) = ((* print_traces traces; *) superblockify_traces icond_code preds traces) in
- ((new_code, f.fn_entrypoint), pTreeId)
+ if !Clflags.option_fduplicate < 0 then
+ ((f.fn_code, entrypoint), make_identity_ptree f.fn_code)
else
- ((icond_code, entrypoint), make_identity_ptree code)
+ let code = update_directions (f.fn_code) entrypoint in
+ let traces = select_traces code entrypoint in
+ let icond_code = invert_iconds code traces in
+ let preds = get_predecessors_rtl icond_code in
+ if !Clflags.option_fduplicate >= 1 then
+ let (new_code, pTreeId) = ((* print_traces traces; *) superblockify_traces icond_code preds traces) in
+ ((new_code, f.fn_entrypoint), pTreeId)
+ else
+ ((icond_code, entrypoint), make_identity_ptree code)