Re: Status of "Improved LLVM backend"

2016-11-26 Thread Moritz Angermann
Hi,

I’m trying to implement a bitcode producing llvm backend[1], which would 
potentially
allow to use a range of llvm versions with ghc. However, this is only 
tangentially
relevant to the improved llvm backend, as Austin correctly pointed out[2], as 
there are
other complications besides the fragility of the textual representation.

So this is mostly only relevant to the improved ir you mentioned. The bitcode 
code gen
plugin right now follows mostly the textual ir generation, but tries to prevent 
the
ubiquitous symbol to i8* casting. The llvm gen turns cmm into ir, at this point 
however
at that point, the wordsize has been embedded already, which means that the 
current
textual llvm gen as well as the bitcode llvm gen try to figure out if relative 
access is
in multiple wordsizes to use llvms getElementPointer.  I don’t know if 
generating
llvm from stg instead of cmm would be a better approach, which is what ghcjs 
and eta
do as far as I know.

Cheers,
 moritz

— 
[1]: https://github.com/ghc-proposals/ghc-proposals/pull/25
[2]: 
https://github.com/ghc-proposals/ghc-proposals/pull/25#issuecomment-261697189

> On Nov 27, 2016, at 3:14 AM, Michal Terepeta  
> wrote:
> 
> Hi all,
> 
> I was wondering what’s the current status of the “Improved LLVM backend” 
> project
> ( https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend ). The page 
> mentions a
> few main problems, but some seem to be already fixed:
> 1) Using/supporting only one version of LLVM.
>This has been done AFAIK.
> 2) Prebuilt binaries to be shipped together with GHC.
>I can't find anything about this. Is there a ticket? Has there been any
>progress on this?
> 3) Adding support for split-objs
>I found a ticket about it: https://ghc.haskell.org/trac/ghc/ticket/8300
>which was closed as WONTFIX in favor of split-sections. So I guess this can
>also be considered as done.
> 4) Figuring out what LLVM optimizations are useful.
>Again, I can seem to find anything here. Has anyone looked at this?
>I only found an issue about this:
>https://ghc.haskell.org/trac/ghc/ticket/11295
> 
> The page also mentions that the generated IR could be improved in many cases,
> but it doesn't link to any tickets or discussions. Is there something I could
> read to better understand what are the main problems?
> The only thing I can recall is that proc point splitting is likely to cause
> issues for LLVM's ability to optimize the code. (but I only found a couple of 
> email
> threads about this but couldn't find any follow-ups)
> 
> Thanks,
> Michal
> 
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: [ANNOUNCE] GHC 8.0.2 release candidate 1

2016-11-26 Thread Tuncer Ayaz
On 25 November 2016 at 23:38, Ben Gamari  wrote:
>
> As always, let us know if you encounter trouble. Thanks to everyone
> who has contributed so far!

No trouble building and running rc1, but some code in xmonad-contrib
that builds fine with 8.0.1 doesn't with 8.0.2-rc1. Not sure if it's
broken code or a ghc regression.

https://github.com/xmonad/xmonad-contrib/issues/123
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Status of "Improved LLVM backend"

2016-11-26 Thread Michal Terepeta
Hi all,

I was wondering what’s the current status of the “Improved LLVM backend”
project
( https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend ). The page
mentions a
few main problems, but some seem to be already fixed:
1) Using/supporting only one version of LLVM.
   This has been done AFAIK.
2) Prebuilt binaries to be shipped together with GHC.
   I can't find anything about this. Is there a ticket? Has there been any
   progress on this?
3) Adding support for split-objs
   I found a ticket about it: https://ghc.haskell.org/trac/ghc/ticket/8300
   which was closed as WONTFIX in favor of split-sections. So I guess this
can
   also be considered as done.
4) Figuring out what LLVM optimizations are useful.
   Again, I can seem to find anything here. Has anyone looked at this?
   I only found an issue about this:
   https://ghc.haskell.org/trac/ghc/ticket/11295

The page also mentions that the generated IR could be improved in many
cases,
but it doesn't link to any tickets or discussions. Is there something I
could
read to better understand what are the main problems?
The only thing I can recall is that proc point splitting is likely to cause
issues for LLVM's ability to optimize the code. (but I only found a couple
of email
threads about this but couldn't find any follow-ups)

Thanks,
Michal
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: [ANNOUNCE] GHC 8.0.2 release candidate 1

2016-11-26 Thread George Colpitts
I think I am very atypical as I had the Haskell Platform installed and did
an uninstall-hs before installing this release candidate. This is on the
latest Mac OS and Xcode.

At the time I got the error the file was a symbolic link, I believe to an
existing file:

install: /usr/local/share/man/man1/ghc.1: No such file or directory
make[1]: *** [install_man] Error 71
make: *** [install] Error 2
bash-3.2$  ls -l /usr/local/share/man/man1/ghc.1
lrwxr-xr-x  1 gcolpitts  admin  80 Jun 23 19:44
/usr/local/share/man/man1/ghc.1 ->
/Library/Frameworks/GHC.framework/Versions/8.0.1-x86_64/usr/share/man/man1/ghc.1
bash-3.2$  rm /usr/local/share/man/man1/ghc.1

Now after a successful install of the binary and a successful compile from
source I have:

ls -l /usr/local/share/man/man1/ghc.1
-rw-r--r--  1 root  admin  58932 Nov 26 09:16
/usr/local/share/man/man1/ghc.1
bash-3.2$ ls -l
/Library/Frameworks/GHC.framework/Versions/8.0.1-x86_64/usr/share/man/man1/ghc.1
ls -l
/Library/Frameworks/GHC.framework/Versions/8.0.1-x86_64/usr/share/man/man1/ghc.1
-rw-r--r--  1 root  wheel  58214 May 21  2016
/Library/Frameworks/GHC.framework/Versions/8.0.1-x86_64/usr/share/man/man1/ghc.1

After the binary install I did a cabal install of threadscope, hlint and
criterion and some minimal runtime testing. Everything looks fine.

Thanks
George

On Sat, Nov 26, 2016 at 9:47 AM Ben Gamari  wrote:

> George Colpitts  writes:
>
> > Thanks Ben, this is great!
> >
> > Installing the binary on the Mac results in the following minor problem:
> >
> > /usr/bin/install -c -m 644  docs/users_guide/build-man/ghc.1
> > "/usr/local/share/man/man1"
> > install: /usr/local/share/man/man1/ghc.1: No such file or directory
> > make[1]: *** [install_man] Error 71
> > make: *** [install] Error 2
> >
> Thanks for the report, George! That is quite odd indeed. It sounds like
> /usr/local/share/man/man1/ghc.1 may have been a symlink to a directory
> which does not exist (possibly?). What does `ls -l
> /usr/local/share/man/man1/ghc.1` say now?
>
> Cheers,
>
> - Ben
>
>
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: [ANNOUNCE] GHC 8.0.2 release candidate 1

2016-11-26 Thread Ben Gamari
George Colpitts  writes:

> Thanks Ben, this is great!
>
> Installing the binary on the Mac results in the following minor problem:
>
> /usr/bin/install -c -m 644  docs/users_guide/build-man/ghc.1
> "/usr/local/share/man/man1"
> install: /usr/local/share/man/man1/ghc.1: No such file or directory
> make[1]: *** [install_man] Error 71
> make: *** [install] Error 2
>
Thanks for the report, George! That is quite odd indeed. It sounds like
/usr/local/share/man/man1/ghc.1 may have been a symlink to a directory
which does not exist (possibly?). What does `ls -l
/usr/local/share/man/man1/ghc.1` say now?

Cheers,

- Ben




signature.asc
Description: PGP signature
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs