Why not use gcroot?

In a couple of recent threads on llvmdev the question of what’s wrong with the existing garbage collection support in llvm has come up.  I’ve partially answered this in a couple of different places, but this post series is an attempt to group everything together into one consistent answer. This post will focus on what …

Continue reading ‘Why not use gcroot?’ »

RFC: GEP as canonical form for pointer addressing

This post is a copy of a proposal I sent to llvmdev yesterday.  I’m posting it here for broader dissemination.  I would like to propose that we designate GEPs as the canonical form for pointer addressing in LLVM IR before CodeGenPrepare. Corollaries It is legal for an optimizer to convert inttoptr+arithmetic+inttoptr sequences to GEPs, but …

Continue reading ‘RFC: GEP as canonical form for pointer addressing’ »

Tweaking LLVM to exploit Assume(x)

This post started off as a comment over on Embedded in Academia.  After posting it there, I realized it might be interesting to other folks.  I think this may be the most I’ve ever said publicly about this particular side project. A while back, I took a look at improving LLVM’s ability to handle assumes. …

Continue reading ‘Tweaking LLVM to exploit Assume(x)’ »