diff options
author | Richard Guenther <rguenther@suse.de> | 2010-01-06 17:52:09 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-01-06 17:52:09 +0000 |
commit | 6209a13e202b97e040f91e57281a2c23e0022bea (patch) | |
tree | a8b06b3154791c3e071f213dc00b7a6578ee3a4b | |
parent | f05f79fffc5297858f27eaf122aabc8cec2c930b (diff) | |
download | gcc-6209a13e202b97e040f91e57281a2c23e0022bea.zip gcc-6209a13e202b97e040f91e57281a2c23e0022bea.tar.gz gcc-6209a13e202b97e040f91e57281a2c23e0022bea.tar.bz2 |
ipa-inline.c (cgraph_decide_inlining_incrementally): Do not inline regular functions into always-inline functions.
2010-01-06 Richard Guenther <rguenther@suse.de>
* ipa-inline.c (cgraph_decide_inlining_incrementally): Do
not inline regular functions into always-inline functions.
* gcc.c-torture/compile/pr42632.c: New testcase.
From-SVN: r155679
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr42632.c | 16 |
4 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a8b61a3..6435d2a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-01-06 Richard Guenther <rguenther@suse.de> + + * ipa-inline.c (cgraph_decide_inlining_incrementally): Do + not inline regular functions into always-inline functions. + 2010-01-06 Nick Clifton <nickc@redhat.com> * config/rx/rx.h (enum rx_cpu_type): Add RX200. diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 7dbafb8..c6c84f9 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1506,7 +1506,10 @@ cgraph_decide_inlining_incrementally (struct cgraph_node *node, } /* Now do the automatic inlining. */ - if (mode != INLINE_ALL && mode != INLINE_ALWAYS_INLINE) + if (mode != INLINE_ALL && mode != INLINE_ALWAYS_INLINE + /* Never inline regular functions into always-inline functions + during incremental inlining. */ + && !node->local.disregard_inline_limits) for (e = node->callees; e; e = e->next_callee) { int allowed_growth = 0; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e9c215d..ef879de 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2010-01-06 Richard Guenther <rguenther@suse.de> + + * gcc.c-torture/compile/pr42632.c: New testcase. + 2010-01-05 H.J. Lu <hongjiu.lu@intel.com> PR target/42542 diff --git a/gcc/testsuite/gcc.c-torture/compile/pr42632.c b/gcc/testsuite/gcc.c-torture/compile/pr42632.c new file mode 100644 index 0000000..a677853 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr42632.c @@ -0,0 +1,16 @@ +static inline __attribute__((always_inline)) int +__pskb_trim(void) +{ + return ___pskb_trim(); +} +static inline __attribute__((always_inline)) +int pskb_trim(void) +{ + return __pskb_trim(); +} +int ___pskb_trim(void) +{ + pskb_trim(); + return 0; +} + |