search for: setup_new_block

Displaying 9 results from an estimated 9 matches for "setup_new_block".

2011 Mar 28
2
[LLVMdev] RFC: GSoC Project
...or the ones which don't, we can assume some worst-case upper bound. Since the block size is a constant power of two, this can be done using a bitwise and and an integer comparison. If there isn't enough space in the current block, the control jmps (does not call) to a naked function (called setup_new_block) *** setup_new_block: setup_new_block will be small naked function emitted into all programs being compiled with segmented stacks. It does the following: 1. Checks if the current block's next pointer is populated or not. 2. In case it isn't (i.e. is NULL), it allocates a new block, sets...
2011 Mar 23
0
[LLVMdev] RFC: GSoC Project
On Wed, Mar 23, 2011 at 03:37:02PM +0530, Sanjoy Das wrote: > I intend to start with the simplest possible approach - representing the > stack as a doubly linked list of _block_s, the size of each _block_ > being a power of two. This can later be modified to improve performance > and accommodate other factors. Blocks will be chained together into a > doubly linked list structure
2011 Apr 11
2
[LLVMdev] RFC: GSoC Project
...e. This will be the first block in the chain of blocks to follow. The structure of the block will be similar to the structure of a regular stack block, except that it will also have space to store two registers - this_ip and this_sp. The prologue of a co-routine will jump to a function similar to setup_new_block (setup_new_block_coroutine) which will work like setup_new_block, except: 1. It will first check if saved_stack is NULL. If it is NULL, it will allocate a new block and save it to saved_stack. It if isn't, it'll simply restore saved_sp, saved_ip. 2. In case a new block was allocated, it w...
2011 Mar 23
5
[LLVMdev] RFC: GSoC Project
Hi All! I will be applying to the LLVM project for this GSoC, and I wanted some preliminary sanity check on my project idea. I intend to implement split (segmented) stacks for LLVM (like we have in Go, and as being implemented for GCC [1]). A lot of what follows is lifted from [1]; I will progressively add more details as I get more familiar with the LLVM codebase. I intend to start with
2011 Apr 11
0
[LLVMdev] RFC: GSoC Project
...n the chain of blocks to follow. > > The structure of the block will be similar to the structure of a regular > stack block, except that it will also have space to store two registers > - this_ip and this_sp. > > The prologue of a co-routine will jump to a function similar to > setup_new_block (setup_new_block_coroutine) which will work like > setup_new_block, except: > > 1. It will first check if saved_stack is NULL. If it is NULL, it will > allocate a new block and save it to saved_stack. It if isn't, it'll > simply restore saved_sp, saved_ip. > > 2. In cas...
2011 Apr 11
2
[LLVMdev] RFC: GSoC Project
...low. >> >> The structure of the block will be similar to the structure of a regular >> stack block, except that it will also have space to store two registers >> - this_ip and this_sp. >> >> The prologue of a co-routine will jump to a function similar to >> setup_new_block (setup_new_block_coroutine) which will work like >> setup_new_block, except: >> >> 1. It will first check if saved_stack is NULL. If it is NULL, it will >> allocate a new block and save it to saved_stack. It if isn't, it'll >> simply restore saved_sp, saved_ip....
2011 Apr 11
0
[LLVMdev] RFC: GSoC Project
...t; The structure of the block will be similar to the structure of a regular >>> stack block, except that it will also have space to store two registers >>> - this_ip and this_sp. >>> >>> The prologue of a co-routine will jump to a function similar to >>> setup_new_block (setup_new_block_coroutine) which will work like >>> setup_new_block, except: >>> >>> 1. It will first check if saved_stack is NULL. If it is NULL, it will >>> allocate a new block and save it to saved_stack. It if isn't, it'll >>> simply restore...
2011 Apr 11
0
[LLVMdev] RFC: GSoC Project
On Sun, Apr 10, 2011 at 4:16 PM, Chris Lattner <clattner at apple.com> wrote: > > On Apr 10, 2011, at 2:45 PM, Talin wrote: > > I wonder - would something like this allow for multiple stacks for a single > thread? I'm thinking of something like continuations / fibers / green > threads, which would be very handy. > > > I haven't looked at the proposal, but
2011 Apr 10
2
[LLVMdev] RFC: GSoC Project
On Apr 10, 2011, at 2:45 PM, Talin wrote: > I wonder - would something like this allow for multiple stacks for a single thread? I'm thinking of something like continuations / fibers / green threads, which would be very handy. I haven't looked at the proposal, but yes, this would be very useful functionality for LLVM to provide. -Chris > > On Wed, Mar 23, 2011 at 3:07 AM,