diff options
Diffstat (limited to 'docs/ProgrammersManual.html')
-rw-r--r-- | docs/ProgrammersManual.html | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html index 1541987..b6e3540 100644 --- a/docs/ProgrammersManual.html +++ b/docs/ProgrammersManual.html @@ -590,7 +590,7 @@ the <tt>BasicBlock</tt>s that constitute the <tt>Function</tt>. The following is an example that prints the name of a <tt>BasicBlock</tt> and the number of <tt>Instruction</tt>s it contains:</p> - <pre> // func is a pointer to a Function instance<br> for (Function::iterator i = func->begin(), e = func->end(); i != e; ++i) {<br><br> // print out the name of the basic block if it has one, and then the<br> // number of instructions that it contains<br><br> cerr << "Basic block (name=" << i->getName() << ") has " <br> << i->size() << " instructions.\n";<br> }<br></pre> + <pre> // func is a pointer to a Function instance<br> for (Function::iterator i = func->begin(), e = func->end(); i != e; ++i) {<br><br> // print out the name of the basic block if it has one, and then the<br> // number of instructions that it contains<br><br> std::cerr << "Basic block (name=" << i->getName() << ") has " <br> << i->size() << " instructions.\n";<br> }<br></pre> <p>Note that i can be used as if it were a pointer for the purposes of invoking member functions of the <tt>Instruction</tt> class. This is @@ -645,7 +645,7 @@ href="/doxygen/InstIterator_8h-source.html"><tt>llvm/Support/InstIterator.h</tt> and then instantiate <tt>InstIterator</tt>s explicitly in your code. Here's a small example that shows how to dump all instructions in a function to the standard error stream:<p> - <pre>#include "<a href="/doxygen/InstIterator_8h-source.html">llvm/Support/InstIterator.h</a>"<br>...<br>// Suppose F is a ptr to a function<br>for (inst_iterator i = inst_begin(F), e = inst_end(F); i != e; ++i)<br> cerr << *i << "\n";<br></pre> + <pre>#include "<a href="/doxygen/InstIterator_8h-source.html">llvm/Support/InstIterator.h</a>"<br>...<br>// Suppose F is a ptr to a function<br>for (inst_iterator i = inst_begin(F), e = inst_end(F); i != e; ++i)<br> std::cerr << *i << "\n";<br></pre> Easy, isn't it? You can also use <tt>InstIterator</tt>s to fill a worklist with its initial contents. For example, if you wanted to initialize a worklist to contain all instructions in a <tt>Function</tt> @@ -693,7 +693,7 @@ snippet illustrates use of the conversion constructors provided by LLVM iterators. By using these, you can explicitly grab the iterator of something without actually obtaining it via iteration over some structure:</p> - <pre>void printNextInstruction(Instruction* inst) {<br> BasicBlock::iterator it(inst);<br> ++it; // after this line, it refers to the instruction after *inst.<br> if (it != inst->getParent()->end()) cerr << *it << "\n";<br>}<br></pre> + <pre>void printNextInstruction(Instruction* inst) {<br> BasicBlock::iterator it(inst);<br> ++it; // after this line, it refers to the instruction after *inst.<br> if (it != inst->getParent()->end()) std::cerr << *it << "\n";<br>}<br></pre> </div> @@ -768,7 +768,7 @@ particular function <tt>foo</tt>. Finding all of the instructions that <i>use</i> <tt>foo</tt> is as simple as iterating over the <i>def-use</i> chain of <tt>F</tt>:</p> - <pre>Function* F = ...;<br><br>for (Value::use_iterator i = F->use_begin(), e = F->use_end(); i != e; ++i) {<br> if (Instruction *Inst = dyn_cast<Instruction>(*i)) {<br> cerr << "F is used in instruction:\n";<br> cerr << *Inst << "\n";<br> }<br>}<br></pre> + <pre>Function* F = ...;<br><br>for (Value::use_iterator i = F->use_begin(), e = F->use_end(); i != e; ++i) {<br> if (Instruction *Inst = dyn_cast<Instruction>(*i)) {<br> std::cerr << "F is used in instruction:\n";<br> std::cerr << *Inst << "\n";<br> }<br>}<br></pre> <p>Alternately, it's common to have an instance of the <a href="/doxygen/classllvm_1_1User.html">User Class</a> and need to know what |