aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index 3d4c679..723656f 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1713,6 +1713,11 @@ rest_of_compilation (void)
compute_alignments ();
+ /* Aggressively duplicate basic blocks ending in computed gotos to the
+ tails of their predecessors, unless we are optimizing for size. */
+ if (flag_expensive_optimizations && !optimize_size)
+ duplicate_computed_gotos ();
+
if (flag_var_tracking)
rest_of_handle_variable_tracking ();