[mono/mono] [2 commits] cb23a4fd: [llvm] Collect used methods only in AOT mode.
| Newsgroups | gmane.comp.gnome.mono.patches |
|---|---|
| Message-ID | <000001426a7aa391-4fb89dfe-f8ef-4e4b-ad75-51f6bf521432-000000@email.amazonses.com> |
Branch: refs/heads/master
Home: https://github.com/mono/mono
Compare: https://github.com/mono/mono/compare/f8e9706a451c...0f197300e90a
Commit: cb23a4fd2f6fdce0e71e477bf409b9c56aa498f2
Author: Zoltan Varga <[email protected]> (vargaz)
Date: 2013-11-18 09:05:23 GMT
URL: https://github.com/mono/mono/commit/cb23a4fd2f6fdce0e71e477bf409b9c56aa498f2
[llvm] Collect used methods only in AOT mode.
Changed paths:
M mono/mini/mini-llvm.c
Modified: mono/mini/mini-llvm.c
===================================================================
@@ -4548,7 +4548,8 @@
if (cfg->verbose_level > 1)
mono_llvm_dump_value (method);
- mark_as_used (ctx->lmodule, method);
+ if (cfg->compile_aot)
+ mark_as_used (ctx->lmodule, method);
if (cfg->compile_aot) {
LLVMValueRef md_args [16];
Commit: 0f197300e90a5959e3055ae780eaa12f97ea0082
Author: Zoltan Varga <[email protected]> (vargaz)
Date: 2013-11-18 09:09:14 GMT
URL: https://github.com/mono/mono/commit/0f197300e90a5959e3055ae780eaa12f97ea0082
[llvm] Disable the LLVM verifier, it does module wide checks leading to quadratic behavior.
Changed paths:
M mono/mini/mini-llvm-cpp.cpp
Modified: mono/mini/mini-llvm-cpp.cpp
===================================================================
@@ -285,7 +285,10 @@ class MonoJITEventListener : public JITEventListener {
void
mono_llvm_optimize_method (LLVMValueRef method)
{
- verifyFunction (*(unwrap<Function> (method)));
+ /*
+ * The verifier does some checks on the whole module, leading to quadratic behavior.
+ */
+ //verifyFunction (*(unwrap<Function> (method)));
fpm->run (*unwrap<Function> (method));
}
@@ -594,7 +597,7 @@ class MonoJITEventListener : public JITEventListener {
}
} else {
/* Use the same passes used by 'opt' by default, without the ipo passes */
- const char *opts = "-simplifycfg -domtree -domfrontier -scalarrepl -instcombine -simplifycfg -domtree -domfrontier -scalarrepl -instcombine -simplifycfg -instcombine -simplifycfg -reassociate -domtree -loops -loop-simplify -domfrontier -loop-simplify -lcssa -loop-rotate -licm -lcssa -loop-unswitch -instcombine -scalar-evolution -loop-simplify -lcssa -iv-users -indvars -loop-deletion -loop-simplify -lcssa -loop-unroll -instcombine -memdep -gvn -memdep -memcpyopt -sccp -instcombine -domtree -memdep -dse -adce -gvn -simplifycfg -preverify -domtree -verify";
+ const char *opts = "-simplifycfg -domtree -domfrontier -scalarrepl -instcombine -simplifycfg -domtree -domfrontier -scalarrepl -instcombine -simplifycfg -instcombine -simplifycfg -reassociate -domtree -loops -loop-simplify -domfrontier -loop-simplify -lcssa -loop-rotate -licm -lcssa -loop-unswitch -instcombine -scalar-evolution -loop-simplify -lcssa -iv-users -indvars -loop-deletion -loop-simplify -lcssa -loop-unroll -instcombine -memdep -gvn -memdep -memcpyopt -sccp -instcombine -domtree -memdep -dse -adce -gvn -simplifycfg";
char **args;
int i;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches