public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Earnshaw <rearnsha@arm.com>
To: Richard Henderson <rth@twiddle.net>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>,
	 Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>
Subject: Re: [RFC, ARM] Convert thumb1 prologue completely to rtl
Date: Fri, 24 Jun 2011 10:30:00 -0000	[thread overview]
Message-ID: <4E04601B.6000402@arm.com> (raw)
In-Reply-To: <4DFCF630.4080908@twiddle.net>

On 18/06/11 20:02, Richard Henderson wrote:
> I couldn't find anything terribly tricky about the conversion.
> 
> The existing push_mult pattern would service thumb1 with just
> a tweak or two to the memory predicate and the length.
> 
> The existing emit_multi_reg_push wasn't set up to handle a
> complete switch of registers for unwind info.  I thought about
> trying to merge them, but thought chickened out.
> 
> I havn't cleaned out the code that is now dead in thumb_pushpop.
> I'd been thinking about maybe converting epilogues completely
> to rtl as well, which would allow the function to be deleted
> completely, rather than incrementally.
> 
> I'm unsure what testing should be applied.  I'm currently doing
> arm-elf, which does at least have a thumb1 multilib, and uses
> newlib so I don't have to fiddle with setting up a full native
> cross environment.  What else should be done?  arm-eabi?
> 

Testing this on arm-eabi is essential since this may affect C++ unwind
table generation (I can't see any obvious problems, but you never know).

> This is the only substantive bit of code left that tries to emit
> dwarf2 unwind info while emitting assembly as text.  So I'd like
> to get rid of this as soon as possible...
> 
> 
> r~
> 
> 
> d-thumb-1
> 
> 
> 	* config/arm/arm.c (arm_output_function_prologue): Don't call
> 	thumb1_output_function_prologue.
> 	(arm_expand_prologue): Avoid dead store.
> 	(number_of_first_bit_set): Use ctz_hwi.
> 	(thumb1_emit_multi_reg_push): New.
> 	(thumb1_expand_prologue): Merge thumb1_output_function_prologue
> 	to emit the entire prologue as rtl.
> 	(thumb1_output_interwork): Split out from
> 	thumb1_output_function_prologue.
> 	(thumb1_output_function_prologue): Remove.
> 	(arm_attr_length_push_multi): Handle thumb1.
> 	* config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
> 	(prologue_thumb1_interwork): New.
> 	(*push_multi): Allow thumb1; use push_mult_memory_operand.
> 	* config/arm/predicates.md (push_mult_memory_operand): New.
> 

OK if the arm-eabi tests are OK.

R.

  parent reply	other threads:[~2011-06-24 10:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-18 19:31 Richard Henderson
2011-06-19 21:41 ` Michael Hope
2011-06-24  4:24 ` Richard Henderson
2011-06-24 10:30 ` Richard Earnshaw [this message]
2011-06-27 18:52   ` Richard Henderson
2011-06-28  9:29     ` Richard Earnshaw

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E04601B.6000402@arm.com \
    --to=rearnsha@arm.com \
    --cc=Ramana.Radhakrishnan@arm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).