May 22, 2015 Re: Win64, merge-2.067, LLVM master, VS 2015 - current status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Temtaime | Kai has just fixed it. Please don't expect the few of us to always react so quickly to every LLVM API change (and there's a whole lot of them) on its master branch though. ;) |
May 23, 2015 Re: Win64, merge-2.067, LLVM master, VS 2015 - current status | ||||
---|---|---|---|---|
| ||||
Posted in reply to Temtaime | On Wednesday, 20 May 2015 at 13:34:50 UTC, Temtaime wrote:
> Hi all !
> http://goo.gl/0JI4qJ
> Why ldc cannot optimize it ?
> Should i create an issue ?
> For example gdc uses only one mulfps.
Should be fixed. Now ldc generates:
movups (%r8), %xmm0
shufps $0, %xmm1, %xmm1
mulps %xmm0, %xmm1
movups %xmm1, (%rcx)
movq %rcx, %rax
retq
Regards,
Kai
|
May 23, 2015 Re: Win64, merge-2.067, LLVM master, VS 2015 - current status | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Colvin | On Thursday, 21 May 2015 at 19:05:33 UTC, John Colvin wrote:
> On Wednesday, 20 May 2015 at 13:34:50 UTC, Temtaime wrote:
>> Hi all !
>> http://goo.gl/0JI4qJ
>> Why ldc cannot optimize it ?
>> Should i create an issue ?
>> For example gdc uses only one mulfps.
>
> Rule of thumb: don't use array ops for short arrays. They are quite well optimised for large arrays, but aren't great in cases like your example.
Now ldc should inline the arrayops. If you have some benchmarks you could re-run them.
Regards,
Kai
|
May 24, 2015 Re: Win64, merge-2.067, LLVM master, VS 2015 - current status | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | Update: * LLVM master (1fd101c) * LDC: branch merge-2.067 ** *.conf.in files hacked to include "-L/LARGEADDRESSAWARE:NO" as default option ** druntime: branch ldc-merge-2.067 + https://github.com/ldc-developers/druntime/pull/29 (VS 2015 only) ** phobos: branch ldc-merge-2.067 + https://github.com/JohanEngelen/phobos/commit/2ac2581fe49da475bf6f687cfb7bcb9c9ddf8b71 https://github.com/kinke/phobos/commit/86511b3ca9f4a6b5358b7983ee64d0a688c63216 Due to https://github.com/ldc-developers/ldc/issues/930, you'll need to hack your <buildDir>\build.ninja file and exclude the -g switch when building runtime\std\string-unittest-debug.obj. Except for a Win64-specific core.thread unittest (testNonvolatileRegister), which fails in the release build, all druntime & phobos unittests pass, at least with VS 2015. :) |
May 24, 2015 Re: Win64, merge-2.067, LLVM master, VS 2015 - current status | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | With VS 2013, 2 std.conv unittests fail, due to strtod()/strtold() not being able to parse hex strings, otherwise same as for VS 2015. |
May 24, 2015 Re: Win64, merge-2.067, LLVM master, VS 2015 - current status | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Sunday, 24 May 2015 at 01:49:14 UTC, kinke wrote:
> Update:
>
> * LLVM master (1fd101c)
> * LDC: branch merge-2.067
> ** *.conf.in files hacked to include
> "-L/LARGEADDRESSAWARE:NO" as default option
> ** druntime: branch ldc-merge-2.067 +
> https://github.com/ldc-developers/druntime/pull/29 (VS 2015 only)
> ** phobos: branch ldc-merge-2.067 +
> https://github.com/JohanEngelen/phobos/commit/2ac2581fe49da475bf6f687cfb7bcb9c9ddf8b71
> https://github.com/kinke/phobos/commit/86511b3ca9f4a6b5358b7983ee64d0a688c63216
>
> Due to https://github.com/ldc-developers/ldc/issues/930,
> you'll need to hack your <buildDir>\build.ninja file and
> exclude the -g switch when building
> runtime\std\string-unittest-debug.obj.
>
> Except for a Win64-specific core.thread unittest
> (testNonvolatileRegister), which fails in the release build,
> all druntime & phobos unittests pass, at least with VS 2015. :)
Wonderful!
|
Copyright © 1999-2021 by the D Language Foundation