[LLVMdev] PR 5723
David Greene
dag at cray.com
Tue Dec 8 12:43:59 PST 2009
On Tuesday 08 December 2009 14:00, David Greene wrote:
> I just filed PR 5723. This is a rather serious bug for us,
> causing all sorts of problems in creating dynamically-linked
> C++ programs due to the C++ runtime containing lots of leaf-like
> routines that use thread-local storage.
>
> I can imagine a number of hackish workarounds, but I think probably
> the right way to go is to mark routines with thread-local storage
> accesses in them as non-leaf. I guess that would have to happen in
> the PrologueEpilogueInserter.
>
> Is there an easy way to tell if a MachineFunction uses TLS without doing
> a full scan of the body? Perhaps SelectionDAG will have to mark the
> function somehow.
How does a MachineInstr acquire a CallFrameSetupOpcode? I can't find
anywhere in the sources or generated files where that opcode is set.
I believe we need to generate that instruction if it does not exist
(along with CallFrameDestroyOpcode) in the presence of TLS, at least
on X86 where's it's implemented via a function call.
-Dave
More information about the llvm-dev
mailing list