[llvm-dev] [cfe-dev] lli: LLVM ERROR: Cannot select: X86ISD::WrapperRIP TargetGlobalTLSAddress:i64

Tim Northover via llvm-dev
Wed, 08 Feb 2017 18:00:33 -0000

On 8 February 2017 at 09:50, Gaetano Checinski
<gaetano.checinski at gmail.com> wrote:
> > Unfortunately it doesn't look like lli has support for emulated
TLS either, though that would be pretty simple to add.
> As an experiment I've `llvm::createLowerEmuTLSPass` into lli which
added @__emutls_v.x and @__emutls_v.t.
> However i didn't have any __emultls_get_address calls in my IR.
> Is there a llvm pass or compiler-flag that replaces thread_locals with
appropriate  __emultls_get_address calls ?

Oh, interesting. Looks like the pass only does a pretty small part of
the work. The rest happens to the DAG in
TargetLowering::LowerToTLSEmulatedModel, based on
TargetOptions::EmulatedTLS (there's a reasonable chance that would
also automatically add the pass).

Tim.