search for: isliveout

Displaying 8 results from an estimated 8 matches for "isliveout".

2009 May 31
1
[LLVMdev] Value liveout (uses)
" All of these answers are things you would do for an individual LLVM "Value". " I am sorry, but may be i am missing something here. In the previous email you suggested the function "bool isLiveOut(Instruction* I) ". So, if you please, explain how i can find out if a llvm::Value (not an llvm::Instruction) is live out or not. As i understand it, isLiveOut can help me ONLY if i have an llvm::Instruction (not a llvm:Value). Thanks. P.S I am truly grateful for your help. On Sat, May 30,...
2009 May 30
4
[LLVMdev] Value liveout (uses)
...(liveout), without iterating through all the basic block ? > > If the value is created within the basic block in question, and the > block doesn't loop to itself, then you can just iterate through the > uses and note if the use is an instruction in a different block: > > bool isLiveOut(Instruction* I) { > BasicBlock* I_BB = I->getParent(): > for (Value::use_iterator ui = I->use_begin(), ue = I->use_end(); ui > ! > = ue; ++ui) > if (cast<Instruction>(ui)->getParent() != I_BB) > return true; &gt...
2009 May 30
0
[LLVMdev] Value liveout (uses)
...rrent basic > block (liveout), without iterating through all the basic block ? If the value is created within the basic block in question, and the block doesn't loop to itself, then you can just iterate through the uses and note if the use is an instruction in a different block: bool isLiveOut(Instruction* I) { BasicBlock* I_BB = I->getParent(): for (Value::use_iterator ui = I->use_begin(), ue = I->use_end(); ui ! = ue; ++ui) if (cast<Instruction>(ui)->getParent() != I_BB) return true; } } If the value is created within the block but the block loops to itsel...
2009 May 30
0
[LLVMdev] Value liveout (uses)
On May 30, 2009, at 5:03 AM, Rotem Varon wrote: > Is it possible to determine the liveout of the operands (see example > bellow) ? > > %5 = add i32 %4, %3 > > For '%5': i can simply use " i->isUsedOutsideOfBlock() " > For '%3' and '%4' : this is the question ... By definition, operands are live out if they're used in any
2013 Feb 02
0
[LLVMdev] Moving return value registers from MRI to return instructions
...H_RETURN pseudo-instruction has different return-value registers than normal return instructions. See PR14750 for the details. To fix this, I am going to remove the live-out lists from MachineRegisterInfo. These functions are going to be removed: - addLiveOut() - liveout_begin() - liveout_end() - isLiveOut() Instead of calling MRI.addLiveOut(), targets should add return value registers as implicit operands on return instructions. This is already how argument registers are passed to call instructions, making calls and returns work the same way. I'll be updating the in-tree targets. Other targets...
2009 May 30
4
[LLVMdev] Value liveout (uses)
Hi, How can i know, if a value have uses outside of the current basic block (liveout), without iterating through all the basic block ? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090530/71681bc2/attachment.html>
2009 May 30
0
[LLVMdev] Value liveout (uses)
...(liveout), without iterating through all the basic block ? > > If the value is created within the basic block in question, and the > block doesn't loop to itself, then you can just iterate through the > uses and note if the use is an instruction in a different block: > > bool isLiveOut(Instruction* I) { > BasicBlock* I_BB = I->getParent(): > for (Value::use_iterator ui = I->use_begin(), ue = I->use_end > (); ui ! > = ue; ++ui) > if (cast<Instruction>(ui)->getParent() != I_BB) > return true; &...
2009 May 31
1
[LLVMdev] Value liveout (uses)
...ating through all the basic block ? >> >> If the value is created within the basic block in question, and the >> block doesn't loop to itself, then you can just iterate through the >> uses and note if the use is an instruction in a different block: >> >> bool isLiveOut(Instruction* I) { >> BasicBlock* I_BB = I->getParent(): >> for (Value::use_iterator ui = I->use_begin(), ue = I- >> >use_end(); ui ! >> = ue; ++ui) >> if (cast<Instruction>(ui)->getParent() != I_BB) >>...