diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2006-11-15 12:27:32 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2006-11-15 12:27:32 +0000 |
commit | 6b97a4396460b02c90e9166776361322ee783424 (patch) | |
tree | 40449184e324bdddaca1406b1e5d27a61564ff2d /gcc | |
parent | 0f14009a1ef12022294382f8a128cfd1ff7b8db7 (diff) | |
download | gcc-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/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.c | 43 |
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; |