aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 73e4bed3b61..12d2d19e944 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 ();