[LLVMdev] Something about the andersens pass
Chris Lattner
sabre at nondot.org
Thu Jan 24 20:51:01 PST 2008
> I then run another pass:
> PassManager PM;
> PM.add(new TargetData(*EE->getTargetData()));
> PM.add(createVerifierPass());
> //PM.add(createAndersensPass()); // Seems to break dynamic casts
> in combo with load value numbering
> PM.add(createLoadValueNumberingPass());
> PM.add(createGCSEPass());
> PM.add(createAggressiveDCEPass());
> PM.add(createDeadInstEliminationPass());
> PM.run(*qModule);
>
> Next, I call my monster function and it works as expected.
>
> But if I uncomment the call to createAndersendsPass() my code fails
> (because something goes wrong with the dynamic cast).
I don't know if andersen's is considered to be production quality.
DannyB, can you comment?
> Is what I'm doing supposed to work? I have I missed something with
> the pass manager?
Nope, this should work. You might consider using the GVN pass instead
of loadvn+gcse though, it is much faster and should be at least as
effective.
-Chris
More information about the llvm-dev
mailing list