From: | BGB <cr88192@hotmail.com> |
Newsgroups: | comp.compilers |
Date: | Sun, 03 Jul 2011 13:14:35 -0700 |
Organization: | albasani.net |
References: | 11-06-037 11-06-039 11-06-045 11-07-004 11-07-008 |
Keywords: | symbols, design, comment |
Posted-Date: | 07 Jul 2011 00:02:08 EDT |
On 7/2/2011 10:13 AM, Anton Ertl wrote:
> BGB<cr88192@hotmail.com> writes:
>> I am still left to much wish Linux/... had adopted the Win64 ABI
>> instead
>
> That would have been quite an achievement, because the Windows x64 ABI
> came out quite some time after Linux and others adopted the SysV ABI,
> so it would have required looking into the future.
>
an idle wish doesn't need to be within the realm of "could have actually
happened...".
I am half still considering of using a custom calling-convention for
internal calls. I decided to leave out a more detailed description of
the considered register assignments, argument passing, ... and if/when I
would do something like this is uncertain.
I guess it is mostly just the annoyance that SysV is sufficiently
complex that none of my reflective-call stuff interacting with it can do
so particularly efficiently or correctly (lots of nasty cruft here).
also, it seems to interact badly with my C coding practices in general.
I suspect to work well, SysV/AMD64 expects functions accepting lots of
arguments and with most of the execution/computation being in leaf
functions.
coding practices where most of the computation is in non-leaf functions
and leaf-functions are generally short/trivial (such as performing a
simple operation or returning a status value), ... seem to not be the
ideal use-case.
all this seems to lead to my code generally performing somewhat better
on 32-bit x86 systems and on Win64.
for example, my assembler seems to run about 2x slower on 64-bit Linux
than on 64-bit Windows in my tests, ...
I don't imagine my coding practices are all that novel though.
however, other people have benchmarked other programs, and it seems many
types of programs (apparently especially data-compression and encryption
programs) seem to perform better on Linux x86-64 than on Win64 or on
32-bit systems.
it generally seems to be the reverse for larger programs though (web
browsers, games, office-type apps, ...) which seem to generally perform
better on 32-bit systems and on Windows.
granted, I can't claim any objectivity here, given my personal dislike
(in general) of the SysV/AMD64 ABI...
[It is my impression that a lot of languages that allow closures and the
like end up with their own calling sequences. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.