Everything described in GarbageCollection.html should now be live. Phew! The collectors could use a review, but they compile, have no impact unless used, and tests would otherwise have had to be XFAILed waiting on them. The ShadowStackCollector has one issue that may be of interest in that it adds constant globals in a runOnFunction context. This is bad in theory, but actually is entirely safe for both JIT and llc from at least a code generation perspective. (Can this invalidate any analyses used during code generation?) Since llc uses a FunctionPassManager, I don't see any way around this, though. Enjoy! — Gordon -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080106/af72f6de/attachment.html>
On Jan 6, 2008, at 6:32 PM, Gordon Henriksen wrote:> Everything described in GarbageCollection.html should now be live. > Phew! > > The collectors could use a review, but they compile, have no impact > unless used, and tests would otherwise have had to be XFAILed > waiting on them.Woot!> The ShadowStackCollector has one issue that may be of interest in > that it adds constant globals in a runOnFunction context. This is > bad in theory, but actually is entirely safe for both JIT and llc > from at least a code generation perspective. (Can this invalidate > any analyses used during code generation?) Since llc uses a > FunctionPassManager, I don't see any way around this, though.This should be safe for now, in the future if it becomes a problem, we can figure out a solution. -Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080106/8ae218c3/attachment.html>
On Monday 07 January 2008 02:32:47 Gordon Henriksen wrote:> Everything described in GarbageCollection.html should now be live. Phew! > > The collectors could use a review, but they compile, have no impact > unless used, and tests would otherwise have had to be XFAILed waiting > on them. > > The ShadowStackCollector has one issue that may be of interest in that > it adds constant globals in a runOnFunction context. This is bad in > theory, but actually is entirely safe for both JIT and llc from at > least a code generation perspective. (Can this invalidate any analyses > used during code generation?) Since llc uses a FunctionPassManager, I > don't see any way around this, though.This is wonderful news! Are there any example programs using these GCs? -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e
On 2008-01-07, at 05:29, Jon Harrop wrote:> On Monday 07 January 2008 02:32:47 Gordon Henriksen wrote: > >> Everything described in GarbageCollection.html should now be live. >> Phew! >> > > This is wonderful news! Are there any example programs using these > GCs?The division of labor is such that the user program must provide the stack walker (in addition to the GC), so complete GC programs are nontrivial. This is somewhat similar to the state of exception handling in LLVM. It would be an excellent project to provide reference implementations of these facilities. That said, the PyPy group has llvmgcroot support on a branch; you could ask Armin Rigo <arigo at tunes dot org> for details about accessing it. On his benchmarks, Armin saw an 8% speedup vs. a shadow stack. Their gcc backend still outperforms the LLVM backend, though—and llvm-gcc outperforms that further still. So perhaps those llvm-gcc GC extensions could be put to good use after all! :) — Gordon