有時我發現在LLVM IR標籤標識符開始使用逗號「;」,如 ; <label> 6
然而如我kown,逗號用於註釋。那麼,llvm如何才能在評論中找回標籤信息呢?我錯過了什麼嗎?
遵循一個簡單的測試。
C源文件:標籤的在LLVM IR代碼表達
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (a > 3)
a *= 2;
return 0;
}
由http://llvm.org/demo/index.cgi產生的LLVM IR代碼(同鐺-c -emit-LLVM main.c中)的以下內容:
; ModuleID = '/tmp/webcompile/_13654_0.bc'
@.str = private unnamed_addr constant [3 x i8] c"%d\00", align 1
define i32 @main() nounwind uwtable {
%a = alloca i32, align 4
%1 = call i32 (i8*, ...)* @__isoc99_scanf(i8* getelementptr inbounds ([3 x i8]* @.str, i64 0, i64 0), i32* %a) nounwind
%2 = load i32* %a, align 4, !tbaa !0
%3 = icmp sgt i32 %2, 3
br i1 %3, label %4, label %6
; <label>:4 ; preds = %0
%5 = shl nsw i32 %2, 1
store i32 %5, i32* %a, align 4, !tbaa !0
br label %6
; <label>:6 ; preds = %4, %0
ret i32 0
}
感謝您的幫助。這似乎有點奇怪。你能給我一些建議,讓我學習LLVM嗎? – bluesea 2012-03-20 03:07:13