This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Propagate BB predicates in ipa-inline-analysis
Hi,
this is patch I comitted fixing ipa-inline-analysis. Stil I guess we should
fill in PR for missed optimization and solve the forwprop issue?
Honza
Index: ChangeLog
===================================================================
*** ChangeLog (revision 178523)
--- ChangeLog (working copy)
***************
*** 1,3 ****
--- 1,8 ----
+ 2011-09-04 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
+ parameter is SSA name.
+
2011-09-04 Richard Guenther <rguenther@suse.de>
Revert
Index: testsuite/gcc.c-torture/compile/20110902.c
===================================================================
*** testsuite/gcc.c-torture/compile/20110902.c (revision 0)
--- testsuite/gcc.c-torture/compile/20110902.c (revision 0)
***************
*** 0 ****
--- 1,14 ----
+ static inline __attribute__((always_inline)) int f (unsigned int n, unsigned int size)
+ {
+ return (__builtin_constant_p (size != 0 && n > ~0 / size)
+ ? !!(size != 0 && n > ~0 / size)
+ : ({ static unsigned int count[2] = { 0, 0 };
+ int r = !!(size != 0 && n > ~0 / size);
+ count[r]++;
+ r; }));
+ }
+
+ int g (unsigned int size)
+ {
+ return f (size / 4096, 4);
+ }
Index: testsuite/ChangeLog
===================================================================
*** testsuite/ChangeLog (revision 178523)
--- testsuite/ChangeLog (working copy)
***************
*** 1,3 ****
--- 1,7 ----
+ 2011-09-04 Jan Hubicka <jh@suse.cz>
+
+ * gcc.c-torture/compile/20110902.c: new testcase.
+
2011-09-04 Jason Merrill <jason@redhat.com>
PR c++/49267
Index: ipa-inline-analysis.c
===================================================================
*** ipa-inline-analysis.c (revision 178523)
--- ipa-inline-analysis.c (working copy)
*************** set_cond_stmt_execution_predicate (struc
*** 1187,1192 ****
--- 1187,1194 ----
|| gimple_call_num_args (set_stmt) != 1)
return;
op2 = gimple_call_arg (set_stmt, 0);
+ if (TREE_CODE (op2) != SSA_NAME)
+ return;
if (!SSA_NAME_IS_DEFAULT_DEF (op2))
return;
index = ipa_get_param_decl_index (info, SSA_NAME_VAR (op2));