aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@analog.com>2006-11-15 12:27:32 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2006-11-15 12:27:32 +0000
commit6b97a4396460b02c90e9166776361322ee783424 (patch)
tree40449184e324bdddaca1406b1e5d27a61564ff2d /gcc
parent0f14009a1ef12022294382f8a128cfd1ff7b8db7 (diff)
downloadgcc-6b97a4396460b02c90e9166776361322ee783424.zip
gcc-6b97a4396460b02c90e9166776361322ee783424.tar.gz
gcc-6b97a4396460b02c90e9166776361322ee783424.tar.bz2
bfin.c (legitimize_pic_address): Lose dead code that tests for CONSTANT_POOL_ADDRESS_P.
* config/bfin/bfin.c (legitimize_pic_address): Lose dead code that tests for CONSTANT_POOL_ADDRESS_P. From-SVN: r118854
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/bfin/bfin.c43
2 files changed, 20 insertions, 26 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8e7537e..25b1813 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -2,6 +2,9 @@
* tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
+ * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
+ that tests for CONSTANT_POOL_ADDRESS_P.
+
2006-11-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/29581
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index fd056a2..299fc56 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -145,36 +145,27 @@ legitimize_pic_address (rtx orig, rtx reg, rtx picreg)
if (GET_CODE (addr) == SYMBOL_REF || GET_CODE (addr) == LABEL_REF)
{
- if (GET_CODE (addr) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P (addr))
- reg = new = orig;
+ int unspec;
+ rtx tmp;
+
+ if (TARGET_ID_SHARED_LIBRARY)
+ unspec = UNSPEC_MOVE_PIC;
+ else if (GET_CODE (addr) == SYMBOL_REF
+ && SYMBOL_REF_FUNCTION_P (addr))
+ unspec = UNSPEC_FUNCDESC_GOT17M4;
else
- {
- int unspec;
- rtx tmp;
-
- if (TARGET_ID_SHARED_LIBRARY)
- unspec = UNSPEC_MOVE_PIC;
- else if (GET_CODE (addr) == SYMBOL_REF
- && SYMBOL_REF_FUNCTION_P (addr))
- {
- unspec = UNSPEC_FUNCDESC_GOT17M4;
- }
- else
- {
- unspec = UNSPEC_MOVE_FDPIC;
- }
+ unspec = UNSPEC_MOVE_FDPIC;
- if (reg == 0)
- {
- gcc_assert (!no_new_pseudos);
- reg = gen_reg_rtx (Pmode);
- }
+ if (reg == 0)
+ {
+ gcc_assert (!no_new_pseudos);
+ reg = gen_reg_rtx (Pmode);
+ }
- tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), unspec);
- new = gen_const_mem (Pmode, gen_rtx_PLUS (Pmode, picreg, tmp));
+ tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr), unspec);
+ new = gen_const_mem (Pmode, gen_rtx_PLUS (Pmode, picreg, tmp));
- emit_move_insn (reg, new);
- }
+ emit_move_insn (reg, new);
if (picreg == pic_offset_table_rtx)
current_function_uses_pic_offset_table = 1;
return reg;