diff options
Diffstat (limited to 'gcc/doc/tm.texi')
-rw-r--r-- | gcc/doc/tm.texi | 54 |
1 files changed, 47 insertions, 7 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index eba39cde164..eae7d4f424b 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -2826,17 +2826,26 @@ as below: @end smallexample @end defmac -@defmac IRA_COVER_CLASSES -The macro defines cover classes for the Integrated Register Allocator +@deftypefn {Target Hook} {const enum reg_class *} TARGET_IRA_COVER_CLASSES () +Return an array of cover classes for the Integrated Register Allocator (@acronym{IRA}). Cover classes are a set of non-intersecting register classes covering all hard registers used for register allocation purposes. If a move between two registers in the same cover class is possible, it should be cheaper than a load or store of the registers. -The macro value should be the initializer for an array of register -class values, with @code{LIM_REG_CLASSES} used as the end marker. +The array is terminated by a @code{LIM_REG_CLASSES} element. + +This hook is called once at compiler startup, after the command-line +options have been processed. It is then re-examined by every call to +@code{target_reinit}. -You must define this macro in order to use the integrated register +The default implementation returns @code{IRA_COVER_CLASSES}, if defined, +otherwise there is no default implementation. You must define either this +macro or @code{IRA_COVER_CLASSES} in order to use the integrated register allocator for the target. +@end deftypefn + +@defmac IRA_COVER_CLASSES +See the documentation for @code{TARGET_IRA_COVER_CLASSES}. @end defmac @node Old Constraints @@ -5344,8 +5353,10 @@ preserve functionality of inline assembly constructs using the @end defmac @defmac FIND_BASE_TERM (@var{x}) -A C expression to determine the base term of address @var{x}. -This macro is used in only one place: `find_base_term' in alias.c. +A C expression to determine the base term of address @var{x}, +or to provide a simplified version of @var{x} from which @file{alias.c} +can easily find the base term. This macro is used in only two places: +@code{find_base_value} and @code{find_base_term} in @file{alias.c}. It is always safe for this macro to not be defined. It exists so that alias analysis can understand machine-dependent addresses. @@ -6379,6 +6390,29 @@ Deallocate internal data in target scheduling context pointed to by @var{tc}. Deallocate a store for target scheduling context pointed to by @var{tc}. @end deftypefn +@deftypefn {Target Hook} void * TARGET_SCHED_ALLOC_SCHED_CONTEXT (void) +Return a pointer to a store large enough to hold target scheduling context. +@end deftypefn + +@deftypefn {Target Hook} void TARGET_SCHED_INIT_SCHED_CONTEXT (void *@var{tc}, bool @var{clean_p}) +Initialize store pointed to by @var{tc} to hold target scheduling context. +It @var{clean_p} is true then initialize @var{tc} as if scheduler is at the +beginning of the block. Overwise, make a copy of the current context in +@var{tc}. +@end deftypefn + +@deftypefn {Target Hook} void TARGET_SCHED_SET_SCHED_CONTEXT (void *@var{tc}) +Copy target scheduling context pointer to by @var{tc} to the current context. +@end deftypefn + +@deftypefn {Target Hook} void TARGET_SCHED_CLEAR_SCHED_CONTEXT (void *@var{tc}) +Deallocate internal data in target scheduling context pointed to by @var{tc}. +@end deftypefn + +@deftypefn {Target Hook} void TARGET_SCHED_FREE_SCHED_CONTEXT (void *@var{tc}) +Deallocate a store for target scheduling context pointed to by @var{tc}. +@end deftypefn + @deftypefn {Target Hook} int TARGET_SCHED_SPECULATE_INSN (rtx @var{insn}, int @var{request}, rtx *@var{new_pat}) This hook is called by the insn scheduler when @var{insn} has only speculative dependencies and therefore can be scheduled speculatively. @@ -10528,6 +10562,12 @@ If defined, this macro specifies the number of entries in @code{TARGET_OVERRIDES_FORMAT_ATTRIBUTES}. @end defmac +@defmac TARGET_OVERRIDES_FORMAT_INIT +If defined, this macro specifies the optional initialization +routine for target specific customizations of the system printf +and scanf formatter settings. +@end defmac + @deftypefn {Target Hook} bool TARGET_RELAXED_ORDERING If set to @code{true}, means that the target's memory model does not guarantee that loads which do not depend on one another will access |