• API Documentation
  • Articles
  • GitHub Repository
  • LLVM.org
  • LLVM Docs
Show / Hide Table of Contents
  • Ubiquity.NET.Llvm
    • BitcodeModule
      • AddAlias
      • AddFunction
      • AddGlobal
      • AddGlobalInAddressSpace
      • AddModuleFlag
      • AddNamedMetadataOperand
      • AddVersionIdentMetadata
      • Aliases
      • AppendInlineAsm
      • Clone
      • Comdats
      • Context
      • CreateAndAddGlobalIFunc
      • CreateFunction
      • DataLayoutString
      • DebugMetadataVersion
      • DebugVersionValue
      • DIBuilder
      • DICompileUnit
      • Dispose
      • DwarfVersionValue
      • Functions
      • GetAlias
      • GetFunction
      • GetIntrinsicDeclaration
      • GetNamedGlobal
      • GetTypeByName
      • Globals
      • IExtensiblePropertyContainer.AddExtendedPropertyValue
      • IExtensiblePropertyContainer.TryGetExtendedPropertyValue
      • IndirectFunctions
      • IsDisposed
      • Layout
      • Link
      • LoadFrom
      • ModuleFlags
      • ModuleInlineAsm
      • Name
      • NamedMetadata
      • SourceFileName
      • TargetTriple
      • TryGetFunction
      • TryGetNamedGlobalIFunc
      • Verify
      • WriteToBuffer
      • WriteToFile
      • WriteToString
      • WriteToTextFile
    • ByteOrdering
    • CodeGenFileType
    • CodeGenOpt
    • CodeModel
    • Comdat
      • Kind
      • Module
      • Name
    • ComdatCollection
      • Clear
      • Contains
      • Count
      • GetEnumerator
      • IEnumerable.GetEnumerator
      • InsertOrUpdate
      • Item
      • Remove
      • TryGetValue
    • ComdatKind
    • ConstantAsMetadata
      • Constant
    • Context
      • BoolType
      • Context
      • CreateAttribute
      • CreateBasicBlock
      • CreateBitcodeModule
      • CreateConstant
      • CreateConstantString
      • CreateConstantStruct
      • CreateFunctionType
      • CreateMDNode
      • CreateMetadataString
      • CreateNamedConstantStruct
      • CreateStructType
      • Dispose
      • DoubleType
      • Float128Type
      • FloatType
      • GetFunctionType
      • GetIntType
      • GetMDKindId
      • GetPointerTypeFor
      • HalfFloatType
      • Int16Type
      • Int32Type
      • Int64Type
      • Int8Type
      • Metadata
      • MetadataType
      • Modules
      • OdrUniqueDebugTypes
      • OpenBinary
      • PpcFloat128Type
      • TokenType
      • VoidType
      • X86Float80Type
    • DataLayout
      • AbiAlignmentOf
      • AbiBitAlignmentOf
      • AbiSizeOf
      • BitOffsetOfElement
      • BitSizeOf
      • ByteSizeOf
      • CallFrameAlignmentOf
      • ElementAtOffset
      • Endianess
      • IntPtrType
      • OffsetOfElement
      • PointerSize
      • PreferredAlignmentOf
      • PreferredBitAlignmentOf
      • StoreSizeOf
      • ToString
    • Disassembler
      • Disassemble
      • Disassembler
      • SetOptions
    • DisassemblerOptions
    • ExtensiblePropertyContainer
      • AddExtendedPropertyValue
      • TryGetExtendedPropertyValue
    • ExtensiblePropertyDescriptor<T>
      • ExtensiblePropertyDescriptor
      • GetValueFrom
      • Name
      • SetValueIn
    • ExtensiblePropertyDescriptor<T>.LazyDefaultFactory
    • IBitcodeModuleFactory
      • CreateBitcodeModule
    • IExtensiblePropertyContainer
      • AddExtendedPropertyValue
      • TryGetExtendedPropertyValue
    • InternalCodeGeneratorException
      • InternalCodeGeneratorException
    • LlvmMetadata
      • Kind
      • ReplaceAllUsesWith
      • ToString
    • LocalAsMetadata
    • MDNode
      • Context
      • GetOperand
      • GetOperandString
      • IsDeleted
      • IsDistinct
      • IsResolved
      • IsTemporary
      • IsUniqued
      • Operands
      • ReplaceAllUsesWith
    • MDString
      • ToString
    • MDTuple
    • MemoryBuffer
      • Detach
      • Implicit
      • MemoryBuffer
      • Size
      • Slice
      • ToArray
    • MetadataAsValue
    • MetadataKind
    • ModuleFlag
      • Behavior
      • Metadata
      • ModuleFlag
      • Name
    • ModuleFlagBehavior
    • NamedMDNode
      • EraseFromParent
      • Name
      • Operands
      • ParentModule
    • OperandBundleNames
      • DeOpt
      • Funclet
      • GcTransition
    • OptimizationSizeLevel
    • RelocationMode
    • ScopeStack<T>
      • Depth
      • EnterScope
      • Item
      • ScopeStack
      • TryGetValue
    • Target
      • AvailableTargets
      • CreateTargetMachine
      • Description
      • FromTriple
      • HasAsmBackEnd
      • HasJIT
      • HasTargetMachine
      • Name
    • TargetMachine
      • Cpu
      • EmitToBuffer
      • EmitToFile
      • Features
      • FromTriple
      • Target
      • TargetData
      • TargetMachine
      • Triple
    • Triple
      • ArchitectureType
      • Environment
      • EnvironmentVersion
      • Equals
      • GetCanonicalArchForSubArch
      • GetCanonicalName
      • GetDefaultObjectFormat
      • GetHashCode
      • HostTriple
      • Implicit
      • Normalize
      • ObjectFormat
      • OS
      • SubArchitecture
      • ToString
      • Triple
      • Vendor
    • Triple.ArchType
    • Triple.EnvironmentType
    • Triple.ObjectFormatType
    • Triple.OSType
    • Triple.SubArchType
    • Triple.VendorType
    • ValueAsMetadata
      • Context
      • Implicit
      • Type
      • Value
  • Ubiquity.NET.Llvm.DebugInfo
    • DebugArrayType
      • DebugArrayType
      • DebugElementType
      • ElementType
      • Length
      • LowerBound
      • ResolveTemporary
    • DebugBasicType
      • DebugBasicType
    • DebugFunctionType
      • DebugFunctionType
      • IsVarArg
      • ParameterTypes
      • ReturnType
    • DebugInfoBuilder
      • CreateArgument
      • CreateArrayType
      • CreateBasicType
      • CreateCompileUnit
      • CreateEnumerationType
      • CreateEnumeratorValue
      • CreateExpression
      • CreateFile
      • CreateFunction
      • CreateGlobalVariableExpression
      • CreateLexicalBlock
      • CreateLexicalBlockFile
      • CreateLocalVariable
      • CreateMacro
      • CreateMemberType
      • CreateNamespace
      • CreatePointerType
      • CreateQualifiedType
      • CreateReplaceableCompositeType
      • CreateStructType
      • CreateSubRange
      • CreateSubroutineType
      • CreateTempMacroFile
      • CreateTypeArray
      • CreateTypedef
      • CreateUnionType
      • CreateVectorType
      • Finish
      • ForwardDeclareFunction
      • GetOrCreateArray
      • GetOrCreateTypeArray
      • InsertDeclare
      • InsertValue
      • OwningModule
    • DebugInfoFlags
    • DebugMemberInfo
      • DebugInfoFlags
      • DebugMemberInfo
      • DebugType
      • ExplicitLayout
      • File
      • Index
      • Line
      • Name
    • DebugMemberLayout
      • BitAlignment
      • BitOffset
      • BitSize
      • DebugMemberLayout
    • DebugPointerType
      • AddressSpace
      • DebugPointerType
      • ElementType
    • DebugStructType
      • DebugMembers
      • DebugStructType
      • IsOpaque
      • IsPacked
      • Members
      • Name
      • SetBody
      • SourceName
    • DebugType
      • Create
      • HasDebugInfo
    • DebugType<TNative, TDebug>
      • AddExtendedPropertyValue
      • Context
      • CreateArrayType
      • CreatePointerType
      • DIType
      • GetNullValue
      • Implicit
      • IntegerBitWidth
      • IsDouble
      • IsFloat
      • IsFloatingPoint
      • IsInteger
      • IsPointer
      • IsPointerPointer
      • IsSequence
      • IsSized
      • IsStruct
      • IsVoid
      • Kind
      • NativeType
      • TryGetExtendedPropertyValue
    • DebugUnionType
      • DebugMembers
      • DebugUnionType
      • IsOpaque
      • Members
      • Name
      • SetBody
    • DIBasicType
      • Encoding
    • DICompileUnit
      • EnumTypes
      • Flags
      • GlobalVariables
      • ImportedEntities
      • Macros
      • Producer
      • RetainedTypes
      • SplitDebugFileName
    • DICompositeType
      • BaseType
      • Discriminator
      • Elements
      • Identifier
      • TemplateParameters
      • VTableHolder
    • DICompositeTypeArray
    • DIDerivedType
      • BaseType
      • ClassType
      • Constant
      • ExtraData
      • ObjCProperty
      • StorageOffsetInBits
    • DIEnumerator
      • Name
    • DIExpression
    • DIFile
      • CheckSum
      • Directory
      • FileName
      • Path
      • Source
    • DIGlobalVariable
      • DisplayName
      • LinkageName
      • StaticDataMemberDeclaration
    • DIGlobalVariableExpression
      • Expression
      • Variable
    • DIGlobalVariableExpressionArray
    • DIImportedEntity
      • Entity
      • File
      • Name
      • Scope
    • DIImportedEntityArray
    • DILexicalBlock
    • DILexicalBlockBase
    • DILexicalBlockFile
    • DILocalScope
      • FirstNonLexicalBlockFileScope
      • LocalScope
      • SubProgram
    • DILocalVariable
      • Scope
    • DILocalVariableArray
    • DILocation
      • Column
      • DILocation
      • InlinedAt
      • InlinedAtScope
      • Line
      • Scope
      • ToString
    • DIMacro
      • Name
      • Value
    • DIMacroFile
      • Elements
      • File
    • DIMacroNode
    • DIMacroNodeArray
    • DIModule
      • ConfigurationMacros
      • IncludePath
      • Name
      • Scope
      • SysRoot
    • DINamespace
      • Name
      • Scope
    • DINode
      • Tag
    • DINodeArray
    • DIObjCProperty
      • File
      • GetterName
      • Name
      • SetterName
      • Type
    • DIScope
      • File
      • Name
      • Scope
    • DIScopeArray
    • DISubProgram
      • CompileUnit
      • ContainingType
      • Declaration
      • Describes
      • Line
      • LinkageName
      • Name
      • Signature
      • TemplateParams
      • ThrownTypes
      • Variables
    • DISubRange
    • DISubroutineType
      • TypeArray
    • DITemplateParameter
      • Name
      • Type
    • DITemplateParameterArray
    • DITemplateTypeParameter
    • DITemplateValueParameter
      • GetValue
    • DIType
      • BitAlignment
      • BitOffset
      • BitSize
      • DebugInfoFlags
      • Line
      • Name
      • Scope
    • DITypeArray
    • DiTypeKind
    • DITypeVoid
      • Instance
    • DIVariable
      • DIType
      • File
      • Line
      • Name
      • Scope
    • DwarfEmissionKind
    • ExpressionOp
    • GenericDINode
      • Header
    • IDebugType<TNative, TDebug>
      • CreateArrayType
      • CreatePointerType
      • DIType
      • NativeType
    • MacroKind
    • QualifiedTypeTag
    • SourceLanguage
    • Tag
    • TupleTypedArrayWrapper<T>
      • Count
      • GetEnumerator
      • IEnumerable.GetEnumerator
      • Item
      • Tuple
  • Ubiquity.NET.Llvm.Instructions
    • AddressSpaceCast
    • Alloca
      • ElementType
    • AtomicCmpXchg
      • IsWeak
    • AtomicRMW
      • Kind
    • AtomicRMWBinOp
    • BinaryOperator
    • BitCast
    • Branch
      • Condition
      • IsConditional
      • IsUnconitional
      • Successors
    • CallBr
      • AddAttributeAtIndex
      • Attributes
      • GetAttributeAtIndex
      • GetAttributeCountAtIndex
      • GetAttributesAtIndex
      • RemoveAttributeAtIndex
      • TargetFunction
    • CallInstruction
      • AddAttributeAtIndex
      • Attributes
      • GetAttributeAtIndex
      • GetAttributeCountAtIndex
      • GetAttributesAtIndex
      • IsTailCall
      • RemoveAttributeAtIndex
      • TargetFunction
    • Cast
      • FromType
      • ToType
    • CatchPad
      • CatchSwitch
    • CatchReturn
      • CatchPad
      • CatchSwitchParentPad
      • Successors
    • CatchSwitch
      • ParentPad
    • CleanupPad
    • CleanupReturn
      • CleanupPad
    • Cmp
      • Predicate
    • DebugDeclare
    • DebugInfoIntrinsic
    • ExtractElement
    • ExtractValue
    • FCmp
    • Fence
    • FPExt
    • FPToSI
    • FPToUI
    • FPTrunc
    • Freeze
      • Value
    • FuncletPad
      • ArgOperands
      • ParentPad
    • GetElementPtr
    • IndirectBranch
    • InsertElement
    • InsertValue
    • Instruction
      • Alignment
      • ContainingBlock
      • HasMetadata
      • IsMemoryAccess
      • Item
      • Location
      • NonDebugLocMetadata
      • Opcode
    • InstructionBuilder
      • Add
      • AddWithOverflow
      • Alloca
      • And
      • AppendBasicBlock
      • ArithmeticShiftRight
      • AtomicAdd
      • AtomicAnd
      • AtomicCmpXchg
      • AtomicFadd
      • AtomicFSub
      • AtomicMax
      • AtomicMin
      • AtomicNand
      • AtomicOr
      • AtomicSub
      • AtomicUMax
      • AtomicUMin
      • AtomicXchg
      • AtomicXor
      • BitCast
      • Branch
      • Call
      • Compare
      • ConstGetElementPtrInBounds
      • Context
      • CurrentDebugLocation
      • DebugTrap
      • DoNothing
      • ExtractValue
      • FAdd
      • FDiv
      • FMul
      • FNeg
      • FPExt
      • FPToSICast
      • FPToUICast
      • FPTrunc
      • Freeze
      • FRem
      • FSub
      • GetElementPtr
      • GetElementPtrInBounds
      • GetStructElementPointer
      • InsertBlock
      • InsertFunction
      • InsertValue
      • InstructionBuilder
      • IntCast
      • IntToPointer
      • Invoke
      • LandingPad
      • Load
      • LogicalShiftRight
      • MemCpy
      • MemMove
      • MemSet
      • Mul
      • MulWithOverflow
      • Neg
      • Not
      • Or
      • PhiNode
      • PointerToInt
      • PositionAtEnd
      • PositionBefore
      • Resume
      • Return
      • SDiv
      • Select
      • SetDebugLocation
      • ShiftLeft
      • SignExtend
      • SignExtendOrBitCast
      • SIToFPCast
      • SRem
      • Store
      • Sub
      • SubWithOverflow
      • Switch
      • Trap
      • Trunc
      • TruncOrBitCast
      • UDiv
      • UIToFPCast
      • Unreachable
      • URem
      • Xor
      • ZeroExtend
      • ZeroExtendOrBitCast
    • InstructionExtensions
      • Alignment
      • IsVolatile
    • IntCmp
    • IntPredicate
    • Intrinsic
      • LookupId
    • IntToPointer
    • Invoke
      • AddAttributeAtIndex
      • Attributes
      • GetAttributeAtIndex
      • GetAttributeCountAtIndex
      • GetAttributesAtIndex
      • RemoveAttributeAtIndex
      • TargetFunction
    • LandingPad
      • Clauses
      • IsCleanup
    • Load
      • IsVolatile
    • MemCpy
    • MemIntrinsic
    • MemMove
    • MemSet
    • OpCode
    • PhiNode
      • AddIncoming
    • PointerToInt
    • Predicate
    • RealPredicate
    • ResumeInstruction
    • ReturnInstruction
    • SelectInstruction
    • ShuffleVector
    • SignExtend
    • SIToFP
    • Store
      • IsVolatile
    • Switch
      • AddCase
      • Default
    • Terminator
    • Trunc
    • UIToFP
    • UnaryInstruction
    • UnaryOperator
    • Unreachable
    • UserOp1
    • UserOp2
    • VaArg
    • ZeroExtend
  • Ubiquity.NET.Llvm.JIT
    • GenericValue
      • GenericValue
      • IntegerBitWidth
      • ToDouble
      • ToFloat
      • ToInt32
      • ToUInt32
    • IExecutionEngine
      • AddEagerlyCompiledModule
      • DefaultSymbolResolver
      • GetFunctionDelegate
      • RemoveModule
      • TargetMachine
    • ILazyCompileExecutionEngine
      • AddLazyCompiledModule
    • LazyCompilationExecutionEngineExtensions
      • AddEagerlyCompiledModule
      • AddLazyCompiledModule
    • LazyFunctionCompiler
    • OrcJit
      • AddEagerlyCompiledModule
      • AddInteropCallback
      • AddLazyCompiledModule
      • DefaultSymbolResolver
      • Dispose
      • GetFunctionDelegate
      • OrcJit
      • RemoveModule
      • TargetMachine
  • Ubiquity.NET.Llvm.ObjectFile
    • BinaryKind
    • Relocation
      • Description
      • Equality
      • Equals
      • GetHashCode
      • Inequality
      • Kind
      • Offset
      • Section
      • Symbol
      • Value
    • Section
      • Address
      • ContainingBinary
      • ContainsSymbol
      • Contents
      • Equality
      • Equals
      • GetHashCode
      • Inequality
      • MoveToContainingSection
      • Name
      • Relocations
    • Symbol
      • Address
      • ContainingBinary
      • Equality
      • Equals
      • GetHashCode
      • Inequality
      • Name
      • Section
      • Size
    • TargetBinary
      • Dispose
      • Kind
      • Sections
      • Symbols
  • Ubiquity.NET.Llvm.Transforms
    • FunctionPassManager
      • Finish
      • FunctionPassManager
      • Initialize
      • Run
    • InterproceduralTransforms
      • AddAlwaysInlinerPass
      • AddArgumentPromotionPass
      • AddConstantMergePass
      • AddDeadArgEliminationPass
      • AddFunctionAttrsPass
      • AddFunctionInliningPass
      • AddGlobalDCEPass
      • AddGlobalOptimizerPass
      • AddInternalizePass
      • AddInternalizePassWithMustPreservePredicate
      • AddIPConstantPropagationPass
      • AddIPSCCPPass
      • AddPruneEHPass
      • AddStripDeadPrototypesPass
      • AddStripSymbolsPass
    • ModulePassManager
      • ModulePassManager
      • Run
    • PassManager
      • Dispose
    • Sanitizers
      • AddAddressSanitizerPass
      • AddDataFlowSanitizerPass
      • AddMemorySanitizerPass
      • AddSanitizerPass
      • AddThreadSanitizerPass
    • ScalarTransforms
      • AddAddDiscriminatorsPass
      • AddAggressiveDCEPass
      • AddAlignmentFromAssumptionsPass
      • AddBasicAliasAnalysisPass
      • AddBitTrackingDCEPass
      • AddCFGSimplificationPass
      • AddConstantPropagationPass
      • AddCorrelatedValuePropagationPass
      • AddDCEPass
      • AddDeadStoreEliminationPass
      • AddDemoteMemoryToRegisterPass
      • AddEarlyCSEMemSSAPass
      • AddEarlyCSEPass
      • AddGVNPass
      • AddIndVarSimplifyPass
      • AddInstructionCombiningPass
      • AddJumpThreadingPass
      • AddLICMPass
      • AddLoopDeletionPass
      • AddLoopIdiomPass
      • AddLoopRerollPass
      • AddLoopRotatePass
      • AddLoopUnrollAndJamPass
      • AddLoopUnrollPass
      • AddLoopUnswitchPass
      • AddLowerAtomicPass
      • AddLowerConstantIntrinsicsPass
      • AddLowerExpectIntrinsicPass
      • AddLowerSwitchPass
      • AddMemCpyOptPass
      • AddMergedLoadStoreMotionPass
      • AddNewGVNPass
      • AddPartiallyInlineLibCallsPass
      • AddPromoteMemoryToRegisterPass
      • AddReassociatePass
      • AddScalarizerPass
      • AddScalarReplAggregatesPass
      • AddScalarReplAggregatesPassSSA
      • AddScalarReplAggregatesPassWithThreshold
      • AddSCCPPass
      • AddScopedNoAliasAAPass
      • AddSimplifyLibCallsPass
      • AddTailCallEliminationPass
      • AddTypeBasedAliasAnalysisPass
      • AddVerifierPass
    • VectorTransforms
      • AddLoopVectorizePass
      • AddSLPVectorizePass
  • Ubiquity.NET.Llvm.Types
    • IArrayType
      • Length
    • IFunctionType
      • IsVarArg
      • ParameterTypes
      • ReturnType
    • INamedStructuralType
      • IsOpaque
      • Members
      • Name
    • IPointerType
      • AddressSpace
    • ISequenceType
      • ElementType
    • IStructType
      • IsPacked
      • SetBody
    • ITypeRef
      • Context
      • CreateArrayType
      • CreatePointerType
      • GetNullValue
      • IntegerBitWidth
      • IsDouble
      • IsFloat
      • IsFloatingPoint
      • IsInteger
      • IsPointer
      • IsPointerPointer
      • IsSequence
      • IsSized
      • IsStruct
      • IsVoid
      • Kind
    • IVectorType
      • Size
    • TypeKind
  • Ubiquity.NET.Llvm.Values
    • Argument
      • AddAttribute
      • AddAttributes
      • Attributes
      • ContainingFunction
      • Index
      • RemoveAttribute
      • SetAlignment
    • AsmDialect
    • AttributeCollectionExtensions
      • Remove
    • AttributeContainerMixins
      • AddAttribute
      • AddAttributes
      • Contains
      • RemoveAttribute
    • AttributeKind
    • AttributeKindExtensions
      • GetAttributeName
      • LookupId
      • RequiresIntValue
    • AttributeValue
      • Context
      • Equality
      • Equals
      • GetHashCode
      • HasIntegerVaue
      • Inequality
      • IntegerValue
      • IsEnum
      • IsString
      • IsValidOn
      • Kind
      • Name
      • StringValue
      • ToString
      • TypeValue
      • VerifyValidOn
    • BasicBlock
      • ContainingFunction
      • FirstInstruction
      • GetNextInstruction
      • Instructions
      • LastInstruction
      • Terminator
    • BlockAddress
      • BasicBlock
      • Function
    • CallingConvention
    • Constant
      • AllOnesValueFor
      • ConstPointerToNullFor
      • IsZeroValue
      • NullValueFor
      • ToMetadata
      • UndefinedValueFor
    • ConstantAggregate
    • ConstantAggregateZero
    • ConstantArray
      • From
    • ConstantData
    • ConstantDataArray
    • ConstantDataSequential
      • ExtractAsString
      • IsString
    • ConstantDataVector
    • ConstantExpression
      • BitCast
      • GetElementPtr
      • IntToPtrExpression
      • OpCode
    • ConstantFP
      • GetValueWithLoss
      • Value
    • ConstantInt
      • BitWidth
      • SignExtendedValue
      • ZeroExtendedValue
    • ConstantPointerNull
      • From
    • ConstantStruct
    • ConstantTokenNone
    • ConstantVector
    • FunctionAttributeIndex
    • FunctionIndexKinds
    • GlobalAlias
      • Aliasee
    • GlobalIFunc
      • RemoveFromParent
      • Resolver
    • GlobalIndirectSymbol
      • IndirectSymbol
    • GlobalObject
      • Alignment
      • Comdat
      • Metadata
      • Section
      • SetMetadata
    • GlobalObjectExtensions
      • Alignment
      • Comdat
      • SectionName
    • GlobalValue
      • IsDeclaration
      • Linkage
      • ParentModule
      • UnnamedAddress
      • Visibility
    • GlobalValueExtensions
      • Linkage
      • UnnamedAddress
      • Visibility
    • GlobalVariable
      • AddDebugInfo
      • Initializer
      • IsConstant
      • IsExternallyInitialized
      • IsThreadLocal
      • RemoveFromParent
    • IAttributeAccessor
      • AddAttributeAtIndex
      • GetAttributeAtIndex
      • GetAttributeCountAtIndex
      • GetAttributesAtIndex
      • RemoveAttributeAtIndex
    • IAttributeContainer
      • Attributes
      • Context
    • IAttributeDictionary
    • InlineAsm
    • IrFunction
      • AddAttributeAtIndex
      • AppendBasicBlock
      • Attributes
      • BasicBlocks
      • CallingConvention
      • DISubProgram
      • EntryBlock
      • EraseFromParent
      • FindOrCreateNamedBlock
      • GcName
      • GetAttributeAtIndex
      • GetAttributeCountAtIndex
      • GetAttributesAtIndex
      • InsertBasicBlock
      • IntrinsicId
      • IsVarArg
      • Parameters
      • PersonalityFunction
      • PrependBasicBlock
      • RemoveAttributeAtIndex
      • ReturnType
      • Signature
      • Verify
    • Linkage
    • UndefValue
    • UnnamedAddressKind
    • Use
      • User
      • Value
    • User
      • GetOperand
      • Operands
      • SetOperand
      • Uses
    • Value
      • AddExtendedPropertyValue
      • Context
      • IsCallSite
      • IsFunction
      • IsInstruction
      • IsNull
      • IsUndefined
      • Name
      • NativeType
      • ReplaceAllUsesWith
      • ToString
      • TryGetExtendedPropertyValue
    • ValueExtensions
      • RegisterName
    • Visibility

