当前位置:网站首页>MC Layer Target
MC Layer Target
2022-07-03 04:28:00 【Huo的藏经阁】
Target
每种类型的backends在MC成都会有一个对应Target类,位于llvm\include\llvm\MC\TargetRegistry.h文件。
- Target包含了对应backends的一些基础信息
- 每个backend都会有一个单实例Target
- Target除了包含一些最基本信息之外,另外一个重要用途:为创建MC层中各个类提供了createXXX接口,因此使用MC之前需要调用Target中createXX接口 按照需要创建相应MC组件
- 例如反汇编时需要调用createMCDisassembler,创建MCDisassembler进行反汇编。
Target 成员
Target 成员主要分为两个部分:基本信息成员以及各种回调函数
- 基本信息成员,例如const char *Name、const char *BackendName等等之类的。
- 各种回调函数Fn,例如MCAsmInfoCtorFn 等,XXXXFn以Fn为主主要为createXXXX接口创建相应MC中组件使用,
XXXXFn 需要在启动时调用相应registerXXX函数进行注册,TargetRegistry.h文件中提供了各种register函数 提供XXXFn注册功能。
TargetRegistry.h文件中还提供了各种creareXXXX函数,用于创建MC中各种组件。
FirstTarget
所有注册的backend Target最终会以单向链表形式串联起来:

FirstTarget 为第一个注册Target,查找某个Target时需要进行单向链表循环访问,目前由于backend不是很多,因此单向链表能够满足需求。
<Target>TargetInfo.cpp
新增一个后端时一般都会创建对应<Target>TargetInfo.cpp文件,用于提供对应Target类单实例以及注册功能
AMDGPU MC Target 注册功能位于llvm\lib\Target\AMDGPU\TargetInfo\AMDGPUTargetInfo.cpp文件中:

提供R600和GCN两个Target 单实例注册功能。
TargetRegistry::RegisterTarget
TargetRegistry::RegisterTarget最终会将单实例Target 注册到RegisterTarget 单向链表中:

边栏推荐
- Data Lake three swordsmen -- comparative analysis of delta, Hudi and iceberg
- 2022 electrician (Advanced) examination papers and electrician (Advanced) examination skills
- Pdf editing tool movavi pdfchef 2022 direct download
- Xrandr modifier la résolution et le taux de rafraîchissement
- Joint set search: merge intervals and ask whether two numbers are in the same set
- Bugku CTF daily question baby_ flag. txt
- 拆一辆十万元的比亚迪“元”,快来看看里面的有哪些元器件。
- 220214c language learning diary
- P35-P41 fourth_ context
- Priv-app permission异常
猜你喜欢

Introduction of pointer variables in function parameters

Which code editor is easy to use? Code editing software recommendation

4 years of experience to interview test development, 10 minutes to end, ask too

Pdf editing tool movavi pdfchef 2022 direct download

使用BENCHMARKSQL工具对KingbaseES预热数据时执行:select sys_prewarm(‘NDX_OORDER_2 ‘)报错

智能合约安全审计公司选型分析和审计报告资源下载---国内篇

Joint set search: merge intervals and ask whether two numbers are in the same set

vulnhub HA: Natraj

Busycal latest Chinese version

Which Bluetooth headset is good about 400? Four Bluetooth headsets with strong noise reduction are recommended
随机推荐
金仓数据库KingbaseES 插件kdb_database_link
When using the benchmarksql tool to preheat data for kingbasees, execute: select sys_ Prewarm ('ndx_oorder_2 ') error
MySQL field userid comma separated save by userid query
Nat. Comm. | use tensor cell2cell to deconvolute cell communication with environmental awareness
Two points -leetcode-540 A single element in an ordered array
[software testing-6] & Test Management
重绘和回流
220214c language learning diary
Causal AI, a new paradigm for industrial upgrading of the next generation of credible AI?
Solve BP Chinese garbled code
Reptile exercise 03
[untitled] 2022 safety production supervisor examination question bank and simulated safety production supervisor examination questions
Js/ts bottom implementation double click event
Which Bluetooth headset is cost-effective? Four Bluetooth headsets with high cost performance are recommended
Mongodb slow query optimization analysis strategy
MySQL create table
Ffmpeg mix
A outsourcing boy's mid-2022 summary
How to choose cross-border e-commerce multi merchant system
Dive Into Deep Learning——2.1数据操作&&练习