Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLVM code generation #171

Closed
wants to merge 39 commits into from

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