Inline TLS access. (#16882)
commitaca55a42aa5117f4406b68b1ac217063cc7ab3ec
authorJay Krell <jaykrell@microsoft.com>
Sat, 21 Sep 2019 16:35:19 +0000 (21 09:35 -0700)
committerAlexander Köplinger <alex.koeplinger@outlook.com>
Sat, 21 Sep 2019 16:35:19 +0000 (21 18:35 +0200)
tree2810e693ea76dbeb4c7d2e6000c64669c608e3b0
parentb20c690e3e96c16a7a5c4ab580060db4ccf28d86
Inline TLS access. (#16882)

The same functions are referenced by JIT and runtime.
The JIT uses cannot be inlined. The runtime can.
Since I could not get anything else to build and the change is simple and mechanical, now two sets of functions are provided, inline and extern. Extern just calls inline.
This PR appears to change all the uses, but it is only the JIT uses. The runtime ones just work and keep the old names.

We should also consider building desktop with LTO/LTCG, which would do all this automatically, smarter, more generally. A quick experiment shows it grows the runtime size, which is why I say desktop.
mono/metadata/jit-icall-reg.h
mono/mini/exceptions-amd64.c
mono/mini/mini-arm.c
mono/mini/mini-ppc.c
mono/mini/mini-runtime.c
mono/mini/mini-s390x.c
mono/utils/mono-tls.c
mono/utils/mono-tls.h