clang 24.0.0git
CIRAliasAnalysis.h
Go to the documentation of this file.
1//===- CIRAliasAnalysis.h - CIR Alias Analysis Suite ------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file declares the registration function for the full suite of CIR alias
10// analysis implementations. Callers that want all CIR analyses should use
11// registerCIRAliasAnalyses() rather than adding individual implementations.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef CLANG_CIR_DIALECT_ANALYSIS_CIRALIASANALYSIS_H
16#define CLANG_CIR_DIALECT_ANALYSIS_CIRALIASANALYSIS_H
17
18#include "mlir/Analysis/AliasAnalysis.h"
19
20namespace cir {
21
22/// Register all CIR alias analysis implementations with `aa`, which answers
23/// queries about values within `op`. Pass the same operation `aa` was created
24/// for; the implementations use the data layout in effect at `op`, so values
25/// from a different layout scope must not be queried.
26///
27/// Passes that want full CIR alias information should call this rather than
28/// adding individual implementations:
29///
30/// mlir::AliasAnalysis aa(funcOp);
31/// cir::registerCIRAliasAnalyses(aa, funcOp);
32///
33void registerCIRAliasAnalyses(mlir::AliasAnalysis &aa, mlir::Operation *op);
34
35} // namespace cir
36
37#endif // CLANG_CIR_DIALECT_ANALYSIS_CIRALIASANALYSIS_H
void registerCIRAliasAnalyses(mlir::AliasAnalysis &aa, mlir::Operation *op)
Register all CIR alias analysis implementations with aa, which answers queries about values within op...