digitalmars.D.ldc - LDC 0.13.0 alpha released! Please help test!
- Kai Nacke (43/43) Jan 28 2014 Hi everyone!
- Dicebot (1/1) Jan 29 2014 It builds and runs hello world, I can verify that :)
- Mike (5/13) Jan 30 2014 Thanks Kai,
- Kai Nacke (6/9) Jan 30 2014 Yes, I am open to suggestions. :-)
- bearophile (7/11) Jan 30 2014 I am trying this, ldc2-0.13.0-alpha1-mingw-x86.7z, it seems I am
- Dicebot (1/3) Jan 30 2014 Whoa, I have totally missed that! <3
- Kai Nacke (8/18) Jan 30 2014 Is it an instance of issue #407
- bearophile (14/20) Feb 02 2014 Sorry for giving you an answer after three days, I didn't see
- bearophile (2/7) Feb 05 2014 Bye,
- Kai Nacke (6/15) Feb 05 2014 Hi bearophile,
- Kai Nacke (5/9) Jul 01 2014 Should be fixed with this PR:
- Artem Tarasov (8/12) Feb 01 2014 Thanks!
- Ilya Yaroshenko (3/48) Feb 02 2014 Hello Kai!
- Ilya Yaroshenko (2/61) Feb 02 2014
- Ilya Yaroshenko (7/52) Feb 02 2014 How I can do auto-vectorization and loopunroling?
- bearophile (4/5) Feb 02 2014 Isn't -vectorize implicit in -O3 (Perhaps even in -O2)?
- Ilya Yaroshenko (2/7) Feb 02 2014 No, even with -03 -release =(.
- Ilya Yaroshenko (4/9) Feb 02 2014 No, even with -03 -release =(.
- Kai Nacke (7/19) Feb 03 2014 Hi Ilya,
- Kai Nacke (5/27) Feb 03 2014 Is fixed in the merge-2.064 branch and will be in next alpha
- Ilya Yaroshenko (1/1) Feb 03 2014 Thanks, Kai!
- Ilya Yaroshenko (61/91) Feb 15 2014 Hi Kai,
Hi everyone! The first alpha release of LDC release 0.13.0 is here! It is based on the 2.064.2 front-end and LLVM 3.1-3.4 (OS X: LLVM 3.2/3.4 only). Please refer to the GitHub release page for the preliminary change log and the package download links: https://github.com/ldc-developers/ldc/releases/tag/v0.13.0-alpha1 Important: This is an alpha version and contains known bugs. Be sure to read the section "Known bugs (release blocker)" in the preliminary change log. MD5 checksums for the release packages: 94d03baa5a48ed43cb3b713a3c9fc99a ldc-0.13.0-alpha1-src.tar.gz 60018c5b9cbe27821fcb15a2293479f1 ldc2-0.13.0-alpha1-linux-x86.tar.gz 8c9ab4bde280db84c037cfa7b1144eb8 ldc2-0.13.0-alpha1-linux-x86.tar.xz f2c464245be4d2a34fcd31ea6e903f9d ldc2-0.13.0-alpha1-linux-x86_64.tar.gz 6359c030afc6aaf74a3b6c7227d88007 ldc2-0.13.0-alpha1-linux-x86_64.tar.xz 9c4903dc3ba9962c4ece95210eb2cff4 ldc2-0.13.0-alpha1-mingw-x86.7z a1d0c45d1d46cb4ee9a3856869454891 ldc2-0.13.0-alpha1-mingw-x86.zip 103f59a8f5743a8c5349dd9593a2d3fd ldc2-0.13.0-alpha1-osx-x86_64.tar.gz d42390ef6bab21eb634e6ecbb3170fb7 ldc2-0.13.0-alpha1-osx-x86_64.tar.xz As always, the Win32/MinGW packages require a recent version of the mingw-w64 toolchain, see the (new) README file for details. There is no Win64/MSVC package because I found a severe bug in the Win64/MSVC port. I hope to have this fixed for the alpha2 or beta1 release. Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to drop by at the digitalmars.D.ldc forums (http://forum.dlang.org/group/digitalmars.D.ldc) for any questions or comments. Thanks to everybody involved in making this happen! Regards, Kai
Jan 28 2014
It builds and runs hello world, I can verify that :)
Jan 29 2014
On Wednesday, 29 January 2014 at 07:24:16 UTC, Kai Nacke wrote:Hi everyone! The first alpha release of LDC release 0.13.0 is here! It is based on the 2.064.2 front-end and LLVM 3.1-3.4 (OS X: LLVM 3.2/3.4 only). Please refer to the GitHub release page for the preliminary change log and the package download links: https://github.com/ldc-developers/ldc/releases/tag/v0.13.0-alpha1Thanks Kai, Any chance I can convince you to can include ARM Thumb targets in future releases? Mike
Jan 30 2014
Hi Mike! On Thursday, 30 January 2014 at 09:40:49 UTC, Mike wrote:Thanks Kai, Any chance I can convince you to can include ARM Thumb targets in future releases?Yes, I am open to suggestions. :-) Maybe there other requests for other targets, too? Regards, Kai
Jan 30 2014
I am trying this, ldc2-0.13.0-alpha1-mingw-x86.7z, it seems I am hitting some crashes caused by associative arrays, so I can't use it yet. From the linked page:Because of the new DSO infrastructure, the -noruntime switch is no longer supported. Now every module calls the runtime during initialization. Instead a new -nogc switch is introduced which warns about implicit GC calls.<I suggest to also generate the line numbers where the GC is used. Bye, bearophile
Jan 30 2014
Instead a new -nogc switch is introduced which warns about implicit GC calls.Whoa, I have totally missed that! <3
Jan 30 2014
Hi bearophile! On Thursday, 30 January 2014 at 11:17:14 UTC, bearophile wrote:I am trying this, ldc2-0.13.0-alpha1-mingw-x86.7z, it seems I am hitting some crashes caused by associative arrays, so I can't use it yet.(https://github.com/ldc-developers/ldc/issues/407) or something new? If it is new, could you please provide some details?From the linked page:Good suggestion. Regards, KaiBecause of the new DSO infrastructure, the -noruntime switch is no longer supported. Now every module calls the runtime during initialization. Instead a new -nogc switch is introduced which warns about implicit GC calls.<I suggest to also generate the line numbers where the GC is used.
Jan 30 2014
Kai Nacke:Sorry for giving you an answer after three days, I didn't see this post :-( This is a program that compiles and run with dmd and crashes at run-time with the latest ldc2: http://codepad.org/tnz2aiAK I have not reduced it much, but the problem could be in the struct State. See also a comment of mine here: http://forum.dlang.org/thread/lclg26$1ha7$1 digitalmars.com Where I have tried to use a sanitizer on Windows. Perhaps it should be disabled in the Windows ldc2. Bye, bearophileI am trying this, ldc2-0.13.0-alpha1-mingw-x86.7z, it seems I am hitting some crashes caused by associative arrays, so I can't use it yet.(https://github.com/ldc-developers/ldc/issues/407) or something new? If it is new, could you please provide some details?
Feb 02 2014
This is a program that compiles and run with dmd and crashes at run-time with the latest ldc2: http://codepad.org/tnz2aiAK I have not reduced it much, but the problem could be in the struct State.Bye, bearophile
Feb 05 2014
On Wednesday, 5 February 2014 at 10:52:05 UTC, bearophile wrote:Hi bearophile, thanks for the example. I saw your other post, too. I am still a bit slow - there is a backlog caused by FOSDEM talk. Regards, KaiThis is a program that compiles and run with dmd and crashes at run-time with the latest ldc2: http://codepad.org/tnz2aiAK I have not reduced it much, but the problem could be in the struct State.Bye, bearophile
Feb 05 2014
On Thursday, 30 January 2014 at 11:17:14 UTC, bearophile wrote:I suggest to also generate the line numbers where the GC is used. Bye, bearophileShould be fixed with this PR: https://github.com/ldc-developers/ldc/pull/660 Regards, Kai
Jul 01 2014
On Wednesday, 29 January 2014 at 07:24:16 UTC, Kai Nacke wrote:Hi everyone! The first alpha release of LDC release 0.13.0 is here! It is based on the 2.064.2 front-end and LLVM 3.1-3.4 (OS X: LLVM 3.2/3.4 only).Thanks! May I repeat here my wish to include `rdmd` into binary distributions? Rationale: DMD is inappropriate for release builds if good performance is desired, and it's inconvenient to download both compilers for someone who just wishes to build an application from source.
Feb 01 2014
Hello Kai! What version of llvm is used in linux_x64 binaries? On Wednesday, 29 January 2014 at 07:24:16 UTC, Kai Nacke wrote:Hi everyone! The first alpha release of LDC release 0.13.0 is here! It is based on the 2.064.2 front-end and LLVM 3.1-3.4 (OS X: LLVM 3.2/3.4 only). Please refer to the GitHub release page for the preliminary change log and the package download links: https://github.com/ldc-developers/ldc/releases/tag/v0.13.0-alpha1 Important: This is an alpha version and contains known bugs. Be sure to read the section "Known bugs (release blocker)" in the preliminary change log. MD5 checksums for the release packages: 94d03baa5a48ed43cb3b713a3c9fc99a ldc-0.13.0-alpha1-src.tar.gz 60018c5b9cbe27821fcb15a2293479f1 ldc2-0.13.0-alpha1-linux-x86.tar.gz 8c9ab4bde280db84c037cfa7b1144eb8 ldc2-0.13.0-alpha1-linux-x86.tar.xz f2c464245be4d2a34fcd31ea6e903f9d ldc2-0.13.0-alpha1-linux-x86_64.tar.gz 6359c030afc6aaf74a3b6c7227d88007 ldc2-0.13.0-alpha1-linux-x86_64.tar.xz 9c4903dc3ba9962c4ece95210eb2cff4 ldc2-0.13.0-alpha1-mingw-x86.7z a1d0c45d1d46cb4ee9a3856869454891 ldc2-0.13.0-alpha1-mingw-x86.zip 103f59a8f5743a8c5349dd9593a2d3fd ldc2-0.13.0-alpha1-osx-x86_64.tar.gz d42390ef6bab21eb634e6ecbb3170fb7 ldc2-0.13.0-alpha1-osx-x86_64.tar.xz As always, the Win32/MinGW packages require a recent version of the mingw-w64 toolchain, see the (new) README file for details. There is no Win64/MSVC package because I found a severe bug in the Win64/MSVC port. I hope to have this fixed for the alpha2 or beta1 release. Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to drop by at the digitalmars.D.ldc forums (http://forum.dlang.org/group/digitalmars.D.ldc) for any questions or comments. Thanks to everybody involved in making this happen! Regards, Kai
Feb 02 2014
I found that it is 3.4 from ldmd2 =) On Sunday, 2 February 2014 at 21:22:13 UTC, Ilya Yaroshenko wrote:Hello Kai! What version of llvm is used in linux_x64 binaries? On Wednesday, 29 January 2014 at 07:24:16 UTC, Kai Nacke wrote:Hi everyone! The first alpha release of LDC release 0.13.0 is here! It is based on the 2.064.2 front-end and LLVM 3.1-3.4 (OS X: LLVM 3.2/3.4 only). Please refer to the GitHub release page for the preliminary change log and the package download links: https://github.com/ldc-developers/ldc/releases/tag/v0.13.0-alpha1 Important: This is an alpha version and contains known bugs. Be sure to read the section "Known bugs (release blocker)" in the preliminary change log. MD5 checksums for the release packages: 94d03baa5a48ed43cb3b713a3c9fc99a ldc-0.13.0-alpha1-src.tar.gz 60018c5b9cbe27821fcb15a2293479f1 ldc2-0.13.0-alpha1-linux-x86.tar.gz 8c9ab4bde280db84c037cfa7b1144eb8 ldc2-0.13.0-alpha1-linux-x86.tar.xz f2c464245be4d2a34fcd31ea6e903f9d ldc2-0.13.0-alpha1-linux-x86_64.tar.gz 6359c030afc6aaf74a3b6c7227d88007 ldc2-0.13.0-alpha1-linux-x86_64.tar.xz 9c4903dc3ba9962c4ece95210eb2cff4 ldc2-0.13.0-alpha1-mingw-x86.7z a1d0c45d1d46cb4ee9a3856869454891 ldc2-0.13.0-alpha1-mingw-x86.zip 103f59a8f5743a8c5349dd9593a2d3fd ldc2-0.13.0-alpha1-osx-x86_64.tar.gz d42390ef6bab21eb634e6ecbb3170fb7 ldc2-0.13.0-alpha1-osx-x86_64.tar.xz As always, the Win32/MinGW packages require a recent version of the mingw-w64 toolchain, see the (new) README file for details. There is no Win64/MSVC package because I found a severe bug in the Win64/MSVC port. I hope to have this fixed for the alpha2 or beta1 release. Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to drop by at the digitalmars.D.ldc forums (http://forum.dlang.org/group/digitalmars.D.ldc) for any questions or comments. Thanks to everybody involved in making this happen! Regards, Kai
Feb 02 2014
How I can do auto-vectorization and loopunroling? There is only -vectorize-slp but no -vectorize. With -O3 -release -disable-boundscheck -mcpu=native -vectorize-slp -mattr=avx flags ldc2 produce code without AVX. On Wednesday, 29 January 2014 at 07:24:16 UTC, Kai Nacke wrote:Hi everyone! The first alpha release of LDC release 0.13.0 is here! It is based on the 2.064.2 front-end and LLVM 3.1-3.4 (OS X: LLVM 3.2/3.4 only). Please refer to the GitHub release page for the preliminary change log and the package download links: https://github.com/ldc-developers/ldc/releases/tag/v0.13.0-alpha1 Important: This is an alpha version and contains known bugs. Be sure to read the section "Known bugs (release blocker)" in the preliminary change log. MD5 checksums for the release packages: 94d03baa5a48ed43cb3b713a3c9fc99a ldc-0.13.0-alpha1-src.tar.gz 60018c5b9cbe27821fcb15a2293479f1 ldc2-0.13.0-alpha1-linux-x86.tar.gz 8c9ab4bde280db84c037cfa7b1144eb8 ldc2-0.13.0-alpha1-linux-x86.tar.xz f2c464245be4d2a34fcd31ea6e903f9d ldc2-0.13.0-alpha1-linux-x86_64.tar.gz 6359c030afc6aaf74a3b6c7227d88007 ldc2-0.13.0-alpha1-linux-x86_64.tar.xz 9c4903dc3ba9962c4ece95210eb2cff4 ldc2-0.13.0-alpha1-mingw-x86.7z a1d0c45d1d46cb4ee9a3856869454891 ldc2-0.13.0-alpha1-mingw-x86.zip 103f59a8f5743a8c5349dd9593a2d3fd ldc2-0.13.0-alpha1-osx-x86_64.tar.gz d42390ef6bab21eb634e6ecbb3170fb7 ldc2-0.13.0-alpha1-osx-x86_64.tar.xz As always, the Win32/MinGW packages require a recent version of the mingw-w64 toolchain, see the (new) README file for details. There is no Win64/MSVC package because I found a severe bug in the Win64/MSVC port. I hope to have this fixed for the alpha2 or beta1 release. Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to drop by at the digitalmars.D.ldc forums (http://forum.dlang.org/group/digitalmars.D.ldc) for any questions or comments. Thanks to everybody involved in making this happen! Regards, Kai
Feb 02 2014
Ilya Yaroshenko:There is only -vectorize-slp but no -vectorize.Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? Bye, bearophile
Feb 02 2014
On Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote:Ilya Yaroshenko:No, even with -03 -release =(.There is only -vectorize-slp but no -vectorize.Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? Bye, bearophile
Feb 02 2014
On Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote:Ilya Yaroshenko:No, even with -03 -release =(. Best Regards, IlyaThere is only -vectorize-slp but no -vectorize.Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? Bye, bearophile
Feb 02 2014
On Monday, 3 February 2014 at 07:37:50 UTC, Ilya Yaroshenko wrote:On Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote:Hi Ilya, your command line looks ok. I think there is a bug in the command line arguments. I try to fix it now. Regards, KaiIlya Yaroshenko:No, even with -03 -release =(. Best Regards, IlyaThere is only -vectorize-slp but no -vectorize.Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? Bye, bearophile
Feb 03 2014
On Monday, 3 February 2014 at 17:57:50 UTC, Kai Nacke wrote:On Monday, 3 February 2014 at 07:37:50 UTC, Ilya Yaroshenko wrote:Is fixed in the merge-2.064 branch and will be in next alpha release. Regards, KaiOn Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote:Hi Ilya, your command line looks ok. I think there is a bug in the command line arguments. I try to fix it now. Regards, KaiIlya Yaroshenko:No, even with -03 -release =(. Best Regards, IlyaThere is only -vectorize-slp but no -vectorize.Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? Bye, bearophile
Feb 03 2014
Hi Kai, It is still does not vectorize with merge-2.064 (merge-2.065) I use ldc2 -03 -release ldmd2 output: LDC - the LLVM D compiler (27c078): based on DMD v2.064 and LLVM 3.4 Default target: x86_64-pc-linux-gnu Host CPU: core-avx-i Examples: ========================================================== void scale(T)(T[] a, T b) { foreach(ref ae; a) ae *= b; } ========================================================== .cfi_startproc testq %rdi, %rdi je .LBB7_2 .align 16, 0x90 .LBB7_1: vmulss (%rsi), %xmm0, %xmm1 vmovss %xmm1, (%rsi) addq $4, %rsi decq %rdi jne .LBB7_1 .LBB7_2: ret ========================================================== void substract(T)(T[] c, in T[] a, in T[] b) { foreach(i, ref ce; c) ce = a[i]-b[i]; } ========================================================== .cfi_startproc pushq %rax .Ltmp33: .cfi_def_cfa_offset 16 xorl %eax, %eax testq %r8, %r8 je .LBB6_4 .align 16, 0x90 .LBB6_1: cmpq %rdx, %rax jae .LBB6_5 cmpq %rdi, %rax jae .LBB6_5 vmovsd (%rcx,%rax,8), %xmm0 vsubsd (%rsi,%rax,8), %xmm0, %xmm0 vmovsd %xmm0, (%r9,%rax,8) incq %rax cmpq %r8, %rax jb .LBB6_1 .LBB6_4: popq %rax ret ========================================================== Regards, Ilya On Tuesday, 4 February 2014 at 06:24:02 UTC, Kai Nacke wrote:On Monday, 3 February 2014 at 17:57:50 UTC, Kai Nacke wrote:On Monday, 3 February 2014 at 07:37:50 UTC, Ilya Yaroshenko wrote:Is fixed in the merge-2.064 branch and will be in next alpha release. Regards, KaiOn Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote:Hi Ilya, your command line looks ok. I think there is a bug in the command line arguments. I try to fix it now. Regards, KaiIlya Yaroshenko:No, even with -03 -release =(. Best Regards, IlyaThere is only -vectorize-slp but no -vectorize.Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? Bye, bearophile
Feb 15 2014
Hi Ilya! Sorry for the long delay - I was on vacation. I'll have another look at this. Thanks for the test case. Regards, Kai On Saturday, 15 February 2014 at 20:15:00 UTC, Ilya Yaroshenko wrote:Hi Kai, It is still does not vectorize with merge-2.064 (merge-2.065) I use ldc2 -03 -release ldmd2 output: LDC - the LLVM D compiler (27c078): based on DMD v2.064 and LLVM 3.4 Default target: x86_64-pc-linux-gnu Host CPU: core-avx-i Examples: ========================================================== void scale(T)(T[] a, T b) { foreach(ref ae; a) ae *= b; } ========================================================== .cfi_startproc testq %rdi, %rdi je .LBB7_2 .align 16, 0x90 .LBB7_1: vmulss (%rsi), %xmm0, %xmm1 vmovss %xmm1, (%rsi) addq $4, %rsi decq %rdi jne .LBB7_1 .LBB7_2: ret ========================================================== void substract(T)(T[] c, in T[] a, in T[] b) { foreach(i, ref ce; c) ce = a[i]-b[i]; } ========================================================== .cfi_startproc pushq %rax .Ltmp33: .cfi_def_cfa_offset 16 xorl %eax, %eax testq %r8, %r8 je .LBB6_4 .align 16, 0x90 .LBB6_1: cmpq %rdx, %rax jae .LBB6_5 cmpq %rdi, %rax jae .LBB6_5 vmovsd (%rcx,%rax,8), %xmm0 vsubsd (%rsi,%rax,8), %xmm0, %xmm0 vmovsd %xmm0, (%r9,%rax,8) incq %rax cmpq %r8, %rax jb .LBB6_1 .LBB6_4: popq %rax ret ========================================================== Regards, Ilya On Tuesday, 4 February 2014 at 06:24:02 UTC, Kai Nacke wrote:On Monday, 3 February 2014 at 17:57:50 UTC, Kai Nacke wrote:On Monday, 3 February 2014 at 07:37:50 UTC, Ilya Yaroshenko wrote:Is fixed in the merge-2.064 branch and will be in next alpha release. Regards, KaiOn Monday, 3 February 2014 at 00:12:08 UTC, bearophile wrote:Hi Ilya, your command line looks ok. I think there is a bug in the command line arguments. I try to fix it now. Regards, KaiIlya Yaroshenko:No, even with -03 -release =(. Best Regards, IlyaThere is only -vectorize-slp but no -vectorize.Isn't -vectorize implicit in -O3 (Perhaps even in -O2)? Bye, bearophile
Mar 04 2014
Hi Ilya! On Saturday, 15 February 2014 at 20:15:00 UTC, Ilya Yaroshenko wrote:Hi Kai, It is still does not vectorize with merge-2.064 (merge-2.065) I use ldc2 -03 -releaseWith LLVM 3.5 it should work now. I still need to check if it works with LLVM 3.4, too. Reason is a change in the way the passes are registered. I missed this change. :-( Regards, Kai
Mar 12 2014