On 21 May 2015 at 17:44, Jiong Wang <jiong.w...@arm.com> wrote: > > This patch add -mtls-size option for AArch64. This option let user to do > finer control on code generation for various TLS model on AArch64. > > For example, for TLS LE, user can specify smaller tls-size, for example > 4K which is quite usual, to let AArch64 backend generate more efficient > instruction sequences. > > Currently, -mtls-size accept all integer, then will translate it into > 12(4K), 24(16M), 32(4G), 48(256TB) based on the value. > > no functional change. > > ok for trunk? > > 2015-05-20 Jiong Wang <jiong.w...@arm.com> > > gcc/ > * config/aarch64/aarch64.opt (mtls-size): New entry. > * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function. > * doc/invoke.texi (AArch64 Options): Document -mtls-size.
+mtls-size= +Target RejectNegative Joined UInteger Var(aarch64_tls_size) Init(24) +Specifies size of the TLS data area, default size is 16M. Accept any integer, but the value +will be transformed into 12(4K), 24(16M), 32(4G), 48(256TB) + Can we follow the mechanism used by rs6000 and limit the accepted values here using an Enum to just the valid values: 12, 24, 32, 48? +@item -mtls-size=@var{size} +@opindex mtls-size +Specify the size of TLS area. You can specify smaller value to get better code +generation for TLS variable access. Currently, we accept any integer, but will +turn them into 12(4K), 24(16M), 32(4G), 48(256TB) according to the integer +value. + How about: "Specify bit size of immediate TLS offsets. Valid values are 12, 24, 32, 48." Thanks /Marcus