Current set of patches for my work on segmented stacks. Go / dragonegg seems to work when using this code (I still haven't run any rigorous tests yet). Thanks! (Also on https://github.com/sanjoy/LLVM/tree/segmented-stacks) -- 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/20110818/4f99c1ef/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/20110818/4f99c1ef/attachment-0001.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Prologue-code-emission-for-X86.patch Type: text/x-diff Size: 11639 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110818/4f99c1ef/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/20110818/4f99c1ef/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/20110818/4f99c1ef/attachment-0004.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0006-Test-code.patch Type: text/x-diff Size: 2732 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110818/4f99c1ef/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/20110818/4f99c1ef/attachment-0006.patch>
Hi Sanjoy, The patch generally looks fine except for this part: diff --git a/lib/CodeGen/StackSegmenter.cpp b/lib/CodeGen/StackSegmenter.cpp new file mode 100644 index 0000000..5ffb8f2 --- /dev/null +++ b/lib/CodeGen/StackSegmenter.cpp @@ -0,0 +1,48 @@ +//===-- StackSegmenter.h - Prolog/Epilog code insertion -------*- C++ -* --===// The comment is obviously incorrect. diff --git a/lib/CodeGen/StackSegmenter.h b/lib/CodeGen/StackSegmenter.h new file mode 100644 index 0000000..1284532 --- /dev/null +++ b/lib/CodeGen/StackSegmenter.h @@ -0,0 +1,43 @@ +//===-- StackSegmenter.h - Prolog/Epilog code insertion -------*- C++ -* --===// Please write comment that clearly indicates what the pass would do. A bigger question is why is StackSegmenter.{h|cpp} are for? It's empty as far as I can tell. Evan On Aug 17, 2011, at 12:38 PM, Sanjoy Das wrote:> Current set of patches for my work on segmented stacks. Go / dragonegg > seems to work when using this code (I still haven't run any rigorous > tests yet). > > Thanks! > > (Also on https://github.com/sanjoy/LLVM/tree/segmented-stacks) > -- > Sanjoy Das > http://playingwithpointers.com > <0001-New-command-line-option-to-enable-segmented-stacks.patch><0002-New-StackSegmenter-pass.patch><0003-Prologue-code-emission-for-X86.patch><0004-New-SelectionDAG-node-and-two-pseudo-instructions.patch><0005-Support-for-variable-sized-allocas.patch><0006-Test-code.patch><0007-Documentation.patch>_______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Hi!> diff --git a/lib/CodeGen/StackSegmenter.cpp b/lib/CodeGen/StackSegmenter.cpp > new file mode 100644 > index 0000000..5ffb8f2 > --- /dev/null > +++ b/lib/CodeGen/StackSegmenter.cpp > @@ -0,0 +1,48 @@ > +//===-- StackSegmenter.h - Prolog/Epilog code insertion -------*- C++ -* --===// > > The comment is obviously incorrect.Thanks. So much for lifting file headers. :)> > diff --git a/lib/CodeGen/StackSegmenter.h b/lib/CodeGen/StackSegmenter.h > new file mode 100644 > index 0000000..1284532 > --- /dev/null > +++ b/lib/CodeGen/StackSegmenter.h > @@ -0,0 +1,43 @@ > +//===-- StackSegmenter.h - Prolog/Epilog code insertion -------*- C++ -* --===// > > Please write comment that clearly indicates what the pass would do.Will do.> A bigger question is why is StackSegmenter.{h|cpp} are for? It's empty as far as I can tell.In the `Prologue code emission for X86.', I modify this pass to emit segmented stacks code before function prologues (by calling a function in X86FrameLowering). I organized the code this way since it seemed more elegant than checking for a flag inside the corresponding emitPrologue. -- Sanjoy Das http://playingwithpointers.com