Exemplo n.º 1
0
 public unsafe Metadata CreateBasicType(string name, ulong sizeInBits, LLVMDWARFTypeEncoding encoding,
                                        LLVMDIFlags flags)
 {
     using var marshaledName = new MarshaledString(name.AsSpan());
     return((LLVMMetadataRef)LLVMSharp.Interop.LLVM.DIBuilderCreateBasicType(_builder, marshaledName,
                                                                             (UIntPtr)marshaledName.Length, sizeInBits, (uint)encoding, flags));
 }
Exemplo n.º 2
0
 public unsafe Metadata CreateAutoVariable(Metadata scope, string name, Metadata file, uint lineNo, Metadata ty,
                                           bool alwaysPreserve, LLVMDIFlags flags, uint alignInBits)
 {
     using var marshaledName = new MarshaledString(name.AsSpan());
     return((LLVMMetadataRef)LLVMSharp.Interop.LLVM.DIBuilderCreateAutoVariable(_builder,
                                                                                (LLVMMetadataRef)scope, marshaledName, (UIntPtr)name.Length, (LLVMMetadataRef)file, lineNo,
                                                                                (LLVMMetadataRef)ty, alwaysPreserve ? 1 : 0, flags, alignInBits));
 }
Exemplo n.º 3
0
        public LLVMMetadataRef CreateFunction(LLVMMetadataRef Scope, ReadOnlySpan <char> Name, ReadOnlySpan <char> LinkageName, LLVMMetadataRef File, uint LineNo, LLVMMetadataRef Type, int IsLocalToUnit, int IsDefinition,
                                              uint ScopeLine, LLVMDIFlags Flags, int IsOptimized)
        {
            using var marshaledName        = new MarshaledString(Name);
            using var marshaledLinkageName = new MarshaledString(LinkageName);
            var methodNameLength  = (uint)marshaledName.Length;
            var linkageNameLength = (uint)marshaledLinkageName.Length;

            return(LLVM.DIBuilderCreateFunction(this, Scope, marshaledName, (UIntPtr)(methodNameLength), marshaledLinkageName, (UIntPtr)(linkageNameLength), File,
                                                LineNo, Type, IsLocalToUnit, IsDefinition, ScopeLine, Flags, IsOptimized));
        }
Exemplo n.º 4
0
 public unsafe Metadata CreateStructType(Metadata scope, string name, Metadata file, uint lineNumber,
                                         ulong sizeInBits, uint alignInBits, LLVMDIFlags flags, Metadata derivedFrom, Metadata[] elements,
                                         uint runTimeLang, Metadata vTableHolder, string uniqueId)
 {
     using var marshaledName     = new MarshaledString(name.AsSpan());
     using var marshaledUniqueId = new MarshaledString(uniqueId.AsSpan());
     fixed(LLVMMetadataRef *castElems = Array.ConvertAll(elements, elem => (LLVMMetadataRef)elem).AsSpan())
     {
         return((LLVMMetadataRef)LLVMSharp.Interop.LLVM.DIBuilderCreateStructType(_builder,
                                                                                  (LLVMMetadataRef)scope, marshaledName, (UIntPtr)marshaledName.Length, (LLVMMetadataRef)file,
                                                                                  lineNumber, sizeInBits, alignInBits, flags, (LLVMMetadataRef)derivedFrom,
                                                                                  (LLVMOpaqueMetadata **)castElems, (uint)elements.Length, runTimeLang,
                                                                                  (LLVMMetadataRef)vTableHolder, marshaledUniqueId, (UIntPtr)marshaledUniqueId.Length));
     }
 }
Exemplo n.º 5
0
 public Metadata CreateSubroutineType(Metadata file, Metadata[] parameterTypes, LLVMDIFlags flags) =>
 _builder.CreateSubroutineType(file, Array.ConvertAll(parameterTypes, pType => (LLVMMetadataRef)pType),
                               flags);
Exemplo n.º 6
0
 public Metadata CreateFunction(Metadata scope, string name, string linkageName, Metadata file, uint lineNo,
                                Metadata ty, bool isLocalToUnit, bool isDefinition, uint scopeLine, LLVMDIFlags flags, bool isOptimized) =>
 _builder.CreateFunction(scope, name, linkageName, file, lineNo, ty, isLocalToUnit ? 1 : 0,
                         isDefinition ? 1 : 0, scopeLine, flags, isOptimized ? 1 : 0);
Exemplo n.º 7
0
 public unsafe Metadata CreateReplaceableCompositeType(LLVMDWARFTag tag, string name, Metadata scope,
                                                       Metadata file, uint line, uint runtimeLang, ulong sizeInBits, uint alignInBits, LLVMDIFlags flags,
                                                       string uniqueIdentifier)
 {
     using var marshaledName     = new MarshaledString(name.AsSpan());
     using var marshaledUniqueId = new MarshaledString(uniqueIdentifier.AsSpan());
     return((LLVMMetadataRef)LLVMSharp.Interop.LLVM.DIBuilderCreateReplaceableCompositeType(_builder,
                                                                                            (uint)tag, marshaledName, (UIntPtr)name.Length, (LLVMMetadataRef)scope, (LLVMMetadataRef)file, line,
                                                                                            runtimeLang, sizeInBits, alignInBits, flags, marshaledUniqueId, (UIntPtr)uniqueIdentifier.Length));
 }
Exemplo n.º 8
0
 public LLVMMetadataRef CreateSubroutineType(LLVMMetadataRef File, ReadOnlySpan <LLVMMetadataRef> ParameterTypes, LLVMDIFlags Flags)
 {
     fixed(LLVMMetadataRef *pParameterTypes = ParameterTypes)
     {
         return(LLVM.DIBuilderCreateSubroutineType(this, File, (LLVMOpaqueMetadata **)pParameterTypes, (uint)ParameterTypes.Length, Flags));
     }
 }
Exemplo n.º 9
0
 public LLVMMetadataRef CreateSubroutineType(LLVMMetadataRef File, LLVMMetadataRef[] ParameterTypes, LLVMDIFlags Flags) => CreateSubroutineType(File, ParameterTypes.AsSpan(), Flags);
Exemplo n.º 10
0
 public LLVMMetadataRef CreateFunction(LLVMMetadataRef Scope, string Name, string LinkageName, LLVMMetadataRef File, uint LineNo, LLVMMetadataRef Type, int IsLocalToUnit, int IsDefinition,
                                       uint ScopeLine, LLVMDIFlags Flags, int IsOptimized) => CreateFunction(Scope, Name.AsSpan(), LinkageName.AsSpan(), File, LineNo, Type, IsLocalToUnit, IsDefinition, ScopeLine, Flags, IsOptimized);