diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-05-24 19:12:28 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-05-24 17:12:28 +0000 |
commit | 4df199d153fb248c80fd892616bbf4990e2f6c9a (patch) | |
tree | 23f66d0110b53d7887c8334b7556e8179fb87566 /gcc | |
parent | e0e349f3f25d1b2d8c492fc384506bf250cb1d6a (diff) | |
download | gcc-4df199d153fb248c80fd892616bbf4990e2f6c9a.zip gcc-4df199d153fb248c80fd892616bbf4990e2f6c9a.tar.gz gcc-4df199d153fb248c80fd892616bbf4990e2f6c9a.tar.bz2 |
gengtype-state.c (fatal_reading_state): Bring offline.
* 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.
From-SVN: r210896
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/doc/passes.texi | 14 | ||||
-rw-r--r-- | gcc/final.c | 2 | ||||
-rw-r--r-- | gcc/gengtype-state.c | 2 | ||||
-rw-r--r-- | gcc/optabs.c | 19 | ||||
-rw-r--r-- | gcc/optabs.h | 21 |
6 files changed, 41 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f419574..b68063c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2014-05-23 Jan Hubicka <hubicka@ucw.cz> + * 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 <hubicka@ucw.cz> + * sched-int.h (sd_iterator_cond): Manually tail recurse. 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org> diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi index fb064db..0ab8f21 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 3271430..a5e6eb2 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 2ca0e1d..5b7017f 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 fc58b63..9af5227 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 8ecaa41..089b15a 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. */ |