[LLVMdev] Port to Solaris' Sun Studio 8

Michael Smith Michael.Smith at synopsys.com
Tue Mar 14 14:34:27 PST 2006


Hi all. A company I'm working for is interested in using LLVM as a part
of a larger suite of products, and I'm in charge of porting it to Sun
Studio 8, one of the compilers that our product builds on. I've made
reasonable progress, and for the most part the compiler's co-operating,
however I'm running into a problem I believe is with template
resolution, and I'm looking for any input on where the problem might be.

 

When compiling LoadValueNumbering.cpp, I get the following errors:

"~/bin/../src/include/llvm/Support/Casting.h", line 51: Error: Could not
find a match for llvm::AllocationInst::classof(const
llvm::ilist_iterator<llvm::Instruction>*).

"~/bin/../src/include/llvm/Support/Casting.h", line 68:     Where: While
instantiating "llvm::isa_impl<llvm::AllocationInst,
llvm::ilist_iterator<llvm::Instruction>>(const
llvm::ilist_iterator<llvm::Instruction>&)".

"~/bin/../src/include/llvm/Support/Casting.h", line 68:     Where:
Instantiated from non-template code.

 

This seems to be linked with line 364 in LoadValueNumbering.cpp, and my
best guess is that the template struct simplify_type in ilist isn't
being picked up for some reason, so classof gets an ilist_iterator as an
argument rather than the object the iterator points to. It happens every
time I try to dyn_cast<...>(I) where I is an ilist_iterator, but in
other cases I got around it by manually retrieving the iterator's value
with dyn_cast<...>(&*I). On line 364 this technique doesn't work.

 

~Michael

 

P.S. Once I'm done with the port, I'd be happy to check in a version on
your cvs if the project is interested.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060314/822168d9/attachment.html>


More information about the llvm-dev mailing list