mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Even at -Onone one SILValue can back up more than one local source variable. This commit changes the list of variable values into a set. <rdar://problem/28467349>
28 lines
934 B
Swift
28 lines
934 B
Swift
// RUN: %target-swift-frontend %s -g -emit-ir -o - | %FileCheck %s
|
|
|
|
func use<T>(_ x: T) {}
|
|
|
|
func getInt32() -> Int32 { return -1 }
|
|
|
|
public func rangeExtension(_ b: Bool) {
|
|
// CHECK: define {{.*}}rangeExtension
|
|
let i = getInt32()
|
|
// CHECK: llvm.dbg.value(metadata i32 [[I:.*]], i64 0, metadata
|
|
use(i)
|
|
if b {
|
|
let j = getInt32()
|
|
// CHECK: llvm.dbg.value(metadata i32 [[I]], i64 0, metadata
|
|
// CHECK: llvm.dbg.value(metadata i32 [[J:.*]], i64 0, metadata
|
|
use(j)
|
|
// CHECK-DAG: {{(asm sideeffect "", "r".*)|(zext i32)}} [[J]]
|
|
// CHECK-DAG: asm sideeffect "", "r"
|
|
}
|
|
let z = getInt32()
|
|
use(z)
|
|
// CHECK-NOT: llvm.dbg.value(metadata i32 [[J]], i64 0, metadata
|
|
// CHECK-DAG: llvm.dbg.value(metadata i32 [[I]], i64 0, metadata
|
|
// CHECK-DAG: llvm.dbg.value(metadata i32 [[Z:.*]], i64 0, metadata
|
|
// CHECK-DAG: {{(asm sideeffect "", "r".*)|(zext i32)}} [[I]]
|
|
// CHECK-DAG: asm sideeffect "", "r"
|
|
}
|