Performance dmd vs ldc2
john.loughran.colvin at gmail.com
Wed Jul 31 04:13:12 PDT 2013
On Wednesday, 31 July 2013 at 08:44:30 UTC, Chris wrote:
> On Tuesday, 30 July 2013 at 16:43:52 UTC, John Colvin wrote:
>> Are you sure that ldc hasn't actually just optimised away the
>> whole of parse()?
>> Check to asm to be sure.
> I've checked the asm output, as you suggested. Turns out that
> the DMD version has 94,220 lines and calls parse() for the
> first time on line 3278 like so:
> call _D10xmlparser25parseFZv at PC32
> The LDC version has 14,347 line and calls parse() for the first
> time on line 155 like so:
> call _D10xmlparser25parseFZv
> However, I'm no expert on asm so it's anyone's guess but mine.
> But I'm willing to learn.
I would suggest doing the following:
dmd -c file.d -offiledmd.o
ldc2 -c file.d -of=fileldc.o
objdump -M intel -dr filedmd.o > filedmd.s
objdump -M intel -dr fileldc.o > fileldc.s
Then you'll have all the info you need and hopefully a lot less
of what you don't need
What you're looking for is the definition of parse, like
or similar and then seeing if there's anything much in the
function body below.
More information about the digitalmars-d-ldc