From b3b28275daf8bc16a19880ef3ae458c4de690e47 Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Tue, 6 Apr 2004 04:17:51 +0000 Subject: Incorporated Chris' comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12690 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ExtendingLLVM.html | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'docs/ExtendingLLVM.html') diff --git a/docs/ExtendingLLVM.html b/docs/ExtendingLLVM.html index 8c880e5..7dc8d15 100644 --- a/docs/ExtendingLLVM.html +++ b/docs/ExtendingLLVM.html @@ -50,6 +50,12 @@ different passes that you intend to use with your extension, and there are many LLVM analyses and transformations, so it may be quite a bit of work.

+

Adding an intrinsic function is easier than adding +an instruction, and is transparent to optimization passes which treat it as an +unanalyzable function. If your added functionality can be expressed as a +function call, an intrinsic function is the method of choice for LLVM +extension.

+

Before you invest a significant amount of effort into a non-trivial extension, ask on the list if what you are looking to do can be done with already-existing infrastructure, or if maybe @@ -72,11 +78,12 @@ href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM-dev.

WARNING: adding instructions changes the bytecode -format, and will break compatibility with currently-existing LLVM -installations. Only add an instruction if it is absolutely +format, and it will take some effort to maintain compatibility with +the previous version. Only add an instruction if it is absolutely necessary.

    +
  1. llvm/include/llvm/Instruction.def: add a number for your instruction and an enum name
  2. @@ -117,11 +124,6 @@ to understand this new instruction.

    -

    Adding an intrinsic function is easier than adding an instruction, and is -transparent to optimization passes which treat it as an unanalyzable function. -If your added functionality can be expressed as a function call, an intrinsic -function is the method of choice for LLVM extension.

    -
    1. llvm/include/llvm/Intrinsics.h: -- cgit v1.1