-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
[Hexagon] Remove "c" as aot_host_target tvm/contrib/hexagon/pytest_pl… #14997
Conversation
…ugin.py After PR#14918 (changes to SplitHostDevice), LowerIntrin code generates fma, which then becomes the LLVM intrinsic fmuladd. Problem is, the code then goes to the C codegen, which knows nothing about LLVM intrinsics. The result is an abort at compile-time: ``` E File ".../src/target/source/codegen_c.cc", line 611 E TVMError: Unresolved call Op(tir.call_llvm_pure_intrin) ``` Why this didn't happen before is unclear at the moment, but using C codegen with Hexagon code doesn't sound like a winning combination. Hexagon-related code assumes LLVM codegen, and the above crash is the result of that.
Thanks for contributing to TVM! Please refer to the contributing guidelines https://tvm.apache.org/docs/contribute/ for useful information and tips. Please request code reviews from Reviewers by @-ing them in a comment.
Generated by tvm-bot |
cc: @Lunderberg |
Hmm. I think it might be related to this change in particular. Previously, the host function had its That still wouldn't explain how the LLVM intrinsics were inserted in the first place, as |
LowerIntrin inserted Edit: Hexagon legalization assumes LLVM codegen, so it can unconditionally generate LLVM-specific code. This is what the PR comment refers to. |
Ah, got it. I thought that the LLVM fma was being directly inserted by Summing up, it sounds like Hexagon legalization assumes LLVM codegen, and so the |
apache#14997) [Hexagon] Remove "c" as aot_host_target tvm/contrib/hexagon/pytest_plugin.py After PR#14918 (changes to SplitHostDevice), LowerIntrin code generates fma, which then becomes the LLVM intrinsic fmuladd. Problem is, the code then goes to the C codegen, which knows nothing about LLVM intrinsics. The result is an abort at compile-time: ``` E File ".../src/target/source/codegen_c.cc", line 611 E TVMError: Unresolved call Op(tir.call_llvm_pure_intrin) ``` Why this didn't happen before is unclear at the moment, but using C codegen with Hexagon code doesn't sound like a winning combination. Hexagon-related code assumes LLVM codegen, and the above crash is the result of that.
…ugin.py
After PR#14918 (changes to SplitHostDevice), LowerIntrin code generates fma, which then becomes the LLVM intrinsic fmuladd. Problem is, the code then goes to the C codegen, which knows nothing about LLVM intrinsics. The result is an abort at compile-time:
Why this didn't happen before is unclear at the moment, but using C codegen with Hexagon code doesn't sound like a winning combination. Hexagon-related code assumes LLVM codegen, and the above crash is the result of that.