Hi John!!
>1) Have you ensured that your passes have different arguments to the
>RegisterPass constructor (i.e., they have different names)?
Yes, I only write one Pass (Function Pass) and gave it that one name.
>2) Are you sure that variable X is only being defined once? There are
>some ways in which you could have unintentionally defined it twice. For
>example, if you put the RegisterPass line in a header file that is
>included by multiple source files in your pass's source code, it will be
>defined multiple times, possibly giving rise to this error. In our
>code, we use RegisterPass inside a single .cpp file to ensure it's only
>defined once.
Yes, I'm sure. I wrote the Pass and the RegisterPass also in a .cpp file,
like this:
#include<vector>
#include"llvm/Pass.h"
#include"llvm/Function.h"
#include"llvm/BasicBlock.h"
#include"llvm/Instruction.h"
#include"../blockNrs/blockNrs.h"
#include"GenomManager.h"
using namespace std;
using namespace llvm;
namespace {
class FunctionAnalysis : public FunctionPass
{
public:
static char ID;
FunctionAnalysis() : FunctionPass((intptr_t)&ID) {} // Konstruktor ruft
Funktionsdurchlauf auf
~FunctionAnalysis() {}
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
AU.addRequired<blockNrs>();
};
virtual bool runOnFunction(Function &F) // F is a pointer to a
Function instance
{
GenomManager *GGenomManager;
GGenomManager=new GenomManager();
blockNrs &bnrs=getAnalysis<blockNrs>();
GGenomManager->newFunction(F);
for(Function::iterator b = F.begin(), be = F.end(); b!=be; ++b)
{
//aktuelle Block Nummer wird geholt
blockCounter *bcntr = bnrs.lookup(b);
GGenomManager->newBlock(&(*b),*bcntr);
for(BasicBlock::iterator i = b->begin(), ie = b->end();
i!=ie; ++i)
{
GGenomManager->newInstruction(i);
}// end for BB
} // end for Function
return false;
} // end runOnFunction
private:
};// end class
char FunctionAnalysis::ID = 0;
RegisterPass<FunctionAnalysis> X("gasched", "GA Scheduling
Pass");
} // end namespace
Could it be that I did something wrong in the Makefile of the source code? The
source code itself is compilable. The Error Message occurred when I tried to
test it ("opt -load" its .so file ) .
Thanks a lot...
-Nicole-
_______________________________________________________________________
EINE FÜR ALLE: die kostenlose WEB.DE-Plattform für Freunde und Deine
Homepage mit eigenem Namen. Jetzt starten! http://unddu.de/?kid=kid at mf2