This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This should be really close to the final version. I've eliminated a couple of the hacks that remained in v7. In particular, all of the GC'd data from v7 is now localized to the IPA pass. Which means that I no longer have to have a hack in varpool.c to avoid a ggc_free call. There are almost no references to emulated tls remaining outside tree-emutls.c. The one remaining hack is localized to one line in dwarf2out.c. If a target arranges with gdb the meaning of DW_OP_form_tls_address, as vxworks apparently does, then we need some way to associate the original TLS variable with its control variable. I accomplish this by storing the control variable in DECL_VALUE_EXPR. At first this sounds gross, but I had already been storing a non-null value in DECL_VALUE_EXPR as a way to indicate to generic verify code that TLS variables should no longer appear in gimple code. To a greater or lesser extent DECL_VALUE_EXPR is also a way to communicate a complicated storage location for a DECL with the debug output routines. The only difference here is that I don't store the entire call expression and dereference as well. Given that we're already special-casing TLS variables, this doesn't seem so bad after all. r~
Attachment:
emutls-8
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |