Cleaned up C++

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Fri Apr 24 16:20:47 PDT 2015


On 4/24/2015 5:59 AM, John Colvin wrote:
> one reason why it might be faster is that e.g. gcc can produce code like this:
>
> #include<alloca.h>
>
> void bar(char* a);
>
> void foo(unsigned int n)
> {
>    char *a = (char*)alloca(n);
>    bar(a);
> }
>
> foo:
>      movl    %edi, %eax
>      pushq    %rbp
>      addq    $46, %rax
>      movq    %rsp, %rbp
>      shrq    $4, %rax
>      salq    $4, %rax
>      subq    %rax, %rsp
>      leaq    31(%rsp), %rdi
>      andq    $-32, %rdi
>      call    bar
>      leave
>      ret
>
> which is neat.

It's a cowboy implementation that's fine until it someone tries a largish value 
of n.



More information about the Digitalmars-d mailing list