diff options
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index 087a13a..925f06b 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -898,6 +898,11 @@ int flag_bounded_pointers = 0; For CHILL: defaults to off. */ int flag_bounds_check = 0; +/* This will attempt to merge constant section constants, if 1 only + string constants and constants from constant pool, if 2 also constant + variables. */ +int flag_merge_constants = 1; + /* If one, renumber instruction UIDs to reduce the number of unused UIDs if there are a lot of instructions. If greater than one, unconditionally renumber instruction UIDs. */ @@ -1139,6 +1144,10 @@ lang_independent_options f_options[] = N_("Align all labels") }, {"align-functions", &align_functions, 0, N_("Align the start of functions") }, + {"merge-constants", &flag_merge_constants, 1, + N_("Attempt to merge identical constants accross compilation units") }, + {"merge-all-constants", &flag_merge_constants, 2, + N_("Attempt to merge identical constants and constant variables") }, {"check-memory-usage", &flag_check_memory_usage, 1, N_("Generate code to check every memory access") }, {"prefix-function-name", &flag_prefix_function_name, 1, @@ -4680,6 +4689,11 @@ toplev_main (argc, argv) } } + if (!optimize) + { + flag_merge_constants = 0; + } + if (optimize >= 1) { flag_defer_pop = 1; |