The bulk of LLVM's object model consists of values, which comprise a very
rich type hierarchy.
LLVMValueRef essentially represents llvm::Value. There is a rich
hierarchy of classes within this type. Depending on the instance
obtained, not all APIs are available.
Callers can determine the type of an LLVMValueRef by calling the
LLVMIsA* family of functions (e.g. LLVMIsAArgument()). These
functions are defined by a macro, so it isn't obvious which are
available by looking at the Doxygen source code. Instead, look at the
source definition of LLVM_FOR_EACH_VALUE_SUBCLASS and note the list
of value names given. These value names also correspond to classes in
the llvm::Value hierarchy.
@defgroup LLVMCCoreValues Values
The bulk of LLVM's object model consists of values, which comprise a very rich type hierarchy.
LLVMValueRef essentially represents llvm::Value. There is a rich hierarchy of classes within this type. Depending on the instance obtained, not all APIs are available.
Callers can determine the type of an LLVMValueRef by calling the LLVMIsA* family of functions (e.g. LLVMIsAArgument()). These functions are defined by a macro, so it isn't obvious which are available by looking at the Doxygen source code. Instead, look at the source definition of LLVM_FOR_EACH_VALUE_SUBCLASS and note the list of value names given. These value names also correspond to classes in the llvm::Value hierarchy.
@{