выражение метки в коде llvm IR

Иногда я обнаруживал, что идентификатор метки в llvm IR начинается с запятой ';', например: ; 6 однако, как я знаю, запятая используется для комментариев. Итак, как llvm может получить информацию о метке в комментариях? Я что-то упускаю?
Далее следует один простой тест.
исходный файл C:

#include 

int main()
{
 int a;
 scanf("%d", &a);
 if ( a > 3)
  a *= 2;
 return 0;
}

IR-код llvm, сгенерированный http://llvm.org/demo/index.cgi(такой же, как clang -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

; 

8
задан gre_gor 25 April 2018 в 22:11
поделиться