[LLVMdev] Proposal for pluggable intrinsics

Chris Lattner clattner at apple.com
Fri Jun 12 16:16:56 PDT 2009

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).


> 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?


More information about the llvm-dev mailing list