Hi!

I have a question about optimizer.cpp.

For me, it looks like optimizer.cpp duplicates a lot of lib/Transform/IPO/PassManagerBuilder.cpp from LLVM. Is there a good reason not to use this builder? (E.g. clang does use it!)

I rewrote optimizer.cpp to use PassManagerBuilder. This changes the inlining behaviour. If not explicit disabled then inlining is always performed but with different threshholds. This sounds reasonable for me. The net result is that the commandline option -enable-inlining goes away (-disable-inlining is still present).

What surprises me is the fact the global.params.useInline (which guides the DMD frontend inliner) is always false. Is this intentional?

I really like to use PassManagerBuilder because the LLVM folks update this class with new stuff (e.g. the vectorizer). But what should the -inline option from ldmd2 do?

Possible solutions:
- It is an oversight that the DMD frontend inliner is not used. In this case I would introduce a new -inline option in ldc2 to enable the DMD frontend inliner.
- Otherwise the -inline option of ldmd2 becomes a no-op.

Any suggestions?

Regards
Kai

--
You received this message because you are subscribed to the Google Groups "LDC - the 
LLVM D compiler" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/ldc-dev?hl=en.

Reply via email to