[LLVMdev] Proposal for pluggable intrinsics

Mai, Haohui haohui.mai at gmail.com
Fri Jun 12 18:26:19 PDT 2009


On Fri, 2009-06-12 at 16:16 -0700, Chris Lattner wrote:
> On Jun 12, 2009, at 2:52 PM, Mai, Haohui wrote:
> > Greetings. I'm a Ph.D. student in UIUC. Now I'm working on SAFECode, a
> > research compiler based on LLVM  which insert necessary runtime checks
> > to guarantee memory-safety of programs. SAFECode needs to insert  
> > checks
> > into the programs (say, please check this load instruction for me).
> 
> Hi.
> 
> > Currently SAFECode inserts these checks as normal call instructions.  
> > It
> > would be great that LLVM can treat them as first-class intrinsics  
> > (like
> > "llvm.ctz"), which have additional semantics and could be lowered as
> > ordinary function calls in subsequent passes.
> 
> I was just about to recommend using normal function calls :).
> 
> > This would be very useful because 1) It simplifies the analysis  
> > logic 2)
> > LLVM can apply out-of-box compiler optimization technique way more
> > easily on these programs (for example, SAFECode has special hacks to
> > teach the LICM pass understand these runtime checks) 3) It completely
> > avoid the naming conflicts between the tool and the program.
> 
> I don't follow.  Why does it simplify the analysis logic?  Also,  
> aren't function attributes like "readonly" enough to teach the  
> optimizer about your functions?

In fact, they are not really "readonly" functions. These checking
functions manipulate some metadata. If they are marked as readonly,
ADCE will kill them. :-)

> 
> -Chris
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list