diff mbox

[AArch64] Purge leftover occurrences of aarch64_nopcrelative_literal_loads

Message ID 5880AE64.2000404@foss.arm.com
State New
Headers show

Commit Message

Kyrill Tkachov Jan. 19, 2017, 12:17 p.m. UTC
Hi all,

The patch that renamed all uses of aarch64_nopcrelative_literal_loads into aarch64_pcrelative_literal_loads missed out
its extern declaration in aarch64-protos.h and a couple of its uses in aarch64.md.
The aarch64_nopcrelative_literal_loads doesn't get initialised anywhere (since it's unlinked from the
command-line option handling machinery) so the code that uses it is bogus.

In any case, its use in the aarch64_reload_movcp<GPF_TF:mode><P:mode> and aarch64_reload_movcp<VALL:mode><P:mode>
expanders is redundant since they are only ever called through aarch64_secondary_reload which gates their use
on !aarch64_pcrelative_literal_loads already. Since these are not standard names, their conditions don't actually
matter in any way or checked at any point in the compilation AFAICS.

Bootstrapped and tested on aarch64-none-linux-gnu.

Ok for trunk?

Thanks,
Kyrill

2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
     Delete.
     * config/aarch64/aarch64.md
     (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
     aarch64_nopcrelative_literal_loads.
     (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.

Comments

James Greenhalgh Jan. 19, 2017, 4:45 p.m. UTC | #1
On Thu, Jan 19, 2017 at 12:17:40PM +0000, Kyrill Tkachov wrote:
> Hi all,
> 
> The patch that renamed all uses of aarch64_nopcrelative_literal_loads into
> aarch64_pcrelative_literal_loads missed out its extern declaration in
> aarch64-protos.h and a couple of its uses in aarch64.md.
> The aarch64_nopcrelative_literal_loads doesn't get initialised anywhere
> (since it's unlinked from the command-line option handling machinery) so the
> code that uses it is bogus.
> 
> In any case, its use in the aarch64_reload_movcp<GPF_TF:mode><P:mode> and
> aarch64_reload_movcp<VALL:mode><P:mode> expanders is redundant since they are
> only ever called through aarch64_secondary_reload which gates their use on
> !aarch64_pcrelative_literal_loads already. Since these are not standard
> names, their conditions don't actually matter in any way or checked at any
> point in the compilation AFAICS.

But more importantly, as it stands if this condition were ever not
eliminated there would be a link time error - so the code is dead and
dangerous and removing it is not concerning even at this stage in
development.

This patch is OK.

Thanks,
James

> diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
> index 29a3bd71151aa4fb7c6728f0fb52e2f3f233f41d..17d8a89ef0ce58b28fc8fc4713edcc4b194bbc90 100644
> --- a/gcc/config/aarch64/aarch64-protos.h
> +++ b/gcc/config/aarch64/aarch64-protos.h
> @@ -453,7 +453,6 @@ int aarch64_ccmp_mode_to_code (enum machine_mode mode);
>  bool extract_base_offset_in_addr (rtx mem, rtx *base, rtx *offset);
>  bool aarch64_operands_ok_for_ldpstp (rtx *, bool, enum machine_mode);
>  bool aarch64_operands_adjust_ok_for_ldpstp (rtx *, bool, enum machine_mode);
> -extern bool aarch64_nopcrelative_literal_loads;
>  
>  extern void aarch64_asm_output_pool_epilogue (FILE *, const char *,
>  					      tree, HOST_WIDE_INT);
> diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
> index 7aaebd230ddb702447dd4a5d1ba4ab05441cb10a..2b0c2cc01e72d635f85ce4c56be1407986377ab3 100644
> --- a/gcc/config/aarch64/aarch64.md
> +++ b/gcc/config/aarch64/aarch64.md
> @@ -5044,7 +5044,7 @@ (define_expand "aarch64_reload_movcp<GPF_TF:mode><P:mode>"
>   [(set (match_operand:GPF_TF 0 "register_operand" "=w")
>         (mem:GPF_TF (match_operand 1 "aarch64_constant_pool_symref" "S")))
>    (clobber (match_operand:P 2 "register_operand" "=&r"))]
> - "TARGET_FLOAT && aarch64_nopcrelative_literal_loads"
> + "TARGET_FLOAT"
>   {
>     aarch64_expand_mov_immediate (operands[2], XEXP (operands[1], 0));
>     emit_move_insn (operands[0], gen_rtx_MEM (<GPF_TF:MODE>mode, operands[2]));
> @@ -5057,7 +5057,7 @@ (define_expand "aarch64_reload_movcp<VALL:mode><P:mode>"
>   [(set (match_operand:VALL 0 "register_operand" "=w")
>         (mem:VALL (match_operand 1 "aarch64_constant_pool_symref" "S")))
>    (clobber (match_operand:P 2 "register_operand" "=&r"))]
> - "TARGET_FLOAT && aarch64_nopcrelative_literal_loads"
> + "TARGET_FLOAT"
>   {
>     aarch64_expand_mov_immediate (operands[2], XEXP (operands[1], 0));
>     emit_move_insn (operands[0], gen_rtx_MEM (<VALL:MODE>mode, operands[2]));
diff mbox

Patch

diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index 29a3bd71151aa4fb7c6728f0fb52e2f3f233f41d..17d8a89ef0ce58b28fc8fc4713edcc4b194bbc90 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -453,7 +453,6 @@  int aarch64_ccmp_mode_to_code (enum machine_mode mode);
 bool extract_base_offset_in_addr (rtx mem, rtx *base, rtx *offset);
 bool aarch64_operands_ok_for_ldpstp (rtx *, bool, enum machine_mode);
 bool aarch64_operands_adjust_ok_for_ldpstp (rtx *, bool, enum machine_mode);
-extern bool aarch64_nopcrelative_literal_loads;
 
 extern void aarch64_asm_output_pool_epilogue (FILE *, const char *,
 					      tree, HOST_WIDE_INT);
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 7aaebd230ddb702447dd4a5d1ba4ab05441cb10a..2b0c2cc01e72d635f85ce4c56be1407986377ab3 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -5044,7 +5044,7 @@  (define_expand "aarch64_reload_movcp<GPF_TF:mode><P:mode>"
  [(set (match_operand:GPF_TF 0 "register_operand" "=w")
        (mem:GPF_TF (match_operand 1 "aarch64_constant_pool_symref" "S")))
   (clobber (match_operand:P 2 "register_operand" "=&r"))]
- "TARGET_FLOAT && aarch64_nopcrelative_literal_loads"
+ "TARGET_FLOAT"
  {
    aarch64_expand_mov_immediate (operands[2], XEXP (operands[1], 0));
    emit_move_insn (operands[0], gen_rtx_MEM (<GPF_TF:MODE>mode, operands[2]));
@@ -5057,7 +5057,7 @@  (define_expand "aarch64_reload_movcp<VALL:mode><P:mode>"
  [(set (match_operand:VALL 0 "register_operand" "=w")
        (mem:VALL (match_operand 1 "aarch64_constant_pool_symref" "S")))
   (clobber (match_operand:P 2 "register_operand" "=&r"))]
- "TARGET_FLOAT && aarch64_nopcrelative_literal_loads"
+ "TARGET_FLOAT"
  {
    aarch64_expand_mov_immediate (operands[2], XEXP (operands[1], 0));
    emit_move_insn (operands[0], gen_rtx_MEM (<VALL:MODE>mode, operands[2]));