OSDN Git Service

Don't build switch lookup tables for dllimport or TLS variables
authorHans Wennborg <hans@hanshq.net>
Fri, 20 Jun 2014 00:38:12 +0000 (00:38 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 20 Jun 2014 00:38:12 +0000 (00:38 +0000)
commit160dcf5b61b8d328cd1705a90c1e0ae27dcabd41
tree78b0a3f152e6c4972f3908fbe5b8c535da137edc
parent6fda71e05edc6447f780dee7fff8bd4bf543f39e
Don't build switch lookup tables for dllimport or TLS variables

We would previously put dllimport variables in switch lookup tables, which
doesn't work because the address cannot be used in a constant initializer.
This is basically the same problem that we have in PR19955.

Putting TLS variables in switch tables also desn't work, because the
address of such a variable is not constant.

Differential Revision: http://reviews.llvm.org/D4220

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211331 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Constant.h
lib/IR/Constants.cpp
lib/Transforms/Utils/SimplifyCFG.cpp
test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll