I am trying to add declarations of some functions in a module,
and the following assert is failing
test_task_inst: Type.cpp:130: const Type* Type::getForwardedTypeInternal() const: Assertion `ForwardType && "This type is not being forwarded to another type!"' failed.
Any idea what the bug might be? The code was working about
3 months ago, and I am not aware of any changes that might
cause it to fail.
I am trying to add declarations of some functions in a module,
and the following assert is failing
test_task_inst: Type.cpp:130: const Type* Type::getForwardedTypeInternal() const: Assertion `ForwardType && "This type is not being forwarded to another type!"' failed.
Any idea what the bug might be? The code was working about
3 months ago, and I am not aware of any changes that might
cause it to fail.
I have no idea. When did you last update your tree? What functions are
you trying to add? If you're using the
Function *Module::getOrInsertFunction(const std::string &Name, const Type *RetTy,...);
method, make sure to null terminate the type list.
Just wondering if anyone con compare LLVM JIT with GNU Lightning?
Have we looked at GNU Lightning? While its not complete, neither is
LLVM's JIT. What's to stop us from integrating?
... just an idle thought ..
Just wondering if anyone con compare LLVM JIT with GNU Lightning?
Have we looked at GNU Lightning? While its not complete, neither is
LLVM's JIT. What's to stop us from integrating?
... just an idle thought ..
Hi,
Funny you should ask. We looked at GNU lightning over a year ago when
planning out how to write the JIT. I personally think that LLVM is strictly
more powerful than GNU lightning in many ways; maybe the thing to do,
if there are people out there actually interested in this, would be to
reimplement GNU lightning on top of LLVM. Anyway, today, I wrote up a
small missive comparing GNU lightning and GCC with LLVM; it's kind of
terse, but it should give you a better feel for why we feel this way:
Just out of curiousity, how is the LLVM JIT not complete? While I know
that we are not 'performance complete', we are basically feature complete.
GNU lightning is far from being feature complete (see Brian's post), and
we have better performance than it too.
Actually, I made the “LLVM JIT not complete” comment based on previous emails with you where
you mentioned that it wasn’t. You were probably referring to additional optimizations that could be
implemented but I wasn’t cognizant of that from our previous discussion.
I haven’t looked closely enough at the JIT stuff yet to be able to make a determination on my own
so I’ll just have to take your word for it that its “feature complete” … until I find out otherwise
Actually, I made the "LLVM JIT not complete" comment based on previous
emails with you where you mentioned that it wasn't. You were probably
referring to additional optimizations that could be implemented but I
wasn't cognizant of that from our previous discussion.
Ok, that makes sense. It is not currently "all that it could be", but it
is still quite useful
I haven't looked closely enough at the JIT stuff yet to be able to make
a determination on my own so I'll just have to take your word for it
that its "feature complete" .. until I find out otherwise
The one feature it is missing is support for exception handling. For that
you unfortunately still must use the CBE. I believe that this is the only
"required feature" missing from it though. *shrug*