Patchwork [v2] inline fail reporting: reporting inline fail caused by overwritable function

login
register
mail settings
Submitter Zhouyi Zhou
Date April 5, 2013, 9:11 a.m.
Message ID <1365153096-5304-1-git-send-email-yizhouzhou@ict.ac.cn>
Download mbox | patch
Permalink /patch/234072/
State New
Headers show

Comments

Zhouyi Zhou - April 5, 2013, 9:11 a.m.
From: Zhouyi Zhou <yizhouzhou@ict.ac.cn>

Sender: Zhouyi Zhou <yizhouzhou@ict.ac.cn>
 
To: <gcc-patches@gcc.gnu.org>
 
Subject: [PATCH v2] inline fail reporting: reporting inline fail caused by overwritable function

When inline failed because of callee is overwritable, gcc will not report it 
in dump file as other inline failing cases do. This patch correct this.

ChangeLog:
2013-04-05  Zhouyi Zhou	<yizhouzhou@ict.ac.cn>

	    * cif-code.def (OVERWRITABLE): correct the comment for overwritable
	     function
	    * ipa-inline.c (can_inline_edge_p): let dump mechanism report the inline fail caused by 
		overwritable function


Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn>

---

Patch

Index: gcc/cif-code.def
===================================================================
--- gcc/cif-code.def	(revision 197506)
+++ gcc/cif-code.def	(working copy)
@@ -48,7 +48,7 @@  DEFCIFCODE(REDEFINED_EXTERN_INLINE,
 /* Function is not inlinable.  */
 DEFCIFCODE(FUNCTION_NOT_INLINABLE, N_("function not inlinable"))
 
-/* Function is not overwritable.  */
+/* Function is overwritable.  */
 DEFCIFCODE(OVERWRITABLE, N_("function body can be overwritten at link time"))
 
 /* Function is not an inlining candidate.  */
Index: gcc/ipa-inline.c
===================================================================
--- gcc/ipa-inline.c	(revision 197506)
+++ gcc/ipa-inline.c	(working copy)
@@ -266,7 +266,7 @@  can_inline_edge_p (struct cgraph_edge *e
   else if (avail <= AVAIL_OVERWRITABLE)
     {
       e->inline_failed = CIF_OVERWRITABLE;
-      return false;
+      inlinable = false;
     }
   else if (e->call_stmt_cannot_inline_p)
     {