腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(1294)
视频
沙龙
1
回答
由
clang
-
O0
生成
的
未
优化
的
llvm
字节
码
中
,
LLC
-
O
=
3
可以
不
省略
帧
指针
吗
?
assembly
、
clang
、
llvm
、
compiler-optimization
、
llc
但如果我运行以下命令:
clang
-emit-
llvm
-c main.c -
o
main.bc;
llc
-
O
=
3
main.bc -
o
main.S; cat main.S; 我得到了: ...从功能上讲,这是
可以
的
,但在这种情况下,foo()不需要处理空函数
的
帧
指针
。第一种情况和第二种情况
的
不同之处在于,在第一种情况下,我们对
clang
使
浏览 17
提问于2020-12-23
得票数 1
1
回答
指令
的
llvm
行号
llvm
我想要获取指令
的
行号(以及变量声明
的
行号- alloca和global)。指令被保存在指令数组
中
。()
中
,我有:由于I->getMetadata("dbg")为false有没有可能在不重建
LLVM
框架
的
情况下在
LLVM
中
启用dbg标志,比如在编译目标
浏览 3
提问于2013-02-19
得票数 5
回答已采纳
3
回答
是否有用于
LLVM
IR
的
调试器?
llvm
、
llvm-ir
我想逐步介绍一下我
生成
的
一些
LLVM
IR代码。就
llc
和lli而言,代码在语法和类型上都是有效
的
,但结果并不是我所期望
的
。这些块足够大,以至于我无法简单地读出错误,而且我很难用相同
的
错误
生成
一个较小
的
示例。 我认为我
可以
使用类似调试器
的
东西,但用于
LLVM
IR。换句话说,我希望能够遍历
llvm
代码,检查“无限”寄存器(给定
LLVM
IR文件<
浏览 0
提问于2015-08-13
得票数 18
1
回答
llc
:符号上不支持
的
重新定位
llvm
、
llvm-ir
、
relocation
、
llc
、
position-independent-code
(
llvm
-link)、
优化
它们(opt)、将它们转换为机器代码(
llc
)、使它们成为共享库(用于链接器包装
的
clang
)并动态加载它们。这个命令在我在这个答案上面写
的
错误
中
失败。对于Step
3
失败
的
情况,没有达到这个步骤。如果
llc
成功了,这个步骤也会成功!更多信息下面的代码在运行在arm设备上
的
llvm</
浏览 3
提问于2017-07-25
得票数 0
回答已采纳
4
回答
LLVM
jit和本机
clang
、
llvm
、
jit
我不明白
LLVM
JIT和普通
的
无JIT编译有什么关系,而且文档也不好。案例1:我使用
clang
/
llvm
将C文件编译为本机文件。案例2:我编译成某种在x86 JIT上运行
的
LLVM
。在这种情况下,可执行文件包含执行IR on JIT
的
LLVM
运行时,或者它是如何工作
的
? 这两者之间
的
区别是什么?它们是正确
的
吗
?<em
浏览 129
提问于2010-08-18
得票数 21
回答已采纳
5
回答
如何使
clang
编译为
llvm
IR
c
、
clang
、
llvm
、
bitcode
我希望
clang
将我
的
C/C++代码编译成
LLVM
位码,而不是二进制可执行文件。我怎样才能做到这一点呢? 如果我有
LLVM
位码,我如何进一步将其编译成二进制可执行文件?在编译成二进制可执行文件之前,我想将自己
的
一些代码添加到
LLVM
位码
中
。
浏览 1
提问于2012-02-05
得票数 170
回答已采纳
1
回答
gdb模拟器在“目标sim”"sim内存-大小为4 4Mb“"load”"run“之后崩溃
debugging
、
gdb
、
target
、
ebpf
我计划使用最新
的
gdb支持来调试eBPF代码。但是,模拟器在我运行后就崩溃了。因此,我尝试了用-g选项编译
的
常规“hello_wold.c”c代码(gcc -g hello_wold.c)也遇到了同样
的
问题。sim/bpf/traps.c:37 /root/binutils-gdb/sim/bpf/mloop-le.c:119 对于bpf代码,我用(
clang
-target bpf -g -
浏览 5
提问于2021-11-05
得票数 0
5
回答
- Linux
中
的
emit-
llvm
llvm
我是
LLVM
的
新手,尝试在Linux上
生成
一个人类可读
的
.ll文件。我安装了
llvm
-gcc,但是我看到它只能
生成
汇编代码(-S选项)。有没有办法获得类似于
llvm
online
生成
的
东西呢?这就是我在Linux上使用-S -emit-
llvm
得到
的
: .ident "GCC: (Ubuntu/Lina
浏览 3
提问于2011-03-22
得票数 7
回答已采纳
2
回答
程序集中局部变量
的
大小
c
、
gcc
、
assembly
、
x86-64
、
word-size
我有以下C函数: char buffer[1];它产生下列装配代码(gcc与0
优化
,64位机): pushq %rbpmovq %rsp, %rbp nop ret 为什么缓冲区占用20个
字节
?如果我声明char buffer而不是char buffer[1],偏移量是4个
字节
,但我希望看到8,因为机器是64位,我认为它将使用qword(64位)。
浏览 5
提问于2018-12-23
得票数 0
回答已采纳
1
回答
Emscripten: emmake
生成
.js文件
javascript
、
c++
、
emscripten
根据
生成
链接
的
LLVM
位码。它不会在链接期间自动
生成
JavaScript,因为所有文件都必须使用相同
的
优化
和编译器选项进行编译--在从bitcode到JavaScript
的
最终转换
中
这样做是有意义
的
。这很好,也是我想做
的
但是,运行Emscripten来编译会
生成
5-6mb范围内
的
4个
未
压缩(-
O0
) .js文件,以及三个相同
的</em
浏览 1
提问于2015-07-22
得票数 13
7
回答
如何在gcc
中
禁用编译器
优化
?
c
、
gcc
、
compiler-optimization
、
compiler-options
我已经搜索并发现了如何反汇编一个.c文件,但我认为它会产生程序
的
一些
优化
版本。有没有办法让我
可以
看到与我
的
C文件相对应
的
汇编代码。
浏览 5
提问于2011-04-24
得票数 87
回答已采纳
3
回答
为什么
Clang
会自动向我
的
函数添加属性?
c++
、
c
、
assembly
、
llvm
、
compiler-optimization
{ }}
clang
-
O0
-S -emit-
llvm
TrainingCode/trainingCode.cpp-
o
TrainingCode/trainingCode.ll; ModuleID = 'TrainingCode我需要
LLV
浏览 5
提问于2017-11-27
得票数 5
回答已采纳
2
回答
从g++输出
中
删除不必要
的
汇编程序语句
c++
、
assembly
、
compiler-construction
、
g++
我正在研究一个本地二进制文件
的
一些问题。我注意到g++创建了许多对我来说似乎没有必要
的
ASM输出。使用-
O0
的
示例 pushq %rbp subq $16, %rsp <popq %rbx ret 此代码用于Derived
的
构造函数,该构造函数调用Base基本构造函数,然后在0位置重写vtable
指针
,并将
浏览 3
提问于2019-09-27
得票数 0
回答已采纳
7
回答
GCC做
的
每一次
优化
后都能得到装配代码
吗
?
c
、
optimization
、
gcc
、
assembly
、
compiler-construction
来自维基百科
的
, 我
浏览 2
提问于2013-03-05
得票数 12
1
回答
ASM代码
生成
的
前瞻性和复杂性
assembly
、
compiler-construction
、
abstract-syntax-tree
、
codegen
、
ssa
我有一个带有funcDef、funcCall、文本等节点
的
AST。我正在开发我
的
编译器
的
代码
生成
器部分,为x86_64
生成
程序集。我
的
问题是,向下
生成
AST
的
代码
的
“适当”(行业标准)方式是什么:是多次遍历,例如计算需要多少个局部变量才能使用该值来递减堆栈
指针
?此外,如何将复杂
的
funcCall (如参数为另一个ASM
的
funcCall等)解析为ASM? 将我
的
A
浏览 5
提问于2018-02-25
得票数 0
1
回答
GCC在堆栈上放置寄存器args,在局部变量以下设置一个空白?
c
、
gcc
、
assembly
、
x86
、
compiler-optimization
我试着查看一个非常简单
的
程序
的
汇编代码。int func(int x) { return z;使用GCC -
O0
,每个C变量都有一个
未
优化
的
内存地址,gcc泄露了寄存器arg:( ) popq %rbp #函数参数x被放置在局部变量下面的堆栈上
的
原因是什么为什么不把它放在-4(%rbp)
浏览 7
提问于2019-10-30
得票数 2
回答已采纳
1
回答
clang
1.1和1.0
生成
的
tail调用(
llvm
2.7和2.6)
llvm
、
clang
使用
clang
-
O
2 (或)编译下一段代码后:#include <stdlib.h> int flip(int x) {)*flip(x-1); printf("%d\n", flip(atoi(argv[1])));我正在获取flip
中
的
llvm
程序集
的
下一个片段。在本机汇编
浏览 0
提问于2010-05-24
得票数 1
回答已采纳
3
回答
将源代码组合到单个文件
中
以进行
优化
c
、
optimization
我
的
目标是减少我
的
C项目的可执行文件
的
大小,我已经尝试了所有的编译器/链接器选项,它们在一定程度上有所帮助。我
的
代码
由
许多独立
的
文件组成。我
的
问题是,将所有源代码合并到一个文件
中
是否有助于我想要
的
优化
?我在某处读到,如果编译器在单个文件中找到所有代码而不是单独
的
多个文件,那么它会
优化
得更好。这是真的
吗
?
浏览 0
提问于2012-08-16
得票数 8
回答已采纳
1
回答
将具有非平凡析构函数
的
对象传递给函数
的
clang
:'byval‘属性
中
的
llvm
字节
码
llvm
、
clang
我有一个源代码C++代码,我使用
clang
进行解析,
生成
llvm
字节
码
。从现在开始我想自己处理这个文件..。不过,我遇到了一个问题。考虑以下场景:-我创建一个具有非平凡析构函数或复制构造函数
的
类。-我根据值(没有引用或
指针
)定义一个函数,其中该类
的
对象作为参数传递。 在
生成
的
字节
码
中
,我得到一个
指针
。对于没有析构函数
的
类,参数被
浏览 2
提问于2011-07-01
得票数 5
4
回答
为什么这些代码
生成
的
程序集比等效
的
C++/
Clang
要多得多?
optimization
、
rust
、
llvm-codegen
为了检查编译器
优化
,我编写了一个简单
的
C++函数: return !a || (a && b);在那之后,我检查了“铁锈”
中
的
等价物: !C++代码(
由
带有-
O
3
标志
的
clang
编译)
的
结果如下: f1(bool, bool):
浏览 10
提问于2017-08-08
得票数 16
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
令人沮丧的C++性能调试
现代化工具链在大规模 C++ 项目中的技术实践
作用域规则之变量
WebAssembly技术_在Web端运行C与C++程序(win10)
const 并不能加快 C 代码的运行速度?
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券