Android/ARM codegen

Joakim via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Mon Aug 3 05:13:29 PDT 2015


On Friday, 17 July 2015 at 17:57:01 UTC, Joakim wrote:
> On Friday, 17 July 2015 at 16:33:07 UTC, Dan Olson wrote:
>> "Joakim" <dlang at joakim.fea.st> writes:
>>> Yep, that fixed it, std.zip passes its tests now. :) I'll run 
>>> the rest of the tests and report back, thanks for your help.
>>
>> :-)
>
> Around 30 more modules from std.phobos now pass their tests 
> with that change, most of which used to segfault somewhere in a 
> test before.  core.time from druntime also passes all its tests 
> now.  That one change made a big difference, thanks for 
> pointing it out.
>
> Now to fix the rest.  Many are related to the real type, which 
> I haven't patched for 64-bit yet.

Dan, as I said in the main forum, most of the druntime/phobos 
modules' tests pass on Android/ARM now.  However, I had to turn 
off optimizations for a handful of modules, have you had to do 
the same?  As noted before, one optimization pass was screwing up 
ldc.eh.  I also had to turn off all optimizations, ie -O0, for 
std.random and std.stream to get their unit tests to pass.  For 
one phobos module, std.regex, turning off all optimizations for 
druntime's core.memory got the regex tests to pass.

Other than those four modules, everything is compiled with -O3 
and seems to work, except for the two modules that still 
segfault, std.net.isemail and std.regex.internal.tests, where 
compiling those modules with -O0 doesn't make a difference.  I 
haven't spent any time tracking down if other optimized modules 
might be causing those two to segfault, as was the case with 
std.regex and core.memory, or exactly which llvm optimizations 
are causing problems with core.memory, std.random, and std.stream.

Are you seeing similar results with your 2.067 branch of ldc with 
iOS?  Since ARM codegen should be similar for the two, I wonder 
if I'm the only one seeing this.


More information about the digitalmars-d-ldc mailing list