This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello Richard, thanks for the review. 2010/7/16 Richard Henderson <rth@redhat.com>: > On 07/15/2010 11:08 AM, Kai Tietz wrote: >> ? ? ? (override_options): Add special handling for -mfentry. >> ? ? ? (ix86_function_regparm): Likewise. >> ? ? ? (ix86_function_sseregparm): Likewise. > > Why are you adding the special-casing to the two regparm functions? > You do realize that suddenly your mcount_top function may have zero > free registers with which to do its job. ?I think that's a bad idea. Well, as the mcount before prologue call has to be transparent (saving and restoring all modified registers) I don't see here, that no registers are a problem. >> ? ? ? (ix86_save_reg): >> ? ? ? (ix86_expand_prologue): >> ? ? ? (x86_function_profiler): > > No changes? ?;-) Well, missed the Likewise :} > x86_function_profiler is broken for -m32 -fentry -fpic. ?It uses > %ebx which has not been set up. ?I think perhaps this combination > cannot really be supported, and this should be diagnosed back in > override_options. Yeah, add it to my update patch. >> +@hook TARGET_PROFILE_BEFORE_PROLOGUE >> +It returns true if target wants profile code emitted before >> +prologue. >> + >> +The default version of this hook use the target macro >> +@code{PROFILE_BEFORE_PROLOGUE}. >> +@end deftypefn > > The text should go in target.def, in the ""; only the @hook line goes here. Ok, moved into target.def (btw I think it is one of the first hooks using this feature). So by discussion on IRC some changes to checks about fpic are superflous, as they can't be reached in fact. So I removed the additional checks here about flag_fentry. The option -fpic for x86 is indeed not possible for profiling and -mfentry. So I added a sorry and default back to profiling after prologue, which setups ebx correctly. ChangeLog * config/i386/cygming.h (MCOUNT_NAME): New. (MCOUNT_NAME_BEFORE_PROLOGUE): New. * config/i386/i386.c (ix86_profile_before_prologue): New. (override_options): Add special handling for -mfentry. (ix86_function_regparm): Likewise. (ix86_function_sseregparm): Likewise. (ix86_frame_pointer_required): Likewise. (ix86_expand_prologue): Check for ms_hook_prologue. (x86_function_profiler): Adjust mcount output. (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook. * config/i386/i386.opt (mfentry): New. * doc/invoke.texi (mfentry): Add documentation. * doc/tm.texi: Regenerated.. * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New. * final.c (final_start_function): Replace macro PROFILE_BEFORE_PROLOGUE by target hook. * function.c (thread_prologue_and_epilogue_insns): Likewise. * target.def (profile_before_prologue): New hook. * targhooks.c (default_profile_before_prologue): New. * targhooks.h (default_profile_before_prologue): New. Retested for x86_64-pc-mingw32, i686-pc-cygwin, and i686-pc-linux-gnu. Ok for apply? Regards, Kai -- |? (\_/) This is Bunny. Copy and paste | (='.'=) Bunny into your signature to help | (")_(") him gain world domination
Attachment:
profileb.diff
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |