From 03edaad89692c0680dddceed01a4647df45ee0fc Mon Sep 17 00:00:00 2001 From: hubicka Date: Sat, 24 May 2014 17:12:28 +0000 Subject: * gengtype-state.c (fatal_reading_state): Bring offline. * optabs.c (widening_optab_handler): Bring offline. * optabs.h (widening_optab_handler): Likewise. * final.c (get_attr_length_1): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210896 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/doc/passes.texi | 14 +++++++++++--- gcc/final.c | 2 +- gcc/gengtype-state.c | 2 +- gcc/optabs.c | 19 +++++++++++++++++++ gcc/optabs.h | 21 ++------------------- 6 files changed, 41 insertions(+), 24 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f4195746d96..b68063c7d39 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-05-23 Jan Hubicka + + * gengtype-state.c (fatal_reading_state): Bring offline. + * optabs.c (widening_optab_handler): Bring offline. + * optabs.h (widening_optab_handler): Likewise. + * final.c (get_attr_length_1): Likewise. + 2014-05-23 Jan Hubicka * sched-int.h (sd_iterator_cond): Manually tail recurse. diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi index fb064db3786..0ab8f21caec 100644 --- a/gcc/doc/passes.texi +++ b/gcc/doc/passes.texi @@ -391,11 +391,19 @@ Interprocedural points-to information is located in @item Profiling -This pass rewrites the function in order to collect runtime block +This pass instruments the function in order to collect runtime block and value profiling data. Such data may be fed back into the compiler on a subsequent run so as to allow optimization based on expected -execution frequencies. The pass is located in @file{predict.c} and -is described by @code{pass_profile}. +execution frequencies. The pass is located in @file{tree-profile.c} and +is described by @code{pass_ipa_tree_profile}. + +@item Static profile estimation + +This pass implements series of heuristics to guess propababilities +of branches. The resulting predictions are turned into edge profile +by propagating branches across the control flow graphs. +The pass is located in @file{tree-profile.c} and is described by +@code{pass_profile}. @item Lower complex arithmetic diff --git a/gcc/final.c b/gcc/final.c index 327143093fe..a5e6eb21490 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -371,7 +371,7 @@ init_insn_lengths (void) /* Obtain the current length of an insn. If branch shortening has been done, get its actual length. Otherwise, use FALLBACK_FN to calculate the length. */ -static inline int +static int get_attr_length_1 (rtx insn, int (*fallback_fn) (rtx)) { rtx body; diff --git a/gcc/gengtype-state.c b/gcc/gengtype-state.c index 2ca0e1de1e7..5b7017f1e3e 100644 --- a/gcc/gengtype-state.c +++ b/gcc/gengtype-state.c @@ -282,7 +282,7 @@ state_writer::state_writer () /* Fatal message while reading state. */ -static inline void +static void fatal_reading_state (struct state_token_st* tok, const char*msg) { if (tok) diff --git a/gcc/optabs.c b/gcc/optabs.c index fc58b63b9ee..9af52270e9b 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -297,6 +297,25 @@ widened_mode (enum machine_mode to_mode, rtx op0, rtx op1) return result; } +/* Like optab_handler, but for widening_operations that have a + TO_MODE and a FROM_MODE. */ + +enum insn_code +widening_optab_handler (optab op, enum machine_mode to_mode, + enum machine_mode from_mode) +{ + unsigned scode = (op << 16) | to_mode; + if (to_mode != from_mode && from_mode != VOIDmode) + { + /* ??? Why does find_widening_optab_handler_and_mode attempt to + widen things that can't be widened? E.g. add_optab... */ + if (op > LAST_CONV_OPTAB) + return CODE_FOR_nothing; + scode |= from_mode << 8; + } + return raw_optab_handler (scode); +} + /* Find a widening optab even if it doesn't widen as much as we want. E.g. if from_mode is HImode, and to_mode is DImode, and there is no direct HI->SI insn, then return SI->DI, if that exists. diff --git a/gcc/optabs.h b/gcc/optabs.h index 8ecaa41f1dd..089b15a6fcd 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -144,6 +144,8 @@ extern enum insn_code find_widening_optab_handler_and_mode (optab, enum machine_mode, int, enum machine_mode *); +extern enum insn_code widening_optab_handler (optab, enum machine_mode, + enum machine_mode); /* An extra flag to control optab_for_tree_code's behavior. This is needed to distinguish between machines with a vector shift that takes a scalar for the @@ -275,25 +277,6 @@ convert_optab_handler (convert_optab op, enum machine_mode to_mode, return raw_optab_handler (scode); } -/* Like optab_handler, but for widening_operations that have a - TO_MODE and a FROM_MODE. */ - -static inline enum insn_code -widening_optab_handler (optab op, enum machine_mode to_mode, - enum machine_mode from_mode) -{ - unsigned scode = (op << 16) | to_mode; - if (to_mode != from_mode && from_mode != VOIDmode) - { - /* ??? Why does find_widening_optab_handler_and_mode attempt to - widen things that can't be widened? E.g. add_optab... */ - if (op > LAST_CONV_OPTAB) - return CODE_FOR_nothing; - scode |= from_mode << 8; - } - return raw_optab_handler (scode); -} - /* Return the insn used to implement mode MODE of OP, or CODE_FOR_nothing if the target does not have such an insn. */ -- cgit v1.2.1