Is there a way to get a list of functions that get inlined by

bearophile bearophileHUGS at lycos.com
Tue Feb 9 14:27:59 PST 2010


Scorn:

>But D as a system-programming language with the ambition to be an alternative to C / C++ has, at least in the long term, to compete with C / C++ regarding these things.<

I understand. The problem is that D is a new language with new compilers, so it can't optimize as well as GCC that is compiling C code for so many years.
LDC compiles C-like D1 code well enough, about as well as GCC or better.


>And please make a collection of all the issues you have found so far and but them on a web page somewhere.<

http://www.fantascienza.net/leonardo/js/slow_d.zip


>Which compiler switches do you need for this ?<

Found after few hours of tests of mine plus a suggestion from the LLVM lead developer :-)
For example you have a "temp.d" main module and a "mo.d" imported module:

ldc -O5 -release -inline -output-bc temp.d

ldc -O5 -release -inline -output-bc mo.d

opt -std-compile-opts temp.bc > tempo.bc

opt -std-compile-opts mo.bc > moo.bc

llvm-ld -L/usr/lib/d -native -ltango-ldc -ldl -lm -lpthread -internalize-public-api-list=_Dmain -o=tempo tempo.bc moo.bc


>But the whole thing is easy solvable by not doing just a separate compilation of the modules and then linking them together<

If you take a look at my precedent post ( http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=18822 ) you can see I have found DMD does inline functions from other modules (while LDC doesn't do it, so I have to report this to the ldc devs and not to Walter).

Bye,
bearophile


More information about the Digitalmars-d-learn mailing list