https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80881
--- Comment #51 from Julian Waters <tanksherman27 at gmail dot com> --- Created attachment 59318 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59318&action=edit Attempt to parallelize the load from gs/fs and load of _tls_index I've written a slightly different version of the patch, with the following differences - The configure check is not implemented yet, but will be soon. I was busy focusing on getting other parts right first - I've added a 'd' section flag to the .tls section to be emitted. clang does this and according to as documentation this is required to mark a section as a data section - I've attempted to parallelize the part where the 2 loads can happen in parallel. This doesn't seem to work, since it fails with an unrecognizable insn error. My lack of knowledge of how RTL functions is really showing here - I didn't touch the load_tp code in i386.md for this one, since that one seems to be for Linux and would break Linux if it were changed like the candidate patch did? - I know it's been mentioned that $ after .tls isn't required, but from my memory code like .tls$XXX can be emitted, making the $ necessary. Someone correct me if I'm wrong - Similarly, the !DECL_P was said to not be required, but upon closer examination, the ELF select_section seems to do that, so I've left it in since it does look like it is used for some purpose A question: Does gen_rtx_SYMBOL_REF take care of the preceding _ of _tls_index on 32 bit?