diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2016-05-16 21:33:02 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2016-05-16 19:33:02 +0000 |
commit | 19322a8706b14dd29f2a8ac925e32356ca6d3112 (patch) | |
tree | 7c95157fdec589bf4c2449659d0737681576009a /gcc | |
parent | 1743ce80017ca13a486cf50a0ed4d32757238a64 (diff) | |
download | gcc-19322a8706b14dd29f2a8ac925e32356ca6d3112.zip gcc-19322a8706b14dd29f2a8ac925e32356ca6d3112.tar.gz gcc-19322a8706b14dd29f2a8ac925e32356ca6d3112.tar.bz2 |
ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig into instrumentation thunks.
* ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
into instrumentation thunks.
* cif-code.def (CIF_CHKP): New.
From-SVN: r236299
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cif-code.def | 4 | ||||
-rw-r--r-- | gcc/ipa-inline-analysis.c | 8 |
3 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index db88e28..1703331 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-05-16 Jan Hubicka <hubicka@ucw.cz> + + * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig + into instrumentation thunks. + * cif-code.def (CIF_CHKP): New. + 2016-05-16 Uros Bizjak <ubizjak@gmail.com> * config/i386/xopintrin.h: Correct "unsinged" typo in the comments. diff --git a/gcc/cif-code.def b/gcc/cif-code.def index 196151f..b5e019f 100644 --- a/gcc/cif-code.def +++ b/gcc/cif-code.def @@ -135,3 +135,7 @@ DEFCIFCODE(CILK_SPAWN, CIF_FINAL_ERROR, /* We proved that the call is unreachable. */ DEFCIFCODE(UNREACHABLE, CIF_FINAL_ERROR, N_("unreachable")) + +/* We can't inline because of instrumentation thunk. */ +DEFCIFCODE(CHKP, CIF_FINAL_ERROR, + N_("caller is instrumetnation thunk")) diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 82d1774..8b5ca86 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -2943,7 +2943,13 @@ compute_inline_parameters (struct cgraph_node *node, bool early) info->self_size = info->size; info->self_time = info->time; /* We can not inline instrumetnation clones. */ - info->inlinable = !node->thunk.add_pointer_bounds_args; + if (node->thunk.add_pointer_bounds_args) + { + info->inlinable = false; + node->callees->inline_failed = CIF_CHKP; + } + else + info->inlinable = true; } else { |