#
76a0374b |
| 18-Sep-2007 |
Gordon Henriksen <gordonhenriksen@mac.com> |
C bindings for libLLVMCore.a and libLLVMBitWriter.a.
- The naming prefix is LLVM. - All types are represented using opaque references. - Functions are not named LLVM{Type}{Method}; the names became
C bindings for libLLVMCore.a and libLLVMBitWriter.a.
- 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
show more ...
|