Requesting help with unregisterized backend failure of !4717
John Ericson
john.ericson at obsidian.systems
Tue Mar 9 05:15:43 UTC 2021
The problem occurs earlier in the pipeline than that. The generated C
doesn't have the proper branching present in the original Haskell.
On 3/8/21 7:25 PM, Carter Schonwald wrote:
> Isn’t the unregisterized backend a c compiler? You should check what
> gcc and clang or whoever we use handles those issues
>
> On Mon, Mar 8, 2021 at 6:56 PM John Ericson
> <john.ericson at obsidian.systems> wrote:
>
> Hi everyone,
>
> https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4717
> <https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4717> fails some
> numerical boundary checking tests with the unregisterized backend. In
> particular, `minBound / (-1)` and `pred minBound` are *not*
> diverging as
> expected. This stumped me a few days ago, and no new ideas have
> struct
> me since. I would very much appreciate some help.
>
> This does seem like something that is very likely to be
> backend-dependent, as different instructions/arches handle such edge
> cases in different ways. What makes this so peculiar, however, is
> that
> the boundary condition checking/branching is done *in regular
> Haskell*.
> I'm thus quite baffled as to what could be going wrong.
>
> If anyone wants to dive in, see my last comment
> https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4717#note_329840
> <https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4717#note_329840>,
>
> which has a minimization to declutter the code without doing enough
> constant folding that the problem is avoided entirely. (I went with a
> compilation unit trick, but in hindsight NOINLINE should also work
> and
> be simpler.)
>
> Finally, let my provide some context for why I am hoping to get this
> merged soon. To be clear, !4492 was the main MR relating to the
> numerics
> primops critical to get in for 9.2 and it thankfully already
> landed. But
> landing this MR too would be nice: It shrinks the intermediate
> representations of numerical code probably smaller than it was
> originally, whereas now it is perhaps larger than it was before
> due to
> more size<->native conversions. Also, I think this MR will help get
> !3658 over the finish line, which, while again not as critical for
> 9.2
> as !4492 was, would be awfully nice to do to fully realize the new
> simplicity of the plan set forth in
> https://gitlab.haskell.org/ghc/ghc/-/wikis/Unboxed-Numerics
> <https://gitlab.haskell.org/ghc/ghc/-/wikis/Unboxed-Numerics>.
>
> Thanks,
>
> John
>
> N.B. I just rebased and repushed the MR, so CI might be still
> running or
> failing due to something else, but based on local testing this is
> still
> the an issue. https://gitlab.haskell.org/ghc/ghc/-/pipelines/31002
> <https://gitlab.haskell.org/ghc/ghc/-/pipelines/31002> is an
> earlier pipeline run that one can look at until CI finishes again.
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org <mailto:ghc-devs at haskell.org>
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> <http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20210309/7c80cf19/attachment.html>
More information about the ghc-devs
mailing list