Displaying 20 results from an estimated 500 matches similar to: "[LLVMdev] Adding a custom GC safe point creation phase"
2011 Nov 01
2
[LLVMdev] Adding a custom GC safe point creation phase
Thanks for the review Gordon.
On Tue, Nov 1, 2011 at 2:21 AM, Gordon Henriksen <gordonhenriksen at mac.com>wrote:
> On 2011-10-31, at 17:21, Nicolas Geoffray wrote:
>
> > Here's a patch to allow a GCStrategy to customize the places where it
> wants to insert safe points. I'm not sure who maintains the GC code today
> in LLVM (I'd be happy to take ownership, if
2011 Nov 01
0
[LLVMdev] Adding a custom GC safe point creation phase
On Nov 1, 2011, at 4:47 AM, Nicolas Geoffray <nicolas.geoffray at gmail.com> wrote:
> Thanks for the review Gordon.
>
> On Tue, Nov 1, 2011 at 2:21 AM, Gordon Henriksen <gordonhenriksen at mac.com> wrote:
> On 2011-10-31, at 17:21, Nicolas Geoffray wrote:
>
> > Here's a patch to allow a GCStrategy to customize the places where it wants to insert safe points.
2011 Nov 01
0
[LLVMdev] Adding a custom GC safe point creation phase
On 2011-10-31, at 17:21, Nicolas Geoffray wrote:
> Here's a patch to allow a GCStrategy to customize the places where it wants to insert safe points. I'm not sure who maintains the GC code today in LLVM (I'd be happy to take ownership, if needed).
>
> The patch just adds up a custom safepoints flag, similar to the way the GCStrategy can customize intrinsics lowering, or
2011 Oct 08
0
[LLVMdev] Initializing GC roots
On Oct 6, 2011, at 17:19, Yiannis Tsiouris wrote:
> Hello all,
>
> I set: InitRoots = true; in my gc plugin as i want the roots to be
> initialized to the "null" value.
> Is there a way to define which value should be the initial one? For
> example, i would like to initialize my roots to -5 (tagged, null value
> for the GC in my runtime system) instead of 0.
>
2014 Feb 24
2
[LLVMdev] Pointer vs Integer classification (was Re: make DataLayout a mandatory part of Module)
On 02/24/2014 11:27 AM, Andrew Trick wrote:
>
> On Feb 24, 2014, at 11:17 AM, Philip Reames <listmail at philipreames.com
> <mailto:listmail at philipreames.com>> wrote:
>
>>
>> On 02/24/2014 12:45 AM, Andrew Trick wrote:
>>>
>>> On Feb 21, 2014, at 10:37 AM, Philip Reames
>>> <listmail at philipreames.com <mailto:listmail at
2011 Nov 23
0
[LLVMdev] GC plugin: Not add (postcall) safe point after tail-call
Hi all,
I have implemented a GC plugin and i want to exclude Tail-call instructions
from being considered as Safe Points. For that reason I have overwritten
the "findCustomSafePoints" function with something like that:
bool ErlangGC::findCustomSafePoints(GCFunctionInfo &FI, MachineFunction
&MF) {
for (MachineFunction::iterator BBI = MF.begin(),
2008 Aug 17
0
[LLVMdev] [!] Breaking changes to GC infrastructure
Hi all,
In order to support linking AsmWriter separately from CodeGen, the
Collector class (a CodeGen component) had to be decoupled from the
AsmWriter interface. This required moving the beginAssembly and
endAssembly methods to a separate abstract base class. If you had
overridden these methods, your class may compile successfully but fail
at runtime with a message of the form:
2013 Oct 23
2
[LLVMdev] GC StackMaps (was Stackmap and Patchpoint Intrinsic Proposal)
Hi all,
I don't know if I understand everything, but it seems really
interesting for a runtime developer, stackmap and patchpoint looks
perfect for a lot of optimizations :) I just have few question to
verify if I understand what are these stackmaps and patchpoints, and I
discuss the GC after.
* I have a first very simple scenario (useful in vmkit). Let's imagine
that we want to lazily
2014 Dec 05
9
[LLVMdev] Future plans for GC in LLVM
Now that the statepoint changes have landed, I wanted to start a
discussion about what's next for GC support in LLVM. I'm going to
sketch out a strawman proposal, but I'm not set on any of this. I
mostly just want to draw interested parties out of the woodwork. :)
Overall Direction:
In the short term, my intent is to preserve the functionality of the
existing code, but migrate
2013 Oct 23
0
[LLVMdev] GC StackMaps (was Stackmap and Patchpoint Intrinsic Proposal)
I'm moving this to a different thread. I think the newly proposed
intrinsic definitions and their current implementation are valuable
regardless of how it gets tied into GC...
On Oct 22, 2013, at 6:24 PM, Philip R <listmail at philipreames.com> wrote:
> Adding Gael as someone who has previously discussed vmkit topics on the list. Since I'm assuming this is where the GC support
2013 Oct 23
5
[LLVMdev] [RFC] Stackmap and Patchpoint Intrinsic Proposal
Adding Gael as someone who has previously discussed vmkit topics on the
list. Since I'm assuming this is where the GC support came from, I
wanted to draw this conversation to the attention of someone more
familiar with the LLVM implementation than myself.
On 10/22/13 4:18 PM, Andrew Trick wrote:
> On Oct 22, 2013, at 3:08 PM, Filip Pizlo <fpizlo at apple.com
> <mailto:fpizlo
2011 Oct 06
2
[LLVMdev] Initializing GC roots
Hello all,
I set: InitRoots = true; in my gc plugin as i want the roots to be
initialized to the "null" value.
Is there a way to define which value should be the initial one? For
example, i would like to initialize my roots to -5 (tagged, null value
for the GC in my runtime system) instead of 0.
Ofcourse, i could do it in the frontend (storing -5 to all GC roots),
but i was wondering
2011 Feb 17
0
[LLVMdev] llvm.gcroot suggestion
On Wed, Feb 16, 2011 at 4:51 PM, Talin <viridia at gmail.com> wrote:
> I think I'm one of the few people actually using LLVM's support for garbage
> collection, and so far I've found it very difficult to generate code that
> uses llvm.gcroot() correctly.
>
> In the current scheme, it is the frontend's responsibility to insure that
> any intermediate SSA
2010 Oct 23
1
[LLVMdev] [PATCH] Add a GCModuleInfo field to MachineFunction
Hi all,
This patch adds a GCModuleInfo field to the MachineFunction class, to
facilitate the retrieval of a potential GCFunctionInfo attached to the
function. The motivation for the change is to get access in a proper way to
the GC info when generating the function with the JIT. Currently, retrieving
this information requires a lot of hacks (eg VMKit's code
2013 Nov 11
0
[LLVMdev] Improving GC intrinsics in LLVM
A couple people have asked about this, so I wanted to describe my proposals
for improving LLVM's garbage collection intrinsics.
Currently the llvm.gcroot intrinsic associates a set of GC metadata with a
value, specifically a value produced by an alloca instruction. In the
proposed scheme, GC metadata would instead be associated with a *type*.
The most general approach would be to introduce a
2011 Feb 18
3
[LLVMdev] llvm.gcroot suggestion
On Thu, Feb 17, 2011 at 1:07 PM, Talin <viridia at gmail.com> wrote:
> On Wed, Feb 16, 2011 at 4:51 PM, Talin <viridia at gmail.com> wrote:
>
>> I think I'm one of the few people actually using LLVM's support for
>> garbage collection, and so far I've found it very difficult to generate code
>> that uses llvm.gcroot() correctly.
>>
>> In
2010 Apr 08
1
[LLVMdev] Garbage Collection
Thanks for the example code. Its gives a good idea how the shadow stack
works.
But I have another question. Using the shadow stack is a nice and simple
way to implement GC, but it might have a large runtime overhead per
function call. Is there another way to preserve garbage specific
information (gcroots) through the llvm optimizer and native code
generator? This information could be used to
2014 Feb 24
2
[LLVMdev] Pointer vs Integer classification (was Re: make DataLayout a mandatory part of Module)
On 02/24/2014 12:45 AM, Andrew Trick wrote:
>
> On Feb 21, 2014, at 10:37 AM, Philip Reames <listmail at philipreames.com
> <mailto:listmail at philipreames.com>> wrote:
>
>>
>> On 02/14/2014 05:55 PM, Philip Reames wrote:
>>> Splitting out a conversation which started in "make DataLayout a
>>> mandatory part of Module" since the
2012 Oct 18
2
[LLVMdev] Bug in LowerIntrinsics::PerformDefaultLowering ?
Hi,
I noticed that in line 288-289 of lib/CodeGen/GCStrategy.cpp there is a
loop:
> for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) {
> for (BasicBlock::iterator II = BB->begin(), E = BB->end();
> II != E;) {
E is used both for F.end() and for BB->end(). Is this intended?
-Y.
--
Yiannis Tsiouris
Ph.D.
2010 Oct 10
1
[LLVMdev] More questions about non_lazy_ptr
I have a problem where my LLVM-generated code works on Linux but not on OS
X, and the problem involves non_lazy_ptr.
I have an external symbol named "@gc_safepoint_map", which is generated by
the linker's GCStrategy plugin. Since it is not generated until link time, I
declared it as an external symbol so that the modules that use it can
compile without error.
Here's what the