December 23, 2009
i've tested g++, gdc & dmd on an ordinary task - processing compressed data w using zlib all compilers're made from sources, target - gentoo x32 i686

c++ & d codes are simplest & alike

but, dmd makes faster result then g++
and gdc loses g++ 'cause gdc'es not have any optimization options

gdc makes slower code then dmd and does'nt support d 2.0, so it's useless

so ... i'm waiting for dmd x64

== Repost the article of Travis Boucher (boucher.travis@gmail.com) == Posted at 2009/12/23 01:51 to digitalmars.D

bearophile wrote:
> Travis Boucher:
>> Although it's design  promotes all sorta of optimization techniques, its stillpretty young  (compared to gcc) and just doesn't have all of the optimization stuff  gcc has.
>
> I havealready done hundred of tests and benchmarks with LDCand llvm-
gcc, and I'm startingto understand its optimizations. I am mostly ignorant of LLVM still, but I'm givinga bit of help tuning it, this improvement was motivated by me:
> http://blog.llvm.org/2009/12/advanced-topics-in-redundant-load.html
>
> Compared to GCC LLVM lacks vectorization (this can be important for certain heavynumerical computing code), profile-
guided optimization (this is usually less important, it's uncommon that it gives more than 5-25% performance improvement), but it has a link-
time optimizationsthat gcc lacks (about as important asprofile-
guided optimizationor a little more).
>
> LLVM produces bad X86 floating point code still, but its int/
FP SSE code is about as good asGCC one or better (but it's not vectorized, so far).
>
> GCC is older and itknows few extra small/
tiny optimization tricks, but in most situations they don't create a large difference inperformance, they are often quite specific.
>
> So overall LLVM maysometime produce a little slower code, but in manysituations it's aboutas goodor evenbetter (I can show a large amount of caseswhere LLVM isbetter). So the asm quality difference is smaller than you seem to imply. If the size of such performancedifferences are importantfor you, then you may want touse the Intel compilerinsteadof GCC, because it's sometimes better than GCC.
>
> Bye,
> bearophile


I am not trying to getinto the benchmark game, for every exampleof gcc generating better code then llvm, there could be an example of llvm generating better code then gcc.

What I was trying to state is theoverall differences between the two:

  - ldc supports newer versions of the dmd front end then gcc.   - gdc tend togenerate better code then ldc (in many cases)   - gdc supports more targets (the codegenerator, not the runtime)

I personallyuse an old-ass gdc because it works for what I need.  I'd like to switch to ldc, but there is limited support for my target platform.

December 23, 2009
alkor wrote:
> i've tested g++, gdc & dmd on an ordinary task - processing compressed data w using zlib
> all compilers're made from sources, target - gentoo x32 i686
> 
> c++ & d codes are simplest & alike
> 
> but, dmd makes faster result then g++
> and gdc loses g++ 'cause gdc'es not have any optimization options
> 
> gdc makes slower code then dmd and does'nt support d 2.0, so it's useless
> 
> so ... i'm waiting for dmd x64
> 

If you can't get gdc to generate optimized code, then you are using it wrong.
Top | Discussion index | About this forum | D home