1d2e10364SArthur Eubanks //===- ReduceModuleData.cpp -----------------------------------------------===// 2d2e10364SArthur Eubanks // 3d2e10364SArthur Eubanks // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4d2e10364SArthur Eubanks // See https://llvm.org/LICENSE.txt for license information. 5d2e10364SArthur Eubanks // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6d2e10364SArthur Eubanks // 7d2e10364SArthur Eubanks //===----------------------------------------------------------------------===// 8d2e10364SArthur Eubanks // 9d2e10364SArthur Eubanks // This file implements a reduce pass to reduce various module data. 10d2e10364SArthur Eubanks // 11d2e10364SArthur Eubanks //===----------------------------------------------------------------------===// 12d2e10364SArthur Eubanks 13d2e10364SArthur Eubanks #include "ReduceModuleData.h" 14d2e10364SArthur Eubanks 15d2e10364SArthur Eubanks using namespace llvm; 16d2e10364SArthur Eubanks clearModuleData(Oracle & O,Module & Program)1777bc3ba3SArthur Eubanksstatic void clearModuleData(Oracle &O, Module &Program) { 1877bc3ba3SArthur Eubanks if (!Program.getModuleIdentifier().empty() && !O.shouldKeep()) 1977bc3ba3SArthur Eubanks Program.setModuleIdentifier(""); 2077bc3ba3SArthur Eubanks if (!Program.getSourceFileName().empty() && !O.shouldKeep()) 2177bc3ba3SArthur Eubanks Program.setSourceFileName(""); 22d2e10364SArthur Eubanks // TODO: clear line by line rather than all at once 2377bc3ba3SArthur Eubanks if (!Program.getModuleInlineAsm().empty() && !O.shouldKeep()) 2477bc3ba3SArthur Eubanks Program.setModuleInlineAsm(""); 25d2e10364SArthur Eubanks } 26d2e10364SArthur Eubanks reduceModuleDataDeltaPass(TestRunner & Test)27d2e10364SArthur Eubanksvoid llvm::reduceModuleDataDeltaPass(TestRunner &Test) { 28d2e10364SArthur Eubanks outs() << "*** Reducing Module Data...\n"; 29*6f288bd7SArthur Eubanks runDeltaPass(Test, clearModuleData); 30d2e10364SArthur Eubanks } 31