]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ipa-inline-analysis.c (estimate_function_body_sizes, [...]): Cap time calculations.
authorJan Hubicka <jh@suse.cz>
Tue, 6 Nov 2012 21:08:49 +0000 (22:08 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 6 Nov 2012 21:08:49 +0000 (21:08 +0000)
* ipa-inline-analysis.c (estimate_function_body_sizes,
inline_update_overall_summary): Cap time calculations.

From-SVN: r193259

gcc/ChangeLog
gcc/ipa-inline-analysis.c

index 316f55b7421ffe03aa064643e4ed31ed52ca2f47..f77153366248e1f47b34b0139636c7c42d8b354d 100644 (file)
@@ -1,3 +1,8 @@
+2012-11-06  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline-analysis.c (estimate_function_body_sizes,
+       inline_update_overall_summary): Cap time calculations.
+
 2012-11-06  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.c (ix86_init_machine_status): Do not
index 595cb682a5b7445f1ca015da22c8eef0620143fe..7d89d89aae3f908df99665c8dd1a8f5854663daa 100644 (file)
@@ -2442,6 +2442,8 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early)
                {
                  time += this_time;
                  size += this_size;
+                 if (time > MAX_TIME * INLINE_TIME_SCALE)
+                   time = MAX_TIME * INLINE_TIME_SCALE;
                }
 
              /* We account everything but the calls.  Calls have their own
@@ -3323,7 +3325,11 @@ inline_update_overall_summary (struct cgraph_node *node)
   info->size = 0;
   info->time = 0;
   for (i = 0; VEC_iterate (size_time_entry, info->entry, i, e); i++)
-    info->size += e->size, info->time += e->time;
+    {
+      info->size += e->size, info->time += e->time;
+      if (info->time > MAX_TIME * INLINE_TIME_SCALE)
+        info->time = MAX_TIME * INLINE_TIME_SCALE;
+    }
   estimate_calls_size_and_time (node, &info->size, &info->time, NULL,
                                ~(clause_t)(1 << predicate_false_condition),
                                NULL, NULL, NULL);