+2014-05-22 Xinliang David Li <davidxl@google.com>
+
+ * g++.dg/ipa/devirt-15.C: Fix expected message.
+ * g++.dg/ipa/devirt-16.C: Ditto.
+ * g++.dg/ipa/devirt-17.C: Ditto.
+ * g++.dg/ipa/devirt-26.C: Ditto.
+ * g++.dg/ipa/imm-devirt-1.C: Ditto.
+ * g++.dg/ipa/imm-devirt-2.C: Ditto.
+ * g++.dg/tree-ssa/pr8781.C:Ditto.
+
2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
* gcc.target/powerpc/htm-ttest.c: New test.
/* Check that we speculatively devirutalize call to FOO to B::foo becuase
A is noreturn. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-devirt -fdump-tree-optimized" } */
+/* { dg-options "-O2 -fdump-ipa-devirt-details -fdump-tree-optimized" } */
class A {
public:
virtual int foo(void)
m();
}
-/* { dg-final { scan-ipa-dump "Speculatively devirtualizing call" "devirt"} } */
+/* { dg-final { scan-ipa-dump "speculatively devirtualizing call" "devirt"} } */
/* { dg-final { cleanup-ipa-dump "devirt" } } */
/* Match if (PROF_6 == foo) to verify that the speculation survived. */
/* { dg-final { scan-tree-dump "== foo" "optimized"} } */
/* We shall devirtualize to unreachable. No anonymous type method should surivve
reachability. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-whole-program" } */
+/* { dg-options "-O2 -fdump-ipa-whole-program-details" } */
namespace {
class B {
public:
return b->foo();
}
-/* { dg-final { scan-ipa-dump "Devirtualizing" "whole-program"} } */
+/* { dg-final { scan-ipa-dump "devirtualizing" "whole-program"} } */
/* { dg-final { scan-ipa-dump "builtin_unreachable" "whole-program"} } */
/* { dg-final { scan-ipa-dump-not "A::foo" "whole-program"} } */
/* { dg-final { scan-ipa-dump-not "A::foo" "whole-program"} } */
/* We shall devirtualize to B::foo since it is the only live candidate of an
anonymous type. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-ipa-whole-program" } */
+/* { dg-options "-O2 -fdump-ipa-whole-program-details" } */
namespace {
class B {
public:
return b->foo();
}
-/* { dg-final { scan-ipa-dump "Devirtualizing" "whole-program"} } */
+/* { dg-final { scan-ipa-dump "devirtualizing" "whole-program"} } */
/* { dg-final { scan-ipa-dump-not "builtin_unreachable" "whole-program"} } */
/* { dg-final { scan-ipa-dump "B::foo" "whole-program"} } */
/* { dg-final { scan-ipa-dump-not "A::foo" "whole-program"} } */
/* { dg-do compile } */
-/* { dg-options "-O3 -fdump-ipa-devirt" } */
+/* { dg-options "-O3 -fdump-ipa-devirt-details" } */
struct A
{
int a;
/* The call to b->foo() is perfectly devirtualizable because C can not be in construction
when &c was used, but we can not analyze that so far. Test that we at least speculate
that type is in the construction. */
-/* { dg-final { scan-ipa-dump "Speculatively devirtualizing" "devirt" } } */
+/* { dg-final { scan-ipa-dump "speculatively devirtualizing" "devirt" } } */
/* { dg-final { cleanup-ipa-dump "devirt" } } */
return 0;
}
-/* { dg-final { scan-tree-dump "Replacing call target with foo" "fre1" } } */
+/* { dg-final { scan-tree-dump "converting indirect call to function virtual int B::foo" "fre1" } } */
/* { dg-final { cleanup-tree-dump "fre1" } } */
return 0;
}
-/* { dg-final { scan-tree-dump "Replacing call target" "fre1" } } */
+/* { dg-final { scan-tree-dump "converting indirect call to function" "fre1" } } */
/* { dg-final { cleanup-tree-dump "fre1" } } */
/* We should optimize this to a direct call. */
-/* { dg-final { scan-tree-dump "Replacing call target with f" "fre1" } } */
+/* { dg-final { scan-tree-dump "converting indirect call to function int f()" "fre1" } } */
/* { dg-final { cleanup-tree-dump "fre1" } } */