aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-11-19 20:58:12 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2017-11-19 19:58:12 +0000
commit8a4a6d2e844df54583cd8fac181586b10f63fe25 (patch)
tree961bb7a9c49b2c36604f8e1ccca0e49691d5e4f1 /gcc
parenta6b22eea5b059f9eab1a6b13e2bea86bc3077906 (diff)
downloadgcc-8a4a6d2e844df54583cd8fac181586b10f63fe25.zip
gcc-8a4a6d2e844df54583cd8fac181586b10f63fe25.tar.gz
gcc-8a4a6d2e844df54583cd8fac181586b10f63fe25.tar.bz2
re PR ipa/81360 (ice in estimate_edge_growth, at ipa-inline.h:86)
PR ipa/81360 * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized * gcc.c-torture/compile/pr81360.c: New testcase. From-SVN: r254937
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-inline.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr81360.c11
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e955bec..ae05dac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2017-11-19 Jan Hubicka <hubicka@ucw.cz>
+ PR ipa/81360
+ * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
+
+2017-11-19 Jan Hubicka <hubicka@ucw.cz>
+
PR ipa/83001
* profile-count.c (profile_count::to_sreal_scale): Fix return value
for uninitialied counts.
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index f4ce80a..4f1860f 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -324,7 +324,8 @@ can_inline_edge_p (struct cgraph_edge *e, bool report,
e->inline_failed = CIF_BODY_NOT_AVAILABLE;
inlinable = false;
}
- if (!early && !opt_for_fn (callee->decl, optimize))
+ if (!early && (!opt_for_fn (callee->decl, optimize)
+ || opt_for_fn (caller->decl, optimize)))
{
e->inline_failed = CIF_FUNCTION_NOT_OPTIMIZED;
inlinable = false;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ebdf42b..3858caa 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-11-19 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/81360
+ * gcc.c-torture/compile/pr81360.c: New testcase.
+
2017-11-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/78990
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr81360.c b/gcc/testsuite/gcc.c-torture/compile/pr81360.c
new file mode 100644
index 0000000..ffd3f24
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr81360.c
@@ -0,0 +1,11 @@
+typedef a;
+b(void *c, a d) {
+ if (c)
+ e(0, __PRETTY_FUNCTION__);
+}
+typedef f, g;
+__attribute__((optimize(0))) h() {
+ g i;
+ b(i, sizeof(f));
+}
+