Ehsan Amiri via llvm-dev
2020-Sep-29 01:37 UTC
[llvm-dev] Improved jump-threading in LLVM for finite state automata
Hi Sjoerd We (at Huawei) also have a pass for this. Originally we implemented this back in 2018 and meant to upstream it, but there were some issues with the implementation that required some changes in the code. We started revising it,a few weeks ago. I thought now that there are multiple options, maybe we can discuss our approaches, and see if there is a preference in the community for one approach over the other ? What do you think? Thanks Ehsan On Wed, Sep 23, 2020 at 3:14 PM Sjoerd Meijer via llvm-dev < llvm-dev at lists.llvm.org> wrote:> And related while we are at it, i.e. the coremark specials, we have this > sitting in upstream review: https://reviews.llvm.org/D42365 > That should help a bit too. It needs a little bit of work, but I thought > Dave didn't mind if someone commandeers and finishes it. > > > ------------------------------ > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Sjoerd > Meijer via llvm-dev <llvm-dev at lists.llvm.org> > *Sent:* 23 September 2020 20:03 > *To:* Phipps, Alan <a-phipps at ti.com>; llvm-dev at lists.llvm.org < > llvm-dev at lists.llvm.org>; Eli Friedman <efriedma at quicinc.com>; Evgeny > Astigeevich <Evgeny.Astigeevich at arm.com> > *Subject:* Re: [llvm-dev] Improved jump-threading in LLVM for finite > state automata > > + Evgeny > > We have a jump threading pass downstream for this that we would love to > upstream. I believe Evgeny was working on exactly this, i.e. preparing it > for upstreaming. > > ------------------------------ > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Eli > Friedman via llvm-dev <llvm-dev at lists.llvm.org> > *Sent:* 23 September 2020 19:16 > *To:* Phipps, Alan <a-phipps at ti.com>; llvm-dev at lists.llvm.org < > llvm-dev at lists.llvm.org> > *Subject:* Re: [llvm-dev] Improved jump-threading in LLVM for finite > state automata > > > Nobody is currently working on this, as far as I know. If you’re > interested in looking into it, I’ll try to answer any questions. > > > > -Eli > > > > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> *On Behalf Of *Phipps, > Alan via llvm-dev > *Sent:* Wednesday, September 23, 2020 7:34 AM > *To:* llvm-dev at lists.llvm.org > *Subject:* [EXT] [llvm-dev] Improved jump-threading in LLVM for finite > state automata > > > > It is my understanding that the implementation for jump-threading in LLVM > is not presently able to effectively optimize code containing a > state-machine implemented using a loop + switch. This is the case, for > example, with the Coremark benchmark function core_state_transition(). Bug > 42313 was filed to address this in 2019: > > > > https://bugs.llvm.org/show_bug.cgi?id=42313 > > > > It appears that GCC improved support for jump threading in 2015 along the > same lines: > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54742 > > > > Is anyone aware of any plan to do improve LLVM jump-threading along the > same lines for LLVM? > > > > Thanks! > > > > Alan Phipps > > > _______________________________________________ > 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/20200928/4adc51c5/attachment.html>
Sjoerd Meijer via llvm-dev
2020-Sep-29 08:22 UTC
[llvm-dev] Improved jump-threading in LLVM for finite state automata
Hi Ehsan, Evgeny uploaded our version here: https://reviews.llvm.org/D88307. He wants to address a few issues. But yeah, if you've got one ready too, perhaps best to upload it if that's what you want to do. I guess that makes it easier to look at both and see which one would have our preference? Cheers, Sjoerd. ________________________________ From: Ehsan Amiri <ehsanamiri at gmail.com> Sent: 29 September 2020 02:37 To: Sjoerd Meijer <Sjoerd.Meijer at arm.com> Cc: Phipps, Alan <a-phipps at ti.com>; llvm-dev at lists.llvm.org <llvm-dev at lists.llvm.org>; Eli Friedman <efriedma at quicinc.com>; Evgeny Astigeevich <Evgeny.Astigeevich at arm.com>; David Green <David.Green at arm.com> Subject: Re: [llvm-dev] Improved jump-threading in LLVM for finite state automata Hi Sjoerd We (at Huawei) also have a pass for this. Originally we implemented this back in 2018 and meant to upstream it, but there were some issues with the implementation that required some changes in the code. We started revising it,a few weeks ago. I thought now that there are multiple options, maybe we can discuss our approaches, and see if there is a preference in the community for one approach over the other ? What do you think? Thanks Ehsan On Wed, Sep 23, 2020 at 3:14 PM Sjoerd Meijer via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: And related while we are at it, i.e. the coremark specials, we have this sitting in upstream review: https://reviews.llvm.org/D42365 That should help a bit too. It needs a little bit of work, but I thought Dave didn't mind if someone commandeers and finishes it. ________________________________ From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces at lists.llvm.org>> on behalf of Sjoerd Meijer via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> Sent: 23 September 2020 20:03 To: Phipps, Alan <a-phipps at ti.com<mailto:a-phipps at ti.com>>; llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>; Eli Friedman <efriedma at quicinc.com<mailto:efriedma at quicinc.com>>; Evgeny Astigeevich <Evgeny.Astigeevich at arm.com<mailto:Evgeny.Astigeevich at arm.com>> Subject: Re: [llvm-dev] Improved jump-threading in LLVM for finite state automata + Evgeny We have a jump threading pass downstream for this that we would love to upstream. I believe Evgeny was working on exactly this, i.e. preparing it for upstreaming. ________________________________ From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces at lists.llvm.org>> on behalf of Eli Friedman via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> Sent: 23 September 2020 19:16 To: Phipps, Alan <a-phipps at ti.com<mailto:a-phipps at ti.com>>; llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> Subject: Re: [llvm-dev] Improved jump-threading in LLVM for finite state automata Nobody is currently working on this, as far as I know. If you’re interested in looking into it, I’ll try to answer any questions. -Eli From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces at lists.llvm.org>> On Behalf Of Phipps, Alan via llvm-dev Sent: Wednesday, September 23, 2020 7:34 AM To: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> Subject: [EXT] [llvm-dev] Improved jump-threading in LLVM for finite state automata It is my understanding that the implementation for jump-threading in LLVM is not presently able to effectively optimize code containing a state-machine implemented using a loop + switch. This is the case, for example, with the Coremark benchmark function core_state_transition(). Bug 42313 was filed to address this in 2019: https://bugs.llvm.org/show_bug.cgi?id=42313 It appears that GCC improved support for jump threading in 2015 along the same lines: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54742 Is anyone aware of any plan to do improve LLVM jump-threading along the same lines for LLVM? Thanks! Alan Phipps _______________________________________________ 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/20200929/ef4319b2/attachment.html>
Ehsan Amiri via llvm-dev
2020-Sep-30 03:37 UTC
[llvm-dev] Improved jump-threading in LLVM for finite state automata
That's great. Our patch wouldn't be ready earlier than 2-3 weeks from now. In the next few days we will spend some time reviewing your patch and will let you know if we have any comments. Thanks Ehsan On Tue, Sep 29, 2020 at 4:23 AM Sjoerd Meijer <Sjoerd.Meijer at arm.com> wrote:> Hi Ehsan, > > Evgeny uploaded our version here: https://reviews.llvm.org/D88307. He > wants to address a few issues. > > But yeah, if you've got one ready too, perhaps best to upload it if that's > what you want to do. I guess that makes it easier to look at both and see > which one would have our preference? > > Cheers, > Sjoerd. > > > ------------------------------ > *From:* Ehsan Amiri <ehsanamiri at gmail.com> > *Sent:* 29 September 2020 02:37 > *To:* Sjoerd Meijer <Sjoerd.Meijer at arm.com> > *Cc:* Phipps, Alan <a-phipps at ti.com>; llvm-dev at lists.llvm.org < > llvm-dev at lists.llvm.org>; Eli Friedman <efriedma at quicinc.com>; Evgeny > Astigeevich <Evgeny.Astigeevich at arm.com>; David Green <David.Green at arm.com > > > *Subject:* Re: [llvm-dev] Improved jump-threading in LLVM for finite > state automata > > Hi Sjoerd > > We (at Huawei) also have a pass for this. Originally we implemented this > back in 2018 and meant to upstream it, but there were some issues with the > implementation that required some changes in the code. We started revising > it,a few weeks ago. > > I thought now that there are multiple options, maybe we can discuss our > approaches, and see if there is a preference in the community for one > approach over the other ? What do you think? > > Thanks > Ehsan > > > > > On Wed, Sep 23, 2020 at 3:14 PM Sjoerd Meijer via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > And related while we are at it, i.e. the coremark specials, we have this > sitting in upstream review: https://reviews.llvm.org/D42365 > That should help a bit too. It needs a little bit of work, but I thought > Dave didn't mind if someone commandeers and finishes it. > > > ------------------------------ > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Sjoerd > Meijer via llvm-dev <llvm-dev at lists.llvm.org> > *Sent:* 23 September 2020 20:03 > *To:* Phipps, Alan <a-phipps at ti.com>; llvm-dev at lists.llvm.org < > llvm-dev at lists.llvm.org>; Eli Friedman <efriedma at quicinc.com>; Evgeny > Astigeevich <Evgeny.Astigeevich at arm.com> > *Subject:* Re: [llvm-dev] Improved jump-threading in LLVM for finite > state automata > > + Evgeny > > We have a jump threading pass downstream for this that we would love to > upstream. I believe Evgeny was working on exactly this, i.e. preparing it > for upstreaming. > > ------------------------------ > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Eli > Friedman via llvm-dev <llvm-dev at lists.llvm.org> > *Sent:* 23 September 2020 19:16 > *To:* Phipps, Alan <a-phipps at ti.com>; llvm-dev at lists.llvm.org < > llvm-dev at lists.llvm.org> > *Subject:* Re: [llvm-dev] Improved jump-threading in LLVM for finite > state automata > > > Nobody is currently working on this, as far as I know. If you’re > interested in looking into it, I’ll try to answer any questions. > > > > -Eli > > > > *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> *On Behalf Of *Phipps, > Alan via llvm-dev > *Sent:* Wednesday, September 23, 2020 7:34 AM > *To:* llvm-dev at lists.llvm.org > *Subject:* [EXT] [llvm-dev] Improved jump-threading in LLVM for finite > state automata > > > > It is my understanding that the implementation for jump-threading in LLVM > is not presently able to effectively optimize code containing a > state-machine implemented using a loop + switch. This is the case, for > example, with the Coremark benchmark function core_state_transition(). Bug > 42313 was filed to address this in 2019: > > > > https://bugs.llvm.org/show_bug.cgi?id=42313 > > > > It appears that GCC improved support for jump threading in 2015 along the > same lines: > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54742 > > > > Is anyone aware of any plan to do improve LLVM jump-threading along the > same lines for LLVM? > > > > Thanks! > > > > Alan Phipps > > > _______________________________________________ > 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/20200929/0eca67a6/attachment.html>