]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/llvm/include/llvm/Analysis/RegionPrinter.h
Move all sources from the llvm project into contrib/llvm-project.
[FreeBSD/FreeBSD.git] / contrib / llvm-project / llvm / include / llvm / Analysis / RegionPrinter.h
1 //===-- RegionPrinter.h - Region printer external interface -----*- 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 defines external functions that can be called to explicitly
10 // instantiate the region printer.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_ANALYSIS_REGIONPRINTER_H
15 #define LLVM_ANALYSIS_REGIONPRINTER_H
16
17 namespace llvm {
18   class FunctionPass;
19   class Function;
20   class RegionInfo;
21
22   FunctionPass *createRegionViewerPass();
23   FunctionPass *createRegionOnlyViewerPass();
24   FunctionPass *createRegionPrinterPass();
25   FunctionPass *createRegionOnlyPrinterPass();
26
27 #ifndef NDEBUG
28   /// Open a viewer to display the GraphViz vizualization of the analysis
29   /// result.
30   ///
31   /// Practical to call in the debugger.
32   /// Includes the instructions in each BasicBlock.
33   ///
34   /// @param RI The analysis to display.
35   void viewRegion(llvm::RegionInfo *RI);
36
37   /// Analyze the regions of a function and open its GraphViz
38   /// visualization in a viewer.
39   ///
40   /// Useful to call in the debugger.
41   /// Includes the instructions in each BasicBlock.
42   /// The result of a new analysis may differ from the RegionInfo the pass
43   /// manager currently holds.
44   ///
45   /// @param F Function to analyze.
46   void viewRegion(const llvm::Function *F);
47
48   /// Open a viewer to display the GraphViz vizualization of the analysis
49   /// result.
50   ///
51   /// Useful to call in the debugger.
52   /// Shows only the BasicBlock names without their instructions.
53   ///
54   /// @param RI The analysis to display.
55   void viewRegionOnly(llvm::RegionInfo *RI);
56
57   /// Analyze the regions of a function and open its GraphViz
58   /// visualization in a viewer.
59   ///
60   /// Useful to call in the debugger.
61   /// Shows only the BasicBlock names without their instructions.
62   /// The result of a new analysis may differ from the RegionInfo the pass
63   /// manager currently holds.
64   ///
65   /// @param F Function to analyze.
66   void viewRegionOnly(const llvm::Function *F);
67 #endif
68 } // End llvm namespace
69
70 #endif