Strange TLS-related x86_64 pattern (Re: [llvm-commits] [llvm] r107860)
Ulrich Weigand
Ulrich.Weigand at de.ibm.com
Wed Feb 27 05:59:33 PST 2013
Eric Christopher <echristo at gmail.com> wrote on 26.02.2013 20:24:44:
> Hrm. Sorry for the delay, just noticed this in my email that I
> needed to respond to...
>
> It may not be possible to generate it, I think that pattern was only
> supposed to be enabled for far data, but as I said, it needs more
> tests. I was just fixing it so that the correct patterns would be
> matched for the test there.
Hmm, so it seems the intent was for this pattern to get used with
initial-exec TLS accesses in large code model?
Interestingly enough, that doesn't seem to be working:
Building the following .ll file with llc -code-model=large
target triple = "x86_64-unknown-linux"
@x = external thread_local(initialexec) global i64
define i64 @test() {
entry:
%0 = load i64* @x, align 8
ret i64 %0
}
results in:
LLVM ERROR: Cannot select: 0x11f93410: i64 = X86ISD::WrapperRIP 0x11f93310
[ID=7]
0x11f93310: i64 = TargetGlobalTLSAddress<i64* @x> 0 [TF=10] [ID=5]
In function: test
(with unmodified LLVM head)
Bye,
Ulrich
More information about the llvm-commits
mailing list