Displaying 6 results from an estimated 6 matches for "lbb1_8".
Did you mean:
lbb1_1
2006 Jul 09
2
[LLVMdev] Critical edges
Dear guys,
I am having problem to split edges correctly. Mostly because the new
basic blocks are creating infinite loops. Could someone help me fixing the
code below? It is creating assembly like this one below. Block LBB1_9 was
inserted to break the critical edge between blocks LBB1_3 and LBB1_8. But
it changes the semantics of the original program, because, before, LBB1_8
was falling through LBB1_4, and now it is falling on LBB1_9.
LBB1_3: ;no_exit
lis r4, 21845
ori r4, r4, 21846
mulhw r4, r2, r4
addi r5, r2, -1
li r6, -1
srwi r6, r4, 31...
2006 Jul 09
0
[LLVMdev] Critical edges
...; I am having problem to split edges correctly. Mostly because the new
> basic blocks are creating infinite loops. Could someone help me fixing the
> code below? It is creating assembly like this one below. Block LBB1_9 was
> inserted to break the critical edge between blocks LBB1_3 and LBB1_8. But
> it changes the semantics of the original program, because, before, LBB1_8
> was falling through LBB1_4, and now it is falling on LBB1_9.
>
> LBB1_3: ;no_exit
> lis r4, 21845
> ori r4, r4, 21846
> mulhw r4, r2, r4
> addi r5, r2, -1
>...
2006 Jul 05
0
[LLVMdev] Critical edges
> If you don't want critical edges in the machine code CFG, you're going to
> have to write a machine code CFG critical edge splitting pass: LLVM
> doesn't currently have one.
>
> -Chris
Hey guys,
I've coded a pass to break the critical edges of the machine
control flow graph. The program works fine, but I am sure it is not
the right way of implementing it.
2006 Jul 04
2
[LLVMdev] Critical edges
On Tue, 4 Jul 2006, Fernando Magno Quintao Pereira wrote:
> However, it does not remove all the critical edges. I am getting a very
> weird dataflow graph (even without the Break Critical edges pass). The
> dataflow generated by MachineFunction::dump() for the program below is
> given here:
> http://compilers.cs.ucla.edu/fernando/projects/soc/images/loop_no_crit2.pdf
...
> The
2009 Dec 11
2
[LLVMdev] How to check for "SPARC code generation" in MachineBasicBlock.cpp?
Hi, Chris
> That is target independent code, so you should not put sparc specific changes there. It sounds like one of the sparc-specific target hooks is wrong.
Since sparc does not provide any hooks for operation of branches (e.g.
AnalyzeBranch and friends) it might be possible that generic codegen
code is broken in absence of these hooks.
--
With best regards, Anton Korobeynikov
Faculty
2010 Feb 08
2
[LLVMdev] How to check for "SPARC code generation" in MachineBasicBlock.cpp?
...! %bb
! in Loop: Header=BB1_2 Depth=2
sethi 1856, %l5
or %g0, 1, %l6
sll %l6, %l3, %l3
or %l5, 1, %l5
and %l3, %l5, %l3
subcc %l3, 0, %l3
bne .LBB1_8
nop
ba .LBB1_68
nop
! BB#8: ! %bb1
! in Loop: Header=BB1_2 Depth=2
ld [%fp+-212], %l3
and %l3, 255, %l3
.Llabel18:
subcc %l3, 1, %l3...