[LLVMdev] Proposal for pluggable intrinsics
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
> into the programs (say, please check this load instruction for me).
> Currently SAFECode inserts these checks as normal call instructions.
> would be great that LLVM can treat them as first-class intrinsics
> "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