Method GetElementPtr

 

GetElementPtr(ITypeRef, Value, IEnumerable<Value>)

Creates a Value that accesses an element of a type referenced by a pointer

Declaration
public Value GetElementPtr([ValidatedNotNull] ITypeRef type, [ValidatedNotNull] Value pointer, [ValidatedNotNull] IEnumerable<Value> args)

Parameters

ITypeRef type

Type of array,vector or structure to get the element pointer from

Value pointer

opaque pointer to get an element from

IEnumerable<Value> args

additional indices for computing the resulting pointer

Returns

Value

Value for the member access. This is a Value as LLVM may optimize the expression to a ConstantExpression if it can so the actual type of the result may be ConstantExpression or GetElementPtr.

Note that pointer must be a pointer to a structure or an exception is thrown.

Remarks

For details on GetElementPointer (GEP) see The Often Misunderstood GEP Instruction. The basic gist is that the GEP instruction does not access memory, it only computes a pointer offset from a base. A common confusion is around the first index and what it means. For C and C++ programmers an expression like pFoo->bar seems to only have a single offset or index. However, that is only syntactic sugar where the compiler implicitly hides the first index. That is, there is no difference between pFoo[0].bar and pFoo->bar except that the former makes the first index explicit. LLVM requires an explicit first index, even if it is zero, in order to properly compute the offset for a given element in an aggregate type.

 

GetElementPtr(Value, IEnumerable<Value>)

Creates a Value that accesses an element of a type referenced by a pointer

Declaration
public Value GetElementPtr(Value pointer, IEnumerable<Value> args)

Parameters

Value pointer

pointer to get an element from

IEnumerable<Value> args

additional indices for computing the resulting pointer

Returns

Value

Value for the member access. This is a Value as LLVM may optimize the expression to a ConstantExpression if it can so the actual type of the result may be ConstantExpression or GetElementPtr.

Note that pointer must be a pointer to a structure or an exception is thrown.

Remarks

For details on GetElementPointer (GEP) see The Often Misunderstood GEP Instruction. The basic gist is that the GEP instruction does not access memory, it only computes a pointer offset from a base. A common confusion is around the first index and what it means. For C and C++ programmers an expression like pFoo->bar seems to only have a single offset or index. However, that is only syntactic sugar where the compiler implicitly hides the first index. That is, there is no difference between pFoo[0].bar and pFoo->bar except that the former makes the first index explicit. LLVM requires an explicit first index, even if it is zero, in order to properly compute the offset for a given element in an aggregate type.

 

GetElementPtr(Value, Value[])

Creates a Value that accesses an element of a type referenced by a pointer

Declaration
public Value GetElementPtr(Value pointer, params Value[] args)

Parameters

Value pointer

pointer to get an element from

Value[] args

additional indices for computing the resulting pointer

Returns

Value

Value for the member access. This is a Value as LLVM may optimize the expression to a ConstantExpression if it can so the actual type of the result may be ConstantExpression or GetElementPtr.

Note that pointer must be a pointer to a structure or an exception is thrown.

Remarks

For details on GetElementPointer (GEP) see The Often Misunderstood GEP Instruction. The basic gist is that the GEP instruction does not access memory, it only computes a pointer offset from a base. A common confusion is around the first index and what it means. For C and C++ programmers an expression like pFoo->bar seems to only have a single offset or index. However, that is only syntactic sugar where the compiler implicitly hides the first index. That is, there is no difference between pFoo[0].bar and pFoo->bar except that the former makes the first index explicit. LLVM requires an explicit first index, even if it is zero, in order to properly compute the offset for a given element in an aggregate type.

Back to top Copyright (C) 2017-2019, Ubiquity.NET Contributors
Build: 10.0.0-alpha