[LLVMdev] RefineAbstractType
David Greene
dag at cray.com
Fri Nov 14 16:31:06 PST 2008
On Thursday 13 November 2008 18:27, David Greene wrote:
> On Wednesday 12 November 2008 19:13, Chris Lattner wrote:
> > You shouldn't be refining the pointer, you should use:
> >
> > t1->refineAbstractType(t2)
>
> Ok, I tried this and I get further. But the type system seems to have
> trouble when refining multiple types and those types resolve to the same
> thing. I turned on DEBUG_MERGE_TYPES to illustrate:
Attached is some code that illustrates what I think is the problem.
Compile with
g++ -D__STDC_LIMIT_MACROS -I<path to LLVM headers> -L<path to LLVM libraries>
-lLLVMCore -lLLVMSupport -lLLVMSystem -ldl
(I built with LLVM 2.4)
Output:
i32 (\1)
opaque (i32)
This looks totally wrong. Am I using refineAbstractTypeTo incorrectly?
I think what's happening is the internal type confusion exhibited in the
output above is propagating through our compiler and eventually causes
bad stuff to happen. When I step through in the debugger I see weird
unrelated types like the opaque (i32) above.
-Dave
-------------- next part --------------
A non-text attachment was scrubbed...
Name: refine.cc
Type: text/x-c++src
Size: 983 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081114/d5b04336/attachment.cc>
More information about the llvm-dev
mailing list