[Mono-dev] MonoJIT&LLVM Crash
C.Wallace
151388520 at qq.com
Fri Jan 4 10:27:11 UTC 2013
I want to use Embeded Mono powered by LLVM.so I Get the Master Version Code
Mono ,and LLVM-Mono Version from GIT.But,when Use the LLVM Version DLL, the
samples crashed.the crash On the: Funtions : bool
FPPassManager::runOnFunction(Function &F) {
PassManagerPrettyStackEntry X(FP, F); TimeRegion
PassTimer(getPassTimer(FP)); --> LocalChanged |= FP->runOnFunction(F);
}the FP is the last pass,and it is a BasicCallGraph, so It did not have a
runOnFunction impl,so,the ESP has been breaken.I am a beginner of MONO&LLVM,
so, i can`t understand why the passMannger Handle the MoudelPass and
FunctionPass as same. and the MoudelPass did not have a runOnFuntion impl.Is
The Code Version i get wrong? or the LLVM Config should be wrong?when i add
a Kind check,as below,it seems work.->>if(FP->getPassKind() != PT_Module)
{ PassManagerPrettyStackEntry X(FP, F); TimeRegion
PassTimer(getPassTimer(FP)); LocalChanged |= FP->runOnFunction(F);
}but i get worst perfomance.LLVM Verison(My Modify Version) cost double time
more than the Org Verison(With out LLVM).My Test Code is static void
Test2() { int i, j, N; double step, x_i, sum; double
interval_begin = 0.0; double interval_end = 2.0 *
3.141592653589793238; for (j = 2; j < 27; j++) { N
= 1 << j; step = (interval_end - interval_begin) / N;
sum = Math.Abs(Math.Sin(interval_begin)) * step / 2.0; for (i =
1; i < N; i++) { x_i = i * step;
sum += Math.Abs(Math.Sin(x_i)) * step; } sum +=
Math.Abs(Math.Sin(interval_end)) * step / 2.0; } }
--
View this message in context: http://mono.1490590.n4.nabble.com/MonoJIT-LLVM-Crash-tp4657981.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20130104/602ecb49/attachment.html>
More information about the Mono-devel-list
mailing list