Hi all! Attached a three part series which implements the very first bits of my GSoC proposal (full proposal is here http://pastebin.com/e9JMZNCE), for some preliminary review. -- Sanjoy Das http://playingwithpointers.com -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Adds-relevant-command-line-options.patch Type: text/x-diff Size: 2021 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110419/357bff57/attachment.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Creates-space-for-code-to-be-added-next.patch Type: text/x-diff Size: 6932 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110419/357bff57/attachment-0001.patch> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-X86-specific-code-to-support-segmented-stacks.patch Type: text/x-diff Size: 6630 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110419/357bff57/attachment-0002.patch>
On 11-04-19 2:24 PM, Sanjoy Das wrote:> Hi all! > > Attached a three part series which implements the very first bits of my > GSoC proposal (full proposal is here http://pastebin.com/e9JMZNCE), for > some preliminary review.Nice! Just some quick comments: In the Interoperability section it looks like you want to implement something that is compatible with gcc. This is a great thing to have, but it might be possible to implement something that is not linker dependent if you wish to. Instead of having split stacks be a per compilation unit thing, it can be a characteristic of each function (using a new calling convention for example). The compiler option then becomes "mark all functions in this compilation unit as split stacks"). A function that calls functions without this mark will get a large stack block in the prologue. When doing LTO regular functions can be optimized to split stacks. This might also be handy for handling "hard" (vargs, dynamic stack allocation) functions: just don't mark them. Again, just some toughs. Looks great as is too! Cheers, Rafael