Mercurial > hg > CbC > CbC_llvm
diff tools/bugpoint/OptimizerDriver.cpp @ 147:c2174574ed3a
LLVM 10
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 16:55:33 +0900 |
parents | 3a76565eade5 |
children |
line wrap: on
line diff
--- a/tools/bugpoint/OptimizerDriver.cpp Sat Feb 17 09:57:20 2018 +0900 +++ b/tools/bugpoint/OptimizerDriver.cpp Wed Aug 14 16:55:33 2019 +0900 @@ -1,9 +1,8 @@ //===- OptimizerDriver.cpp - Allow BugPoint to run passes safely ----------===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // @@ -16,6 +15,7 @@ //===----------------------------------------------------------------------===// #include "BugDriver.h" +#include "ToolRunner.h" #include "llvm/Bitcode/BitcodeWriter.h" #include "llvm/IR/DataLayout.h" #include "llvm/IR/Module.h" @@ -79,7 +79,7 @@ bool BugDriver::writeProgramToFile(const std::string &Filename, const Module &M) const { std::error_code EC; - ToolOutputFile Out(Filename, EC, sys::fs::F_None); + ToolOutputFile Out(Filename, EC, sys::fs::OF_None); if (!EC) return writeProgramToFileAux(Out, M); return true; @@ -166,7 +166,8 @@ std::string tool = OptCmd; if (OptCmd.empty()) { - if (ErrorOr<std::string> Path = sys::findProgramByName("opt")) + if (ErrorOr<std::string> Path = + FindProgramByName("opt", getToolName(), &OutputPrefix)) tool = *Path; else errs() << Path.getError().message() << "\n"; @@ -194,20 +195,20 @@ } // setup the child process' arguments - SmallVector<const char *, 8> Args; + SmallVector<StringRef, 8> Args; if (UseValgrind) { Args.push_back("valgrind"); Args.push_back("--error-exitcode=1"); Args.push_back("-q"); - Args.push_back(tool.c_str()); + Args.push_back(tool); } else - Args.push_back(tool.c_str()); + Args.push_back(tool); for (unsigned i = 0, e = OptArgs.size(); i != e; ++i) - Args.push_back(OptArgs[i].c_str()); + Args.push_back(OptArgs[i]); Args.push_back("-disable-symbolication"); Args.push_back("-o"); - Args.push_back(OutputFilename.c_str()); + Args.push_back(OutputFilename); std::vector<std::string> pass_args; for (unsigned i = 0, e = PluginLoader::getNumPlugins(); i != e; ++i) { pass_args.push_back(std::string("-load")); @@ -224,12 +225,11 @@ Args.push_back(Temp->TmpName.c_str()); for (unsigned i = 0; i < NumExtraArgs; ++i) Args.push_back(*ExtraArgs); - Args.push_back(nullptr); - DEBUG(errs() << "\nAbout to run:\t"; - for (unsigned i = 0, e = Args.size() - 1; i != e; ++i) errs() - << " " << Args[i]; - errs() << "\n";); + LLVM_DEBUG(errs() << "\nAbout to run:\t"; + for (unsigned i = 0, e = Args.size() - 1; i != e; ++i) errs() + << " " << Args[i]; + errs() << "\n";); Optional<StringRef> Redirects[3] = {None, None, None}; // Redirect stdout and stderr to nowhere if SilencePasses is given. @@ -239,8 +239,8 @@ } std::string ErrMsg; - int result = sys::ExecuteAndWait(Prog, Args.data(), nullptr, Redirects, - Timeout, MemoryLimit, &ErrMsg); + int result = sys::ExecuteAndWait(Prog, Args, None, Redirects, Timeout, + MemoryLimit, &ErrMsg); // If we are supposed to delete the bitcode file or if the passes crashed, // remove it now. This may fail if the file was never created, but that's ok.