Skip to content
  1. May 06, 2008
  2. Dec 29, 2007
  3. Sep 18, 2007
    • Gordon Henriksen's avatar
      C bindings for libLLVMCore.a and libLLVMBitWriter.a. · 76a0374b
      Gordon Henriksen authored
      - The naming prefix is LLVM.
      - All types are represented using opaque references.
      - Functions are not named LLVM{Type}{Method}; the names became
        unreadable goop. Instead, they are named LLVM{ImperativeSentence}.
      - Where an attribute only appears once in the class hierarchy (e.g.,
        linkage only applies to values; parameter types only apply to
        function types), the class is omitted from identifiers for
        brevity. Tastes like methods.
      - Strings are C strings or string/length tuples on a case-by-case
        basis.
      - APIs which give the caller ownership of an object are not mapped
        (removeFromParent, certain constructor overloads). This keeps
        keep memory management as simple as possible.
      
      For each library with bindings:
      
        llvm-c/<LIB>.h       - Declares the bindings.
        lib/<LIB>/<LIB>.cpp  - Implements the bindings.
      
      So just link with the library of your choice and use the C header
      instead of the C++ one.
      
      llvm-svn: 42077
      76a0374b
Loading