xref: /llvm-project/mlir/test/lib/Analysis/TestLiveness.cpp (revision 36d3efea15e6202edd64b05de38d8379e2baddb2)
187d6bf37SRiver Riddle //===- TestLiveness.cpp - Test liveness construction and information ------===//
23fef2d26SRiver Riddle //
33fef2d26SRiver Riddle // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
43fef2d26SRiver Riddle // See https://llvm.org/LICENSE.txt for license information.
53fef2d26SRiver Riddle // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
63fef2d26SRiver Riddle //
73fef2d26SRiver Riddle //===----------------------------------------------------------------------===//
83fef2d26SRiver Riddle //
93fef2d26SRiver Riddle // This file contains test passes for constructing and resolving liveness
103fef2d26SRiver Riddle // information.
113fef2d26SRiver Riddle //
123fef2d26SRiver Riddle //===----------------------------------------------------------------------===//
133fef2d26SRiver Riddle 
143fef2d26SRiver Riddle #include "mlir/Analysis/Liveness.h"
15*36d3efeaSRiver Riddle #include "mlir/IR/SymbolTable.h"
163fef2d26SRiver Riddle #include "mlir/Pass/Pass.h"
173fef2d26SRiver Riddle 
183fef2d26SRiver Riddle using namespace mlir;
193fef2d26SRiver Riddle 
203fef2d26SRiver Riddle namespace {
213fef2d26SRiver Riddle 
2241574554SRiver Riddle struct TestLivenessPass
2387d6bf37SRiver Riddle     : public PassWrapper<TestLivenessPass, InterfacePass<SymbolOpInterface>> {
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID__anon32cb00870111::TestLivenessPass245e50dd04SRiver Riddle   MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestLivenessPass)
255e50dd04SRiver Riddle 
26b5e22e6dSMehdi Amini   StringRef getArgument() const final { return "test-print-liveness"; }
getDescription__anon32cb00870111::TestLivenessPass27b5e22e6dSMehdi Amini   StringRef getDescription() const final {
28b5e22e6dSMehdi Amini     return "Print the contents of a constructed liveness information.";
29b5e22e6dSMehdi Amini   }
runOnOperation__anon32cb00870111::TestLivenessPass3041574554SRiver Riddle   void runOnOperation() override {
3141574554SRiver Riddle     llvm::errs() << "Testing : " << getOperation().getName() << "\n";
323fef2d26SRiver Riddle     getAnalysis<Liveness>().print(llvm::errs());
333fef2d26SRiver Riddle   }
343fef2d26SRiver Riddle };
353fef2d26SRiver Riddle 
36be0a7e9fSMehdi Amini } // namespace
373fef2d26SRiver Riddle 
383fef2d26SRiver Riddle namespace mlir {
393fef2d26SRiver Riddle namespace test {
registerTestLivenessPass()40b5e22e6dSMehdi Amini void registerTestLivenessPass() { PassRegistration<TestLivenessPass>(); }
413fef2d26SRiver Riddle } // namespace test
423fef2d26SRiver Riddle } // namespace mlir
43