Displaying 3 results from an estimated 3 matches for "selectcont".
2004 Jun 22
3
[LLVMdev] Linearscan allocator bug?
...ine
90. The problem is that gr6 is not initialized in the interval from the
function entry till the jump.
I also attach the debug dumps from my backend.
The basic block in question is shortcirc_done.1 (line 198 in the log). It
starts with:
%reg1060 = phi %reg1032, mbb<shortcirc_next.0.selectcont.selectcont,
The predecessor is at line 155 and the register 1032 is assigned a value on
line 140 (in shortcirc_next.0.selectcont):
%reg1032 = move %reg103
After register allocation the code in shortcirc_done.1 is (line 334):
%gr2 = move %gr6
the predecessor in at line 285 and the cod...
2004 Jun 22
0
[LLVMdev] Linearscan allocator bug?
...> 90. The problem is that gr6 is not initialized in the interval from the
> function entry till the jump.
Okay, I see the problem. You need to tell the compiler that the
conditional branches are terminators. You're getting code that looks like
this:
<LBB7> // // shortcirc_next.0.selectcont.selectcont
gr1 = gr1;
gr1 = gr1;
gr5 = 0;
gr2 - gr5;
if <>0 goto LBB11;
* gr2 = gr4;
* gr5 = gr1;
* gr6 = gr4;
* gr1 = gr1;
goto LBB8;
I'm guessing that those copies are inserted by the register allocator, and
in par...
2004 Jun 23
3
[LLVMdev] Linearscan allocator bug?
...is not initialized in
> > the interval from the function entry till the jump.
>
> Okay, I see the problem. You need to tell the compiler that the
> conditional branches are terminators. You're getting code that looks like
> this:
>
> <LBB7> // // shortcirc_next.0.selectcont.selectcont
> gr1 = gr1;
> gr1 = gr1;
> gr5 = 0;
> gr2 - gr5;
> if <>0 goto LBB11;
> * gr2 = gr4;
> * gr5 = gr1;
> * gr6 = gr4;
> * gr1 = gr1;
> goto LBB8;
>
> I'm guessing that thos...