Displaying 16 results from an estimated 16 matches for "refineabstracttypes".
Did you mean:
refineabstracttype
2008 Nov 13
3
[LLVMdev] RefineAbstractType
...equivalent of:
> >>
> >> %t1 = type opaque
> >> %t2 = type void(%t1*)
> >>
> >> and you refine t1 -> t2, it should work.
> >
> > I'm not sure it will. %t1* is the "contained" type inside the
> > FunctionType.
> > RefineAbstractTypes expects the OldType (%t1 in this case) to be in
> > the
> > contained type set. Since a _pointer_ to %t1 is in the contained
> > set, it
> > doesn't see it.
>
> How is this any different than the struct case of {\2*} ?
I don't know. All I know is when I call...
2008 Nov 13
2
[LLVMdev] RefineAbstractType
...aque
> >>>> %t2 = type void(%t1*)
> >>>>
> >>>> and you refine t1 -> t2, it should work.
> >>>
> >>> I'm not sure it will. %t1* is the "contained" type inside the
> >>> FunctionType.
> >>> RefineAbstractTypes expects the OldType (%t1 in this case) to be in
> >>> the
> >>> contained type set. Since a _pointer_ to %t1 is in the contained
> >>> set, it
> >>> doesn't see it.
> >>
> >> How is this any different than the struct case of {\2...
2008 Nov 13
0
[LLVMdev] RefineAbstractType
...>
>>>> %t1 = type opaque
>>>> %t2 = type void(%t1*)
>>>>
>>>> and you refine t1 -> t2, it should work.
>>>
>>> I'm not sure it will. %t1* is the "contained" type inside the
>>> FunctionType.
>>> RefineAbstractTypes expects the OldType (%t1 in this case) to be in
>>> the
>>> contained type set. Since a _pointer_ to %t1 is in the contained
>>> set, it
>>> doesn't see it.
>>
>> How is this any different than the struct case of {\2*} ?
>
> I don't kno...
2008 Nov 12
2
[LLVMdev] RefineAbstractType
...> pointee types.
>
> What types are you starting out with? If you had the equivalent of:
>
> %t1 = type opaque
> %t2 = type void(%t1*)
>
> and you refine t1 -> t2, it should work.
I'm not sure it will. %t1* is the "contained" type inside the FunctionType.
RefineAbstractTypes expects the OldType (%t1 in this case) to be in the
contained type set. Since a _pointer_ to %t1 is in the contained set, it
doesn't see it.
-Dave
2008 Nov 12
2
[LLVMdev] RefineAbstractType
Is there some reason that RefineAbstractType doesn't recurse down DerivedTypes
and further resolve abstract types?
In Fortran it is possible to have a routine that takes a function pointer to a
routine with the same signature. This is not possible to express in C/C++.
I'm not sure it's possible to express in LLVM either without using varargs
(opinions welcome).
In a simpler C++
2008 Nov 13
0
[LLVMdev] RefineAbstractType
...are you starting out with? If you had the equivalent of:
>>
>> %t1 = type opaque
>> %t2 = type void(%t1*)
>>
>> and you refine t1 -> t2, it should work.
>
> I'm not sure it will. %t1* is the "contained" type inside the
> FunctionType.
> RefineAbstractTypes expects the OldType (%t1 in this case) to be in
> the
> contained type set. Since a _pointer_ to %t1 is in the contained
> set, it
> doesn't see it.
How is this any different than the struct case of {\2*} ?
-Chris
2008 Nov 12
0
[LLVMdev] RefineAbstractType
On Nov 12, 2008, at 2:59 PM, David Greene wrote:
> Is there some reason that RefineAbstractType doesn't recurse down
> DerivedTypes
> and further resolve abstract types?
Because that would resolve two different types. RefineAbstractType
just refines the one type you request, and further uniques types based
on it.
In fact, I strongly suspect that RefineAbstractType
2008 Nov 13
0
[LLVMdev] RefineAbstractType
On Nov 13, 2008, at 2:35 PM, David Greene wrote:
>> t1->refineAbstractType(t2)
>
> Oh, I see.
>
> Then what's the purpose of PointerType::refineAbstractType,
> FunctionType::refineAbstractType, etc.?
They are "internal" implementation details of the refinement system.
-Chris
2008 Nov 14
3
[LLVMdev] RefineAbstractType
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:
*** First function type ***
2010 Aug 03
1
[LLVMdev] Replacing types, use of refineAbstractType
I'm working on a personal project which involves lowering a superset of
LLVM to "vanilla" LLVM. Part of this involves rewriting types. I'm
working off of the 2.6 code base, so this may have been addressed in a bug
fix.
I'm having trouble with refineAbstractType and recursive types.
Specifically, I'm creating opaque types to serve as placeholders for the
final
2008 Nov 15
0
[LLVMdev] RefineAbstractType
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
2009 Jul 10
0
[LLVMdev] void llvm::PATypeHolder::addRef(): Assertion `Ty && "Type Holder has a null type!"' failed.
Hi,
I am using current SVN and in the last week or so, something causing the
following assertion failure has changed.
void llvm::PATypeHolder::addRef(): Assertion `Ty && "Type Holder has a
null type!"' failed.
The corresponding stack trace is:
#0 0x000000339ec332f5 in raise () from /lib64/libc.so.6
#1 0x000000339ec34b20 in abort () from /lib64/libc.so.6
#2
2007 May 03
1
[LLVMdev] which g++ to compile LLVM CVS on Linux/AMD64?
Le Thu, May 03, 2007 at 09:36:22AM -0700, Chris Lattner écrivait/wrote:
> On Thu, 3 May 2007, Basile STARYNKEVITCH wrote:
> >
>
> > FWIW, the latest gcc snapshot from yesterday gcc version 4.3.0 20070501
> > (experimental) fail to compile latest LLVM (with compile errors!).
>
> Please file an llvm bug report with these errors. It may be that we are
> doing
2007 May 03
0
[LLVMdev] which g++ to compile LLVM CVS on Linux/AMD64?
On Thu, 3 May 2007, Basile STARYNKEVITCH wrote:
>
> What version of g++ is usable to compile the latest LLVM CVS snapshot on a
> Linux/x86-64 (AMD64) Debian/ Sid or Etch plateform?
Please look here:
http://llvm.org/docs/GettingStarted.html#brokengcc
I'd suggest late versions of GCC 4.0.x. The 4.1 series has had numerous
problems compiling LLVM on x86-64, though some people have
2007 May 03
3
[LLVMdev] which g++ to compile LLVM CVS on Linux/AMD64?
Hello All,
What version of g++ is usable to compile the latest LLVM CVS snapshot on a
Linux/x86-64 (AMD64) Debian/ Sid or Etch plateform?
What compiler do LLVM dzevelopers use to compile LLVM on Linux/X86-64
systems? IKt seems that most versions of g++ fail to compile LLVM and that
some others compile it wrongly (producing buggy code)?
Why can't g++-4.1 be used?
FWIW, the latest gcc
2006 May 09
1
[LLVMdev] Memory leaks in LLVM
Hi,
Probably some of the leaks Valgrind reports are spurious, but the numbers
seem to be significant enough to demand some attention:
==10132== LEAK SUMMARY:
==10132== definitely lost: 15,624 bytes in 558 blocks.
==10132== indirectly lost: 44,548 bytes in 1,591 blocks.
==10132== possibly lost: 37,576 bytes in 98 blocks.
==10132== still reachable: 1,336,876 bytes in 1,364 blocks.