On 01/16/15 04:04, Ilya Enkovich wrote:
Hi,

Currently compiler emits an error in case of not instrumented call to 
instrumented alwyas_inline function.  It happens because when we inline there 
is only instrumented version of function available and we don't inline thunks.  
This patch solves the problem by split of thunk production pass into two 
passes.  The first one removes all functions we don't have to inline.  The 
other one does the rest after local optimizations.

Bootstrapped and checked on x86_64-unknown-linux-gnu.  This patch causes fault 
in chkp-strchr.c test and also breaks instrumented bootstrap.  Both are due to 
problem in SRA fixed by the next patch.  OK for trunk?

Thanks,
Ilya
--
gcc/

2015-01-16  Ilya Enkovich  <ilya.enkov...@intel.com>

        * ipa-chkp.c (chkp_produce_thunks): Add early param.
 to support splitting of thunk production.  Do not remove bodies of
"always_inline" functions.

Is that an accurate representation of what changed?


        (pass_data_ipa_chkp_early_produce_thunks): New.
        (pass_ipa_chkp_early_produce_thunks): New.
        (pass_ipa_chkp_produce_thunks::execute): Adjust to new
        chkp_produce_thunks signature.
        (make_pass_ipa_chkp_early_produce_thunks): New.
        * passes.def (pass_ipa_chkp_early_produce_thunks): New.
        (pass_ipa_chkp_produce_thunks): Move after local optimizations.
        * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.

gcc/testsuite/

2015-01-16  Ilya Enkovich  <ilya.enkov...@intel.com>

        * gcc.target/i386/chkp-always_inline.c: New.
With the updated ChangeLog, this is fine.

jeff

Reply via email to