Displaying 7 results from an estimated 7 matches for "true_block".
2010 Dec 09
0
[LLVMdev] Inlining and exception handling in LLVM and GCC
...ake landing pad
blocks special in the IR to facility detecting misuse (both pragmatically
and visually).
The following pseudo-IR tries to demonstrate the validity of assignments:
main:
%a = no_fail_instruction
test: unwind to lpad
%r = possible_failing_comparison %a, 0
br %r == 0, label true_block, label false_block
true_block: unwind to lpad
%c = no_fail_instruction
%d = potentially_failing_instruction %c
br label either_block
false_block: unwind to lpad
%e = no_fail_instruction
%f = potentially_failing_instruction %e
br label either_block
either_block: unwind to lpad...
2010 Dec 08
2
[LLVMdev] Inlining and exception handling in LLVM and GCC
On 8 December 2010 18:45, Devang Patel <dpatel at apple.com> wrote:
> I do not know EH or details of these proposals. But do not forget, basic blocks are merged/split/deleted, instructions are added/removed/moved/copied/replaced.
Indeed. Having the information in the invoke kinda alleviates this
problem, but removing the invoke syntax will bring that back.
One way to merge two basic
2004 Aug 17
5
[LLVMdev] JIT API example (fibonacci)
...rg"); // Give it a nice symbolic name for fun.
> >
> > SetCondInst* CondInst
> > = new SetCondInst( Instruction::SetLE,
> > &ArgX, Two );
> >
> > BB->getInstList().push_back(CondInst);
> >
> > // Create the true_block
> > BasicBlock* true_bb = new BasicBlock("arg<=2");
> >
> >
> > // Create the return instruction and add it
> > // to the basic block for true case:
> > true_bb->getInstList().push_back(new ReturnInst(One));
> >
> >...
2004 Aug 17
0
[LLVMdev] JIT API example (fibonacci)
...arg
> ArgX.setName("AnArg"); // Give it a nice symbolic name for fun.
>
> SetCondInst* CondInst
> = new SetCondInst( Instruction::SetLE,
> &ArgX, Two );
>
> BB->getInstList().push_back(CondInst);
>
> // Create the true_block
> BasicBlock* true_bb = new BasicBlock("arg<=2");
>
>
> // Create the return instruction and add it
> // to the basic block for true case:
> true_bb->getInstList().push_back(new ReturnInst(One));
>
> // Create an exit block
>...
2004 Aug 17
0
[LLVMdev] JIT API example (fibonacci)
...// Give it a nice symbolic name for fun.
>>>
>>> SetCondInst* CondInst
>>> = new SetCondInst( Instruction::SetLE,
>>> &ArgX, Two );
>>>
>>> BB->getInstList().push_back(CondInst);
>>>
>>> // Create the true_block
>>> BasicBlock* true_bb = new BasicBlock("arg<=2");
>>>
>>>
>>> // Create the return instruction and add it
>>> // to the basic block for true case:
>>> true_bb->getInstList().push_back(new ReturnInst(One));
>>&...
2004 Aug 18
1
[LLVMdev] JIT API example (fibonacci)
...un.
> >>>
> >>> SetCondInst* CondInst
> >>> = new SetCondInst( Instruction::SetLE,
> >>> &ArgX, Two );
> >>>
> >>> BB->getInstList().push_back(CondInst);
> >>>
> >>> // Create the true_block
> >>> BasicBlock* true_bb = new BasicBlock("arg<=2");
> >>>
> >>>
> >>> // Create the return instruction and add it
> >>> // to the basic block for true case:
> >>> true_bb->getInstList().push_back(n...
2004 Aug 17
4
[LLVMdev] JIT API example (fibonacci)
Hi LLVMers,
the example attached I have used to prove that JIT and some visible
optimizations are really invoked.
Proved OK. I got 30% speed-up in comparison to gcc 3.3.3
on my Athlon XP 1500.
Nice.
P.S. guys, no fears, I don't plan to flood the cvs repository
with my "brilliant" examples ;)
---
Valery A.Khamenya
-------------- next part --------------
An