- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到这个错误
> clang -std=c99 -c derivative.c -o derivative.a
fatal error: error in backend: Cannot select: intrinsic %llvm.spu.si.sf
当我尝试用 Clang 编译这个简单的 C 程序时
#include <stdio.h>
#include <math.h>
int N = 100;
double H = 0.001;
double PI = 3.14159265;
void derive(double* input, long elements, double* output) {
for (int i = 1; i < elements - 1; i++) {
output[i - 1] = (input[i + 1] - input[i - 1])/ (2 * H);
}
}
int main() {
double f[N];
double f_prime[N - 2];
for (int i = 0; i < N; i++) {
f[i] = sin(i * 2 * PI / (double)N);
}
derive(f, N, f_prime);
for (int i = 0; i < N - 2; i++) {
printf("%f %f\n", i * 2 * PI / (double)N, f_prime[i]);
}
}
我已经在 Internet 上进行了搜索,但(还)未能找到解决方案。
当我编译为 Bitcode 时,它编译但执行转储核心。
> clang -emit-llvm -c derivative.c -o derivative.bc
> lli derivative.bc
lli: BitcodeReader.cpp:283: llvm::Value* llvm::BitcodeReaderValueList::getValueFwdRef(unsigned int, llvm::Type*): Assertion `(Ty == 0 || Ty == V->getType()) && "Type mismatch in value table!"' failed.
0 lli 0x0000000000c6fb02
1 lli 0x0000000000c6ff93
2 libpthread.so.0 0x00007f304d7dbbd0
3 libc.so.6 0x00007f304ca19037 gsignal + 55
4 libc.so.6 0x00007f304ca1c698 abort + 328
5 libc.so.6 0x00007f304ca11e03
6 libc.so.6 0x00007f304ca11eb2
7 lli 0x000000000052eeb0 llvm::BitcodeReaderValueList::getConstantFwdRef(unsigned int, llvm::Type*) + 0
8 lli 0x0000000000538943 llvm::BitcodeReader::ParseFunctionBody(llvm::Function*) + 10275
9 lli 0x000000000053acb1 llvm::BitcodeReader::Materialize(llvm::GlobalValue*, std::string*) + 241
10 lli 0x0000000000535195 llvm::BitcodeReader::MaterializeModule(llvm::Module*, std::string*) + 85
11 lli 0x0000000000c0a82f llvm::Module::MaterializeAllPermanently(std::string*) + 31
12 lli 0x00000000005360fc llvm::ParseBitcodeFile(llvm::MemoryBuffer*, llvm::LLVMContext&, std::string*) + 44
13 lli 0x00000000004f70b7
14 lli 0x00000000004e74f3 main + 339
15 libc.so.6 0x00007f304ca03ea5 __libc_start_main + 245
16 lli 0x00000000004f0f41
Stack dump:
0. Program arguments: lli derivative.bc
Aborted (core dumped)
尝试 llvm-dis
在 bc 文件上产生几乎相同的核心转储。
编辑:我试图找到最小的失败示例,看来问题是通过常量定义数组大小。
这失败了:
int main() {
int N = 100;
double f[N];
}
这个有效:
int main() {
double f[100];
}
EDIT2:
改变 int N = 100
至 const int N = 100
使用 Clang 编译程序。变量应该是 const
是有道理的,但另一方面,gcc -std=c99 -Wall derivative.c -lm
不是const
不提示.
最佳答案
这是 ubuntu 错误:https://bugs.launchpad.net/ubuntu/+source/llvm-3.2/+bug/1131614 .看起来他们盲目地修补了 llvm+clang,而不了解他们在做什么。
关于LLVM:无法选择:内在 %llvm.spu.si.sf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15023592/
我正在尝试运行以下命令: -i "2020_11_30_03_37_37.mp4" -i "2020_11_30_03_37_44.jpg" -f lavfi -t 6.016 -i anul
我正在设计一个散点图。在以下示例中,比例函数的输入域为[0.04, 0.9]。 .tickFormat(d3.format(".1s")) 用于轴上,以便在需要时显示 SI 缩写。运行以下截图时,您会
我正在尝试计算下面给定的 c 程序的输出,但无法弄清楚。 为什么 si = 0? #include int main(void){ float p = 1000; float r =
我有一个使用 spring-integration 的代码库。 myCustomFilter 的 bean 工作正常,我在 myDataGetter
是否有 R 函数(或任何包)允许使用标准单位前缀(Kilo、Mega 等...)格式化数字(整数),所以 10 -> 10 1000 -> 1K 0.01 - > 10m 等等... 我可以自己做,但
我正在寻找一个正则表达式来检查 http 表单中的有效 SI 单位输入。例如, kg/m^3 对密度或 m/s^2 为加速。 似乎是在一些开放图书馆中可能已经解决的那种问题;或者可能有一种聪明的方法可
使用文件适配器移动文件你好我想在文件被消耗或失败后移动成功文件夹中的文件出现问题时的文件夹。 我发现了不同的例子,但我想不出一个简单的例子使用文件适配器移动文件的解决方案 可能我在使用 Spring
以我为例: d3.format("~s")(656628); //656.628k 但我的预期结果:656.63k 我想使用 d3-format 选项而不是手动处理它。 现场测试:https://np
我有一个 CSV 文件,其中包含一列,其值以 SI 比例给出因素。我需要对该列进行数字排序。具体来说,CSV 文件包含著名天文物体(Messier 物体)的列表,我需要按距离对它们进行排序。问题是距离
我正在绘制一个图表,该图表获取美元值(value)(从 0 到数百万),并且我试图显示漂亮的刻度。我已经使用 d3.nice 获得了 5 个刻度,所有刻度都有很好的值,这非常酷。但由于差异如此之大,我
我正在寻找一种优雅的方式来使用最合适的前缀来漂亮地打印物理量(例如 12300 克 是 12.3 千克)。一个简单的方法如下所示: def pprint_units(v, unit_str, num_
我正在理论上从高中学习ASM 8086。 当我这样做时:MOV BX,[SI] SI + 1是去BH还是BL? 谢谢 :-) 最佳答案 因为x86是little endian,所以存储位置SI + 1
为了在SI图像中进行漂移校正,如下图所示: 我写代码: number max_shift=5 image src := GetFrontImage() number sx, sy, sz src.Ge
我经常在 GNU R/ggplot 中绘制一些与字节相关的测量图表。内置轴标签可以是普通数字或科学记数法,即 1 MB = 1e6。我想要 SI 前缀(Kilo = 1e3、Mega=1e6、Giga
我不明白有什么区别。 最佳答案 当您使用 movsb 等指令时,si 被视为源源寄存器,而 di 被视为目标目标寄存器。但它们都是普通的 x86 寄存器。 关于assembly - SI 和 DI 寄
我准备了一个小型 WPF 应用程序: 查看: View-Model 如下所示: 现在,出于某种原因,斯洛文尼亚文化的日、月和年之间有空格: 我的意思是,我得到的不是 14.01.2019,而是 14.
在高网络流量下,在CentOS上使用LVS或Nginx进行负载均衡。网络流量主要是具有大量连接和相对低带宽的小数据包。 唯一似乎成为瓶颈的是高 SoftIRQ,这对基于事件的 IO 来说并不奇怪。 机
嗯,这显然是一个初学者的问题,但这是我第一次尝试用 C 制作操作系统(实际上,我对 C 几乎完全陌生.. 我已经习惯了 asm) 那么,为什么这到底是无效的呢?据我所知,C 中的pointer 只是一
我正在寻找一个支持在各种 SI 前缀之间转换数字的 python 库,例如,kilo 到 pico,nano 到 giga 等等。你会推荐什么? 最佳答案 我移植了一个简单的函数(original C
我想在医学环境中的 Modelica 模型中使用非 SI 单位。我在 Dymola 中使用 Modelica。作为一名工程师,我更喜欢 SI 单位。但是我的模型参数来自医学出版物,我想避免转换错误。医
我是一名优秀的程序员,十分优秀!