From a2f31f2b886ccb9656a019db1780aabc1789368a Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Fri, 16 Oct 2020 14:38:06 +0200 Subject: Loop body unrolling with -funrollbody n --- backend/Duplicateaux.ml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'backend/Duplicateaux.ml') diff --git a/backend/Duplicateaux.ml b/backend/Duplicateaux.ml index 84dc92ac..eb9f42e0 100644 --- a/backend/Duplicateaux.ml +++ b/backend/Duplicateaux.ml @@ -807,8 +807,9 @@ let unroll_inner_loops_single f code revmap = *) let unroll_inner_loop_body code revmap iloop = let body = HashedSet.PSet.elements (iloop.body) in - if count_ignore_nops code body > 1000 then begin (* FIXME *) - debug "Too many nodes in the loop body (%d > %d)" (List.length body) 1000; + let limit = !Clflags.option_funrollbody in + if count_ignore_nops code body > limit then begin + debug "Too many nodes in the loop body (%d > %d)" (List.length body) limit; (code, revmap) end else let (code2, revmap2, dupbody, fwmap) = clone code revmap body in @@ -855,7 +856,9 @@ let duplicate_aux f = (* unroll body *) let (code, revmap) = - unroll_inner_loops_body f code revmap in + if !Clflags.option_funrollbody > 0 then + unroll_inner_loops_body f code revmap + else (code, revmap) in (* static prediction bis *) let code = -- cgit