2
是否可以在我的通行證中使用IR中的註釋?基本上我想用註釋中寫的基本塊頻率註釋的IR,如下所示,我需要頻率值在我的傳球中。我知道這是天真的方法,但它就足夠了。如何在我的通行證中使用LLVM IR中的註釋?
define internal void @MDFilter() #0 {
entry:
;;; Basic block executed 2 times. <-- I NEED THIS COMMENT AS A STRING IN MY PASS
%mdContext = alloca %struct.MD5_CTX, align 8
%bytes = alloca i32, align 4
%data = alloca [16 x i8], align 16
call void @MD5Init(%struct.MD5_CTX* %mdContext)
br label %while.cond
;;; Out-edge counts: [2.000000e+00 -> while.cond]
任何其他獲取此信息的方法也是受歡迎的。
確實,元數據是要走的路。我可以將元數據添加到基本塊對象嗎? 此外,IR由'llvm-prof'生成。 – shrm
@mishr nope。由於每個基本塊至少包含一條指令,我認爲一個好方法是將元數據添加到第一條指令中。或者,您可以添加元數據而不將其與任何內容相關聯,並且元數據內容本身列出它所指的功能和基本塊(按名稱)。 – Oak
@mishr和re:'llvm-prof',我認爲它實際上早於元數據機制。無論如何,看[源代碼](https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_28/tools/llvm-prof/llvm-prof.cpp),將它更改爲但是發出元數據。 – Oak