aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-reduce/llvm-reduce.cpp
diff options
context:
space:
mode:
authorMarkus Lavin <markus.lavin@ericsson.com>2021-11-02 09:38:57 +0100
committerMarkus Lavin <markus.lavin@ericsson.com>2021-11-02 09:41:02 +0100
commitaee7f3384b4024d9fd47867c4f69c5a8a84fa77c (patch)
tree698eeded73aa2e944fb4049b7fdcf07b504b2d98 /llvm/tools/llvm-reduce/llvm-reduce.cpp
parent0658fb4016c55ef4235a9d218c4e8c9bfa22a486 (diff)
downloadllvm-aee7f3384b4024d9fd47867c4f69c5a8a84fa77c.zip
llvm-aee7f3384b4024d9fd47867c4f69c5a8a84fa77c.tar.gz
llvm-aee7f3384b4024d9fd47867c4f69c5a8a84fa77c.tar.bz2
Revert "[llvm-reduce] Add MIR support"
This reverts commit bc2773cb1bdfacfda773eb492e7b0cc65a78cda6. Broke the clang-ppc64le-linux-multistage build. Reverting while I investigate.
Diffstat (limited to 'llvm/tools/llvm-reduce/llvm-reduce.cpp')
-rw-r--r--llvm/tools/llvm-reduce/llvm-reduce.cpp86
1 files changed, 25 insertions, 61 deletions
diff --git a/llvm/tools/llvm-reduce/llvm-reduce.cpp b/llvm/tools/llvm-reduce/llvm-reduce.cpp
index 11e3dd0..90b7ed5 100644
--- a/llvm/tools/llvm-reduce/llvm-reduce.cpp
+++ b/llvm/tools/llvm-reduce/llvm-reduce.cpp
@@ -15,21 +15,15 @@
//===----------------------------------------------------------------------===//
#include "DeltaManager.h"
-#include "ReducerWorkItem.h"
#include "TestRunner.h"
#include "llvm/ADT/SmallString.h"
-#include "llvm/CodeGen/CommandFlags.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Verifier.h"
#include "llvm/IRReader/IRReader.h"
-#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Host.h"
#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/SourceMgr.h"
-#include "llvm/Support/TargetSelect.h"
#include "llvm/Support/raw_ostream.h"
-#include "llvm/Target/TargetMachine.h"
#include <system_error>
#include <vector>
@@ -45,8 +39,7 @@ static cl::opt<bool> Version("v", cl::desc("Alias for -version"), cl::Hidden,
static cl::opt<bool>
PrintDeltaPasses("print-delta-passes",
cl::desc("Print list of delta passes, passable to "
- "--delta-passes as a comma separated list"),
- cl::cat(Options));
+ "--delta-passes as a comma separated list"));
static cl::opt<std::string> InputFilename(cl::Positional, cl::Required,
cl::desc("<input llvm ll/bc file>"),
@@ -62,8 +55,9 @@ static cl::list<std::string>
cl::desc("Arguments passed onto the interesting-ness test"),
cl::cat(Options));
-static cl::opt<std::string> OutputFilename(
- "output", cl::desc("Specify the output file. default: reduced.ll|mir"));
+static cl::opt<std::string>
+ OutputFilename("output",
+ cl::desc("Specify the output file. default: reduced.ll"));
static cl::alias OutputFileAlias("o", cl::desc("Alias for -output"),
cl::aliasopt(OutputFilename),
cl::cat(Options));
@@ -74,27 +68,30 @@ static cl::opt<bool>
"with the reduced version!"),
cl::cat(Options));
-enum class InputLanguages { None, IR, MIR };
-
-static cl::opt<InputLanguages>
- InputLanguage("x", cl::ValueOptional,
- cl::desc("Input language ('ir' or 'mir')"),
- cl::init(InputLanguages::None),
- cl::values(clEnumValN(InputLanguages::IR, "ir", ""),
- clEnumValN(InputLanguages::MIR, "mir", "")),
- cl::cat(Options));
+// Parses IR into a Module and verifies it
+static std::unique_ptr<Module> parseInputFile(StringRef Filename,
+ LLVMContext &Ctxt) {
+ SMDiagnostic Err;
+ std::unique_ptr<Module> Result = parseIRFile(Filename, Err, Ctxt);
+ if (!Result) {
+ Err.print("llvm-reduce", errs());
+ return Result;
+ }
-static cl::opt<std::string> TargetTriple("mtriple",
- cl::desc("Set the target triple"),
- cl::cat(Options));
+ if (verifyModule(*Result, &errs())) {
+ errs() << "Error: " << Filename << " - input module is broken!\n";
+ return std::unique_ptr<Module>();
+ }
-static codegen::RegisterCodeGenFlags CGF;
+ return Result;
+}
-void writeOutput(ReducerWorkItem &M, StringRef Message) {
+void writeOutput(Module &M, StringRef Message) {
if (ReplaceInput) // In-place
OutputFilename = InputFilename.c_str();
else if (OutputFilename.empty() || OutputFilename == "-")
- OutputFilename = M.isMIR() ? "reduced.mir" : "reduced.ll";
+ OutputFilename = "reduced.ll";
+
std::error_code EC;
raw_fd_ostream Out(OutputFilename, EC);
if (EC) {
@@ -105,54 +102,21 @@ void writeOutput(ReducerWorkItem &M, StringRef Message) {
errs() << Message << OutputFilename << "\n";
}
-static std::unique_ptr<LLVMTargetMachine> createTargetMachine() {
- InitializeAllTargets();
- InitializeAllTargetMCs();
- InitializeAllAsmPrinters();
- InitializeAllAsmParsers();
-
- if (TargetTriple == "")
- TargetTriple = sys::getDefaultTargetTriple();
- auto TT(Triple::normalize(TargetTriple));
- std::string CPU(codegen::getCPUStr());
- std::string FS(codegen::getFeaturesStr());
-
- std::string Error;
- const Target *TheTarget = TargetRegistry::lookupTarget(TT, Error);
-
- return std::unique_ptr<LLVMTargetMachine>(
- static_cast<LLVMTargetMachine *>(TheTarget->createTargetMachine(
- TT, CPU, FS, TargetOptions(), None, None, CodeGenOpt::Default)));
-}
-
int main(int Argc, char **Argv) {
InitLLVM X(Argc, Argv);
cl::HideUnrelatedOptions({&Options, &getColorCategory()});
cl::ParseCommandLineOptions(Argc, Argv, "LLVM automatic testcase reducer.\n");
- bool ReduceModeMIR = false;
- if (InputLanguage != InputLanguages::None) {
- if (InputLanguage == InputLanguages::MIR)
- ReduceModeMIR = true;
- } else if (StringRef(InputFilename).endswith(".mir")) {
- ReduceModeMIR = true;
- }
-
if (PrintDeltaPasses) {
printDeltaPasses(errs());
return 0;
}
LLVMContext Context;
- std::unique_ptr<LLVMTargetMachine> TM;
- std::unique_ptr<MachineModuleInfo> MMI;
- std::unique_ptr<ReducerWorkItem> OriginalProgram;
- if (ReduceModeMIR) {
- TM = createTargetMachine();
- MMI = std::make_unique<MachineModuleInfo>(TM.get());
- }
- OriginalProgram = parseReducerWorkItem(InputFilename, Context, MMI.get());
+ std::unique_ptr<Module> OriginalProgram =
+ parseInputFile(InputFilename, Context);
+
if (!OriginalProgram) {
return 1;
}