mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-02 07:32:52 +00:00
Correct a bunch of mistakes which meant that the example pass didn't
even compile, let alone work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122657 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
dc97c0b2c7
commit
5e09eefe95
@ -273,7 +273,7 @@ time.</p>
|
|||||||
|
|
||||||
<div class="doc_code"><pre>
|
<div class="doc_code"><pre>
|
||||||
static char ID;
|
static char ID;
|
||||||
Hello() : FunctionPass(&ID) {}
|
Hello() : FunctionPass(ID) {}
|
||||||
</pre></div><p>
|
</pre></div><p>
|
||||||
|
|
||||||
<p> This declares pass identifier used by LLVM to identify pass. This allows LLVM to
|
<p> This declares pass identifier used by LLVM to identify pass. This allows LLVM to
|
||||||
@ -301,7 +301,7 @@ function.</p>
|
|||||||
initialization value is not important.</p>
|
initialization value is not important.</p>
|
||||||
|
|
||||||
<div class="doc_code"><pre>
|
<div class="doc_code"><pre>
|
||||||
INITIALIZE_PASS(Hello, "<i>hello</i>", "<i>Hello World Pass</i>",
|
static RegisterPass<Hello> X("<i>hello</i>", "<i>Hello World Pass</i>",
|
||||||
false /* Only looks at CFG */,
|
false /* Only looks at CFG */,
|
||||||
false /* Analysis Pass */);
|
false /* Analysis Pass */);
|
||||||
} <i>// end of anonymous namespace</i>
|
} <i>// end of anonymous namespace</i>
|
||||||
@ -328,7 +328,7 @@ is supplied as fourth argument. </p>
|
|||||||
<b>struct Hello</b> : <b>public</b> <a href="#FunctionPass">FunctionPass</a> {
|
<b>struct Hello</b> : <b>public</b> <a href="#FunctionPass">FunctionPass</a> {
|
||||||
|
|
||||||
static char ID;
|
static char ID;
|
||||||
Hello() : FunctionPass(&ID) {}
|
Hello() : FunctionPass(ID) {}
|
||||||
|
|
||||||
<b>virtual bool</b> <a href="#runOnFunction">runOnFunction</a>(Function &F) {
|
<b>virtual bool</b> <a href="#runOnFunction">runOnFunction</a>(Function &F) {
|
||||||
errs() << "<i>Hello: </i>" << F.getName() << "\n";
|
errs() << "<i>Hello: </i>" << F.getName() << "\n";
|
||||||
@ -337,7 +337,7 @@ is supplied as fourth argument. </p>
|
|||||||
};
|
};
|
||||||
|
|
||||||
char Hello::ID = 0;
|
char Hello::ID = 0;
|
||||||
INITIALIZE_PASS(Hello, "<i>Hello</i>", "<i>Hello World Pass</i>", false, false);
|
static RegisterPass<Hello> X("hello", "Hello World Pass", false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -361,7 +361,7 @@ them) to be useful.</p>
|
|||||||
|
|
||||||
<p>Now that you have a brand new shiny shared object file, we can use the
|
<p>Now that you have a brand new shiny shared object file, we can use the
|
||||||
<tt>opt</tt> command to run an LLVM program through your pass. Because you
|
<tt>opt</tt> command to run an LLVM program through your pass. Because you
|
||||||
registered your pass with the <tt>INITIALIZE_PASS</tt> macro, you will be able to
|
registered your pass with <tt>RegisterPass</tt>, you will be able to
|
||||||
use the <tt>opt</tt> tool to access it, once loaded.</p>
|
use the <tt>opt</tt> tool to access it, once loaded.</p>
|
||||||
|
|
||||||
<p>To test it, follow the example at the end of the <a
|
<p>To test it, follow the example at the end of the <a
|
||||||
@ -1057,10 +1057,10 @@ remember, you may not modify the LLVM <tt>Function</tt> or its contents from a
|
|||||||
pass registration works, and discussed some of the reasons that it is used and
|
pass registration works, and discussed some of the reasons that it is used and
|
||||||
what it does. Here we discuss how and why passes are registered.</p>
|
what it does. Here we discuss how and why passes are registered.</p>
|
||||||
|
|
||||||
<p>As we saw above, passes are registered with the <b><tt>INITIALIZE_PASS</tt></b>
|
<p>As we saw above, passes are registered with the <b><tt>RegisterPass</tt></b>
|
||||||
macro. The first parameter is the name of the pass that is to be used on
|
template. The template parameter is the name of the pass that is to be used on
|
||||||
the command line to specify that the pass should be added to a program (for
|
the command line to specify that the pass should be added to a program (for
|
||||||
example, with <tt>opt</tt> or <tt>bugpoint</tt>). The second argument is the
|
example, with <tt>opt</tt> or <tt>bugpoint</tt>). The first argument is the
|
||||||
name of the pass, which is to be used for the <tt>-help</tt> output of
|
name of the pass, which is to be used for the <tt>-help</tt> output of
|
||||||
programs, as
|
programs, as
|
||||||
well as for debug output generated by the <tt>--debug-pass</tt> option.</p>
|
well as for debug output generated by the <tt>--debug-pass</tt> option.</p>
|
||||||
|
Loading…
Reference in New Issue
Block a user