diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2017-11-19 20:58:12 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2017-11-19 19:58:12 +0000 |
commit | 8a4a6d2e844df54583cd8fac181586b10f63fe25 (patch) | |
tree | 961bb7a9c49b2c36604f8e1ccca0e49691d5e4f1 /gcc | |
parent | a6b22eea5b059f9eab1a6b13e2bea86bc3077906 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr81360.c | 11 |
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)); +} + |