Skip to content

Conversation

@shoaibkamil
Copy link
Contributor

Opening PR for code review purposes.

This adds LLVM code generation for taco. There are currently several caveats to the implementation, which I plan to rectify in further PRs. At the moment:

  • Only LLVM 7.0 is supported
  • This does not implement an LLVM JIT yet; instead, we use llc to compile generated bitcode, similar to the approach we use to compile generated C99 code
  • Vectorization and parallelization are not supported
  • The CMake configuration currently requires LLVM; this should be changed so that LLVM support is only built if LLVM is found, and otherwise C99 code generation is built.
  • Only the new lowering machinery is supported, because the old machinery does not produce correctly-typed low-level IR

C99 codegen remains the default. In order to test LLVM codegen, TACO_TARGET should be set to x86-macos or similar, and TACO_LLC should point to your llc binary. E.g. on my machine:

TACO_TARGET=x86-macos TACO_LLC=/usr/local/cellar/llvm/7.0.0/bin/llc bin/debug/taco-test lower

Shoaib Kamil added 30 commits July 30, 2018 17:50
@fredrikbk fredrikbk closed this Dec 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants