LLVM 核心類簡明示例

2021-10-22 18:33:03 字數 1558 閱讀 5443

《帶有llvm的ebpf元件》

《the llvm compiler infrastructure | llvm編譯器基礎設施》

《llvm每日談 | 知乎》

《llvm 核心類簡明示例》

目錄

llvm 核心類簡明示例 : llvm::value && llvm::type && llvm::constant

llvm::value

llvm:type

llvm::constant

llvm核心類位於include/llvm/ir中,用以表示機器無關且表現力極強的llvm ir。

llvm::value則是這其中的重中之重,它用來表示乙個具有型別的值。它是類圖如下:

llvm::argument,llvm::basicblock,llvm::constant,llvm::instruction這些很重要的類都是它的子類。

llvm::value有乙個llvm::type*成員和乙個use list。後者可以跟蹤有哪些其他value使用了自己,我們可以使用下面的迭代器對它進行訪問:

int main() 

system("pause");    return 0;

}

前者顧名思義表示乙個型別。可以通過value::gettype()獲取到這個llvm::type*,它有一些is*()成員函式可以判斷是下面哪種型別:

enum typeid ;
比如這樣:
int main() 

system("pause"); return 0;

}

除此之外llvm::type還有很多成員函式,詳細請參見

多說一句,我們還可以對llvm::value進行命名

bool hasname() const

std::string getname() const

void setname(const std::string &name)

llvm::constant表示乙個各種常量的基類,基於它派生出了constantint 整型常量,constantfp 浮點型常量,constantarray 陣列常量,constantstruct 結構體常量:

int main()
原文出處:

C 事務處理簡明示例

定義資料庫 create database guigui use guigui create table users userid int not null primary key identity 1,1 username varchar 20 userpass varchar 20 create...

原創 C 事務處理簡明示例 收藏

定義資料庫 create database guigui use guigui create table users userid int not null primary key identity 1,1 username varchar 20 userpass varchar 20 create...

linux核心基礎(系統呼叫,簡明)

核心基礎 系統呼叫 在說系統呼叫之前,先來說說核心是怎麼和我們互動的,或者說是怎麼和我們產生交集的。首先,核心是用來控制硬體的只有核心才能直接控制硬體,所以說核心很重要,如果核心被控制那麼電腦的一切都被控制了,所以我們需要把核心保護起來,所以shell 就誕生了,我們絕大多數情況下是在和shell ...