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]

Re: [Patch, updated] Make emulated TLS lto-friendly.


Test #4.

When we moved the emutls pass later, to allow omp and profile run first so
that they could create new TLS variables, we exposed tls addresses to the
early optimizers.  Which allowed them to propagate &tlsvar into PHI arguments.

Lowering PHI arguments sounded like a royal pain, so I decided to prevent it
by declaring emulated tls addresses to be !is_gimple_min_invariant.  This had
all sorts of unanticipated follow-on effects; in the end the simplest bubble
to squash appears to be in forwprop, where we were blindly propagating
ADDR_EXPR without looking to see if it might be valid.

Also fixed (aka hacked around) is a ggc corruption bug caused by an explicit
ggc_free in varpool_remove_node.  I'm not quite sure how it would be best to
fix that one properly.

Also fixed is maintaining the IPA web.  We should no longer incorrectly 
discard control variables as unused.


r~

Attachment: emutls-4
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]