summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Transforms/StripDebugInfo.cpp
diff options
context:
space:
mode:
authorRiver Riddle <riverriddle@google.com>2019-01-23 20:48:23 -0800
committerjpienaar <jpienaar@google.com>2019-03-29 15:33:50 -0700
commitf319bbbd28e21e91af40d3353cc138f324944839 (patch)
tree40d931cc08033bf049ae2cee194d3f1dd4cbbf63 /mlir/lib/Transforms/StripDebugInfo.cpp
parent98c729d6f1f18e2af13e3caa5436f12e0f509432 (diff)
downloadbcm5719-llvm-f319bbbd28e21e91af40d3353cc138f324944839.tar.gz
bcm5719-llvm-f319bbbd28e21e91af40d3353cc138f324944839.zip
Add a function pass to strip debug info from functions and instructions.
PiperOrigin-RevId: 230654315
Diffstat (limited to 'mlir/lib/Transforms/StripDebugInfo.cpp')
-rw-r--r--mlir/lib/Transforms/StripDebugInfo.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/mlir/lib/Transforms/StripDebugInfo.cpp b/mlir/lib/Transforms/StripDebugInfo.cpp
new file mode 100644
index 00000000000..a6fa2186b15
--- /dev/null
+++ b/mlir/lib/Transforms/StripDebugInfo.cpp
@@ -0,0 +1,50 @@
+//===- StripDebugInfo.cpp - Pass to strip debug information ---------------===//
+//
+// Copyright 2019 The MLIR Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// =============================================================================
+
+#include "mlir/IR/Function.h"
+#include "mlir/Pass.h"
+#include "mlir/Transforms/Passes.h"
+
+using namespace mlir;
+
+namespace {
+struct StripDebugInfo : public FunctionPass {
+ StripDebugInfo() : FunctionPass(&StripDebugInfo::passID) {}
+
+ PassResult runOnFunction(Function *f) override;
+
+ static char passID;
+};
+} // end anonymous namespace
+
+char StripDebugInfo::passID = 0;
+
+PassResult StripDebugInfo::runOnFunction(Function *f) {
+ UnknownLoc unknownLoc = UnknownLoc::get(f->getContext());
+
+ // Strip the debug info from the function and its instructions.
+ f->setLoc(unknownLoc);
+ f->walkInsts([&](Instruction *inst) { inst->setLoc(unknownLoc); });
+ return success();
+}
+
+/// Creates a pass to strip debug information from a function.
+FunctionPass *mlir::createStripDebugInfoPass() { return new StripDebugInfo(); }
+
+static PassRegistration<StripDebugInfo>
+ pass("strip-debug-info",
+ "Strip debug info from functions and instructions");
OpenPOWER on IntegriCloud