标签: llc

Windows上没有LLC?

我想玩LLVM IR并安装最新的LLVM v4(在我的Windows PC上)但我找不到已安装文件中的llc(查看'bin'文件夹和其他所有文件夹).

想知道这个工具是不可用的,或者它是否已被弃用或者是什么?

这是我的bin文件夹的内容:

04/30/2017 07:46 PM

04/30/2017 07:46 PM ..

03/09/2017 09:50 PM 63,566,848 clang ++.exe

03/09/2017 09:35 PM 2,357,248 clang-apply-replacements.exe

03/09/2017 09:37 PM 17,489,408 clang-change-namespace.exe

03/09/2017 09:35 PM 52,584,448 clang-check.exe

03/09/2017 09:50 PM 63,566,848 clang-cl.exe

03/09/2017 09:50 PM 63,566,848 clang-cpp.exe

03/09/2017 09:35 PM 2,380,800 clang-format.exe

03/09/2017 09:35 PM 20,820,480 clang-import-test.exe

03/09/2017 09:37 PM 17,238,528 clang-include-fixer.exe

03/09/2017 09:34 PM 3,140,​​096 clang-offload-bundler.exe

03/09/2017 09:37 PM 17,924,608 clang-query.exe

03/09/2017 09:35 PM 17,438,208 clang-rename.exe

03/09/2017 09:35 PM 17,171,456 clang-reorder-fields.exe

03/09/2017 …

windows llvm llc

10
推荐指数
1
解决办法
1199
查看次数

为什么Windows上的clang/llvm需要Visual Studio的Link.exe?

根据LLVM的入门(Windows)站点:

... Clang可用于发出bitcode,使用Visual Studio的link.exe直接发出目标文件甚至链接的可执行文件.

为什么Link.exe在Windows上使用必要?而且,就此而言,Mac/Linux上使用了什么?再往下说:

Compile the program to object code using the LLC code generator:
    C:\..> llc -filetype=obj hello.bc
Link to binary using Microsoft link:
    C:\..> link hello.obj -defaultlib:libcmt
Run Code Online (Sandbox Code Playgroud)

为什么LLC不能执行最后一步?LLI似乎工作得很好所以我认为它在link.exe某种程度上可以在引擎盖下互操作- 为什么不能LLC?

windows linker llvm clang llc

8
推荐指数
2
解决办法
9602
查看次数

推荐的方式来分发Halide生成的函数?

我目前正在尝试使用Halide,初步测试显示出非常有前景的性能改进.

我现在想知道分发Halide代码的最佳策略是什么.要求用户安装Halide在这个时间点似乎是一个很大的障碍(因为没有自动安装选项).

一种选择是使用compile_to_c,在存储库中添加生成的C代码,并为这样的C代码分发编译脚本.scikit-learn为Cython生成的代码使用了类似的策略.对于Halide来说,这似乎是不行的,因为生成的C代码失去了所有的优化,从而破坏了Halide的目的.

我目前的想法是使用 compile_to_bitcode,将生成的bitcode与调用llc的编译脚本一起分发以生成所需的机器代码.用户的唯一要求是安装llc(即llvm).

有没有人有这个问题的经验?
我分发bitcode的想法有什么利弊?
你会推荐什么?

software-distribution image-processing llvm llc halide

5
推荐指数
1
解决办法
833
查看次数

LLVM作为不同语言的基本编译器

我是LLVM编译器和基础架构的新手.我有以下想法.Clang是C/C++的LLVM前端,类似Rustc for Rust编程语言.两者都可以发出LLVM IR代码,并且可以将发出的代码编译为可执行应用程序.

我的问题是可以链接不同的编程语言吗?示例如下 -

/* Code in C */
int add(int, int);
int main()
{
  printf("%d", add(5 ,6));
}
Run Code Online (Sandbox Code Playgroud)

以Rust中定义的函数为例

// Code in Rust
fn main()
{
  println!("{}", add(5, 6));
}

fn add (x: i32, y: i32) -> i32
{
  x + y
}
Run Code Online (Sandbox Code Playgroud)

从两个源文件生成IR后,是否可以链接它们并创建单个应用程序?

我很想知道这是否有效,请告诉我.

c llvm dynamic-linking llc rust

5
推荐指数
2
解决办法
638
查看次数

从源代码构建时 llvm 没有注册目标

我正在使用 LLVM c 绑定来编写编译器,当我尝试从默认目标三元组 (x86_64-pc-windows-msvc) 创建目标时,LLVM 表示没有注册目标。

llvm::InitializeNativeTarget();
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargets();
llvm::InitializeAllTargetMCs();
llvm::InitializeAllAsmParsers();
llvm::InitializeAllAsmPrinters();

auto target_triple = llvm::sys::getDefaultTargetTriple();
std::string err; // unable to find target for this triple (no targets are registered)
auto target = llvm::TargetRegistry::lookupTarget(target_triple, err);

llvm::TargetRegistry::printRegisteredTargetsForVersion(llvm::outs()); // prints (none)
Run Code Online (Sandbox Code Playgroud)

我已经从源代码构建了 LLVM,并使用 LLVM_TARGETS_TO_BUILD=all 标志来启用所有目标。然而,当我调用 llc --help 时,会列出大量目标。那么为什么 llvm C++ 代码找不到目标呢?

c++ compiler-construction operating-system llvm llc

5
推荐指数
0
解决办法
1230
查看次数

llc 没有 debug 或 -view-dag-combine1-dags 选项

llc通过包管理器在我的计算机上安装了程序(当然我安装了 LLVM,6.0.0 版本)。另外,我还从源头构建了它。我想要的是查看由 llvm 生成的 DAG。但是,不幸的是,我-debug-view-dag-combine1-dags两个版本的llc. 这让我发疯,因为到处都写着这个标志应该对我有帮助,但没有提到如果我没有它们该怎么办。在 help 和 man 中,没有这样的选项。我安装了graphviz、dot和gv,应该不是问题。

编译的版本llc

./llc -version
LLVM (http://llvm.org/):
LLVM version 7.0.0svn
Optimized build.
Default target: x86_64-unknown-linux-gnu
Host CPU: broadwell

Registered Targets:
   and targets...
Run Code Online (Sandbox Code Playgroud)

我已经使用 RelWithDebugInfo 标志构建了它,也许我应该使用 Debug 标志构建它?或者 cmake 中是否有任何我应该启用的标志?我相信我已经用谷歌搜索得够多了,但我找不到任何信息。

llvm llc

4
推荐指数
1
解决办法
1658
查看次数

LLVM IR中的"移动"操作码是什么?

我是新手LLVM IR,我正在尝试模拟一些x86指令LLVM IR.

这是一个简单的案例:

move %eax, %ebx
Run Code Online (Sandbox Code Playgroud)

但是,mov在查看此处此处的材料后,我没有找到任何相应的操作码.

所以我的问题是:

  1. 如果我想mov使用LLVM IR 模拟操作码?我该怎么办?

  2. 我是新手LLVM IR,也许我会花很长时间在这个"模拟"工作上,关于LLVM IR的最佳参考应该是什么?

如果有人能给我一些帮助,我真的很感激.谢谢!

llvm llc llvm-ir

0
推荐指数
1
解决办法
797
查看次数