public LLVMBasicBlockRef InsertBasicBlock(LLVMBasicBlockRef BB, string Name) { using (var marshaledName = new MarshaledString(Name)) { return(LLVM.InsertBasicBlockInContext(this, BB, marshaledName)); } }
public static void AddIncoming(LLVMValueRef PhiNode, LLVMValueRef[] IncomingValues, LLVMBasicBlockRef[] IncomingBlocks, uint Count) { if (Count == 0) { return; } AddIncoming(PhiNode, out IncomingValues[0], out IncomingBlocks[0], Count); }
public static LLVMValueRef BuildInvoke(LLVMBuilderRef param0, LLVMValueRef Fn, LLVMValueRef[] Args, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, string Name) { if (Args.Length == 0) { LLVMValueRef dummy; return BuildInvoke(param0, Fn, out dummy, 0, Then, Catch, Name); } return BuildInvoke(param0, Fn, out Args[0], (uint)Args.Length, Then, Catch, Name); }
public static LLVMBasicBlockRef[] GetBasicBlocks(LLVMValueRef Fn) { uint count = CountBasicBlocks(Fn); var buffer = new LLVMBasicBlockRef[count]; if (count > 0) { GetBasicBlocks(Fn, out buffer[0]); } return(buffer); }
public static extern void GetBasicBlocks(LLVMValueRef @Fn, out LLVMBasicBlockRef @BasicBlocks);
public static extern LLVMValueRef GetLastInstruction(LLVMBasicBlockRef @BB);
public LLVMValueRef CreateCondBr(LLVMValueRef @If, LLVMBasicBlockRef @Then, LLVMBasicBlockRef @Else) { return(LLVM.BuildCondBr(this.instance, @If, @Then, @Else)); }
public static extern void DeleteBasicBlock(LLVMBasicBlockRef @BB);
public static extern void SetSuccessor(LLVMValueRef @Term, uint @i, LLVMBasicBlockRef @block);
public void PositionBuilderAtEnd(LLVMBasicBlockRef @Block) { LLVM.PositionBuilderAtEnd(this.instance, @Block); }
public static extern LLVMValueRef DIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef @D, LLVMValueRef @Storage, LLVMMetadataRef @VarInfo, LLVMMetadataRef @Expr, LLVMBasicBlockRef @Block);
public static extern void MoveBasicBlockBefore(LLVMBasicBlockRef @BB, LLVMBasicBlockRef @MovePos);
public static extern IntPtr GetBasicBlockNameAsPtr(LLVMBasicBlockRef @BB);
public static string GetBasicBlockName(LLVMBasicBlockRef @BB) => Marshal.PtrToStringAnsi(GetBasicBlockNameAsPtr(@BB));
private BasicBlock(LLVMBasicBlockRef handle) : this(handle.AsValue()) { }
public static BasicBlock Create(LLVMContext Context, ReadOnlySpan <char> Name, BasicBlock InsertBefore) { var handle = LLVMBasicBlockRef.InsertInContext(Context.Handle, InsertBefore.Handle, Name); return(new BasicBlock(handle)); }
public static BasicBlock Create(LLVMContext Context, ReadOnlySpan <char> Name, Function Parent) { var handle = LLVMBasicBlockRef.AppendInContext(Context.Handle, Parent.Handle, Name); return(new BasicBlock(handle)); }
public static extern LLVMBasicBlockRef GetPreviousBasicBlock(LLVMBasicBlockRef @BB);
public static extern LLVMValueRef DIBuilderInsertValueAtEnd(LLVMDIBuilderRef @D, LLVMValueRef @Val, ulong @Offset, LLVMMetadataRef @VarInfo, LLVMMetadataRef @Expr, LLVMBasicBlockRef @Block);
public static extern LLVMBasicBlockRef InsertBasicBlockInContext(LLVMContextRef @C, LLVMBasicBlockRef @BB, [MarshalAs(UnmanagedType.LPStr)] string @Name);
public bool Equals(LLVMBasicBlockRef other) => this.Pointer == other.Pointer;
public static extern void PositionBuilderAtEnd(LLVMBuilderRef @Builder, LLVMBasicBlockRef @Block);
public LLVMValueRef CreateInvoke(LLVMValueRef @Fn, LLVMValueRef[] @Args, LLVMBasicBlockRef @Then, LLVMBasicBlockRef @Catch, string @Name) { return(LLVM.BuildInvoke(this.instance, @Fn, Args, @Then, @Catch, @Name)); }
public LLVMValueRef CreateSwitch(LLVMValueRef @V, LLVMBasicBlockRef @Else, uint @NumCases) { return(LLVM.BuildSwitch(this.instance, @V, @Else, @NumCases)); }
public void MoveBasicBlockBefore(LLVMBasicBlockRef @MovePos) { LLVM.MoveBasicBlockBefore(this, @MovePos); }
public void AddDestination(LLVMBasicBlockRef @Dest) { LLVM.AddDestination(this, @Dest); }
public void MoveBasicBlockAfter(LLVMBasicBlockRef @MovePos) { LLVM.MoveBasicBlockAfter(this, @MovePos); }
public static extern LLVMValueRef BuildSwitch(LLVMBuilderRef @param0, LLVMValueRef @V, LLVMBasicBlockRef @Else, uint @NumCases);
internal BasicBlock GetOrCreate(LLVMBasicBlockRef handle) => GetOrCreate <BasicBlock>(handle.AsValue());
public static extern LLVMValueRef GetBasicBlockParent(LLVMBasicBlockRef @BB);
public static extern LLVMValueRef GetBasicBlockTerminator(LLVMBasicBlockRef @BB);
public static extern LLVMBasicBlockRef GetNextBasicBlock(LLVMBasicBlockRef @BB);
public static extern void AddCase(LLVMValueRef @Switch, LLVMValueRef @OnVal, LLVMBasicBlockRef @Dest);
public static extern LLVMBasicBlockRef InsertBasicBlock(LLVMBasicBlockRef @InsertBeforeBB, [MarshalAs(UnmanagedType.LPStr)] string @Name);
public static extern void AddDestination(LLVMValueRef @IndirectBr, LLVMBasicBlockRef @Dest);
public static extern void MoveBasicBlockAfter(LLVMBasicBlockRef @BB, LLVMBasicBlockRef @MovePos);
public static extern void AddIncoming(LLVMValueRef @PhiNode, out LLVMValueRef @IncomingValues, out LLVMBasicBlockRef @IncomingBlocks, uint @Count);
public static extern void PositionBuilder(LLVMBuilderRef @Builder, LLVMBasicBlockRef @Block, LLVMValueRef @Instr);
public LLVMBasicBlockRef InsertBasicBlockInContext(LLVMBasicBlockRef @BB, string @Name) { return LLVM.InsertBasicBlockInContext(this, @BB, @Name); }
public static extern void RemoveBasicBlockFromParent(LLVMBasicBlockRef @BB);
public static LLVMValueRef BuildInvoke(LLVMBuilderRef param0, LLVMValueRef Fn, LLVMValueRef[] Args, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, string Name) { if (Args.Length == 0) { LLVMValueRef dummy; return(BuildInvoke(param0, Fn, out dummy, 0, Then, Catch, Name)); } return(BuildInvoke(param0, Fn, out Args[0], (uint)Args.Length, Then, Catch, Name)); }
public static LLVMBasicBlockRef[] GetBasicBlocks(LLVMValueRef Fn) { uint count = CountBasicBlocks(Fn); var buffer = new LLVMBasicBlockRef[count]; if (count > 0) { GetBasicBlocks(Fn, out buffer[0]); } return buffer; }
public void SetSuccessor(uint @i, LLVMBasicBlockRef @block) { LLVM.SetSuccessor(this, @i, @block); }
public static extern LLVMValueRef BasicBlockAsValue(LLVMBasicBlockRef @BB);
public void PositionBuilder(LLVMBasicBlockRef @Block, LLVMValueRef @Instr) { LLVM.PositionBuilder(this.instance, @Block, @Instr); }
public static extern LLVMValueRef BlockAddress(LLVMValueRef @F, LLVMBasicBlockRef @BB);
public static extern LLVMValueRef BuildBr(LLVMBuilderRef @param0, LLVMBasicBlockRef @Dest);
public LLVMValueRef BlockAddress(LLVMBasicBlockRef @BB) { return(LLVM.BlockAddress(this, @BB)); }
public static extern LLVMValueRef BuildCondBr(LLVMBuilderRef @param0, LLVMValueRef @If, LLVMBasicBlockRef @Then, LLVMBasicBlockRef @Else);
public void AddCase(LLVMValueRef @OnVal, LLVMBasicBlockRef @Dest) { LLVM.AddCase(this, @OnVal, @Dest); }
public static extern LLVMValueRef BuildInvoke(LLVMBuilderRef @param0, LLVMValueRef @Fn, out LLVMValueRef @Args, uint @NumArgs, LLVMBasicBlockRef @Then, LLVMBasicBlockRef @Catch, [MarshalAs(UnmanagedType.LPStr)] string @Name);
public LLVMBasicBlockRef InsertBasicBlockInContext(LLVMBasicBlockRef @BB, string @Name) { return(LLVM.InsertBasicBlockInContext(this, @BB, @Name)); }
public LLVMValueRef CreateBr(LLVMBasicBlockRef @Dest) { return(LLVM.BuildBr(this.instance, @Dest)); }