-
Notifications
You must be signed in to change notification settings - Fork 13k
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
CBE lacks inline asm support #1174
Comments
*** Bug llvm/llvm-bugzilla-archive#1212 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#1254 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#2102 has been marked as a duplicate of this bug. *** |
Since a few days, the MultiSource/Benchmarks/Prolangs-C/archie-client from the test suite is failing, probably due inline ASM being used. I just finished creating a reduced testcase for that, which might be redundant now I read this bug. I'll still attach it, feel free to thrash it if it is not helpful. If this a different issue, I'll open a new report instead. The output of the attached program is as follows: |
*** Bug llvm/llvm-bugzilla-archive#2785 has been marked as a duplicate of this bug. *** |
Is there any workaround for this issue? Thanks. -Arif |
|
*** Bug llvm/llvm-bugzilla-archive#2839 has been marked as a duplicate of this bug. *** |
I use llvm to instrument (C) programs and have bumped into this issue as well.
For the project I am working on, I limited to the use LLVM version 2.4 only, so right now I am not able to active develop or bugfix the LLVM tools, and I have checked the latest version of CBackend.cpp, but it did not contain fixes for the bugs. Greetings, |
*** Bug llvm/llvm-bugzilla-archive#4924 has been marked as a duplicate of this bug. *** |
*** Bug llvm/llvm-bugzilla-archive#5877 has been marked as a duplicate of this bug. *** |
CBE patch |
Ping? |
Could you please add some testcases. |
*** Bug llvm/llvm-bugzilla-archive#9737 has been marked as a duplicate of this bug. *** |
The patch from Jai Menon fixes the case from bug 9737 http://llvm.org/bugs/show_bug.cgi?id=9737 Instead of invalid inline asm asm volatile ("rorw %%8, %w0" patched CBE generates asm volatile ("rorw $8, %w0" and result is correct. Checked with llvm trunk r129558. |
However, there are still fails with Assertion `I->Codes.size() == 1 && "Too many asm constraint codes to handle"' failed. So patch fixes only the issue specific to inline asm arguments, and to fix the assertion above somebody should implement //TODO: work out platform independent constraints and factor those out |
The C backend was removed from svn trunk and is no longer maintained. Closing the bug. |
mentioned in issue llvm/llvm-bugzilla-archive#862 |
mentioned in issue llvm/llvm-bugzilla-archive#9737 |
Extended Description
The C backend, at least when the C is compiled by GCC, should be able to change LLVM inline asm back
into GCC-style inline asm in the cbe.c file. Right now, we just output an unresolved symbol when inline
asm is used.
-Chris
The text was updated successfully, but these errors were encountered: