<div dir="ltr">Hey Nico - any ideas why this would be failing on Mac and not other platforms, or steps to reproduce a similar environment to the one it's failing under?<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 5, 2020 at 11:15 AM Nico Weber via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Author: Nico Weber<br>
Date: 2020-02-05T14:15:11-05:00<br>
New Revision: b12176d2aafa0ccb2585aa218fc3b454ba84f2a9<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/b12176d2aafa0ccb2585aa218fc3b454ba84f2a9" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/b12176d2aafa0ccb2585aa218fc3b454ba84f2a9</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/b12176d2aafa0ccb2585aa218fc3b454ba84f2a9.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/b12176d2aafa0ccb2585aa218fc3b454ba84f2a9.diff</a><br>
<br>
LOG: Revert "[llvm-reduce] add ReduceAttribute delta pass"<br>
<br>
This reverts commit fc62b36a000681c01e993242b583c5ec4ab48a3c.<br>
Breaks tests on mac: <a href="http://45.33.8.238/mac/7301/step_11.txt" rel="noreferrer" target="_blank">http://45.33.8.238/mac/7301/step_11.txt</a><br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
    llvm/tools/llvm-reduce/CMakeLists.txt<br>
    llvm/tools/llvm-reduce/DeltaManager.h<br>
    llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp<br>
<br>
Removed: <br>
    llvm/test/Reduce/Inputs/remove-attributes.py<br>
    llvm/test/Reduce/remove-attributes.ll<br>
    llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp<br>
    llvm/tools/llvm-reduce/deltas/ReduceAttributes.h<br>
<br>
<br>
################################################################################<br>
diff  --git a/llvm/test/Reduce/Inputs/remove-attributes.py b/llvm/test/Reduce/Inputs/remove-attributes.py<br>
deleted file mode 100755<br>
index af76dd4ba6b6..000000000000<br>
--- a/llvm/test/Reduce/Inputs/remove-attributes.py<br>
+++ /dev/null<br>
@@ -1,7 +0,0 @@<br>
-import sys<br>
-<br>
-for line in open(sys.argv[1], "r"):<br>
-  if "use-soft-float" in line:<br>
-    sys.exit(0) # Interesting!<br>
-<br>
-sys.exit(1)<br>
<br>
diff  --git a/llvm/test/Reduce/remove-attributes.ll b/llvm/test/Reduce/remove-attributes.ll<br>
deleted file mode 100644<br>
index 4dc6ea168ba0..000000000000<br>
--- a/llvm/test/Reduce/remove-attributes.ll<br>
+++ /dev/null<br>
@@ -1,16 +0,0 @@<br>
-; Test that llvm-reduce can remove uninteresting attributes.<br>
-;<br>
-; RUN: rm -rf %t<br>
-; RUN: llvm-reduce --test %python --test-arg %p/Inputs/remove-attributes.py %s -o %t<br>
-; RUN: cat %t | FileCheck  %s<br>
-<br>
-define void @a() #0 {<br>
-  ret void<br>
-}<br>
-define void @b() #1 {<br>
-  ret void<br>
-}<br>
-<br>
-; CHECK: attributes #0 = { "use-soft-float"="false" }<br>
-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" }<br>
-attributes #1 = { norecurse }<br>
<br>
diff  --git a/llvm/tools/llvm-reduce/CMakeLists.txt b/llvm/tools/llvm-reduce/CMakeLists.txt<br>
index 359626f70ccc..48de0ffa78a1 100644<br>
--- a/llvm/tools/llvm-reduce/CMakeLists.txt<br>
+++ b/llvm/tools/llvm-reduce/CMakeLists.txt<br>
@@ -14,13 +14,12 @@ add_llvm_tool(llvm-reduce<br>
   llvm-reduce.cpp<br>
   TestRunner.cpp<br>
   deltas/Delta.cpp<br>
-  deltas/ReduceArguments.cpp<br>
-  deltas/ReduceAttributes.cpp<br>
-  deltas/ReduceBasicBlocks.cpp<br>
   deltas/ReduceFunctions.cpp<br>
   deltas/ReduceGlobalVars.cpp<br>
-  deltas/ReduceInstructions.cpp<br>
   deltas/ReduceMetadata.cpp<br>
+  deltas/ReduceArguments.cpp<br>
+  deltas/ReduceBasicBlocks.cpp<br>
+  deltas/ReduceInstructions.cpp<br>
<br>
   DEPENDS<br>
   intrinsics_gen<br>
<br>
diff  --git a/llvm/tools/llvm-reduce/DeltaManager.h b/llvm/tools/llvm-reduce/DeltaManager.h<br>
index 595f13005da2..2309c3adf4e6 100644<br>
--- a/llvm/tools/llvm-reduce/DeltaManager.h<br>
+++ b/llvm/tools/llvm-reduce/DeltaManager.h<br>
@@ -14,12 +14,11 @@<br>
 #include "TestRunner.h"<br>
 #include "deltas/Delta.h"<br>
 #include "deltas/ReduceArguments.h"<br>
-#include "deltas/ReduceAttributes.h"<br>
 #include "deltas/ReduceBasicBlocks.h"<br>
 #include "deltas/ReduceFunctions.h"<br>
 #include "deltas/ReduceGlobalVars.h"<br>
-#include "deltas/ReduceInstructions.h"<br>
 #include "deltas/ReduceMetadata.h"<br>
+#include "deltas/ReduceInstructions.h"<br>
<br>
 namespace llvm {<br>
<br>
@@ -31,7 +30,6 @@ inline void runDeltaPasses(TestRunner &Tester) {<br>
   reduceMetadataDeltaPass(Tester);<br>
   reduceArgumentsDeltaPass(Tester);<br>
   reduceInstructionsDeltaPass(Tester);<br>
-  reduceAttributesDeltaPass(Tester);<br>
   // TODO: Implement the remaining Delta Passes<br>
 }<br>
<br>
<br>
diff  --git a/llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp b/llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp<br>
deleted file mode 100644<br>
index ac8e0be58313..000000000000<br>
--- a/llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp<br>
+++ /dev/null<br>
@@ -1,61 +0,0 @@<br>
-//===- ReduceAttributes.cpp - Specialized Delta Pass ----------------------===//<br>
-//<br>
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.<br>
-// See <a href="https://llvm.org/LICENSE.txt" rel="noreferrer" target="_blank">https://llvm.org/LICENSE.txt</a> for license information.<br>
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file implements a function which calls the Generic Delta pass in order<br>
-// to reduce Attributes in the provided Module.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#include "ReduceAttributes.h"<br>
-<br>
-#include "Delta.h"<br>
-#include "TestRunner.h"<br>
-<br>
-#include "llvm/IR/Attributes.h"<br>
-#include "llvm/IR/Function.h"<br>
-#include "llvm/IR/Module.h"<br>
-<br>
-#include <vector><br>
-<br>
-static void removeAttr(llvm::Function &F, const llvm::Attribute &A) {<br>
-  if (A.isStringAttribute())<br>
-    F.removeFnAttr(A.getKindAsString());<br>
-  else<br>
-    F.removeFnAttr(A.getKindAsEnum());<br>
-}<br>
-<br>
-static void extractAttributes(const std::vector<llvm::Chunk> &ChunksToKeep,<br>
-                              llvm::Module *M) {<br>
-  int AttributeIndex = 0;<br>
-  unsigned ChunkIndex = 0;<br>
-  // TODO: global variables may also have attributes.<br>
-  for (llvm::Function &F : M->getFunctionList()) {<br>
-    for (const llvm::Attribute &A : F.getAttributes().getFnAttributes()) {<br>
-      ++AttributeIndex;<br>
-      if (!ChunksToKeep[ChunkIndex].contains(AttributeIndex))<br>
-        removeAttr(F, A);<br>
-      if (AttributeIndex == ChunksToKeep[ChunkIndex].end)<br>
-        ++ChunkIndex;<br>
-    }<br>
-  }<br>
-}<br>
-<br>
-static int countAttributes(llvm::Module *M) {<br>
-  int TotalAttributeCount = 0;<br>
-  for (const llvm::Function &F : M->getFunctionList())<br>
-    TotalAttributeCount +=<br>
-        F.getAttributes().getFnAttributes().getNumAttributes();<br>
-  // TODO: global variables may also have attributes.<br>
-  return TotalAttributeCount;<br>
-}<br>
-<br>
-void llvm::reduceAttributesDeltaPass(TestRunner &Test) {<br>
-  outs() << "*** Reducing Attributes...\n";<br>
-  int AttributeCount = countAttributes(Test.getProgram());<br>
-  runDeltaPass(Test, AttributeCount, extractAttributes);<br>
-}<br>
<br>
diff  --git a/llvm/tools/llvm-reduce/deltas/ReduceAttributes.h b/llvm/tools/llvm-reduce/deltas/ReduceAttributes.h<br>
deleted file mode 100644<br>
index 1a20a2bc8b54..000000000000<br>
--- a/llvm/tools/llvm-reduce/deltas/ReduceAttributes.h<br>
+++ /dev/null<br>
@@ -1,18 +0,0 @@<br>
-//===- ReduceAttributes.h - Specialized Delta Pass ------------------------===//<br>
-//<br>
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.<br>
-// See <a href="https://llvm.org/LICENSE.txt" rel="noreferrer" target="_blank">https://llvm.org/LICENSE.txt</a> for license information.<br>
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file implements a function which calls the Generic Delta pass in order<br>
-// to reduce Attributes in the provided Module.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#include "TestRunner.h"<br>
-<br>
-namespace llvm {<br>
-void reduceAttributesDeltaPass(TestRunner &Test);<br>
-} // namespace llvm<br>
<br>
diff  --git a/llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp b/llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp<br>
index 6fe10dcb15d2..b3497ad2dc02 100644<br>
--- a/llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp<br>
+++ b/llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp<br>
@@ -59,7 +59,7 @@ static unsigned countInstructions(Module *Program) {<br>
 }<br>
<br>
 void llvm::reduceInstructionsDeltaPass(TestRunner &Test) {<br>
-  outs() << "*** Reducing Instructions...\n";<br>
+  outs() << "*** Reducing Insructions...\n";<br>
   unsigned InstCount = countInstructions(Test.getProgram());<br>
   runDeltaPass(Test, InstCount, extractInstrFromModule);<br>
 }<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>