通过Clang 5获取变量名称

时间:2018-06-07 22:22:33

标签: clang llvm llvm-clang llvm-ir

我可以看到clang 3.8生成的bitcode中第一次出现变量名,但它们在clang 5.0 [以下示例中的%a]中消失了。知道如何在clang 5中获取它们吗?我在Linux和OSX中都尝试过。

C源代码

int bar(int a)
{
        return a;
}

Clang 3.8 [%a]

; Function Attrs: nounwind uwtable
define i32 @bar(i32 %a) #0 {
  %1 = alloca i32, align 4
  store i32 %a, i32* %1, align 4
  %2 = load i32, i32* %1, align 4
  ret i32 %2
}

Clang 5.0

; Function Attrs: noinline nounwind optnone uwtable
define i32 @bar(i32) #0 {
  %2 = alloca i32, align 4
  store i32 %0, i32* %2, align 4
  %3 = load i32, i32* %2, align 4
  ret i32 %3
}

Clang 5.0 with -Xclang -disable-O0-optnone

; Function Attrs: noinline nounwind uwtable
define i32 @bar(i32) #0 {
  %2 = alloca i32, align 4
  store i32 %0, i32* %2, align 4
  %3 = load i32, i32* %2, align 4
  ret i32 %3
}

0 个答案:

没有答案