diff options
author | Andi Kleen <ak@linux.intel.com> | 2014-09-16 03:22:41 +0000 |
---|---|---|
committer | Andi Kleen <ak@gcc.gnu.org> | 2014-09-16 03:22:41 +0000 |
commit | 0b37ba8a60c70a212e1f663ddcb3bbf8b2468d6b (patch) | |
tree | fbcfa49214f70adb371ba5e9affc7d4ef955288e /gcc/function.c | |
parent | e93050426d180c5d22653e349e066331785521f0 (diff) | |
download | gcc-0b37ba8a60c70a212e1f663ddcb3bbf8b2468d6b.zip gcc-0b37ba8a60c70a212e1f663ddcb3bbf8b2468d6b.tar.gz gcc-0b37ba8a60c70a212e1f663ddcb3bbf8b2468d6b.tar.bz2 |
Always set DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT correctly
When profiling is disabled force DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT
for each function to one. This information is then preserved
through LTO.
With this patch for LTO builds -pg needs to be set on both the
LTO final link and the original source build, to allow -pg
(or -pg -fentry) to be active for that source file. This allows
to build large projects mostly with -pg, except for a few files,
and still use LTO.
gcc/:
2014-09-15 Andi Kleen <ak@linux.intel.com>
* function.c (allocate_struct_function): Force
DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
profiling is disabled.
From-SVN: r215284
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/function.c b/gcc/function.c index 26d25b9..ac50f4a 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4555,6 +4555,9 @@ allocate_struct_function (tree fndecl, bool abstract_p) but is this worth the hassle? */ cfun->can_throw_non_call_exceptions = flag_non_call_exceptions; cfun->can_delete_dead_exceptions = flag_delete_dead_exceptions; + + if (!profile_flag && !flag_instrument_function_entry_exit) + DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (fndecl) = 1; } } |