diff options
author | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2021-01-24 12:29:42 -0300 |
---|---|---|
committer | Giuliano Belinassi <giuliano.belinassi@usp.br> | 2021-01-24 12:29:42 -0300 |
commit | e2da2f7205e03a57f5f0a6b75974bcab39fe6b9e (patch) | |
tree | 612a27d07380cf3b8143a64ba9464a535e12e844 | |
parent | a926878ddbd5a98b272c22171ce58663fc04c3e0 (diff) | |
download | gcc-devel/autopar_europar_2021.zip gcc-devel/autopar_europar_2021.tar.gz gcc-devel/autopar_europar_2021.tar.bz2 |
Initial commit for Europar 2021 GCC versiondevel/autopar_europar_2021
This was the version of GCC used in the Europar 2021 paper with regard
to GCC paralelism. Future commits are possible, so look in the paper the
commit hash of the version was used.
-rw-r--r-- | gcc/.cgraphunit.c.swp | bin | 0 -> 126976 bytes | |||
-rw-r--r-- | gcc/.lto-cgraph.c.swo | bin | 0 -> 16384 bytes | |||
-rw-r--r-- | gcc/cgraphunit.c | 12 | ||||
-rw-r--r-- | gcc/gcc.c | 9 | ||||
-rw-r--r-- | gcc/ipa-split.c | 17 |
5 files changed, 26 insertions, 12 deletions
diff --git a/gcc/.cgraphunit.c.swp b/gcc/.cgraphunit.c.swp Binary files differnew file mode 100644 index 0000000..83c78e6 --- /dev/null +++ b/gcc/.cgraphunit.c.swp diff --git a/gcc/.lto-cgraph.c.swo b/gcc/.lto-cgraph.c.swo Binary files differnew file mode 100644 index 0000000..a87c6db --- /dev/null +++ b/gcc/.lto-cgraph.c.swo diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 73e4bed..12d2d19 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -2794,10 +2794,22 @@ maybe_compile_in_parallel (void) bool jobserver = false; bool job_auto = false; int num_jobs = -1; + unsigned long long insns = 0; + cgraph_node *cnode; if (!flag_parallel_jobs || !split_outputs) return false; + FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode) + { + ipa_size_summary *ss = ipa_size_summaries->get (cnode); + if (!cnode->inlined_to && ss) + insns += ss->size; + } + + if (insns < (unsigned long long) param_min_partition_size) + return false; + if (!strcmp (flag_parallel_jobs, "auto")) { jobserver = jobserver_initialize (); @@ -3405,14 +3405,7 @@ append_split_outputs (extra_arg_storer *storer, argv[argc++] = extra_argument; } - if (have_c) - { - argv[argc++] = "-fPIE"; - argv[argc++] = "-fPIC"; - } - argv[argc] = NULL; - commands[0].argv = argv; } @@ -3977,7 +3970,7 @@ execute (void) /* FIXME: Interact with GNU Jobserver if necessary. */ commands_batch = commands; - n = flag_parallel_jobs? 1: n_commands; + n = n_commands; for (int i = 0; i < n_commands; i += n) { diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c index 973e72c..09e9eb9 100644 --- a/gcc/ipa-split.c +++ b/gcc/ipa-split.c @@ -1909,8 +1909,12 @@ pass_split_functions::gate (function *) { /* When doing profile feedback, we want to execute the pass after profiling is read. So disable one in early optimization. */ - return (flag_partial_inlining - && !profile_arc_flag && !flag_branch_probabilities); + + /* Disabled due to an issue regarding how the partitioner applier + handle clones generated by this pass. */ + /*return (flag_partial_inlining + && !profile_arc_flag && !flag_branch_probabilities); */ + return false; } } // anon namespace @@ -1968,8 +1972,13 @@ pass_feedback_split_functions::gate (function *) { /* We don't need to split when profiling at all, we are producing lousy code anyway. */ - return (flag_partial_inlining - && flag_branch_probabilities); + + /* Disabled due to an issue regarding how the partitioner applier + handle clones generated by this pass. */ + /* return (flag_partial_inlining + && flag_branch_probabilities); */ + + return false; } } // anon namespace |