public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [arm] Fix insn type of *thumb1_tablejump
@ 2019-09-17 14:53 Richard Sandiford
  2019-09-17 15:00 ` Richard Earnshaw (lists)
  0 siblings, 1 reply; 2+ messages in thread
From: Richard Sandiford @ 2019-09-17 14:53 UTC (permalink / raw)
  To: gcc-patches; +Cc: nickc, richard.earnshaw, ramana.radhakrishnan, kyrylo.tkachov

*thumb1_tablejump had type "no_insn", which doesn't seems to correspond
to its documented use:

  an insn which does not represent an instruction in the final output,
  thus having no impact on scheduling.

Indirect jumps use the same instruction and have type "branch",
so the patch uses "branch" here too.

Tested on armeb-none-eabi.  OK to install?

Richard


2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* config/arm/thumb1.md (*thumb1_tablejump): Change type from
	"no_insn" to "branch".

Index: gcc/config/arm/thumb1.md
===================================================================
--- gcc/config/arm/thumb1.md	2019-07-01 09:37:07.224524452 +0100
+++ gcc/config/arm/thumb1.md	2019-09-17 15:52:16.454952314 +0100
@@ -1944,7 +1944,7 @@ (define_insn "*thumb1_tablejump"
   "TARGET_THUMB1"
   "mov\\t%|pc, %0"
   [(set_attr "length" "2")
-   (set_attr "type" "no_insn")]
+   (set_attr "type" "branch")]
 )
 
 (define_insn_and_split "thumb_eh_return"

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [arm] Fix insn type of *thumb1_tablejump
  2019-09-17 14:53 [arm] Fix insn type of *thumb1_tablejump Richard Sandiford
@ 2019-09-17 15:00 ` Richard Earnshaw (lists)
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Earnshaw (lists) @ 2019-09-17 15:00 UTC (permalink / raw)
  To: gcc-patches, nickc, ramana.radhakrishnan, kyrylo.tkachov,
	richard.sandiford

On 17/09/2019 15:53, Richard Sandiford wrote:
> *thumb1_tablejump had type "no_insn", which doesn't seems to correspond
> to its documented use:
> 
>    an insn which does not represent an instruction in the final output,
>    thus having no impact on scheduling.
> 
> Indirect jumps use the same instruction and have type "branch",
> so the patch uses "branch" here too.
> 
> Tested on armeb-none-eabi.  OK to install?
> 
> Richard
> 
> 
> 2019-09-17  Richard Sandiford  <richard.sandiford@arm.com>
> 
> gcc/
> 	* config/arm/thumb1.md (*thumb1_tablejump): Change type from
> 	"no_insn" to "branch".
> 
> Index: gcc/config/arm/thumb1.md
> ===================================================================
> --- gcc/config/arm/thumb1.md	2019-07-01 09:37:07.224524452 +0100
> +++ gcc/config/arm/thumb1.md	2019-09-17 15:52:16.454952314 +0100
> @@ -1944,7 +1944,7 @@ (define_insn "*thumb1_tablejump"
>     "TARGET_THUMB1"
>     "mov\\t%|pc, %0"
>     [(set_attr "length" "2")
> -   (set_attr "type" "no_insn")]
> +   (set_attr "type" "branch")]
>   )
>   
>   (define_insn_and_split "thumb_eh_return"
> 

Ok.

It probably makes no real difference to scheduling though as branch 
instructions end a basic block.

R.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-09-17 15:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-17 14:53 [arm] Fix insn type of *thumb1_tablejump Richard Sandiford
2019-09-17 15:00 ` Richard Earnshaw (lists)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).