svf-lib 1.0.1218 → 1.0.1221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-linux/Release-build/lib/libSvf.a +0 -0
- package/SVF-linux/include/DDA/ContextDDA.h +29 -0
- package/SVF-linux/include/DDA/DDAClient.h +23 -0
- package/SVF-linux/include/DDA/DDAPass.h +22 -0
- package/SVF-linux/include/DDA/DDAStat.h +22 -0
- package/SVF-linux/include/DDA/DDAVFSolver.h +22 -0
- package/SVF-linux/include/DDA/FlowDDA.h +29 -0
- package/SVF-linux/include/MSSA/MSSAMuChi.h +1 -1
- package/SVF-linux/include/MSSA/MemPartition.h +1 -1
- package/SVF-linux/include/MSSA/MemRegion.h +5 -1
- package/SVF-linux/include/MSSA/MemSSA.h +7 -1
- package/SVF-linux/include/MSSA/SVFGBuilder.h +1 -1
- package/SVF-linux/include/MTA/FSMPTA.h +26 -0
- package/SVF-linux/include/MTA/LockAnalysis.h +22 -0
- package/SVF-linux/include/MTA/MHP.h +22 -0
- package/SVF-linux/include/MTA/MTA.h +27 -1
- package/SVF-linux/include/MTA/MTAStat.h +22 -0
- package/SVF-linux/include/MTA/PCG.h +22 -0
- package/SVF-linux/include/MTA/TCT.h +22 -0
- package/SVF-linux/include/MemoryModel/AbstractPointsToDS.h +34 -0
- package/SVF-linux/include/MemoryModel/ConditionalPT.h +1 -1
- package/SVF-linux/include/MemoryModel/LocationSet.h +1 -1
- package/SVF-linux/include/MemoryModel/MutablePointsToDS.h +32 -0
- package/SVF-linux/include/MemoryModel/PAGBuilderFromFile.h +2 -2
- package/SVF-linux/include/MemoryModel/PersistentPointsToCache.h +3 -1
- package/SVF-linux/include/MemoryModel/PersistentPointsToDS.h +10 -0
- package/SVF-linux/include/MemoryModel/PointerAnalysis.h +1 -1
- package/SVF-linux/include/MemoryModel/PointerAnalysisImpl.h +1 -1
- package/SVF-linux/include/MemoryModel/SVFStatements.h +1 -1
- package/SVF-linux/include/SABER/DoubleFreeChecker.h +1 -1
- package/SVF-linux/include/SABER/FileChecker.h +1 -1
- package/SVF-linux/include/SABER/LeakChecker.h +1 -1
- package/SVF-linux/include/SABER/ProgSlice.h +8 -1
- package/SVF-linux/include/SABER/SaberAnnotator.h +1 -1
- package/SVF-linux/include/SABER/SaberCheckerAPI.h +1 -1
- package/SVF-linux/include/SABER/SaberCondAllocator.h +1 -1
- package/SVF-linux/include/SABER/SaberSVFGBuilder.h +1 -1
- package/SVF-linux/include/SABER/SrcSnkDDA.h +8 -1
- package/SVF-linux/include/SABER/SrcSnkSolver.h +1 -1
- package/SVF-linux/include/WPA/Andersen.h +5 -0
- package/SVF-linux/include/WPA/TypeAnalysis.h +1 -1
- package/SVF-linux/include/WPA/VersionedFlowSensitive.h +4 -0
- package/SVF-osx/Release-build/lib/libSvf.a +0 -0
- package/SVF-osx/include/CFL/CFLGraphBuilder.h +9 -0
- package/SVF-osx/include/CFL/PEGGrammar.txt +4 -8
- package/SVF-osx/include/DDA/ContextDDA.h +29 -0
- package/SVF-osx/include/DDA/DDAClient.h +23 -0
- package/SVF-osx/include/DDA/DDAPass.h +22 -0
- package/SVF-osx/include/DDA/DDAStat.h +22 -0
- package/SVF-osx/include/DDA/DDAVFSolver.h +22 -0
- package/SVF-osx/include/DDA/FlowDDA.h +29 -0
- package/SVF-osx/include/MSSA/MSSAMuChi.h +1 -1
- package/SVF-osx/include/MSSA/MemPartition.h +1 -1
- package/SVF-osx/include/MSSA/MemRegion.h +5 -1
- package/SVF-osx/include/MSSA/MemSSA.h +7 -1
- package/SVF-osx/include/MSSA/SVFGBuilder.h +1 -1
- package/SVF-osx/include/MTA/FSMPTA.h +26 -0
- package/SVF-osx/include/MTA/LockAnalysis.h +22 -0
- package/SVF-osx/include/MTA/MHP.h +22 -0
- package/SVF-osx/include/MTA/MTA.h +27 -1
- package/SVF-osx/include/MTA/MTAStat.h +22 -0
- package/SVF-osx/include/MTA/PCG.h +22 -0
- package/SVF-osx/include/MTA/TCT.h +22 -0
- package/SVF-osx/include/MemoryModel/AbstractPointsToDS.h +34 -0
- package/SVF-osx/include/MemoryModel/ConditionalPT.h +1 -1
- package/SVF-osx/include/MemoryModel/LocationSet.h +1 -1
- package/SVF-osx/include/MemoryModel/MutablePointsToDS.h +32 -0
- package/SVF-osx/include/MemoryModel/PAGBuilderFromFile.h +2 -2
- package/SVF-osx/include/MemoryModel/PersistentPointsToCache.h +3 -1
- package/SVF-osx/include/MemoryModel/PersistentPointsToDS.h +10 -0
- package/SVF-osx/include/MemoryModel/PointerAnalysis.h +1 -1
- package/SVF-osx/include/MemoryModel/PointerAnalysisImpl.h +1 -1
- package/SVF-osx/include/MemoryModel/SVFStatements.h +1 -1
- package/SVF-osx/include/SABER/DoubleFreeChecker.h +1 -1
- package/SVF-osx/include/SABER/FileChecker.h +1 -1
- package/SVF-osx/include/SABER/LeakChecker.h +1 -1
- package/SVF-osx/include/SABER/ProgSlice.h +8 -1
- package/SVF-osx/include/SABER/SaberAnnotator.h +1 -1
- package/SVF-osx/include/SABER/SaberCheckerAPI.h +1 -1
- package/SVF-osx/include/SABER/SaberCondAllocator.h +1 -1
- package/SVF-osx/include/SABER/SaberSVFGBuilder.h +1 -1
- package/SVF-osx/include/SABER/SrcSnkDDA.h +8 -1
- package/SVF-osx/include/SABER/SrcSnkSolver.h +1 -1
- package/SVF-osx/include/WPA/Andersen.h +5 -0
- package/SVF-osx/include/WPA/TypeAnalysis.h +1 -1
- package/SVF-osx/include/WPA/VersionedFlowSensitive.h +4 -0
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Apr 1, 2014
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui, Ding Ye, and Jingling Xue. "Static Memory Leak Detection Using Full-Sparse Value-Flow Analysis".
|
|
31
|
+
* 2012 International Symposium on Software Testing and Analysis (ISSTA'12)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui, Ding Ye, and Jingling Xue. "Detecting Memory Leaks Statically with Full-Sparse Value-Flow Analysis".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'14)
|
|
28
35
|
*/
|
|
29
36
|
|
|
30
37
|
#ifndef PROGSLICE_H_
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,6 +25,13 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Apr 1, 2014
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui, Ding Ye, and Jingling Xue. "Static Memory Leak Detection Using Full-Sparse Value-Flow Analysis".
|
|
31
|
+
* 2012 International Symposium on Software Testing and Analysis (ISSTA'12)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui, Ding Ye, and Jingling Xue. "Detecting Memory Leaks Statically with Full-Sparse Value-Flow Analysis".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'14)
|
|
28
35
|
*/
|
|
29
36
|
|
|
30
37
|
#ifndef SRCSNKANALYSIS_H_
|
|
@@ -25,6 +25,11 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Nov 12, 2013
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The field-sensitive implementation is improved based on
|
|
30
|
+
*
|
|
31
|
+
* Yuxiang Lei and Yulei Sui. "Fast and Precise Handling of Positive Weight Cycles for Field-sensitive Pointer Analysis".
|
|
32
|
+
* 26th International Static Analysis Symposium (SAS'19)
|
|
28
33
|
*/
|
|
29
34
|
|
|
30
35
|
#ifndef INCLUDE_WPA_ANDERSEN_H_
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Created on: Jun 26, 2020
|
|
7
7
|
* Author: Mohamad Barbar
|
|
8
|
+
*
|
|
9
|
+
* The implementation is based on
|
|
10
|
+
* Mohamad Barbar, Yulei Sui and Shiping Chen. "Object Versioning for Flow-Sensitive Pointer Analysis".
|
|
11
|
+
* International Symposium on Code Generation and Optimization (CGO'21)
|
|
8
12
|
*/
|
|
9
13
|
|
|
10
14
|
#ifndef VFS_H_
|
|
Binary file
|
|
@@ -155,6 +155,15 @@ public:
|
|
|
155
155
|
/// Build Bidirectional graph by copying nodes and edges from any graph inherited from GenericGraph
|
|
156
156
|
/// And transfer Load Store to copy edge and address edge to construct PEG style CFG
|
|
157
157
|
CFLGraph* buildBiPEGgraph(ConstraintGraph *graph, Kind startKind, GrammarBase *grammar, SVFIR* pag);
|
|
158
|
+
|
|
159
|
+
private:
|
|
160
|
+
void connectVGep(CFLGraph *cflGraph, ConstraintGraph *graph, ConstraintNode *src, ConstraintNode *dst, u32_t level, SVFIR* pag);
|
|
161
|
+
|
|
162
|
+
/// Handle edge except for the GEP
|
|
163
|
+
void addBiCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFLGrammar::Kind label);
|
|
164
|
+
|
|
165
|
+
/// Add Bidirectional GEP edge with attribute
|
|
166
|
+
void addBiGepCFLEdge(CFLGraph *cflGraph, ConstraintNode* src, ConstraintNode* dst, CFLGrammar::Attribute attri);
|
|
158
167
|
};
|
|
159
168
|
|
|
160
169
|
}// SVF
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Start:
|
|
2
2
|
V
|
|
3
3
|
Terminal:
|
|
4
|
-
Addr Copy Store Load Gep
|
|
4
|
+
Addr Copy Store Load Gep
|
|
5
5
|
Productions:
|
|
6
6
|
F -> epsilon;
|
|
7
7
|
M -> Addr V Addrbar;
|
|
@@ -14,15 +14,11 @@ Productions:
|
|
|
14
14
|
Fbar -> epsilon;
|
|
15
15
|
Fbar -> Copybar Fbar;
|
|
16
16
|
Fbar -> M Copybar Fbar;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Gepbarpath -> Gepbar_0 Gepbar_0;
|
|
20
|
-
Gepbarpath -> Gepbarpath Gepbar_0;
|
|
21
|
-
Gep_3 -> Gep_0;
|
|
22
|
-
Gepbar_3 -> Gepbar_0;
|
|
17
|
+
ArrayPath -> Gepbar_0 Gepbar_0;
|
|
18
|
+
ArrayPath -> ArrayPath Gepbar_0;
|
|
23
19
|
Memcpy -> Addrbar V Addr;
|
|
24
20
|
Memcpy -> Gep_i Memcpy Gepbar_i;
|
|
25
21
|
Memcpy -> F Memcpy Fbar;
|
|
26
22
|
V -> Gepbar_i Memcpy Gep_i;
|
|
27
23
|
V -> Gep_i Memcpy Gepbar_i;
|
|
28
|
-
V ->
|
|
24
|
+
V -> ArrayPath V Gep_0;
|
|
@@ -1,8 +1,37 @@
|
|
|
1
|
+
//===- ContextDDA.h -- Context-sensitive demand-driven analysis-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* ContextDDA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: Aug 17, 2014
|
|
5
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui and Jingling Xue. "On-Demand Strong Update Analysis via Value-Flow Refinement".
|
|
31
|
+
* ACM SIGSOFT International Symposium on the Foundation of Software Engineering (FSE'16)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui and Jingling Xue. "Value-Flow-Based Demand-Driven Pointer Analysis for C and C++".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'18)
|
|
6
35
|
*/
|
|
7
36
|
|
|
8
37
|
#ifndef ContextDDA_H_
|
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
//===- DDAClient.h -- Clients of demand-driven analysis-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
/*
|
|
2
25
|
* @file: DDAClient.h
|
|
3
26
|
* @author: yesen
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- DDAPass.h -- Demand-driven analysis driver pass-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* @file: DDAPass.h
|
|
3
25
|
* @author: Yulei Sui
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- DDAStat.h -- Statistics for demand-driven pass-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* DDAStat.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- DDAVFSolver.h -- Demand-driven analysis value-flow solver------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* DDAVFSolver.h
|
|
3
25
|
*
|
|
@@ -1,8 +1,37 @@
|
|
|
1
|
+
//===- FlowDDA.h -- Flow-sensitive demand-driven analysis -------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* FlowDDA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: Jun 30, 2014
|
|
5
27
|
* Author: Yulei Sui, Sen Ye
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* (1) Yulei Sui and Jingling Xue. "On-Demand Strong Update Analysis via Value-Flow Refinement".
|
|
31
|
+
* ACM SIGSOFT International Symposium on the Foundation of Software Engineering (FSE'16)
|
|
32
|
+
*
|
|
33
|
+
* (2) Yulei Sui and Jingling Xue. "Value-Flow-Based Demand-Driven Pointer Analysis for C and C++".
|
|
34
|
+
* IEEE Transactions on Software Engineering (TSE'18)
|
|
6
35
|
*/
|
|
7
36
|
|
|
8
37
|
#ifndef FlowDDA_H_
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Jul 14, 2013
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
* The implementation is based on
|
|
29
|
+
* Yulei Sui, Hua Yan, Yunpeng Zhang, Jingling Xue and Zheng Zheng.
|
|
30
|
+
* "Parallel Construction of Interprocedural Memory SSA Form".
|
|
31
|
+
* Journal of Systems and Software (JSS'16)
|
|
28
32
|
*/
|
|
29
33
|
|
|
30
34
|
#ifndef MEMORYREGION_H_
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
5
|
-
// Copyright (C) <2013
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
// This program is free software: you can redistribute it and/or modify
|
|
@@ -25,8 +25,14 @@
|
|
|
25
25
|
*
|
|
26
26
|
* Created on: Jul 14, 2013
|
|
27
27
|
* Author: Yulei Sui
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* Yulei Sui, Hua Yan, Yunpeng Zhang, Jingling Xue and Zheng Zheng.
|
|
31
|
+
* "Parallel Construction of Interprocedural Memory SSA Form".
|
|
32
|
+
* Journal of Systems and Software (JSS'16), Algorithm 3 in the paper
|
|
28
33
|
*/
|
|
29
34
|
|
|
35
|
+
|
|
30
36
|
#ifndef MEMORYSSAPASS_H_
|
|
31
37
|
#define MEMORYSSAPASS_H_
|
|
32
38
|
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
+
//===- FSMPTA.h -- Flow-sensitive analysis of multithreaded programs-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* FSMPTA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: Jul 29, 2015
|
|
5
27
|
* Author: Yulei Sui, Peng Di
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* Yulei Sui, Peng Di, and Jingling Xue. "Sparse Flow-Sensitive Pointer Analysis for Multithreaded Programs".
|
|
31
|
+
* 2016 International Symposium on Code Generation and Optimization (CGO'16)
|
|
6
32
|
*/
|
|
7
33
|
|
|
8
34
|
#ifndef FSPTANALYSIS_H_
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- LockAnalysis.h -- Analysis of locksets-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* LockAnalysis.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- MHP.h -- May-happen-in-parallel analysis-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* MHP.h
|
|
3
25
|
*
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
+
//===- MTA.h -- Analysis of multithreaded programs-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
|
-
*
|
|
24
|
+
* MTA.h
|
|
3
25
|
*
|
|
4
26
|
* Created on: May 14, 2014
|
|
5
27
|
* Author: Yulei Sui, Peng Di
|
|
28
|
+
*
|
|
29
|
+
* The implementation is based on
|
|
30
|
+
* Yulei Sui, Peng Di, and Jingling Xue. "Sparse Flow-Sensitive Pointer Analysis for Multithreaded Programs".
|
|
31
|
+
* 2016 International Symposium on Code Generation and Optimization (CGO'16)
|
|
6
32
|
*/
|
|
7
33
|
|
|
8
34
|
#ifndef MTA_H_
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- MTAStat.h -- Statistics for MTA-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* MTAStat.h
|
|
3
25
|
*
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- PCG.h -- Procedure creation graph-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <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 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 General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* MHP.h
|
|
3
25
|
*
|