This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, PR58066] preferred_stack_boundary update for tls expanded call
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Wei Mi <wmi at google dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, David Li <davidxl at google dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Thu, 8 May 2014 17:58:35 +0200
- Subject: Re: [PATCH, PR58066] preferred_stack_boundary update for tls expanded call
- Authentication-results: sourceware.org; auth=none
- References: <CA+4CFy5BdB2=mnd=o+8GmQ5EBtJfGUFB-0AKFou2xMHvekCAJw at mail dot gmail dot com> <CAMe9rOrrF5zTYh6=KoKcmNDZYi_oirh6SNC+_JdCY4U6NpBMTQ at mail dot gmail dot com> <CA+4CFy7SHAHmEmreq+GsTzA9nYnWiSG_Fut_fs16BnFH+LOQow at mail dot gmail dot com> <CAMe9rOpG8N8YPA=dHMDq7fL6Kyn1PU1-RrD6bqBjHFUOfz7n9Q at mail dot gmail dot com> <CA+4CFy79py1XrgDygpRg9j4ZLz9waKMKkoAvvA_QnN6M7usCaA at mail dot gmail dot com> <CAMe9rOqdN=ebqYnN7skYzJF5sEK0Q_2rAX1SQ=hWouZtUaqJGw at mail dot gmail dot com> <CA+4CFy7wt4EKUwQAQ8zqP=gbVwAZmUu57oKNxjvyNRfkYoPdPw at mail dot gmail dot com> <CAMe9rOrOXkKB99AzmMsmHEPQENG=tUhqBoNEW+s_6E2MAL+c-A at mail dot gmail dot com> <CA+4CFy6XnBNbgWgoQmR2Mso9gJCKQSo1ek1f-NyUT7FpEqP9DA at mail dot gmail dot com> <CA+4CFy4PrriWXnfdixdpJO-6XmQSwCPWV9a3-GsZ2Uy2U+bQVA at mail dot gmail dot com> <CAMe9rOrEGOAr-OvJ1iieoLRybWXA+-e9QHUYf-v8k4x1zoJ+Vg at mail dot gmail dot com> <CA+4CFy5NmXE656_hCOmC3_J2Pmm_KiamoLX7Pep0Z7yPNuObqQ at mail dot gmail dot com> <CA+4CFy64JfOzoyYNdr-xUr3x7LZPGLmWqPa9+pv1SXVtyVDvQw at mail dot gmail dot com> <CAMe9rOqto_vXZUN4Mx8ogGw5KH9=XmvkQfmc+x8RFZe=dL+5Cw at mail dot gmail dot com> <CA+4CFy6v4nC6eaVMq1GsP51r3Qbmj7R0kAc06DLDQKdGcTxRmQ at mail dot gmail dot com> <CA+4CFy518LEBiV2aOCin9Ay0f52ONUUkaeezUqB0JjebRQtRXw at mail dot gmail dot com> <CAMe9rOqSYOsdNNv5ux-XWyWBx8uo5ddRjKFEoCzFRFf_C-HmzA at mail dot gmail dot com> <CA+4CFy4q12nW2o-kvqkkkMNNxM=BoVrfV4ECvVjs-yBJggQwvA at mail dot gmail dot com> <CAFULd4asJ+VJ687HHEEiRnCQnjm4Qbo=7Azpo-_Wpt-zbXhURg at mail dot gmail dot com> <CA+4CFy5OOGGN_0FTDTh=PgEKYKzzk+koiB9mxGbGZ+MMXLQfZw at mail dot gmail dot com> <CA+4CFy5v88A5k7EsuZY8ZodHo7puX90t1ivQ9xbbGou8686Kbw at mail dot gmail dot com>
On Thu, May 8, 2014 at 12:59 AM, Wei Mi <wmi@google.com> wrote:
> The calls added in the templates of tls_local_dynamic_base_32 and
> tls_global_dynamic_32 in pr58066-3.patch are used to prevent sched2
> from moving sp setting across implicit tls calls, but those calls make
> the combine of UNSPEC_TLS_LD_BASE and UNSPEC_DTPOFF difficult, so that
> the optimization in tls_local_dynamic_32_once to convert local_dynamic
> to global_dynamic mode for single tls reference cannot take effect. In
> the updated patch, I remove those calls from insn templates and add
> "reg:SI SP_REG" explicitly in the templates of UNSPEC_TLS_GD and
> UNSPEC_TLS_LD_BASE. It solves the sched2 and combine problems above,
> and now the optimization in tls_local_dynamic_32_once works.
>
> bootstrapped ok on x86_64-linux-gnu. regression is going on. Is it OK
> if regression passes?
Please update ChangeLog with all changes, see below:
> ChangeLog:
>
> gcc/
> 2014-05-07 Wei Mi <wmi@google.com>
>
> * config/i386/i386.c (ix86_compute_frame_layout):
> preferred_stack_boundary updated for tls expanded call.
(...): Update preferred_stack_boundary for call, expanded from tls descriptor.
> * config/i386/i386.md: Set ix86_tls_descriptor_calls_expanded_in_cfun.
* config/i386/i386.md (*tls_global_dynamic_32_gnu): Depend on SP register.
(*tls_local_dynamic_base_32_gnu): Ditto.
...
(tls_global_dynamic_32): Set
ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX to depend on
SP register.
(tls_local_dynamic_base_32): Ditto.
...
The patch is OK for mainline with updated and complete ChangeLog entry.
Thanks,
Uros.