Static Value-Flow Analysis
LLVMLoopAnalysis.h
Go to the documentation of this file.
1 //===- LLVMLoopAnalysis.h -- LoopAnalysis of SVF --------------------//
2 //
3 // SVF: Static Value-Flow Analysis
4 //
5 // Copyright (C) <2013-2022> <Yulei Sui>
6 //
7 
8 // This program is free software: you can redistribute it and/or modify
9 // it under the terms of the GNU Affero General Public License as published by
10 // the Free Software Foundation, either version 3 of the License, or
11 // (at your option) any later version.
12 
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU Affero General Public License for more details.
17 
18 // You should have received a copy of the GNU Affero General Public License
19 // along with this program. If not, see <http://www.gnu.org/licenses/>.
20 //
21 //===----------------------------------------------------------------------===//
22 
23 /*
24  * LLVMLoopAnalysis.h
25  *
26  * Created on: 14, 06, 2022
27  * Author: Jiawei Wang, Xiao Cheng
28  */
29 
30 #ifndef SVF_LLVMLOOPANALYSIS_H
31 #define SVF_LLVMLOOPANALYSIS_H
32 
33 #include "SVFIR/SVFIR.h"
34 #include "MemoryModel/SVFLoop.h"
35 #include "SVF-LLVM/BasicTypes.h"
36 
37 namespace SVF
38 {
40 {
41 public:
42 
44  LLVMLoopAnalysis() = default;;
45 
47  virtual ~LLVMLoopAnalysis() = default;
48 
50  virtual void buildLLVMLoops(SVFModule *mod, ICFG* icfg);
51 
53  virtual void build(ICFG *icfg);
54 
56  virtual void buildSVFLoops(ICFG *icfg, std::vector<const Loop *> &llvmLoops);
57 };
58 } // End namespace SVF
59 
60 #endif //SVF_LLVMLOOPANALYSIS_H
Definition: ICFG.h:48
virtual void build(ICFG *icfg)
Start from here.
LLVMLoopAnalysis()=default
Constructor.
virtual ~LLVMLoopAnalysis()=default
Destructor.
virtual void buildLLVMLoops(SVFModule *mod, ICFG *icfg)
Build llvm loops based on LoopInfo analysis.
virtual void buildSVFLoops(ICFG *icfg, std::vector< const Loop * > &llvmLoops)
Build SVF loops based on llvm loops.
for isBitcode
Definition: BasicTypes.h:68