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: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/ca6ee932/attachment.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-New-StackSegmenter-pass.patch Type: text/x-diff Size: 6943 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/ca6ee932/attachment-0001.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Prologue-code-emission-for-X86.patch Type: text/x-diff Size: 9841 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/ca6ee932/attachment-0002.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-New-SelectionDAG-node-and-two-pseudo-instructions.patch Type: text/x-diff Size: 4316 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/ca6ee932/attachment-0003.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0005-Support-for-variable-sized-allocas.patch Type: text/x-diff Size: 10680 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/ca6ee932/attachment-0004.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0006-Test-code.patch Type: text/x-diff Size: 2198 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/ca6ee932/attachment-0005.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0007-Documentation.patch Type: text/x-diff Size: 6362 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110810/ca6ee932/attachment-0006.patch>
Rafael Ávila de Espíndola
2011-Aug-15 20:02 UTC
[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 by others, so IMHO it is probably good to commit. Duncan, Chris, what do you think? Some possible work items are vaargs, adding optimizations to drop some of the checks, letting the FE select which functions should have it (and adding the no_split_stack attribute to clang), generating .note.GNU-split-stack, etc).> Thanks! > -- > Sanjoy Das > http://playingwithpointers.comCheers, Rafael
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 need to write to a channel") behavior). Right now I'm sort-of dogfooding my work by trying to get Go running on dragonegg. I've discovered some small issues already (for instance I need to save R10 somewhere when compiling a function with a nest parameter). I'll send a revised set of patches within sometime this week, addressing all such issues I can find. That apart, about getting Go to work with dragonegg: 1. Does it sound viable? 2. What things do I need to keep in mind? Currently, I'm passing `-fplugin=./dragonegg.so' to gccgo and have edited dragonegg to enable segmented stacks when it detects the language is "GNU Go". This seems to do what I expect (saving the fact the binaries throw a mysterious SIGILL :) ). Thanks! -- Sanjoy Das http://playingwithpointers.com