[llvm-commits] [llvm] r76402 - /llvm/trunk/tools/bugpoint/bugpoint.cpp
Nick Lewycky
nicholas at mxc.ca
Mon Jul 20 20:30:47 PDT 2009
Daniel Dunbar wrote:
> Author: ddunbar
> Date: Mon Jul 20 02:01:01 2009
> New Revision: 76402
>
> URL: http://llvm.org/viewvc/llvm-project?rev=76402&view=rev
> Log:
> Add -std-{compile,link}-opts to bugpoint.
> - Sheesh.
and there was much rejoicing!
>
> Modified:
> llvm/trunk/tools/bugpoint/bugpoint.cpp
>
> Modified: llvm/trunk/tools/bugpoint/bugpoint.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/bugpoint.cpp?rev=76402&r1=76401&r2=76402&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/bugpoint/bugpoint.cpp (original)
> +++ llvm/trunk/tools/bugpoint/bugpoint.cpp Mon Jul 20 02:01:01 2009
> @@ -22,6 +22,7 @@
> #include "llvm/Support/ManagedStatic.h"
> #include "llvm/Support/PluginLoader.h"
> #include "llvm/Support/PrettyStackTrace.h"
> +#include "llvm/Support/StandardPasses.h"
> #include "llvm/System/Process.h"
> #include "llvm/System/Signals.h"
> #include "llvm/LinkAllVMCore.h"
> @@ -57,6 +58,14 @@
> static cl::list<const PassInfo*, bool, PassNameParser>
> PassList(cl::desc("Passes available:"), cl::ZeroOrMore);
>
> +static cl::opt<bool>
> +StandardCompileOpts("std-compile-opts",
> + cl::desc("Include the standard compile time optimizations"));
> +
> +static cl::opt<bool>
> +StandardLinkOpts("std-link-opts",
> + cl::desc("Include the standard link time optimizations"));
> +
> /// BugpointIsInterrupted - Set to true when the user presses ctrl-c.
> bool llvm::BugpointIsInterrupted = false;
>
> @@ -64,6 +73,20 @@
> BugpointIsInterrupted = true;
> }
>
> +// Hack to capture a pass list.
> +namespace {
> + class AddToDriver : public PassManager {
> + BugDriver &D;
> + public:
> + AddToDriver(BugDriver &_D) : D(_D) {}
> +
> + virtual void add(Pass *P) {
> + const PassInfo *PI = P->getPassInfo();
> + D.addPasses(&PI, &PI + 1);
> + }
> + };
> +}
> +
> int main(int argc, char **argv) {
> llvm::sys::PrintStackTraceOnErrorSignal();
> llvm::PrettyStackTraceProgram X(argc, argv);
> @@ -77,6 +100,23 @@
> LLVMContext& Context = getGlobalContext();
> BugDriver D(argv[0], AsChild, FindBugs, TimeoutValue, MemoryLimit, Context);
> if (D.addSources(InputFilenames)) return 1;
> +
> + AddToDriver PM(D);
> + if (StandardCompileOpts) {
> + createStandardModulePasses(&PM, 3,
> + /*OptimizeSize=*/ false,
> + /*UnitAtATime=*/ true,
> + /*UnrollLoops=*/ true,
> + /*SimplifyLibCalls=*/ true,
> + /*HaveExceptions=*/ true,
> + createFunctionInliningPass());
> + }
> +
> + if (StandardLinkOpts)
> + createStandardLTOPasses(&PM, /*Internalize=*/false,
> + /*RunInliner=*/true,
> + /*VerifyEach=*/false);
> +
> D.addPasses(PassList.begin(), PassList.end());
>
> // Bugpoint has the ability of generating a plethora of core files, so to
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list