<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On May 31, 2009, at 10:46 AM, Rotem Varon wrote:</div><blockquote type="cite"><div dir="ltr"><span class="Apple-style-span" style="font-style: italic;">" All of these answers are things you would do for an individual LLVM "Value".  "</span><div><span class="Apple-style-span" style="font-style: italic;"><br>
</span></div><div><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-style: normal;">I am sorry, but may be i am missing something here.</span></span></div><div><span class="Apple-style-span" style="font-style: italic;"><span class="Apple-style-span" style="font-style: normal;">In the previous email you suggested the function "</span><span class="Apple-style-span" style="border-collapse: collapse; font-style: normal; ">bool isLiveOut(Instruction* I) ".</span></span></div>
<div><span class="Apple-style-span" style="border-collapse: collapse;">So, if you please, explain how i can find out if a <span class="Apple-style-span" style="font-weight: bold;">llvm::Value</span> (not an llvm::Instruction) is live out or not.</span></div>
<div><span class="Apple-style-span" style="border-collapse: collapse;">As i understand it, isLiveOut can help me ONLY if i have an llvm::Instruction (not a llvm:Value).</span></div></div></blockquote><div><br></div></div><div>Yes, sorry, I used the term Value in response to your question about "specific value[s]".</div><div>These are operations that only make sense for Instructions, not arbitrary values, which</div><div>don't really have liveness in any real sense.</div><div><br></div><div><blockquote type="cite"><div>Do i need to set the "LiveValues" pass in the PassManager as a prerequisite? if so how do i get the results ?</div><div>Can i simply use its public function ? </div><div>Can you explain what exactly do mean by "<span class="Apple-style-span" style="border-collapse: collapse; ">conservative approximations" ? Can it determine the live out of llvm:Value accurately?</span></div></blockquote><br></div><div>I don't know much about the pass in question, but a conservative approximation means</div><div>that it will sometimes claim that a value is live when it isn't, but not the other way around.</div><div>For most uses of liveness, that's good enough to guarantee correctness and still get</div><div>some useful optimization opportunities without making the entire pass excessively</div><div>expensive to run.</div><div><br></div><div>John.</div></body></html>