summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2014-06-26 00:30:52 +0000
committerHans Wennborg <hans@hanshq.net>2014-06-26 00:30:52 +0000
commit0545f16700b4757fa9523e9de199a101d16e6996 (patch)
treeb547bc8520326ab8cd7e4d6c215ad84ced191b97 /test/Transforms
parent45f166017c803d0fe1e24ad0f1a3f0a6989489e4 (diff)
downloadllvm-0545f16700b4757fa9523e9de199a101d16e6996.tar.gz
llvm-0545f16700b4757fa9523e9de199a101d16e6996.tar.bz2
llvm-0545f16700b4757fa9523e9de199a101d16e6996.tar.xz
Don't build switch tables for dllimport and TLS variables in GEPs
This is a follow-up to r211331, which failed to notice that we were returning early from ValidLookupTableConstant for GEPs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211753 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll13
1 files changed, 8 insertions, 5 deletions
diff --git a/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll b/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll
index ee63d2c0c0..51ced4099a 100644
--- a/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll
+++ b/test/Transforms/SimplifyCFG/X86/switch_to_lookup_table.ll
@@ -946,10 +946,10 @@ return:
}
; Don't build tables for switches with dllimport variables.
-@dllimport_a = external dllimport global i32
-@dllimport_b = external dllimport global i32
-@dllimport_c = external dllimport global i32
-@dllimport_d = external dllimport global i32
+@dllimport_a = external dllimport global [3x i32]
+@dllimport_b = external dllimport global [3x i32]
+@dllimport_c = external dllimport global [3x i32]
+@dllimport_d = external dllimport global [3x i32]
define i32* @dllimport(i32 %x) {
entry:
switch i32 %x, label %sw.default [
@@ -964,7 +964,10 @@ sw.bb2:
sw.default:
br label %return
return:
- %retval.0 = phi i32* [ @dllimport_d, %sw.default ], [ @dllimport_c, %sw.bb2 ], [ @dllimport_b, %sw.bb1 ], [ @dllimport_a, %entry ]
+ %retval.0 = phi i32* [ getelementptr inbounds ([3 x i32]* @dllimport_d, i32 0, i32 0), %sw.default ],
+ [ getelementptr inbounds ([3 x i32]* @dllimport_c, i32 0, i32 0), %sw.bb2 ],
+ [ getelementptr inbounds ([3 x i32]* @dllimport_b, i32 0, i32 0), %sw.bb1 ],
+ [ getelementptr inbounds ([3 x i32]* @dllimport_a, i32 0, i32 0), %entry ]
ret i32* %retval.0
; CHECK-LABEL: @dllimport(
; CHECK: switch i32