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 Aminivoid registerTestLivenessPass() { PassRegistration<TestLivenessPass>(); } 413fef2d26SRiver Riddle } // namespace test 423fef2d26SRiver Riddle } // namespace mlir 43