On 05/25/2011 05:15 AM, Jan Hubicka wrote:
> Am Wed 25 May 2011 11:04:06 AM CEST schrieb Richard Guenther  
> <richard.guent...@gmail.com>:
> 
>> On Wed, May 25, 2011 at 10:38 AM, Rainer Orth
>> <r...@cebitec.uni-bielefeld.de> wrote:
>>> Janis Johnson <jani...@codesourcery.com> writes:
>>>
>>>> Archived test results for 4.7.0 for most processors with C++ results have:
>>>>
>>>> XPASS: g++.dg/tree-ssa/pr43411.C scan-tree-dump-not optimized   
>>>> "OBJ_TYPE_REF"
>>>>
>>>> The only failures I could find were for ia64-linux and ia64-hpux.  This
>>>> patch changes the xfail so it only applies to ia64-*-*.  OK for trunk?
>>>
>>> Richard rejected a similar patch:
>>>
>>>        http://gcc.gnu.org/ml/gcc-patches/2011-05/msg00054.html
>>>
>>> Perhaps Jan can suggest the correct approach?
>>
>> We should verify that the call to val is inlined in all functions.
>> Maybe rename it to something larger and scan the optimized
>> dump so that name doesn't appear.
> Indeed, this seems to be safest approach I can think of.
> If function is supposed to be optimized out completely by early  
> passes, we should just search release_ssa.  It is not the case here  
> and dumping IPA info for inlining all instance would be bit tricky.

This patch renames val to function_to_inline and searches for its
name in the release-ssa dump.  That scan-dump has an xfail. The
original scan-dump of 'optimized' is removed.

Richard and Jan, is this OK?

2011-05-26  Janis Johnson  <jani...@codesourcery.com>

        * g++.dg/tree-ssa-pr43411.C: Rename function to be inlined and
        replace dump search.

Index: g++.dg/tree-ssa/pr43411.C
===================================================================
--- g++.dg/tree-ssa/pr43411.C   (revision 174217)
+++ g++.dg/tree-ssa/pr43411.C   (working copy)
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-optimized" } */
-class P { public: virtual int val() { return 123; } };
+/* { dg-options "-O2 -fdump-tree-release_ssa" } */
+class P { public: virtual int function_to_inline() { return 123; } };
 class Psub : public P { };
 
 extern int sink1, sink2;
@@ -8,12 +8,12 @@
 void test() {
     Psub p;
     P &pRef = p;
-    sink1 = p.val();
-    sink2 = pRef.val();
+    sink1 = p.function_to_inline();
+    sink2 = pRef.function_to_inline();
 }
 
 
-inline int v(P &p) { return p.val(); }
+inline int v(P &p) { return p.function_to_inline(); }
 
 void testInlineP() {
     P p;
@@ -25,5 +25,5 @@
     sink1 = v(p);
 }
 
-// { dg-final { scan-tree-dump-not "OBJ_TYPE_REF" "optimized" { xfail *-*-* } 
} }
-// { dg-final { cleanup-tree-dump "optimized" } }
+// { dg-final { scan-tree-dump-not "function_to_inline" "release_ssa" { xfail 
*-*-* } } }
+// { dg-final { cleanup-tree-dump "release_ssa" } }

Reply via email to