Displaying 4 results from an estimated 4 matches for "newphivalue".
2012 Mar 08
2
[LLVMdev] Updating value from PHI
...edge and removed the preheader from the loop.
for (BasicBlock::iterator II = loopHeaderBB->begin();
(PN=dyn_cast<PHINode>(II)); ++II) {
// remove loop back PHI and add it to split BB
errs()<<*II<<"\n";
PHINode *newPHIvalue = PHINode::Create(PN->getType(), 2,
PN->getName().str(), splitBB->getFirstInsertionPt());
int IDX = PN->getBasicBlockIndex(splitBB);
while (IDX != -1) {
Value *oldValue = PN->getIncomingValue((unsigned(IDX)));
PN->r...
2012 Mar 08
0
[LLVMdev] Updating value from PHI
...r from the loop.
>
> for (BasicBlock::iterator II = loopHeaderBB->begin();
> (PN=dyn_cast<PHINode>(II)); ++II) {
> // remove loop back PHI and add it to split BB
> errs()<<*II<<"\n";
> PHINode *newPHIvalue = PHINode::Create(PN->getType(), 2,
> PN->getName().str(), splitBB->getFirstInsertionPt());
> int IDX = PN->getBasicBlockIndex(splitBB);
> while (IDX != -1) {
> Value *oldValue = PN->getIncomingValue((unsigned(IDX)));
>...
2012 Mar 08
0
[LLVMdev] Updating value from PHI
I have attached a case of what I am trying to do, I'm pretty sure I'm just
missing some simple API call. In the cfg you can see that although Im
setting "lsr.iv441" as "lsr.iv44" from for.body.387.i it's not propagating
that through the block or graph.
On Wed, Mar 7, 2012 at 12:03 PM, Ryan Taylor <ryta1203 at gmail.com> wrote:
> I am splitting a one BB
2012 Mar 07
4
[LLVMdev] Updating value from PHI
I am splitting a one BB loop into two BB.
Basically, the one loop BB has 3 incoming values, one form back edge two
from other edges. I want to extract the PHIs from the other two edges out
into it's own BB and delete that from the loop, then redirect the backedge
to the loopbody (non extracted portion) and create a new PHI coming from
the extracted BB and the backedge.
I can do this;