Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Llvm llc抛出错误:constexpr需要整数操作数_Llvm_Llvm Ir_Llc - Fatal编程技术网

Llvm llc抛出错误:constexpr需要整数操作数

Llvm llc抛出错误:constexpr需要整数操作数,llvm,llvm-ir,llc,Llvm,Llvm Ir,Llc,我一直在尝试用llvm生成代码。我目前正在尝试为变量声明生成IR。以下是一个例子: let sum:float=8*3*4+6*9 当我为这个生成IR时,我得到的是: %sum = alloca float %sum1 = alloca float %sum2 = alloca float store float mul (float 8.000000e+00, float 3.000000e+00), float* %sum2 %sum3 = load float, flo

我一直在尝试用llvm生成代码。我目前正在尝试为变量声明生成IR。以下是一个例子:

let sum:float=8*3*4+6*9

当我为这个生成IR时,我得到的是:

  %sum = alloca float
  %sum1 = alloca float
  %sum2 = alloca float
  store float mul (float 8.000000e+00, float 3.000000e+00), float* %sum2
  %sum3 = load float, float* %sum2
  %sum4 = alloca float
  %sum5 = mul float %sum3, 4.000000e+00
  store float %sum5, float* %sum4
  %sum6 = load float, float* %sum4
  store float %sum6, float* %sum
  %sum_loaded = load float, float* %sum
  %sum7 = alloca float
  %sum8 = alloca float
  store float mul (float 6.000000e+00, float 9.000000e+00), float* %sum8
  %sum9 = load float, float* %sum8
  store float %sum9, float* %sum
  %sum_loaded10 = load float, float* %sum
首先,这看起来相当混乱,我相信这可以做得更有效。但我想我可以在以后通过优化来修复它。我的问题是测试它是否有效。我试过:

llc my\u ir

它抛出:

llc: error: llc: my_ir:4:15: error: constexpr requires integer operands
  store float mul (float 8.000000e+00, float 3.000000e+00), float* %sum2

我真的不明白这个错误消息,但听起来好像它不能乘浮点数?这是怎么回事?

我想你需要用它来乘浮点数。

我想你需要用它来乘浮点数