[PATCH, ARM] attribute target (thumb,arm) [4/6] respin (4th)
Ramana Radhakrishnan
ramana.radhakrishnan@arm.com
Fri May 8 08:31:00 GMT 2015
I'm still playing with the code, so this is a partial review.
We should prevent inlining of ARM state functions into functions we know
will be T16 if !TARGET_SOFT_FLOAT on the grounds that the architecture
doesn't have floating point instruction encodings in the T16 ISA
(Thumb1). We'll just cause internal compiler errors if we allow this.
On 07/05/15 00:03, Sandra Loosemore wrote:
> On 05/06/2015 08:24 AM, Christian Bruel wrote:
>> diff '--exclude=.svn' -ruN gnu_trunk.p3/gcc/gcc/doc/extend.texi gnu_trunk.p4/gcc/gcc/doc/extend.texi
>> --- gnu_trunk.p3/gcc/gcc/doc/extend.texi 2015-05-06 09:00:31.232943164 +0200
>> +++ gnu_trunk.p4/gcc/gcc/doc/extend.texi 2015-05-06 14:50:05.632612233 +0200
>> @@ -3419,6 +3419,25 @@
>> the compiler rejects attempts to specify an alternative.
>> @end table
>>
>> +@item target (@var{options})
>> +@cindex @code{target} function attribute
>> +As discussed in @ref{Common Function Attributes}, this attribute
>> +allows specification of target-specific compilation options.
>> +
>> +On ARM, the following options are allowed:
>> +
>> +@table @samp
>> +@item thumb
>> +@cindex @code{target("thumb")} function attribute, ARM
>> +Force Thumb1 Thumb2 code generation depending on the architecture.
>
> "Force Thumb or Thumb-2 code generation, depending on the architecture."
I'd rather it said something like
"Force code generation in the Thumb (T16/ T32) ISA. The exact
instructions chosen depends on the architecture levels chosen."
>> +
>> +@item arm
>> +@cindex @code{target("arm")} function attribute, ARM
>> +Force ARM code generation.
"Force code generation in the ARM (A32) ISA."
>> +@end table
>> +
>> +Functions from different modes can be inlined using the caller mode.
Rewrite this based on the review comment about inlining in the Thumb16
state from ARM state.
>
> "...the caller's mode."
>
>> +
>> @node AVR Function Attributes
>> @subsection AVR Function Attributes
>>
>> @@ -18436,8 +18455,9 @@
>> @xref{Function Attributes}, for more information about the
>> @code{target} attribute and the attribute syntax.
>>
>> -The @code{#pragma GCC target} pragma is presently implemented for
>> -x86, PowerPC, and Nios II targets only.
>> +The @code{#pragma GCC target} pragma is implemented for
>> +ARM, x86, PowerPC, and Nios II targets.
>> +
I'd rather say this once we have proper support with arch, cpu and fpu
options enabled. Until such a time I think this hunk is a bit premature.
Ramana
More information about the Gcc-patches
mailing list