summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0365-gcc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0365-gcc.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0365-gcc.patch125
1 files changed, 0 insertions, 125 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0365-gcc.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0365-gcc.patch
deleted file mode 100644
index 378076392..000000000
--- a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0365-gcc.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 158892fce220b03d3fe3d8d7656e1b0786609283 Mon Sep 17 00:00:00 2001
-From: rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sun, 29 May 2011 17:47:51 +0000
-Subject: [PATCH] gcc/
- PR target/43995
- * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
- recurse_p argument. Only follow register copies if it is set,
- and prevent mips_find_pic_call_symbol from recursing.
- (mips_find_pic_call_symbol): Add a recurse_p argument.
- Pass it to mips_pic_call_symbol_from_set.
- (mips_annotate_pic_calls): Update accordingly.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174404 138bc75d-0d04-0410-961f-82ee72b054a4
-
-index 9de479b..027fc2d 100644
---- a/gcc/config/mips/mips.c
-+++ b/gcc/config/mips/mips.c
-@@ -1186,7 +1186,7 @@ static const struct mips_rtx_cost_data
- }
- };
-
--static rtx mips_find_pic_call_symbol (rtx, rtx);
-+static rtx mips_find_pic_call_symbol (rtx, rtx, bool);
- static int mips_register_move_cost (enum machine_mode, reg_class_t,
- reg_class_t);
- static unsigned int mips_function_arg_boundary (enum machine_mode, const_tree);
-@@ -14160,12 +14160,16 @@ mips_call_expr_from_insn (rtx insn, rtx *second_call)
- }
-
- /* REG is set in DEF. See if the definition is one of the ways we load a
-- register with a symbol address for a mips_use_pic_fn_addr_reg_p call. If
-- it is return the symbol reference of the function, otherwise return
-- NULL_RTX. */
-+ register with a symbol address for a mips_use_pic_fn_addr_reg_p call.
-+ If it is, return the symbol reference of the function, otherwise return
-+ NULL_RTX.
-+
-+ If RECURSE_P is true, use mips_find_pic_call_symbol to interpret
-+ the values of source registers, otherwise treat such registers as
-+ having an unknown value. */
-
- static rtx
--mips_pic_call_symbol_from_set (df_ref def, rtx reg)
-+mips_pic_call_symbol_from_set (df_ref def, rtx reg, bool recurse_p)
- {
- rtx def_insn, set;
-
-@@ -14192,21 +14196,39 @@ mips_pic_call_symbol_from_set (df_ref def, rtx reg)
- return symbol;
- }
-
-- /* Follow simple register copies. */
-- if (REG_P (src))
-- return mips_find_pic_call_symbol (def_insn, src);
-+ /* Follow at most one simple register copy. Such copies are
-+ interesting in cases like:
-+
-+ for (...)
-+ {
-+ locally_binding_fn (...);
-+ }
-+
-+ and:
-+
-+ locally_binding_fn (...);
-+ ...
-+ locally_binding_fn (...);
-+
-+ where the load of locally_binding_fn can legitimately be
-+ hoisted or shared. However, we do not expect to see complex
-+ chains of copies, so a full worklist solution to the problem
-+ would probably be overkill. */
-+ if (recurse_p && REG_P (src))
-+ return mips_find_pic_call_symbol (def_insn, src, false);
- }
-
- return NULL_RTX;
- }
-
--/* Find the definition of the use of REG in INSN. See if the definition is
-- one of the ways we load a register with a symbol address for a
-- mips_use_pic_fn_addr_reg_p call. If it is return the symbol reference of
-- the function, otherwise return NULL_RTX. */
-+/* Find the definition of the use of REG in INSN. See if the definition
-+ is one of the ways we load a register with a symbol address for a
-+ mips_use_pic_fn_addr_reg_p call. If it is return the symbol reference
-+ of the function, otherwise return NULL_RTX. RECURSE_P is as for
-+ mips_pic_call_symbol_from_set. */
-
- static rtx
--mips_find_pic_call_symbol (rtx insn, rtx reg)
-+mips_find_pic_call_symbol (rtx insn, rtx reg, bool recurse_p)
- {
- df_ref use;
- struct df_link *defs;
-@@ -14218,7 +14240,7 @@ mips_find_pic_call_symbol (rtx insn, rtx reg)
- defs = DF_REF_CHAIN (use);
- if (!defs)
- return NULL_RTX;
-- symbol = mips_pic_call_symbol_from_set (defs->ref, reg);
-+ symbol = mips_pic_call_symbol_from_set (defs->ref, reg, recurse_p);
- if (!symbol)
- return NULL_RTX;
-
-@@ -14227,7 +14249,7 @@ mips_find_pic_call_symbol (rtx insn, rtx reg)
- {
- rtx other;
-
-- other = mips_pic_call_symbol_from_set (defs->ref, reg);
-+ other = mips_pic_call_symbol_from_set (defs->ref, reg, recurse_p);
- if (!rtx_equal_p (symbol, other))
- return NULL_RTX;
- }
-@@ -14298,7 +14320,7 @@ mips_annotate_pic_calls (void)
- if (!REG_P (reg))
- continue;
-
-- symbol = mips_find_pic_call_symbol (insn, reg);
-+ symbol = mips_find_pic_call_symbol (insn, reg, true);
- if (symbol)
- {
- mips_annotate_pic_call_expr (call, symbol);
---
-1.7.0.4
-