1*ba65584dSRenaud-K //===- TestAliasAnalysis.h - MLIR Test Utility ------------------*- C++ -*-===// 2*ba65584dSRenaud-K // 3*ba65584dSRenaud-K // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*ba65584dSRenaud-K // See https://llvm.org/LICENSE.txt for license information. 5*ba65584dSRenaud-K // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*ba65584dSRenaud-K // 7*ba65584dSRenaud-K //===----------------------------------------------------------------------===// 8*ba65584dSRenaud-K // 9*ba65584dSRenaud-K // This file provides a common facility that can be reused for the 10*ba65584dSRenaud-K // testing of various aliasing analyses 11*ba65584dSRenaud-K // 12*ba65584dSRenaud-K //===----------------------------------------------------------------------===// 13*ba65584dSRenaud-K 14*ba65584dSRenaud-K #ifndef MLIR_TEST_LIB_ANALYSIS_ALIASANALYSIS_H 15*ba65584dSRenaud-K #define MLIR_TEST_LIB_ANALYSIS_ALIASANALYSIS_H 16*ba65584dSRenaud-K 17*ba65584dSRenaud-K #include "mlir/Analysis/AliasAnalysis.h" 18*ba65584dSRenaud-K 19*ba65584dSRenaud-K namespace mlir { 20*ba65584dSRenaud-K namespace test { 21*ba65584dSRenaud-K 22*ba65584dSRenaud-K /// Print the result of an alias query. 23*ba65584dSRenaud-K void printAliasResult(AliasResult result, Value lhs, Value rhs); 24*ba65584dSRenaud-K void printModRefResult(ModRefResult result, Operation *op, Value location); 25*ba65584dSRenaud-K 26*ba65584dSRenaud-K struct TestAliasAnalysisBase { 27*ba65584dSRenaud-K void runAliasAnalysisOnOperation(Operation *op, AliasAnalysis &aliasAnalysis); 28*ba65584dSRenaud-K }; 29*ba65584dSRenaud-K 30*ba65584dSRenaud-K struct TestAliasAnalysisModRefBase { 31*ba65584dSRenaud-K void runAliasAnalysisOnOperation(Operation *op, AliasAnalysis &aliasAnalysis); 32*ba65584dSRenaud-K }; 33*ba65584dSRenaud-K 34*ba65584dSRenaud-K } // namespace test 35*ba65584dSRenaud-K } // namespace mlir 36*ba65584dSRenaud-K 37*ba65584dSRenaud-K #endif // MLIR_TEST_LIB_ANALYSIS_ALIASANALYSIS_H 38