Displaying 20 results from an estimated 30 matches for "gcwriting".
Did you mean:
gcwriteint
2004 Jul 21
0
[LLVMdev] GC questions.
Hi, I'm thinking out loud, please give me some feedback.
Regarding llvm.gcread and llvm.gcwrite, wouldn't it be nicer if they are
implemented as:
llvm.gcread(sbyte** object, uint offset)
llvm.gcwrite(sbyte* data, sbyte** object, uint offset)
Where you also have the offset into the object. In this way the GC would
know where the header of the object we are reading/writing to is. Also
2004 Jul 19
3
[LLVMdev] GC questions.
On Mon, 19 Jul 2004, Tobias Nurmiranta wrote:
> > Not currently. In the future this will definitely be improved. In
> > particular, when the code generators are enhanced to provide more accurate
> > mapping information for GC pointers (e.g. which registers contain
> > pointers), we can do this. This is in the long term plans, but I suspect
> > that performance will
2009 Mar 01
2
[LLVMdev] Why LLVM should NOT have garbage collection intrinsics
Gordon Henriksen wrote:
>
> The "runtime interface" is a historical artifact. LLVM does not impose
> a runtime library on its users. I wouldn't have a problem deleting all
> mention of it, since LLVM does not impose a contract on the runtime.
>
Excellent, I found it somewhat unhelpful!
>> The semantics of llvm.gcroot are vague:
>> "At
2004 Jul 21
2
[LLVMdev] GC questions.
On Wed, 21 Jul 2004, Tobias Nurmiranta wrote:
>
> Hi, I'm thinking out loud, please give me some feedback.
>
> Regarding llvm.gcread and llvm.gcwrite, wouldn't it be nicer if they are
> implemented as:
>
> llvm.gcread(sbyte** object, uint offset)
> llvm.gcwrite(sbyte* data, sbyte** object, uint offset)
>
> Where you also have the offset into the object. In
2009 Feb 27
1
[LLVMdev] Why LLVM should NOT have garbage collection intrinsics[MESSAGE NOT SCANNED]
Hi,
I realise this might be a bit controversial ;)
Suppose I am writing a VM (such as VMKit), or a VM toolkit, and I want
to add a generational GC.
If I want to use the llvm.gcwrite intrinsic for my write barrier then
I need to write a GC and then implement for each and *every* backend the
gcwrite intrinsic for my write barrier.
Now, if I don't use the intrinsic, I need to write my write
2009 Mar 01
0
[LLVMdev] Why LLVM should NOT have garbage collection intrinsics
On 2009-03-01, at 05:41, Mark Shannon wrote:
> Gordon Henriksen wrote:
>
>>> The semantics of llvm.gcroot are vague: "At compile-time, the code
>>> generator generates information to allow the runtime to find the
>>> pointer at GC safe points."
>>>
>>> Vague, ill-specified interfaces are worse than none.
>>
>>
2004 Jul 21
0
[LLVMdev] GC questions.
On Wed, 21 Jul 2004, Chris Lattner wrote:
>
> Yes, this makes a tremendous amount of sense. Do you think you could
> prepare some patches to make this happen? If you have any questions, feel
> free to ask :)
Ok, a patch[1] is attached. I didn't care to coerce the offset, since I
assume that it is an uint, but maybe I should? Hopefully I've understood
the llvm source
2004 Jul 21
0
[LLVMdev] GC questions.
Ok, that makes sense :).
, Tobias
On Wed, 21 Jul 2004, Chris Lattner wrote:
> On Wed, 21 Jul 2004, Tobias Nurmiranta wrote:
> > > void *llvm_gc_read(void *ObjPtr, void **FieldPtr) {
> > > return *FieldPtr;
> > > }
> >
> > Hm, but doesn't FieldPtr need to be calculated target-specific in those
> > cases?
>
> For the field pointer, one
2009 Nov 22
1
[LLVMdev] question on the ocaml compatible collector
Browsing
http://llvm.org/releases/2.5/docs/GarbageCollection.html#ocaml
I stumbled across the sentence
"...The ocaml collector does not use read or write barriers, so the
user program may use load and store instead of llvm.gcread and
llvm.gcwrite..."
Which I believe is wrong as the ocaml collector does indeed use a
write barrier (caml_modify). But maybe I misunderstood?
Thanks,
2008 Feb 04
3
[LLVMdev] 2.2 garbage collector questions
...ectors supposed to find all living objects? there is
llvm.gcroot for marking objects on the stack,but how do collectors crawl
heap objects? I did not see a way to provide custom mark functions. Are
collectors supposed to rely on the type informations provided by llvm?
2. what about gcreading and gcwriting objects of a different type than i8*?
3. No Intrinsic for allocating gc memory?
4. When passing a gc managed pointer to a c function,how should that
function access the pointer? directly? there seem to be functions for
that in the runtime/ source directory,but it also seems to be meant for
the l...
2004 Jul 21
2
[LLVMdev] GC questions.
On Wed, 21 Jul 2004, Tobias Nurmiranta wrote:
> > void *llvm_gc_read(void *ObjPtr, void **FieldPtr) {
> > return *FieldPtr;
> > }
>
> Hm, but doesn't FieldPtr need to be calculated target-specific in those
> cases?
For the field pointer, one could use the getelementptr instruction:
%pairty = { sbyte, sbyte, int* }
%pairPtr = ...
%fieldptr = getelementptr
2009 Feb 27
2
[LLVMdev] Garbage collection
Mark Shannon wrote:
> Jon Harrop wrote:
>> On Thursday 26 February 2009 17:25:56 Chris Lattner wrote:
>>> In my ideal world, this would be:
>>>
>>> 1. Subsystems [with clean interfaces] for thread management,
>>> finalization, object model interactions, etc.
>>> 2. Within different high-level designs (e.g. copying, mark/sweep, etc)
>>>
2004 Jul 22
2
[LLVMdev] GC questions.
Ok, here's the new patch. (Please tell me if I shouldn't mail patches
directly on the mailing list.)
While I was editing LowerGC.cpp I made a little test (not part of this
patch, but the diff with LowerGC.cpp in cvs is attached). I've added a new
intrinsic called llvm.gcroot_value(sbyte*, sbyte*), which takes a pointer
directly instead and transforms it into an alloca. The idea is the
2009 Mar 05
3
[LLVMdev] Suggestions for improvements to the GC docs.
I'm re-re-reading the "Accurate Garbage Collection with LLVM", and I'm
realizing that there are some parts of this document I find confusing.
1) I think that the term 'stack map' should be defined more precisely.
For example, in one place it says "LVM automatically computes a stack
map", and elsewhere it says "The compiler plugin is responsible for
2009 Feb 27
2
[LLVMdev] Why LLVM should NOT have garbage collection intrinsics
Gordon Henriksen wrote:
> Hi Mark,
>
> I don't think anyone will dispute that it's easier to hack up a shadow
> stack (or plug into a conservative collector) to get up and running
> with GC. That is absolutely the route to go if portability trumps
> performance.
Why? LLVM is all about portability AND performance.
>
> If you review the mailing list history,
2009 Mar 06
0
[LLVMdev] Suggestions for improvements to the GC docs.
Hi Talin,
Thanks for the feedback. My comments inline.
On 2009-03-05, at 16:01, Talin wrote:
> I'm re-re-reading the "Accurate Garbage Collection with LLVM", and
> I'm realizing that there are some parts of this document I find
> confusing.
>
> 1) I think that the term 'stack map' should be defined more
> precisely. For example, in one place it
2009 Feb 27
0
[LLVMdev] Why LLVM should NOT have garbage collection intrinsics[MESSAGE NOT SCANNED]
Hi Mark,
I don't think anyone will dispute that it's easier to hack up a shadow
stack (or plug into a conservative collector) to get up and running
with GC. That is absolutely the route to go if portability trumps
performance.
If you review the mailing list history, I think you'll also find that
developers who do care about performance have been disappointed with
the impact
2009 Feb 27
0
[LLVMdev] Why LLVM should NOT have garbage collection intrinsics
On Feb 27, 2009, at 12:56, Mark Shannon wrote:
> Gordon Henriksen wrote:
>
>> The ultimate endgoal is to support schemes with still-lower
>> execution overhead. The next step for LLVM GC would be elimination
>> of the reload penalty for using GC intrinsics with a copying
>> collector. This, again, requires that the code generator perform
>> bookkeeping
2009 Mar 01
1
[LLVMdev] Why LLVM should NOT have garbage collection intrinsics[MESSAGE NOT SCANNED]
Gordon Henriksen wrote:
> You'll certainly need to map roots on the stack and use write barriers.
>
> • shadow-stack is an easy, portable way to bring up root discovery.
> You can switch to static stack maps later (with the requirement that
> your runtime be able to crawl the machine stack, which is out-of-scope
> for LLVM unless Talin makes some progress with his GC
2006 Mar 09
0
[LLVMdev] Re: Garbage collection questions
I've written a reference-counting garbage collector for LLVM, but I'm
still unclear on a few things.
The following piece of code that appears on
http://llvm.cs.uiuc.edu/docs/GarbageCollection.html is unclear:
;; As the pointer goes out of scope, store a null value into
;; it, to indicate that the value is no longer live.
store %Object* null, %Object** %X
...
How exactly does