[LLVMdev] dragonegg vs -ffast-math?

Duncan Sands baldrick at free.fr
Wed Oct 6 09:19:54 PDT 2010


Hi Jack,

>     Thanks. I can confirm this is in fact fixed in current dragonegg svn. On a different
> question, what are the prospects getting aermod to compile under dragonegg? I am still
> seeing compile failures of the form...
>
> de-gfortran45 -ffast-math -funroll-loops -msse3 -O3 aermod.f90 -o aermod
> Assertion failed: ((NumParams == FTy->getNumParams() || (FTy->isVarArg()&&  NumParams>  FTy->getNumParams()))&&  "Calling a function with bad signature!"), function init, file /sw/src/fink.build/llvm-clang-2.8-1/llvm-2.8/lib/VMCore/Instructions.cpp, line 242.
> *** WARNING *** there are active plugins, do not report this as a bug unless you can reproduce it without enabling any plugins.
>
> This also seems to be the same failure preventing capacita.f90, gas_dyn.f90, induct.f90, protein.f90, rnflow.f90 and
> test_fpu.f90 from compiling.

this is caused by bogusness coming out of the Fortran front-end.  For example,
it likes to declare functions that take four integer parameters, but at call
sites only one parameter is passed, an array of four integers.  Inside gcc this
all comes out in the wash somehow (I don't know how the inliner sorts this kind
of thing out...), but in dragonegg it triggers the assertions you see.

I have a grand plan for fixing this, which will also result in no gcc patches
being needed any more on linux, what a deal!  I've started on it; my goal is
to have it ready for 2.9.

Ciao,

Duncan.



More information about the llvm-dev mailing list