public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: James Greenhalgh <james.greenhalgh@arm.com>
To: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Cc: Terry Guo <Terry.Guo@arm.com>,
	       "gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>,
	       Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>,
	       Richard Earnshaw <Richard.Earnshaw@arm.com>
Subject: Re: [PATCH][ARM]Automatically add -mthumb for thumb-only target when mode isn't specified
Date: Mon, 02 Mar 2015 13:29:00 -0000	[thread overview]
Message-ID: <20150302132814.GA16212@arm.com> (raw)
In-Reply-To: <0E847550-2947-46C3-991C-2720641BC881@linaro.org>

On Mon, Mar 02, 2015 at 01:08:13PM +0000, Maxim Kuvyrkov wrote:
> > On Mar 2, 2015, at 4:44 AM, Terry Guo <terry.guo@arm.com> wrote:
> > 
> > Hi there,
> > 
> > If target mode isn't specified via either gcc configuration option
> > --with-mode or command line, this patch intends to improve gcc driver to
> > automatically add option -mthumb for thumb-only target. Tested with gcc
> > regression test for various arm targets, no regression. Is it OK?
> > 
> > BR,
> > Terry
> > 
> > gcc/ChangeLog:
> > 
> > 2015-03-02  Terry Guo  <terry.guo@arm.com>
> > 
> >        * common/config/arm/arm-common.c (arm_is_target_thumb_only): New
> > function.
> >        * config/arm/arm-protos.h (FL_ Macros): Move to ...
> >        * config/arm/arm-opts.h (FL_ Macros): ... here.
> >        (struct arm_arch_core_flag): New struct.
> >        (arm_arch_core_flags): New array for arch/core and flag map.
> >        * config/arm/arm.h (MODE_SET_SPEC_FUNCTIONS): Define new SPEC
> > function.
> >        (EXTRA_SPEC_FUNCTIONS): Include new SPEC function.
> >        (MODE_SET_SPECS): New SPEC.
> >        (DRIVER_SELF_SPECS): Include new SPEC.<gcc-mthumb-option-v5.txt>
> 
> Did you consider approach of implementing this purely inside cc1 rather than driver?
> 
> We do not seem to need to pass -mthumb to assembler or linker since those
> will pick up ARM-ness / Thumb-ness from function annotations.  Therefore we
> need to handle -marm / -mthumb for cc1 only.  What am I missing?

I recently had a similar argument with myself regarding the usefulness
of rewriting -mcpu values in the driver before handing them off the
assembler (as we do for big.LITTLE systems), we could just rely on the
.arch directives in the assembler files.

The problem with this argument, and the one you make here, is that it
doesn't cover users driving the assembler with a GCC command to assemble
hand-rolled files without directives. i.e.

  gcc foo.s bar.c -mthumb -mcpu=cortex-a57.cortex-a53

Should have the effect when assembling foo.s of enforcing thumb mode,
and permitting ARMv8-A instructions, regardless whether foo.s explicitly
enables these through directives.

Cheers,
James

  reply	other threads:[~2015-03-02 13:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-02  1:45 Terry Guo
2015-03-02 13:08 ` Maxim Kuvyrkov
2015-03-02 13:29   ` James Greenhalgh [this message]
2015-03-02 16:14     ` Kyrill Tkachov
2015-03-03  2:28   ` Terry Guo
2015-03-04  2:45   ` Terry Guo
2015-03-04  2:46     ` Terry Guo
2015-03-04  8:16       ` Maxim Kuvyrkov
2015-03-05  6:14         ` Terry Guo
2015-03-05  7:02           ` Maxim Kuvyrkov

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=20150302132814.GA16212@arm.com \
    --to=james.greenhalgh@arm.com \
    --cc=Ramana.Radhakrishnan@arm.com \
    --cc=Richard.Earnshaw@arm.com \
    --cc=Terry.Guo@arm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=maxim.kuvyrkov@linaro.org \
    /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).