- User Since
- Nov 21 2016, 2:12 PM (164 w, 6 d)
Wed, Jan 15
This seems like a fun issue:
- addi is compressible
- xor is almost certainly easier to analyse (from the view of KnownBits and the like).
Please can you also add code for ensuring that the target-abi module flag matches the -target-abi command line flag in llvm?
@s.egerton Thank you. Sorry again for the confusion.
Tue, Jan 14
One thing to note about my patch, above: I have not made the TargetMachine DataLayout non-const, but I wanted to ensure that this might be possible in future, which is why calling initializeOptionsWithModuleMetadata must be done before the first call to createDataLayout. At the moment, the RISC-V ABI data layouts are based only on riscv32 vs riscv64, not the target-abi metadata (all riscv32 ABIs use the same data layout, all riscv64 ABIs use the same data layout), but I know Mips has more complex logic for computing their data layout based on their ABI.
@efriedma To keep you in the loop, D72624 is the patch to add a target hook for setting the TargetMachine options based on module metadata. That patch does not add any RISC-V specific functionality, it only lays the groundwork for it.
Address some review feedback.
@s.egerton Please can you revert rG57cf6ee9c84434161088c39a6f8dd2aae14eb12d - this patch has open dependencies, including on the LLVM support for RISC-V B extension. It would be confusing to users if clang 10.0 contained frontend support for the B extension, but LLVM 10.0 did not contain backend support for it.
Mon, Jan 13
@jrtc27 It would be good to get this in for LLVM 10.0.
LGTM. Please wait for @jrtc27 to approve this before landing.
@jrtc27 I'm going to wait for the ok from you before I merge this, given you had feedback before.
Fri, Jan 10
LGTM. Nice fix!
Thu, Jan 9
Tue, Jan 7
TableGen is an officially supported language for clang-format, which is why I hoped it wouldn't be so bad to use to format this file. I really wanted a nice way to avoid having to manually wrap the comments.
Address review comments
Mon, Jan 6
Dec 20 2019
Selfishly, I would like to see the addition of rvintrin.h separated from the bit-manipulation-specific headers. I'm looking at landing some additions to clang/LLVM that include builtins, and don't want to cause merge issues with this PR.
Dec 16 2019
Yeah, will do.
- Update Comments
Nice! I think this is the correct way of implementing this, and I don't think it will have any issue with other backends.
Dec 13 2019
LGTM! Thanks for correcting the preprocessor issues!
Dec 11 2019
- Ran clang-format
- Correct typo
- Update vararg.ll test to add ILP32E tests
- Address code duplication review comments.
Dec 10 2019
- Clang support for ilp32e
- Update CSR definition comments
- Test Updates
- Address ILP32E / rv32d frame pointer issue. I didn't manage to find a reasonable way to query for defined fpr64s, so I'm just enabling the FP if the D extension is enabled.
Dec 9 2019
Rebased and added a test to ensure debug info is preserved.
This broke the build and I had to add rGcb664baf50f069cb844d69cd6b8952cb22a3e7c2 to fix it.
Dec 4 2019
Nov 27 2019
We definitely want to support rv32imafc/ilp32 and combinations like that.
So am I right in thinking that neither foo nor foo2 will trigger the ABI_Unknown issue, and the issue is only coming from hand-written assembly files?
Nov 26 2019
- Increase Testcase Coverage
Nov 25 2019
- Serialization Testcase
This might have to be backported to 9.0.1 as stack realignment has got into 9.0.1.
Nov 21 2019
Re-applied with typo fix in rGdf876a026981.
Nov 20 2019
Nice, LGTM! Thanks for fixing this in the presence of CLANG_DEFAULT_RTLIB.
LGTM! This is a really nice improvement, thanks!
Nov 18 2019
Some notes and queries about this patch.
Nov 15 2019
Do rebase this patch now that D69383 has landed, and check that it is still working correctly. If so, you can land this patch.
Rebase and update comments and release notes
LGTM, Let's get this merged!
The RISC-V test changes look good. (I do not intend to review the optimisation implementation or other backend test changes).
Nov 14 2019
Please can you rebase this on top of master? @luismarques has removed CFI directives from function epilogs (because they were sometimes buggy), which should make this code simpler.