[LLVMbugs] [Bug 1191] NEW: Factor standard pass manager construction to separate library

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Thu Feb 8 12:22:57 PST 2007


           Summary: Factor standard pass manager construction to separate
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: Transformation Utilities
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: rspencer at x10sys.com

Right now, we have opt, llvmc and llvm-ld providing various options for
controlling which passes get run to perform compile time and link time
optimization, stripping names, stripping debug info, disabling inlining, and a
variety of other things. We also want opt, llvmc, and llvm-ld to support the -O
options to control the level of optimization applied to a module.

It seems that it would be useful to these tools, and perhaps other software
using llvm, if all this logic for building a pass manager with these various
options was built into a library.

The library would provide these options:

-O0                   Disable optimization
-O1                   Optimize for link/compile speed, not execution speed
-O2                   Perform only standard compilation optimizations
-O3                   Perform aggressive compilation optimizations
-O4                   Perform standard link time optimizations
-O5                   Perform aggressive link time optimizations
-disable-opt          Alias for -O0
-disable-inlining     Don't run the inliner
-disable-internalize  Don't run the internalizer, if it would have been
-disable-verify       Don't verify the final result
-std-compile-opts     Alias for -O2
-std-link-opts        Alias for -O4
-strip-all            Strip debug info and symbols
-strip-debug          Strip debug info but leave symbols
-verify-each          Run the verifier after each pass

and possibly others. Its interface would consist of a single function that
filled in a PassManager (provided as an argument) with the requested set of
passes. This approach would allow us to have consistent options and results
across the llvm tools and make this logic available for other (non-llvm) tools
as well.

------- 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