Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] Segmented Stacks: Breaking libgcc compatibility"
2011 Aug 12
0
[LLVMdev] Segmented Stacks: Breaking libgcc compatibility
Hi Sanjoy,
> I've been working on implementing support for segmented stacks in LLVM
> (towards GSoC '11). Currently I'm working on adding intrinsics for
> coroutines. The problem is this:
>
> Till now I had been depending on libgcc for runtime support (and was
> being 100% libgcc compatible in the process). However, since all the
> stack allocation routines in
2011 May 31
0
[LLVMdev] [Segmented Stacks] Week 1
On 11-05-30 07:20 AM, Sanjoy Das wrote:
> Hi!
>
> I've attached my first week of work as a patchset for review. This is
> also available on Github [1].
>
> By next Monday I intend to (more or less) finish up the preliminary
> parts concerning the codegen; and start working on the runtime (so that
> I can do a basic sanity check).
Thanks!. Some quick notes
*) Maybe you
2011 Jun 23
2
[LLVMdev] [Segmented Stacks] Week 1
Sorry for the delay in responding.
On Mon, 13 Jun 2011, Rafael Avila de Espindola wrote:
> On 11-06-02 07:47 PM, Peter Lawrence wrote:
>> Guys,
>> regarding alloca.
>>
>> not only are exceptions a problem here, but just plain old "longjmp".
>
> Yes,
> On IRC Sanjoy pointed out that it should be possible to handle this by
> changing longjmp. I am
2011 May 30
2
[LLVMdev] [Segmented Stacks] Week 1
Hi!
I've attached my first week of work as a patchset for review. This is
also available on Github [1].
By next Monday I intend to (more or less) finish up the preliminary
parts concerning the codegen; and start working on the runtime (so that
I can do a basic sanity check).
[1] https://github.com/sanjoy/llvm/tree/segmented-stacks
--
Sanjoy Das
http://playingwithpointers.com
2011 Jun 02
2
[LLVMdev] [Segmented Stacks] Week 1
Guys,
regarding alloca.
not only are exceptions a problem here, but just plain old "longjmp".
-Peter Lawrence.
On Jun 1, 2011, at 10:00 AM, llvmdev-request at cs.uiuc.edu wrote:
> ------------------------------
>
> Message: 4
> Date: Tue, 31 May 2011 16:55:07 -0400
> From: Rafael Avila de Espindola <rafael.espindola at gmail.com>
> Subject: Re:
2011 Jul 28
4
[LLVMdev] [RFC] Coroutines
Hi llvmdev!
I've been working on adding coroutines to LLVM. Mentioned below is the
implementation plan I'm following, for suggestions, flames and other
input. Using segmented stacks is a prerequisite.
The idea is to associate every coroutine with a coroutine descriptor. A
coroutine descriptor consists of four words: w0, w1, w2 and w3.
w0 always contains the _launcher_, and invoking a
2011 Jun 13
0
[LLVMdev] [Segmented Stacks] Week 1
On 11-06-02 07:47 PM, Peter Lawrence wrote:
> Guys,
> regarding alloca.
>
> not only are exceptions a problem here, but just plain old "longjmp".
Yes,
On IRC Sanjoy pointed out that it should be possible to handle this by
changing longjmp. I am not sure it can be done in general. The alloca
might have been called a dynamic number of times for example.
In fact, now that I
2011 Jun 23
0
[LLVMdev] [Segmented Stacks] Week 1
On Thu, Jun 23, 2011 at 03:21:58PM -0400, Brian Hurt wrote:
> Segmented stacks are exciting to me, but only if the stacklets can be
> freed. Here's why: if segmented stacks allow for "infinite" stacks, tail
> call optimization becomes a lot less important in functional languages-
> still useful, but not live or die.
We discussed this on IRC a while ago. IMHO it is
2011 Aug 04
0
[LLVMdev] [RFC] Coroutines
On 07/28/2011 05:31 PM, Sanjoy Das wrote:
> Hi llvmdev!
>
> I've been working on adding coroutines to LLVM. Mentioned below is the
> implementation plan I'm following, for suggestions, flames and other
> input. Using segmented stacks is a prerequisite.
I think my only comment is that, while this would probably work,
implementing it in C with a bit of assembly for
2011 Aug 15
4
[LLVMdev] Segmented Stacks: Pre-midterm work
Hi!
I've been working on coroutines for some time, and it seems you were
right - it makes much more sense to have regular C (and assembly) code
for handling coroutines. For instance, I'd otherwise would have to
make an assumption about the threading model the platform has (or
assume there are no threads at all, which prevents me from allowing
goroutine like ("run parallel till you
2011 Jul 14
0
[LLVMdev] [PATCH] Segmented Stacks
On Thu, Jul 14, 2011 at 9:07 AM, Sanjoy Das
<sanjoy at playingwithpointers.com>wrote:
> Hi llvm-dev!
>
> I have attached the current state of my GSoC work in patches [1] for
> review; this currently allows LLVM to correctly handle functions running
> out of stack space and variable sized stack objects.
>
> Firstly, since I think it is better to get things merged in
2010 Apr 12
0
[LLVMdev] Proposal: stack/context switching within a thread
I'm very interested in seeing support for stack/context switching in LLVM, if only for prototyping language ideas. I'm particularly interested in mechanisms that would make it possible to implement full asymmetric coroutines as described in "Revisiting Coroutines" (Moura & Ierusalimschy, Feb 2009 TOPLAS). From skimming the thread and looking at the llvm-stack-switch wiki, it
2016 Jul 21
2
RFC: LLVM Coroutine Representation, Round 2
cc llvm-dev
On Thu, Jul 21, 2016 at 9:57 AM, Vadim Chugunov <vadimcn at gmail.com> wrote:
> Hi Gor,
> Does you design support resumption with parameter(s)? (such as Python's
> generator.send(x)). I suppose the "promise" could be used for passing data
> both ways, but if that's the plan, please mention this explicitly in the
> design doc.
> Also, how is
2011 Aug 10
2
[LLVMdev] Segmented Stacks: Pre-midterm work
Hi!
Attached my pre-midterm GSoC work for segmented stacks for review (with
the required fixes).
Thanks!
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-New-command-line-option-to-enable-segmented-stacks.patch
Type: text/x-diff
Size: 1699 bytes
Desc: not available
URL:
2011 Aug 15
0
[LLVMdev] Segmented Stacks: Pre-midterm work
On 08/10/2011 11:03 AM, Sanjoy Das wrote:
> Hi!
>
> Attached my pre-midterm GSoC work for segmented stacks for review (with
> the required fixes).
Nice work!
+ extern bool EnableSegmentedStacks;
Can you add a comment like the other declarations?
I think the patch looks good. There are possible improvements, but the
patch is already in an state where it can be tested and extended
2016 Jun 09
6
Fwd: [RFC] LLVM Coroutines
Hi all:
Below is a proposal to add experimental coroutine support to LLVM. Though this
proposal is motivated primarily by the desire to support C++ Coroutines [1],
the llvm representation is language neutral and can be used to support
coroutines in other languages as well.
Clang + llvm coroutines allows you to take this code:
generator<int> range(int from, int to) {
for(int i =
2011 Jul 14
3
[LLVMdev] [PATCH] Segmented Stacks
Hi llvm-dev!
I have attached the current state of my GSoC work in patches [1] for
review; this currently allows LLVM to correctly handle functions running
out of stack space and variable sized stack objects.
Firstly, since I think it is better to get things merged in small
chunks, I'd like to have some specific feedback on where my work stands
in terms of mergeability.
Secondly, I had been
2019 Dec 26
2
[RFC] Coroutines passes in the new pass manager
Hello all,
It's been a month since my previous email on the topic, and since then
I've done some initial work on porting the coroutines passes to the
new pass manager. In total there are 6 patches -- that's a lot to
review, so allow me to introduce the changes being made in each of
them.
# What's finished
In these first 6 patches, I focused on lowering coroutine intrinsics
2018 Jan 12
0
RFC: attribute synthetic("reason")
That all makes sense.
I don't think the name "synthetic" is all that intuitive, though. Enum
attributes are pretty cheap, maybe we should try to use a name closer to
what we're trying to implement? For example, we could add a new
"coroutine_foo" attribute for every coroutine style we implement. We
would have analysis helper functions to answer questions like "is
2018 Jan 10
3
RFC: attribute synthetic("reason")
Summary
I would like to propose that we add the following function attribute to LLVM:
synthetic(<string>)
This attribute can only be applied to functions. It is not a semantic statement about the function it decorates. It is, instead, an explicit directive to LLVM to not attempt to propagate information about the function body outside of the function, including by changing the