summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-24 17:12:28 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-05-24 17:12:28 +0000
commit03edaad89692c0680dddceed01a4647df45ee0fc (patch)
tree23f66d0110b53d7887c8334b7556e8179fb87566
parent003661468a18b894f8233300c9b71e636c9f906b (diff)
downloadgcc-03edaad89692c0680dddceed01a4647df45ee0fc.tar.gz
* 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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/doc/passes.texi14
-rw-r--r--gcc/final.c2
-rw-r--r--gcc/gengtype-state.c2
-rw-r--r--gcc/optabs.c19
-rw-r--r--gcc/optabs.h21
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,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 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. */