This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix thinko in estimate_local_effects in IPA-CP


Hi,

I have discovered the following thinko in IPA-CP's
estimate_local_effects added during conversion to use nonspecialized
time.  The intent clearly was to add an upper bound to the time
difference, not a lower one.

The patch introduces a guality failure:

  gcc.dg/guality/pr41616-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test

the testcase however also already fails at -O2 and -O3 -flto and it
occurs now also at -O3 because we do not clone a function which we quite
clearly shouldn't.

Bootstrapped and tested on x86_64-linux, I have also made sure the
change does not affect SPEC 2006 and 2017 -Ofast.  OK for trunk?

Thanks,

Martin


2018-08-23  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN.
---
 gcc/ipa-cp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 42dd4cc2904..2117529aebb 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -2911,7 +2911,7 @@ estimate_local_effects (struct cgraph_node *node)
 		     "known contexts, code not going to grow.\n");
 	}
       else if (good_cloning_opportunity_p (node,
-					   MAX ((base_time - time).to_int (),
+					   MIN ((base_time - time).to_int (),
 						65536),
 					   stats.freq_sum, stats.count_sum,
 					   size))
-- 
2.18.0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]