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.