search for: createbr

Displaying 7 results from an estimated 7 matches for "createbr".

2005 Apr 28
2
[LLVMdev] inserting blocks into a Function
...a block is inserted into the CFG? Also, planning to write a helper function which will take care of such issues. The general signature is: void reconnectBlocks(BasicBlock *newBlock, BasicBlock *insertBefore , std::vector<BasicBlock*> &preds , bool createBr = true) The std::vector "preds" is used to provide a list of preds for insertBefore, which will be reconnected to newBlock. For cases where all the preds will be reconnected, the function can be overloaded with this argument removed. The bool createBr is used to indicate whether an unco...
2005 Apr 29
0
[LLVMdev] inserting blocks into a Function
...that. > Also, planning to write a helper function which will take care of such > issues. The general signature is: > > void reconnectBlocks(BasicBlock *newBlock, BasicBlock *insertBefore > , std::vector<BasicBlock*> &preds > , bool createBr = true) > > The std::vector "preds" is used to provide a list of preds for > insertBefore, which will be reconnected to newBlock. For cases where > all the preds will be reconnected, the function can be overloaded with > this argument removed. > > The bool createBr is...
2012 Apr 05
0
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
...er.CreateInvoke( ctor, normal_blk, unwind_blk, ctor_args ); > > // Call object's destructor. > BasicBlock *const dtor_blk = BasicBlock::Create( ctx, "dtor", fn ); > builder.SetInsertPoint( dtor_blk ); > builder.CreateCall( dtor, void_obj_ptr ); > builder.CreateBr( unwind_blks_.back() ); > > // Catch exception, if any. > builder.SetInsertPoint( unwind_blk ); > LandingPadInst *const lpad = builder.CreateLandingPad( > caught_result_type_, personality_fn_, 0 > ); > lpad->setCleanup( true ); > builder.CreateStore( lp...
2012 Mar 23
2
[LLVMdev] Catching C++ exceptions, cleaning up, rethrowing
On Mar 23, 2012, at 4:29 PM, Paul J. Lucas wrote: > On Mar 23, 2012, at 3:25 PM, Bill Wendling wrote: > >> Let's take your example. You will have code that looks like this: >> >> extern "C" void thunk_item_M_delete( void *v_that ) { >> item *that = 0; >> try { >> that = static_cast<item*>( v_that ); >>
2015 Jul 18
4
[LLVMdev] [RFC] Defining Infinite Loops
On 07/17/2015 02:03 AM, Chandler Carruth wrote: > On Thu, Jul 16, 2015 at 11:08 AM Hal Finkel <hfinkel at anl.gov > <mailto:hfinkel at anl.gov>> wrote: > > ----- Original Message ----- > > From: "Chandler Carruth" <chandlerc at google.com > <mailto:chandlerc at google.com>> > > To: "Hal Finkel" <hfinkel at
2006 Apr 18
0
[LLVMdev] LLVM-based JVM JIT for libgcj
...ing &Name = ""); Value *createSub(Value *LHS, Value *RHS, const std::string &Name = ""); ... }; Given this, use would be much more implicit: InstructionCreator IC; IC.setBasicBlock(FalseBB); Value *A = IC.createAdd(LHS, RHS); Value *B = IC.createSetEQ(A, RHS); IC.createBr(B, TrueBB, FalseBB); IC.setBasicBlock(TrueBB); ... if so, I can add this. Do you have a suggestion for a name better than "InstructionCreator"? > I think libjit only has one technical idea that is missing from LLVM. > In libjit you can create a new function and get a pointer to...
2006 Apr 18
2
[LLVMdev] LLVM-based JVM JIT for libgcj
>>>>> "Chris" == Chris Lattner <sabre at nondot.org> writes: >> FWIW I actually did this work twice, once for libjit and once for >> LLVM. I'm happy to provide a comparison, from a jit-writing >> perspective, if you're interested. Chris> Given your experience with both, I'd be very interested in any Chris> thoughts you have on