forked from OSchip/llvm-project
Revert "[llvm-reduce] add ReduceAttribute delta pass"
This reverts commit fc62b36a00
.
Breaks tests on mac: http://45.33.8.238/mac/7301/step_11.txt
This commit is contained in:
parent
428583dd22
commit
b12176d2aa
|
@ -1,7 +0,0 @@
|
|||
import sys
|
||||
|
||||
for line in open(sys.argv[1], "r"):
|
||||
if "use-soft-float" in line:
|
||||
sys.exit(0) # Interesting!
|
||||
|
||||
sys.exit(1)
|
|
@ -1,16 +0,0 @@
|
|||
; Test that llvm-reduce can remove uninteresting attributes.
|
||||
;
|
||||
; RUN: rm -rf %t
|
||||
; RUN: llvm-reduce --test %python --test-arg %p/Inputs/remove-attributes.py %s -o %t
|
||||
; RUN: cat %t | FileCheck %s
|
||||
|
||||
define void @a() #0 {
|
||||
ret void
|
||||
}
|
||||
define void @b() #1 {
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: attributes #0 = { "use-soft-float"="false" }
|
||||
attributes #0 = { norecurse noreturn nounwind readnone uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "patchable-function-entry"="2" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
attributes #1 = { norecurse }
|
|
@ -14,13 +14,12 @@ add_llvm_tool(llvm-reduce
|
|||
llvm-reduce.cpp
|
||||
TestRunner.cpp
|
||||
deltas/Delta.cpp
|
||||
deltas/ReduceArguments.cpp
|
||||
deltas/ReduceAttributes.cpp
|
||||
deltas/ReduceBasicBlocks.cpp
|
||||
deltas/ReduceFunctions.cpp
|
||||
deltas/ReduceGlobalVars.cpp
|
||||
deltas/ReduceInstructions.cpp
|
||||
deltas/ReduceMetadata.cpp
|
||||
deltas/ReduceArguments.cpp
|
||||
deltas/ReduceBasicBlocks.cpp
|
||||
deltas/ReduceInstructions.cpp
|
||||
|
||||
DEPENDS
|
||||
intrinsics_gen
|
||||
|
|
|
@ -14,12 +14,11 @@
|
|||
#include "TestRunner.h"
|
||||
#include "deltas/Delta.h"
|
||||
#include "deltas/ReduceArguments.h"
|
||||
#include "deltas/ReduceAttributes.h"
|
||||
#include "deltas/ReduceBasicBlocks.h"
|
||||
#include "deltas/ReduceFunctions.h"
|
||||
#include "deltas/ReduceGlobalVars.h"
|
||||
#include "deltas/ReduceInstructions.h"
|
||||
#include "deltas/ReduceMetadata.h"
|
||||
#include "deltas/ReduceInstructions.h"
|
||||
|
||||
namespace llvm {
|
||||
|
||||
|
@ -31,7 +30,6 @@ inline void runDeltaPasses(TestRunner &Tester) {
|
|||
reduceMetadataDeltaPass(Tester);
|
||||
reduceArgumentsDeltaPass(Tester);
|
||||
reduceInstructionsDeltaPass(Tester);
|
||||
reduceAttributesDeltaPass(Tester);
|
||||
// TODO: Implement the remaining Delta Passes
|
||||
}
|
||||
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
//===- ReduceAttributes.cpp - Specialized Delta Pass ----------------------===//
|
||||
//
|
||||
// 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
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file implements a function which calls the Generic Delta pass in order
|
||||
// to reduce Attributes in the provided Module.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "ReduceAttributes.h"
|
||||
|
||||
#include "Delta.h"
|
||||
#include "TestRunner.h"
|
||||
|
||||
#include "llvm/IR/Attributes.h"
|
||||
#include "llvm/IR/Function.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
static void removeAttr(llvm::Function &F, const llvm::Attribute &A) {
|
||||
if (A.isStringAttribute())
|
||||
F.removeFnAttr(A.getKindAsString());
|
||||
else
|
||||
F.removeFnAttr(A.getKindAsEnum());
|
||||
}
|
||||
|
||||
static void extractAttributes(const std::vector<llvm::Chunk> &ChunksToKeep,
|
||||
llvm::Module *M) {
|
||||
int AttributeIndex = 0;
|
||||
unsigned ChunkIndex = 0;
|
||||
// TODO: global variables may also have attributes.
|
||||
for (llvm::Function &F : M->getFunctionList()) {
|
||||
for (const llvm::Attribute &A : F.getAttributes().getFnAttributes()) {
|
||||
++AttributeIndex;
|
||||
if (!ChunksToKeep[ChunkIndex].contains(AttributeIndex))
|
||||
removeAttr(F, A);
|
||||
if (AttributeIndex == ChunksToKeep[ChunkIndex].end)
|
||||
++ChunkIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int countAttributes(llvm::Module *M) {
|
||||
int TotalAttributeCount = 0;
|
||||
for (const llvm::Function &F : M->getFunctionList())
|
||||
TotalAttributeCount +=
|
||||
F.getAttributes().getFnAttributes().getNumAttributes();
|
||||
// TODO: global variables may also have attributes.
|
||||
return TotalAttributeCount;
|
||||
}
|
||||
|
||||
void llvm::reduceAttributesDeltaPass(TestRunner &Test) {
|
||||
outs() << "*** Reducing Attributes...\n";
|
||||
int AttributeCount = countAttributes(Test.getProgram());
|
||||
runDeltaPass(Test, AttributeCount, extractAttributes);
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
//===- ReduceAttributes.h - Specialized Delta Pass ------------------------===//
|
||||
//
|
||||
// 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
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file implements a function which calls the Generic Delta pass in order
|
||||
// to reduce Attributes in the provided Module.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "TestRunner.h"
|
||||
|
||||
namespace llvm {
|
||||
void reduceAttributesDeltaPass(TestRunner &Test);
|
||||
} // namespace llvm
|
|
@ -59,7 +59,7 @@ static unsigned countInstructions(Module *Program) {
|
|||
}
|
||||
|
||||
void llvm::reduceInstructionsDeltaPass(TestRunner &Test) {
|
||||
outs() << "*** Reducing Instructions...\n";
|
||||
outs() << "*** Reducing Insructions...\n";
|
||||
unsigned InstCount = countInstructions(Test.getProgram());
|
||||
runDeltaPass(Test, InstCount, extractInstrFromModule);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue