[LLVMbugs] [Bug 1408] NEW: Simple Analysis

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Thu May 10 11:40:36 PDT 2007


http://llvm.org/bugs/show_bug.cgi?id=1408

           Summary: Simple Analysis
           Product: libraries
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Core LLVM classes
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: dpatel at apple.com


Alias information, dominator information, loop information etc... are used  by various transformation 
passes. The interface available to the pass to preserve these information is not simple and straight 
forward. This results in cases of  "will do later". For example, Loop Rotate pass :)

1)

This can be simplified if analysis pass enforces SimpleAnalysis protocol.

class SimpleAnalysis {

  void addNewBlock(BasicBlock *B) = 0;
  void addNewInstruction(Instruction *I) = 0;

  void updateBasicBlock(BasicBlock *B) = 0;
  void updateInstruction(Instruction *I) = 0;

  void deleteBasicBlock(BasicBlock *B) = 0;
  void deleteInstruction(BasicBlock *I) = 0;

};

2) Pass Manager should be updated to keep track of available analysis passes that implements 
SimpleAnalysis protocol and provide a way to update _all_ such information.

Instead of

    if (ET = getAnalysisToUpdate<ETForest>()) {
      ...
    }

    if (DI = getAnalysisToUpdate<DominatorTree>()) {
      ...
    }

    if (LI = getAnalysisToUpdate<LoopInfo>()) {
      ...
    }

one should be able to do

   if (SA = getSimpleAnalysis()) {
      SA.addBasicBlock(NewPreheader);
      SA.updateBasicBlock(Header1);
      SA.updateBasicBlock(PreHeader1);
      ...
   }



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list