示例#1
0
        public static Constant GetAnon(LLVMContext Ctx, ReadOnlySpan <Constant> V, bool Packed)
        {
            using var marshaledV = new MarshaledArray <Constant, LLVMValueRef>(V, (value) => value.Handle);
            var handle = Ctx.Handle.GetConstStruct(marshaledV, Packed);

            return(Ctx.GetOrCreate <Constant>(handle));
        }
示例#2
0
        public static StructType Create(LLVMContext Context, ReadOnlySpan <char> Name)
        {
            var handle = Context.Handle.CreateNamedStruct(Name);

            return(Context.GetOrCreate <StructType>(handle));
        }
示例#3
0
 public static StructType Create(LLVMContext Context, string Name) => Create(Context, Name.AsSpan());
示例#4
0
        public static Constant GetString(LLVMContext Context, ReadOnlySpan <char> Initializer, bool AddNull)
        {
            var handle = Context.Handle.GetConstString(Initializer, !AddNull);

            return(Context.GetOrCreate <Constant>(handle));
        }
示例#5
0
 public static Constant GetString(LLVMContext Context, string Initializer, bool AddNull = true) => GetString(Context, Initializer.AsSpan(), AddNull);
示例#6
0
        public static Type GetX86_MMXTy(LLVMContext C)
        {
            var handle = C.Handle.X86MMXType;

            return(C.GetOrCreate(handle));
        }
示例#7
0
 public static Constant GetAnon(LLVMContext Ctx, Constant[] V, bool Packed = false) => GetAnon(Ctx, V.AsSpan(), Packed);
示例#8
0
        public static BasicBlock Create(LLVMContext Context, ReadOnlySpan <char> Name, Function Parent)
        {
            var handle = LLVMBasicBlockRef.AppendInContext(Context.Handle, Parent.Handle, Name);

            return(new BasicBlock(handle));
        }
示例#9
0
 public static BasicBlock Create(LLVMContext Context, string Name, BasicBlock InsertBefore) => Create(Context, Name.AsSpan(), InsertBefore);
示例#10
0
 public static BasicBlock Create(LLVMContext Context, string Name) => Create(Context, Name.AsSpan());
示例#11
0
 public static BasicBlock Create(LLVMContext Context, string Name, Function Parent) => Create(Context, Name.AsSpan(), Parent);
示例#12
0
        public static Type GetLabelTy(LLVMContext C)
        {
            var handle = C.Handle.LabelType;

            return(C.GetOrCreate(handle));
        }
示例#13
0
        public static IntegerType GetInt64Ty(LLVMContext C)
        {
            var handle = C.Handle.Int64Type;

            return(C.GetOrCreate <IntegerType>(handle));
        }
示例#14
0
        public static Type GetBFloatTy(LLVMContext C)
        {
            var handle = C.Handle.BFloatType;

            return(C.GetOrCreate(handle));
        }
示例#15
0
 public IRBuilder(LLVMContext C) : base(C)
 {
 }
示例#16
0
        public static BasicBlock Create(LLVMContext Context, ReadOnlySpan <char> Name, BasicBlock InsertBefore)
        {
            var handle = LLVMBasicBlockRef.InsertInContext(Context.Handle, InsertBefore.Handle, Name);

            return(new BasicBlock(handle));
        }
示例#17
0
 private protected IRBuilderBase(LLVMContext C)
 {
     Context = C;
     Handle  = LLVMBuilderRef.Create(C.Handle);
 }
示例#18
0
        public static Type GetPPC_FP128Ty(LLVMContext C)
        {
            var handle = C.Handle.PPCFP128Type;

            return(C.GetOrCreate(handle));
        }