Talin
2010-Sep-22 15:52 UTC
[LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
I'm moving this thread to llvm-dev in the hopes of reaching a wider audience. This patch relaxes the restriction on llvm.gcroot so that it can work with non-pointer allocas. The only changes are to Verifier.cpp - it appears from my testing that llvm.gcroot always worked fine with non-pointer allocas, except that the verifier wouldn't allow it. I've used this patch to build an efficient stack crawler (an alternative to shadow-stack that uses only static constant data structures.) Here's a deal: If you accept this patch, I'll write up an extensive tutorial on how to write a stack crawler like mine. (Actually, it's already written, however without this patch the tutorial doesn't make any sense.) -- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100922/b2265924/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: gcroot.patch Type: text/x-patch Size: 1025 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100922/b2265924/attachment.bin>
Talin
2010-Sep-24 16:55 UTC
[LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
...crickets... On Wed, Sep 22, 2010 at 8:52 AM, Talin <viridia at gmail.com> wrote:> I'm moving this thread to llvm-dev in the hopes of reaching a wider > audience. > > This patch relaxes the restriction on llvm.gcroot so that it can work with > non-pointer allocas. The only changes are to Verifier.cpp - it appears from > my testing that llvm.gcroot always worked fine with non-pointer allocas, > except that the verifier wouldn't allow it. I've used this patch to build an > efficient stack crawler (an alternative to shadow-stack that uses only > static constant data structures.) > > Here's a deal: If you accept this patch, I'll write up an extensive > tutorial on how to write a stack crawler like mine. (Actually, it's already > written, however without this patch the tutorial doesn't make any sense.) > > -- > -- Talin >-- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100924/ae5c2b3f/attachment.html>
Chris Lattner
2010-Sep-24 17:00 UTC
[LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
On Sep 22, 2010, at 8:52 AM, Talin wrote:> I'm moving this thread to llvm-dev in the hopes of reaching a wider audience. > > This patch relaxes the restriction on llvm.gcroot so that it can work with non-pointer allocas. The only changes are to Verifier.cpp - it appears from my testing that llvm.gcroot always worked fine with non-pointer allocas, except that the verifier wouldn't allow it. I've used this patch to build an efficient stack crawler (an alternative to shadow-stack that uses only static constant data structures.) > > Here's a deal: If you accept this patch, I'll write up an extensive tutorial on how to write a stack crawler like mine. (Actually, it's already written, however without this patch the tutorial doesn't make any sense.)Hi Talin, I don't think anyone is really using the GC support, other than Nicolas in VMKit. If he's ok with the change, I am too. Please make sure the dox stay up to date though. -Chris
nicolas geoffray
2010-Sep-24 17:44 UTC
[LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
Thanks for the heads up Chris. Talin, how is your GC dealing with non-pointers (be it allocas or not)? What is the use-case (either in C or LLVM)? Nicolas On Fri, Sep 24, 2010 at 7:00 PM, Chris Lattner <clattner at apple.com> wrote:> On Sep 22, 2010, at 8:52 AM, Talin wrote: > > I'm moving this thread to llvm-dev in the hopes of reaching a wider > audience. > > > > This patch relaxes the restriction on llvm.gcroot so that it can work > with non-pointer allocas. The only changes are to Verifier.cpp - it appears > from my testing that llvm.gcroot always worked fine with non-pointer > allocas, except that the verifier wouldn't allow it. I've used this patch to > build an efficient stack crawler (an alternative to shadow-stack that uses > only static constant data structures.) > > > > Here's a deal: If you accept this patch, I'll write up an extensive > tutorial on how to write a stack crawler like mine. (Actually, it's already > written, however without this patch the tutorial doesn't make any sense.) > > Hi Talin, > > I don't think anyone is really using the GC support, other than Nicolas in > VMKit. If he's ok with the change, I am too. Please make sure the dox stay > up to date though. > > -Chris > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100924/6581dc4c/attachment.html>
Reasonably Related Threads
- [LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
- [LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
- [LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
- [LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.
- [LLVMdev] Patch to allow llvm.gcroot to work with non-pointer allocas.