mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-17 23:44:43 +00:00
Only do switch-to-lookup table transformation when TargetTransformInfo
is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167552 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e90a3bcae1
commit
b0319962cf
@ -3538,7 +3538,8 @@ static bool SwitchToLookupTable(SwitchInst *SI,
|
||||
const TargetTransformInfo *TTI) {
|
||||
assert(SI->getNumCases() > 1 && "Degenerate switch?");
|
||||
|
||||
if (TTI && !TTI->getScalarTargetTransformInfo()->shouldBuildLookupTables())
|
||||
// Only build lookup table when we have a target that supports it.
|
||||
if (!TTI || !TTI->getScalarTargetTransformInfo()->shouldBuildLookupTables())
|
||||
return false;
|
||||
|
||||
// FIXME: If the switch is too sparse for a lookup table, perhaps we could
|
||||
|
6
test/Transforms/SimplifyCFG/X86/lit.local.cfg
Normal file
6
test/Transforms/SimplifyCFG/X86/lit.local.cfg
Normal file
@ -0,0 +1,6 @@
|
||||
config.suffixes = ['.ll', '.c', '.cpp']
|
||||
|
||||
targets = set(config.root.targets_to_build.split())
|
||||
if not 'X86' in targets:
|
||||
config.unsupported = True
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: opt < %s -simplifycfg -S | FileCheck %s
|
||||
; RUN: opt < %s -simplifycfg -S -mtriple=x86_64-unknown-linux-gnu | FileCheck %s
|
||||
|
||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
@ -141,9 +141,8 @@ UnifiedReturnBlock: ; preds = %shortcirc_done.4, %shortcirc_next.4
|
||||
ret i1 %UnifiedRetVal
|
||||
|
||||
; CHECK: @test6
|
||||
; CHECK: %switch.tableidx = sub i32 %tmp.2.i, 14
|
||||
; CHECK: %0 = icmp ult i32 %switch.tableidx, 6
|
||||
; CHECK: select i1 %0, i1 true, i1 false
|
||||
; CHECK: %tmp.2.i.off = add i32 %tmp.2.i, -14
|
||||
; CHECK: %switch = icmp ult i32 %tmp.2.i.off, 6
|
||||
}
|
||||
|
||||
define void @test7(i8 zeroext %c, i32 %x) nounwind ssp noredzone {
|
||||
|
Loading…
x
Reference in New Issue
Block a user