Alex Bradbury via llvm-dev
2020-Mar-19 13:58 UTC
[llvm-dev] RISC-V LLVM sync-up call 19 Mar 2020
For background on these calls, see <http://lists.llvm.org/pipermail/llvm-dev/2019-September/135087.html>. Reminder: the purpose is to co-ordinate between active contributors. If you have support questions etc then it's best to post to llvm-dev. We have a call each Thursday at 4pm GMT, via <https://meet.google.com/ske-zcog-spp>. I've created a shared calendar which may help in keeping track, which is accessible at: * <https://calendar.google.com/calendar/b/1?cid=bG93cmlzYy5vcmdfMG41cGtlc2ZqY25wMGJoNWhwczFwMGJkODBAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ> * <https://calendar.google.com/calendar/ical/lowrisc.org_0n5pkesfjcnp0bh5hps1p0bd80%40group.calendar.google.com/public/basic.ics> Issues to discuss today include the following: * Improving rust code size by not forcing frame pointers <https://github.com/rust-lang/rust/pull/69890> * Compact code model (Evandro) * Update on embedded PIC discussions * Small data limit <https://reviews.llvm.org/D57497> * Bitmanip / experimental extension status * ELF attribute support close to merging <https://reviews.llvm.org/D75833> <https://reviews.llvm.org/D74023> * No other topics were submitted, as always, please do submit things you'd like to discuss Best, Alex
Evandro Menezes via llvm-dev
2020-Mar-19 16:19 UTC
[llvm-dev] RISC-V LLVM sync-up call 19 Mar 2020
Here's the draft proposal for the compact code model on RV. I'd appreciate your feedback before I propose it to the foundation and go about updating the psABI. Thank you, __ Evandro Menezes ◊ SiFive ◊ Austin, TX> On Mar 19, 2020, at 8:58, Alex Bradbury via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > For background on these calls, see > <http://lists.llvm.org/pipermail/llvm-dev/2019-September/135087.html>. > > Reminder: the purpose is to co-ordinate between active contributors. > If you have support questions etc then it's best to post to llvm-dev. > > We have a call each Thursday at 4pm GMT, via > <https://meet.google.com/ske-zcog-spp>. > > I've created a shared calendar which may help in keeping track, which > is accessible at: > * <https://calendar.google.com/calendar/b/1?cid=bG93cmlzYy5vcmdfMG41cGtlc2ZqY25wMGJoNWhwczFwMGJkODBAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ> > * <https://calendar.google.com/calendar/ical/lowrisc.org_0n5pkesfjcnp0bh5hps1p0bd80%40group.calendar.google.com/public/basic.ics> > > Issues to discuss today include the following: > * Improving rust code size by not forcing frame pointers > <https://github.com/rust-lang/rust/pull/69890> > * Compact code model (Evandro) > * Update on embedded PIC discussions > * Small data limit <https://reviews.llvm.org/D57497> > * Bitmanip / experimental extension status > * ELF attribute support close to merging > <https://reviews.llvm.org/D75833> <https://reviews.llvm.org/D74023> > * No other topics were submitted, as always, please do submit things > you'd like to discuss > > Best, > > Alex > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200319/990fd5ff/attachment-0002.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: Compact Code Model.pdf Type: application/pdf Size: 157275 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200319/990fd5ff/attachment-0001.pdf> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200319/990fd5ff/attachment-0003.html>
Eli Friedman via llvm-dev
2020-Mar-20 03:01 UTC
[llvm-dev] RISC-V LLVM sync-up call 19 Mar 2020
If I’m following correctly, there are two size-limited areas. One area, limited to 2GB, is the “text” area. This contains all the code. Then there’s a “global” area, limited to 4GB, which is pointed to by the global pointer. This contains the GOT, plus a flexible area that the object file can stick small bits of data into. And then outside of both of those, additional data is unlimited. It took me multiple times reading through the proposal to parse that out; it might be a good idea to reorganize the proposal so that’s explained somewhere explicitly. My big question here is, how much benefit are you really getting from having a global pointer? If you eliminate it and combine the two size-limited areas into one, you end up with essentially the small-PIC code model. The small-PIC code model supports everything your proposed “compact” model does, with a couple minor differences: 1. The size-limited areas are limited to 2GB combined, instead of 6GB combined. 2. The relaxations are a little different. Small-PIC always takes two instructions to access a GOT entry; the compact model can do it in one instruction for the first 500 (?) entries in the GOT. Not sure what would end up with smaller codesize in practice. -Eli From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Evandro Menezes via llvm-dev Sent: Thursday, March 19, 2020 9:19 AM To: Alex Bradbury <asb at lowrisc.org> Cc: llvm-dev <llvm-dev at lists.llvm.org> Subject: [EXT] Re: [llvm-dev] RISC-V LLVM sync-up call 19 Mar 2020 Here's the draft proposal for the compact code model on RV. I'd appreciate your feedback before I propose it to the foundation and go about updating the psABI. Thank you, __ Evandro Menezes ◊ SiFive ◊ Austin, TX On Mar 19, 2020, at 8:58, Alex Bradbury via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: For background on these calls, see <http://lists.llvm.org/pipermail/llvm-dev/2019-September/135087.html>. Reminder: the purpose is to co-ordinate between active contributors. If you have support questions etc then it's best to post to llvm-dev. We have a call each Thursday at 4pm GMT, via <https://meet.google.com/ske-zcog-spp>. I've created a shared calendar which may help in keeping track, which is accessible at: * <https://calendar.google.com/calendar/b/1?cid=bG93cmlzYy5vcmdfMG41cGtlc2ZqY25wMGJoNWhwczFwMGJkODBAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ> * <https://calendar.google.com/calendar/ical/lowrisc.org_0n5pkesfjcnp0bh5hps1p0bd80%40group.calendar.google.com/public/basic.ics> Issues to discuss today include the following: * Improving rust code size by not forcing frame pointers <https://github.com/rust-lang/rust/pull/69890> * Compact code model (Evandro) * Update on embedded PIC discussions * Small data limit <https://reviews.llvm.org/D57497> * Bitmanip / experimental extension status * ELF attribute support close to merging <https://reviews.llvm.org/D75833> <https://reviews.llvm.org/D74023> * No other topics were submitted, as always, please do submit things you'd like to discuss Best, Alex _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200320/1001a8a6/attachment.html>
Sam Elliott via llvm-dev
2020-Mar-20 16:47 UTC
[llvm-dev] RISC-V LLVM sync-up call 19 Mar 2020
Hi Evandro, Thank you for writing this proposal. I presume you have seen the FDPIC proposal on the RISC-V sw-dev mailing list [1]. I am keen that any gp-relative relocations that could be shared between the two proposals are shared and compatible with each other - I think this will make a major difference to maintainability and our ability to document these details. Am I right in thinking your proposal only has one value for `gp` for the whole program, and thus it does not need to be saved or loaded in function prologs and epilogs? Sam [1]: https://groups.google.com/a/groups.riscv.org/forum/#!msg/sw-dev/ZjYUJswknQ4/WYRRylTwAAAJ> On 19 Mar 2020, at 4:19 pm, Evandro Menezes via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Here's the draft proposal for the compact code model on RV. I'd appreciate your feedback before I propose it to the foundation and go about updating the psABI. > > Thank you, > <Compact Code Model.pdf> > > __ > Evandro Menezes ◊ SiFive ◊ Austin, TX > >> On Mar 19, 2020, at 8:58, Alex Bradbury via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> >> For background on these calls, see >> <http://lists.llvm.org/pipermail/llvm-dev/2019-September/135087.html>. >> >> Reminder: the purpose is to co-ordinate between active contributors. >> If you have support questions etc then it's best to post to llvm-dev. >> >> We have a call each Thursday at 4pm GMT, via >> <https://meet.google.com/ske-zcog-spp>. >> >> I've created a shared calendar which may help in keeping track, which >> is accessible at: >> * <https://calendar.google.com/calendar/b/1?cid=bG93cmlzYy5vcmdfMG41cGtlc2ZqY25wMGJoNWhwczFwMGJkODBAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ> >> * <https://calendar.google.com/calendar/ical/lowrisc.org_0n5pkesfjcnp0bh5hps1p0bd80%40group.calendar.google.com/public/basic.ics> >> >> Issues to discuss today include the following: >> * Improving rust code size by not forcing frame pointers >> <https://github.com/rust-lang/rust/pull/69890> >> * Compact code model (Evandro) >> * Update on embedded PIC discussions >> * Small data limit <https://reviews.llvm.org/D57497> >> * Bitmanip / experimental extension status >> * ELF attribute support close to merging >> <https://reviews.llvm.org/D75833> <https://reviews.llvm.org/D74023> >> * No other topics were submitted, as always, please do submit things >> you'd like to discuss >> >> Best, >> >> Alex >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- Sam Elliott Software Developer - LLVM and OpenTitan lowRISC CIC