aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2014-09-16 03:22:41 +0000
committerAndi Kleen <ak@gcc.gnu.org>2014-09-16 03:22:41 +0000
commit0b37ba8a60c70a212e1f663ddcb3bbf8b2468d6b (patch)
treefbcfa49214f70adb371ba5e9affc7d4ef955288e /gcc/function.c
parente93050426d180c5d22653e349e066331785521f0 (diff)
downloadgcc-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.c3
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;
}
}