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.
next prev 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).