svf-tools 1.0.838 → 1.0.839
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-doxygen/html/CFLSVFGBuilder_8cpp.html +86 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +195 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8h.html +98 -0
- package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +148 -0
- package/SVF-doxygen/html/CFLVF_8h.html +1 -1
- package/SVF-doxygen/html/CFLVF_8h_source.html +5 -5
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/DoubleFreeChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/ProgSlice_8cpp_source.html +170 -136
- package/SVF-doxygen/html/ProgSlice_8h_source.html +314 -298
- package/SVF-doxygen/html/SVFGOPT_8h_source.html +5 -5
- package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFG_8cpp_source.html +29 -29
- package/SVF-doxygen/html/SVFG_8h_source.html +446 -444
- package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +246 -235
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp.html +1 -0
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +271 -265
- package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +75 -62
- package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +257 -256
- package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +18 -18
- package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/annotated.html +377 -376
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder-members.html +121 -0
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +473 -0
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1CFLVF.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1FileChecker.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1ProgSlice-members.html +25 -22
- package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +493 -366
- package/SVF-doxygen/html/classSVF_1_1SVFG-members.html +182 -181
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +324 -298
- package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.html +2 -1
- package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +7 -7
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator-members.html +22 -19
- package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +238 -159
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder-members.html +11 -9
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +347 -285
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +259 -257
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1WPAPass.html +1 -1
- package/SVF-doxygen/html/classes.html +95 -94
- package/SVF-doxygen/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +2 -0
- package/SVF-doxygen/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -0
- package/SVF-doxygen/html/files.html +6 -4
- package/SVF-doxygen/html/functions_b.html +4 -3
- package/SVF-doxygen/html/functions_c.html +38 -29
- package/SVF-doxygen/html/functions_f.html +6 -6
- package/SVF-doxygen/html/functions_func_b.html +3 -2
- package/SVF-doxygen/html/functions_func_c.html +29 -23
- package/SVF-doxygen/html/functions_func_g.html +14 -10
- package/SVF-doxygen/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/functions_func_r.html +6 -5
- package/SVF-doxygen/html/functions_func_s.html +20 -17
- package/SVF-doxygen/html/functions_func_~.html +3 -0
- package/SVF-doxygen/html/functions_g.html +10 -6
- package/SVF-doxygen/html/functions_i.html +5 -5
- package/SVF-doxygen/html/functions_m.html +1 -1
- package/SVF-doxygen/html/functions_n.html +8 -7
- package/SVF-doxygen/html/functions_p.html +15 -15
- package/SVF-doxygen/html/functions_r.html +12 -6
- package/SVF-doxygen/html/functions_rela_c.html +3 -0
- package/SVF-doxygen/html/functions_s.html +22 -11
- package/SVF-doxygen/html/functions_t.html +7 -7
- package/SVF-doxygen/html/functions_type_n.html +2 -1
- package/SVF-doxygen/html/functions_type_s.html +6 -1
- package/SVF-doxygen/html/functions_type_w.html +1 -0
- package/SVF-doxygen/html/functions_v.html +4 -6
- package/SVF-doxygen/html/functions_vars_m.html +1 -1
- package/SVF-doxygen/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/functions_vars_s.html +2 -1
- package/SVF-doxygen/html/functions_w.html +4 -3
- package/SVF-doxygen/html/functions_~.html +3 -0
- package/SVF-doxygen/html/hierarchy.html +2 -1
- package/SVF-doxygen/html/namespaceSVF.html +2 -0
- package/SVF-doxygen/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/search/all_11.js +224 -223
- package/SVF-doxygen/html/search/all_12.js +553 -551
- package/SVF-doxygen/html/search/all_13.js +190 -190
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +167 -167
- package/SVF-doxygen/html/search/all_16.js +63 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +173 -172
- package/SVF-doxygen/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/search/all_3.js +466 -462
- package/SVF-doxygen/html/search/all_4.js +230 -230
- package/SVF-doxygen/html/search/all_5.js +119 -119
- package/SVF-doxygen/html/search/all_6.js +226 -226
- package/SVF-doxygen/html/search/all_7.js +1047 -1046
- package/SVF-doxygen/html/search/all_8.js +198 -198
- package/SVF-doxygen/html/search/all_9.js +608 -608
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +197 -197
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +81 -80
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +34 -34
- package/SVF-doxygen/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +57 -55
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +362 -362
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +139 -139
- package/SVF-doxygen/html/search/functions_12.js +289 -288
- package/SVF-doxygen/html/search/functions_13.js +59 -59
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +32 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +173 -172
- package/SVF-doxygen/html/search/functions_2.js +89 -89
- package/SVF-doxygen/html/search/functions_3.js +260 -258
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +60 -60
- package/SVF-doxygen/html/search/functions_7.js +856 -855
- package/SVF-doxygen/html/search/functions_8.js +149 -149
- package/SVF-doxygen/html/search/functions_9.js +424 -424
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +3 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +26 -26
- package/SVF-doxygen/html/search/typedefs_10.js +62 -61
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +56 -56
- package/SVF-doxygen/html/search/typedefs_7.js +44 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +151 -151
- package/SVF-doxygen/html/search/variables_1.js +75 -75
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +45 -44
- package/SVF-doxygen/html/search/variables_12.js +90 -90
- package/SVF-doxygen/html/search/variables_13.js +74 -74
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +50 -50
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +55 -55
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
- package/package.json +1 -1
- package/svf/include/CFL/CFLSVFGBuilder.h +58 -0
- package/svf/include/CFL/CFLVF.h +2 -2
- package/svf/include/Graphs/SVFG.h +1 -0
- package/svf/include/SABER/ProgSlice.h +11 -0
- package/svf/include/SABER/SaberCondAllocator.h +8 -0
- package/svf/include/SABER/SaberSVFGBuilder.h +12 -2
- package/svf/lib/CFL/CFLSVFGBuilder.cpp +100 -0
- package/svf/lib/SABER/ProgSlice.cpp +48 -1
- package/svf/lib/SABER/SaberSVFGBuilder.cpp +5 -0
- package/svf/lib/SABER/SrcSnkDDA.cpp +1 -0
|
@@ -124,238 +124,247 @@ $(function() {
|
|
|
124
124
|
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a1f13ef0f88ef09e0ee13c61ebc6ae678"> 56</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFFunction*, BasicBlockSet></a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a1f13ef0f88ef09e0ee13c61ebc6ae678">FunToExitBBsMap</a>; </div>
|
|
125
125
|
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ae4e8c7b47b9d672157b3c6f1c01188f8"> 57</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*, Condition></a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ae4e8c7b47b9d672157b3c6f1c01188f8">BBToCondMap</a>; </div>
|
|
126
126
|
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#aba5226558dcb5c52b12b02ad37b03f34"> 58</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<const SVFBasicBlock*></a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aba5226558dcb5c52b12b02ad37b03f34">CFWorkList</a>; </div>
|
|
127
|
-
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
|
127
|
+
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a1e5ab069ebb4d17f04788a37fa616cab"> 59</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFGNode*, Set<const SVFGNode*></a>> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a1e5ab069ebb4d17f04788a37fa616cab">SVFGNodeToSVFGNodeSetMap</a>;</div>
|
|
128
128
|
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
|
129
|
-
<div class="line"><a name="
|
|
130
|
-
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
|
|
131
|
-
<div class="line"><a name="
|
|
132
|
-
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> 
|
|
133
|
-
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> 
|
|
134
|
-
<div class="line"><a name="
|
|
135
|
-
<div class="line"><a name="l00070"></a><span class="lineno"
|
|
136
|
-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> 
|
|
137
|
-
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> 
|
|
138
|
-
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <
|
|
139
|
-
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> 
|
|
140
|
-
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> 
|
|
141
|
-
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> 
|
|
142
|
-
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> 
|
|
143
|
-
<div class="line"><a name="l00078"></a><span class="lineno"
|
|
144
|
-
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
|
|
145
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> 
|
|
146
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> 
|
|
147
|
-
<div class="line"><a name="
|
|
148
|
-
<div class="line"><a name="
|
|
149
|
-
<div class="line"><a name="l00086"></a><span class="lineno"
|
|
150
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
151
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
152
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
153
|
-
<div class="line"><a name="l00090"></a><span class="lineno"
|
|
154
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
|
|
155
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> 
|
|
156
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> 
|
|
157
|
-
<div class="line"><a name="l00094"></a><span class="lineno"
|
|
158
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
|
|
159
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> 
|
|
160
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> 
|
|
161
|
-
<div class="line"><a name="l00098"></a><span class="lineno"
|
|
162
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> 
|
|
163
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> 
|
|
164
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> 
|
|
165
|
-
<div class="line"><a name="l00102"></a><span class="lineno"
|
|
166
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
167
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> 
|
|
168
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> 
|
|
169
|
-
<div class="line"><a name="
|
|
170
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
171
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
172
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="
|
|
173
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <
|
|
174
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> 
|
|
175
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> 
|
|
176
|
-
<div class="line"><a name="l00114"></a><span class="lineno"
|
|
177
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> 
|
|
178
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
179
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> 
|
|
180
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
181
|
-
<div class="line"><a name="
|
|
182
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
|
183
|
-
<div class="line"><a name="
|
|
184
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
|
185
|
-
<div class="line"><a name="
|
|
186
|
-
<div class="line"><a name="l00127"></a><span class="lineno"
|
|
187
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> 
|
|
188
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> 
|
|
189
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> 
|
|
190
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <
|
|
191
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
192
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> 
|
|
193
|
-
<div class="line"><a name="l00134"></a><span class="lineno"
|
|
194
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
195
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 
|
|
196
|
-
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">idToTermInstMap</a
|
|
197
|
-
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> 
|
|
198
|
-
<div class="line"><a name="
|
|
199
|
-
<div class="line"><a name="l00141"></a><span class="lineno"
|
|
200
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> 
|
|
201
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> 
|
|
202
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> 
|
|
203
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
204
|
-
<div class="line"><a name="l00146"></a><span class="lineno"
|
|
205
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> 
|
|
206
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
207
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*
|
|
208
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="
|
|
209
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
210
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
211
|
-
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="
|
|
212
|
-
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> 
|
|
213
|
-
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> 
|
|
214
|
-
<div class="line"><a name="l00156"></a><span class="lineno"
|
|
215
|
-
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
|
|
216
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> 
|
|
217
|
-
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*
|
|
218
|
-
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="
|
|
219
|
-
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> 
|
|
220
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> 
|
|
221
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="
|
|
222
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> 
|
|
223
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
224
|
-
<div class="line"><a name="
|
|
225
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
226
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#
|
|
227
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#
|
|
228
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
|
|
229
|
-
<div class="line"><a name="
|
|
230
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
|
|
231
|
-
<div class="line"><a name="l00176"></a><span class="lineno"
|
|
232
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
233
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
234
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
235
|
-
<div class="line"><a name="
|
|
236
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
237
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
238
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
239
|
-
<div class="line"><a name="
|
|
240
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> 
|
|
241
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> 
|
|
242
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> 
|
|
243
|
-
<div class="line"><a name="
|
|
244
|
-
<div class="line"><a name="
|
|
245
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  </div>
|
|
246
|
-
<div class="line"><a name="
|
|
247
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  </div>
|
|
248
|
-
<div class="line"><a name="
|
|
249
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> 
|
|
250
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
|
|
251
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
252
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
253
|
-
<div class="line"><a name="
|
|
254
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
|
|
255
|
-
<div class="line"><a name="l00207"></a><span class="lineno"
|
|
256
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
257
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
258
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
259
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> 
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="l00214"></a><span class="lineno"
|
|
262
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> 
|
|
263
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
264
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <
|
|
265
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="
|
|
266
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> 
|
|
267
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
|
|
268
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> 
|
|
269
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <
|
|
270
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
271
|
-
<div class="line"><a name="l00224"></a><span class="lineno"
|
|
272
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> 
|
|
273
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
274
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
275
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
276
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> 
|
|
277
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
278
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
279
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
280
|
-
<div class="line"><a name="
|
|
129
|
+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
|
130
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4b1625597c6b331dfe0e8ceef95731b5">SaberCondAllocator</a>();</div>
|
|
131
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
|
132
|
+
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a009db4214557cbe2ff53b81f0519fbcd"> 66</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a009db4214557cbe2ff53b81f0519fbcd">~SaberCondAllocator</a>()</div>
|
|
133
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div>
|
|
134
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div>
|
|
135
|
+
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
|
|
136
|
+
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa"> 71</a></span>  <span class="keyword">inline</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa">getMemUsage</a>()</div>
|
|
137
|
+
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div>
|
|
138
|
+
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> vmrss, vmsize;</div>
|
|
139
|
+
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a630ff9c47f58f9b8df7c8a2b3711477c">SVFUtil::getMemoryUsageKB</a>(&vmrss, &vmsize))</div>
|
|
140
|
+
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> std::to_string(vmsize) + <span class="stringliteral">"KB"</span>;</div>
|
|
141
|
+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">else</span></div>
|
|
142
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <span class="stringliteral">"cannot read memory usage"</span>;</div>
|
|
143
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div>
|
|
144
|
+
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c"> 79</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c">getCondNum</a>()</div>
|
|
145
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div>
|
|
146
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a76fad4d58db94d7c572876ba6f1adf83">totalCondNum</a>;</div>
|
|
147
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div>
|
|
148
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
|
149
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
|
150
|
+
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4"> 87</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4">condAnd</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& rhs)</div>
|
|
151
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div>
|
|
152
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a4f56bd6d3a31df94e19af9ce6e685fea">Condition::AND</a>(lhs,rhs);</div>
|
|
153
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div>
|
|
154
|
+
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161"> 91</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161">condOr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& rhs)</div>
|
|
155
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div>
|
|
156
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#ac063ed06c3495b790c02fe57c781b34e">Condition::OR</a>(lhs,rhs);</div>
|
|
157
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
|
|
158
|
+
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817"> 95</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817">condNeg</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& cond)</div>
|
|
159
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div>
|
|
160
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a9a545e516e6dee37310ad02481a84356">Condition::NEG</a>(cond);</div>
|
|
161
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div>
|
|
162
|
+
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3"> 99</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3">getTrueCond</a>()<span class="keyword"> const</span></div>
|
|
163
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword"> </span>{</div>
|
|
164
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Condition::getTrueCond</a>();</div>
|
|
165
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
|
|
166
|
+
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4"> 103</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">getFalseCond</a>()<span class="keyword"> const</span></div>
|
|
167
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword"> </span>{</div>
|
|
168
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">Condition::getFalseCond</a>();</div>
|
|
169
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div>
|
|
170
|
+
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a87205db039579f05214507c48d6befec"> 108</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a87205db039579f05214507c48d6befec">exactCondElem</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& cond)</div>
|
|
171
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div>
|
|
172
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> elems;</div>
|
|
173
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9f43fe1cacf419f03276d66c3a54fe77">extractSubConds</a>(cond, elems);</div>
|
|
174
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> elems;</div>
|
|
175
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
|
|
176
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div>
|
|
177
|
+
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed"> 115</a></span>  <span class="keyword">inline</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed">dumpCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& cond)<span class="keyword"> const</span></div>
|
|
178
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword"> </span>{</div>
|
|
179
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a56ba65487cc91248259e29d3ebb5bdb0">Condition::dumpStr</a>(cond);</div>
|
|
180
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div>
|
|
181
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
|
|
182
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ada4902d6ee3ad2d37e31c710a36dcc74">newCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst);</div>
|
|
183
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
|
|
184
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a0014c59d7f3c7bd0845548aea05a9a5b">allocate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module);</div>
|
|
185
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
|
186
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">//{@</span></div>
|
|
187
|
+
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a1d8b90edf6ec679a97282ba60c07134d"> 128</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* <a class="code" href="classSVF_1_1SaberCondAllocator.html#a1d8b90edf6ec679a97282ba60c07134d">getCondInst</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
|
|
188
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword"> </span>{</div>
|
|
189
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  IndexToTermInstMap::const_iterator it = <a class="code" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">idToTermInstMap</a>.find(<span class="keywordtype">id</span>);</div>
|
|
190
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  assert(it != <a class="code" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">idToTermInstMap</a>.end() && <span class="stringliteral">"this should be a fresh condition"</span>);</div>
|
|
191
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
192
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div>
|
|
193
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
|
|
194
|
+
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a97d540340f9039b3f8bd1527fc7d7ebb"> 135</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a97d540340f9039b3f8bd1527fc7d7ebb">setCondInst</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &condition, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst)</div>
|
|
195
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  {</div>
|
|
196
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  assert(<a class="code" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">idToTermInstMap</a>.find(condition.<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>()) == <a class="code" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">idToTermInstMap</a>.end() && <span class="stringliteral">"this should be a fresh condition"</span>);</div>
|
|
197
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">idToTermInstMap</a>[condition.<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>()] = inst;</div>
|
|
198
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div>
|
|
199
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
|
|
200
|
+
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ad5d27f65374025b6a105ea7a92cbdb50"> 142</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ad5d27f65374025b6a105ea7a92cbdb50">isNegCond</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
|
|
201
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword"> </span>{</div>
|
|
202
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4267ed81d5100d49581a4216f46e660c">negConds</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">test</a>(<span class="keywordtype">id</span>);</div>
|
|
203
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
|
204
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
|
205
|
+
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a3eb0a564ba8047dc5512b2e79ba64313"> 147</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a3eb0a564ba8047dc5512b2e79ba64313">postDominate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbKey, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbValue)<span class="keyword"> const</span></div>
|
|
206
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword"> </span>{</div>
|
|
207
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* keyFunc = bbKey-><a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div>
|
|
208
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* valueFunc = bbValue-><a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div>
|
|
209
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">bool</span> funcEq = (keyFunc == valueFunc);</div>
|
|
210
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  (void)funcEq; <span class="comment">// Suppress warning of unused variable under release build</span></div>
|
|
211
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(funcEq && <span class="stringliteral">"two basicblocks should be in the same function!"</span>);</div>
|
|
212
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">return</span> keyFunc-><a class="code" href="classSVF_1_1SVFFunction.html#acc4af12afb0bc14982060d2e3baa1929">postDominate</a>(bbKey,bbValue);</div>
|
|
213
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  }</div>
|
|
214
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
215
|
+
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#af2fe5ef8f31ae675a7a32b45aa34a597"> 157</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#af2fe5ef8f31ae675a7a32b45aa34a597">dominate</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbKey, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bbValue)<span class="keyword"> const</span></div>
|
|
216
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="keyword"> </span>{</div>
|
|
217
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* keyFunc = bbKey-><a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div>
|
|
218
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* valueFunc = bbValue-><a class="code" href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">getParent</a>();</div>
|
|
219
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordtype">bool</span> funcEq = (keyFunc == valueFunc);</div>
|
|
220
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  (void)funcEq; <span class="comment">// Suppress warning of unused variable under release build</span></div>
|
|
221
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  assert(funcEq && <span class="stringliteral">"two basicblocks should be in the same function!"</span>);</div>
|
|
222
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> keyFunc-><a class="code" href="classSVF_1_1SVFFunction.html#a03db4ff0d8140ebc0219caea902e7078">dominate</a>(bbKey,bbValue);</div>
|
|
223
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div>
|
|
224
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
|
|
225
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
|
|
226
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#af77d3631664b21a16818f54b03b5a832">ComputeIntraVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst);</div>
|
|
227
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aedb63308f8980bbaf2b6c1bd2826a710">ComputeInterCallVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* callBB);</div>
|
|
228
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a8bb7f9ce20b5a640aa48c32176f429bf">ComputeInterRetVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* retBB);</div>
|
|
229
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
|
230
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a59f2e92299ea13284f4f2d724bddd8d7">getPHIComplementCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* BB1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* BB2, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* BB0);</div>
|
|
231
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
|
232
|
+
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c"> 177</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c">clearCFCond</a>()</div>
|
|
233
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div>
|
|
234
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">bbToCondMap</a>.clear();</div>
|
|
235
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  }</div>
|
|
236
|
+
<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0"> 182</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0">setCurEvalSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
|
|
237
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div>
|
|
238
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4ac9b5ec6bfd7a7b468cb13a5e8803e0">curEvalSVFGNode</a> = node;</div>
|
|
239
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div>
|
|
240
|
+
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a9aec07a64b97d546cfa0efe10f888b6a"> 187</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9aec07a64b97d546cfa0efe10f888b6a">getCurEvalSVFGNode</a>()<span class="keyword"> const</span></div>
|
|
241
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="keyword"> </span>{</div>
|
|
242
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4ac9b5ec6bfd7a7b468cb13a5e8803e0">curEvalSVFGNode</a>;</div>
|
|
243
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
244
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
|
|
245
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a389fd522c1de5b4feed34f29b9709d03">printPathCond</a>();</div>
|
|
246
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
|
247
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a7c132cc105a97a5dbf0c9b9d16b4b72a">isSatisfiable</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a>& condition);</div>
|
|
248
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  </div>
|
|
249
|
+
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a246da0431273c312800459aa85d80a86"> 200</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a246da0431273c312800459aa85d80a86">isAllPathReachable</a>(<a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& condition)</div>
|
|
250
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div>
|
|
251
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aa9027574586fd4fbb12039f595ecec71">isEquivalentBranchCond</a>(condition, <a class="code" href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">Condition::getTrueCond</a>());</div>
|
|
252
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div>
|
|
253
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
|
|
254
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aa9027574586fd4fbb12039f595ecec71">isEquivalentBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> &lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> &rhs) <span class="keyword">const</span>;</div>
|
|
255
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
|
256
|
+
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a6bd67514e0ea9a2704ae83a38c9f2592"> 208</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* <a class="code" href="classSVF_1_1SaberCondAllocator.html#a6bd67514e0ea9a2704ae83a38c9f2592">getICFG</a>()<span class="keyword"> const</span></div>
|
|
257
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword"> </span>{</div>
|
|
258
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
|
|
259
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
|
|
260
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
|
|
261
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
|
262
|
+
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a9c1660f4a9ecc161c0fb97c735a690b9"> 215</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9c1660f4a9ecc161c0fb97c735a690b9">setCFCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>& cond)</div>
|
|
263
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div>
|
|
264
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  BBToCondMap::iterator it = <a class="code" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">bbToCondMap</a>.find(bb);</div>
|
|
265
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// until a fixed-point is reached (condition is not changed)</span></div>
|
|
266
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">bbToCondMap</a>.end() && <a class="code" href="classSVF_1_1SaberCondAllocator.html#aa9027574586fd4fbb12039f595ecec71">isEquivalentBranchCond</a>(it->second, cond))</div>
|
|
267
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
268
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
269
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">bbToCondMap</a>[bb] = cond;</div>
|
|
270
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
271
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div>
|
|
272
|
+
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ace1ef8c6e9bc369a6828e7220979e40b"> 225</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ace1ef8c6e9bc369a6828e7220979e40b">getCFCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb)<span class="keyword"> const</span></div>
|
|
273
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword"> </span>{</div>
|
|
274
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  BBToCondMap::const_iterator it = <a class="code" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">bbToCondMap</a>.find(bb);</div>
|
|
275
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span>(it==<a class="code" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">bbToCondMap</a>.end())</div>
|
|
276
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
|
277
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">getFalseCond</a>();</div>
|
|
278
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div>
|
|
279
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
280
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div>
|
|
281
281
|
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
284
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
285
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#
|
|
286
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
287
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
282
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
|
|
283
|
+
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ae8858c45c7406842ca967ed14f0b58e5"> 238</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ae8858c45c7406842ca967ed14f0b58e5">setNegCondInst</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &condition, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* inst)</div>
|
|
284
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  {</div>
|
|
285
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a97d540340f9039b3f8bd1527fc7d7ebb">setCondInst</a>(condition, inst);</div>
|
|
286
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4267ed81d5100d49581a4216f46e660c">negConds</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(condition.<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>());</div>
|
|
287
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div>
|
|
288
288
|
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
|
|
289
|
-
<div class="line"><a name="
|
|
290
|
-
<div class="line"><a name="
|
|
289
|
+
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#aaac0aab3bb5c3533889779b4f63bd6a4"> 244</a></span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a1e5ab069ebb4d17f04788a37fa616cab">SVFGNodeToSVFGNodeSetMap</a> & <a class="code" href="classSVF_1_1SaberCondAllocator.html#aaac0aab3bb5c3533889779b4f63bd6a4">getRemovedSUVFEdges</a>()</div>
|
|
290
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  {</div>
|
|
291
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a0eb6b0b625f412cb603e5483ca88e8dc">removedSUVFEdges</a>;</div>
|
|
292
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div>
|
|
291
293
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  </div>
|
|
292
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> 
|
|
293
|
-
<div class="line"><a name="
|
|
294
|
-
<div class="line"><a name="
|
|
295
|
-
<div class="line"><a name="
|
|
296
|
-
<div class="line"><a name="
|
|
297
|
-
<div class="line"><a name="
|
|
298
|
-
<div class="line"><a name="
|
|
299
|
-
<div class="line"><a name="
|
|
300
|
-
<div class="line"><a name="
|
|
301
|
-
<div class="line"><a name="
|
|
302
|
-
<div class="line"><a name="
|
|
303
|
-
<div class="line"><a name="
|
|
304
|
-
<div class="line"><a name="
|
|
305
|
-
<div class="line"><a name="
|
|
306
|
-
<div class="line"><a name="
|
|
307
|
-
<div class="line"><a name="
|
|
308
|
-
<div class="line"><a name="
|
|
309
|
-
<div class="line"><a name="
|
|
310
|
-
<div class="line"><a name="
|
|
311
|
-
<div class="line"><a name="
|
|
312
|
-
<div class="line"><a name="
|
|
313
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> 
|
|
314
|
-
<div class="line"><a name="
|
|
315
|
-
<div class="line"><a name="
|
|
316
|
-
<div class="line"><a name="
|
|
317
|
-
<div class="line"><a name="
|
|
318
|
-
<div class="line"><a name="
|
|
319
|
-
<div class="line"><a name="
|
|
320
|
-
<div class="line"><a name="
|
|
321
|
-
<div class="line"><a name="
|
|
322
|
-
<div class="line"><a name="
|
|
323
|
-
<div class="line"><a name="
|
|
324
|
-
<div class="line"><a name="
|
|
325
|
-
<div class="line"><a name="
|
|
326
|
-
<div class="line"><a name="
|
|
327
|
-
<div class="line"><a name="
|
|
328
|
-
<div class="line"><a name="
|
|
329
|
-
<div class="line"><a name="
|
|
330
|
-
<div class="line"><a name="
|
|
331
|
-
<div class="line"><a name="
|
|
332
|
-
<div class="line"><a name="
|
|
333
|
-
<div class="line"><a name="
|
|
294
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="keyword">private</span>:</div>
|
|
295
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
|
|
296
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a060bb514ec1e8c3d80858d6a7d2ab8dc">allocateForBB</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>& bb);</div>
|
|
297
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
|
|
298
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
|
|
299
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a5012a977e0db66a2ae111d4164936037">setBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a>& cond);</div>
|
|
300
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a7d5ec3597ef0befe3b928c04db706d7a">getBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ) <span class="keyword">const</span>;</div>
|
|
301
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aeaac2e7be66c26cc10b0cad7d2040874">getEvalBrCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ);</div>
|
|
302
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div>
|
|
303
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab1e0f5cb65f7a50da2700fd1f959ea78">evaluateBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ) ;</div>
|
|
304
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab61767b4608efbd2fc4139bb6781b824">evaluateLoopExitBranch</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ);</div>
|
|
305
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a25b84bca2e3a439ade40bb98fa7093f7">evaluateTestNullLikeExpr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>* branchStmt, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ);</div>
|
|
306
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a25f4e42de59e143314917bdfd8122cbe">evaluateProgExit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>* branchStmt, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* succ);</div>
|
|
307
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9c55829ba737d6100a0a39c32929a56a">collectBBCallingProgExit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>& bb);</div>
|
|
308
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9d626dea5aa694799ec15a3b64021a35">isBBCallsProgExit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* bb);</div>
|
|
309
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  </div>
|
|
310
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
|
|
311
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aaa01f2c79866e9eb7818d80b0af2b9f5">isEQCmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>* cmp) <span class="keyword">const</span>;</div>
|
|
312
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aac5762d9a7d584a9748301acbb31b401">isNECmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>* cmp) <span class="keyword">const</span>;</div>
|
|
313
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#accf26eb31e7724daa3ba9170feee9644">isTestNullExpr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* test) <span class="keyword">const</span>;</div>
|
|
314
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4fc06192d4f7db305c3414a39e7c2b49">isTestNotNullExpr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* test) <span class="keyword">const</span>;</div>
|
|
315
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a34be6721a311d72dcd355eeb41dbd3e1">isTestContainsNullAndTheValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>* cmp) <span class="keyword">const</span>;</div>
|
|
316
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
|
317
|
+
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a59e01031d81c2e06bbc6577036b51732"> 293</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a59e01031d81c2e06bbc6577036b51732">destroy</a>()</div>
|
|
318
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {</div>
|
|
319
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  </div>
|
|
320
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
|
321
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div>
|
|
322
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a9f43fe1cacf419f03276d66c3a54fe77">extractSubConds</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">Condition</a> &condition, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &support) <span class="keyword">const</span>;</div>
|
|
323
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
|
|
324
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  </div>
|
|
325
|
+
<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#ad1620cc7482aeb464b53cfce64e17cc3"> 302</a></span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a1f13ef0f88ef09e0ee13c61ebc6ae678">FunToExitBBsMap</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#ad1620cc7482aeb464b53cfce64e17cc3">funToExitBBsMap</a>; </div>
|
|
326
|
+
<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9"> 303</a></span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#ae4e8c7b47b9d672157b3c6f1c01188f8">BBToCondMap</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">bbToCondMap</a>; </div>
|
|
327
|
+
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a4ac9b5ec6bfd7a7b468cb13a5e8803e0"> 304</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4ac9b5ec6bfd7a7b468cb13a5e8803e0">curEvalSVFGNode</a>{}; </div>
|
|
328
|
+
<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881"> 305</a></span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a5335280b02e1fab5a0404ba902eb0937">IndexToTermInstMap</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">idToTermInstMap</a>; </div>
|
|
329
|
+
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a4267ed81d5100d49581a4216f46e660c"> 306</a></span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a4267ed81d5100d49581a4216f46e660c">negConds</a>; </div>
|
|
330
|
+
<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#afd6cf17070e3629ced1ac36b8e2b0bbb"> 307</a></span>  std::vector<Condition> <a class="code" href="classSVF_1_1SaberCondAllocator.html#afd6cf17070e3629ced1ac36b8e2b0bbb">conditionVec</a>; </div>
|
|
331
|
+
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a76fad4d58db94d7c572876ba6f1adf83"> 308</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a76fad4d58db94d7c572876ba6f1adf83">totalCondNum</a>; </div>
|
|
332
|
+
<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a0eb6b0b625f412cb603e5483ca88e8dc"> 309</a></span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a1e5ab069ebb4d17f04788a37fa616cab">SVFGNodeToSVFGNodeSetMap</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a0eb6b0b625f412cb603e5483ca88e8dc">removedSUVFEdges</a>;</div>
|
|
333
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div>
|
|
334
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="keyword">protected</span>:</div>
|
|
335
|
+
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1SaberCondAllocator.html#a5c129ebf5ae55eb3af8bd670c921a646"> 312</a></span>  <a class="code" href="classSVF_1_1SaberCondAllocator.html#a513ab32b3f9ddfb0a21668e881bcf27b">BBCondMap</a> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a5c129ebf5ae55eb3af8bd670c921a646">bbConds</a>; </div>
|
|
336
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
|
|
337
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> };</div>
|
|
338
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
|
|
339
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> } <span class="comment">// End namespace SVF</span></div>
|
|
340
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
|
|
341
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="preprocessor">#endif </span><span class="comment">/* PATHALLOCATOR_H_ */</span><span class="preprocessor"></span></div>
|
|
334
342
|
</div><!-- fragment --></div><!-- contents -->
|
|
335
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_af2fe5ef8f31ae675a7a32b45aa34a597"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#af2fe5ef8f31ae675a7a32b45aa34a597">SVF::SaberCondAllocator::dominate</a></div><div class="ttdeci">bool dominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
336
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9b52da69d79746765d0c12a5ce1b08f4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">SVF::SaberCondAllocator::getFalseCond</a></div><div class="ttdeci">Condition getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
343
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_af2fe5ef8f31ae675a7a32b45aa34a597"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#af2fe5ef8f31ae675a7a32b45aa34a597">SVF::SaberCondAllocator::dominate</a></div><div class="ttdeci">bool dominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00157">SaberCondAllocator.h:157</a></div></div>
|
|
344
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9b52da69d79746765d0c12a5ce1b08f4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">SVF::SaberCondAllocator::getFalseCond</a></div><div class="ttdeci">Condition getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00103">SaberCondAllocator.h:103</a></div></div>
|
|
337
345
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ab1e0f5cb65f7a50da2700fd1f959ea78"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ab1e0f5cb65f7a50da2700fd1f959ea78">SVF::SaberCondAllocator::evaluateBranchCond</a></div><div class="ttdeci">Condition evaluateBranchCond(const SVFBasicBlock *bb, const SVFBasicBlock *succ)</div><div class="ttdoc">Evaluate branch conditions.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00293">SaberCondAllocator.cpp:293</a></div></div>
|
|
338
346
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aaa01f2c79866e9eb7818d80b0af2b9f5"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aaa01f2c79866e9eb7818d80b0af2b9f5">SVF::SaberCondAllocator::isEQCmp</a></div><div class="ttdeci">bool isEQCmp(const CmpStmt *cmp) const</div><div class="ttdoc">Evaluate test null/not null like expressions.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00334">SaberCondAllocator.cpp:334</a></div></div>
|
|
339
347
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
340
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ace1ef8c6e9bc369a6828e7220979e40b"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ace1ef8c6e9bc369a6828e7220979e40b">SVF::SaberCondAllocator::getCFCond</a></div><div class="ttdeci">Condition getCFCond(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
348
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ace1ef8c6e9bc369a6828e7220979e40b"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ace1ef8c6e9bc369a6828e7220979e40b">SVF::SaberCondAllocator::getCFCond</a></div><div class="ttdeci">Condition getCFCond(const SVFBasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00225">SaberCondAllocator.h:225</a></div></div>
|
|
341
349
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
342
350
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_ac063ed06c3495b790c02fe57c781b34e"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ac063ed06c3495b790c02fe57c781b34e">SVF::Z3Expr::OR</a></div><div class="ttdeci">static Z3Expr OR(const Z3Expr &lhs, const Z3Expr &rhs)</div><div class="ttdoc">compute OR, used for branch condition</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00130">Z3Expr.cpp:130</a></div></div>
|
|
343
351
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ada4902d6ee3ad2d37e31c710a36dcc74"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ada4902d6ee3ad2d37e31c710a36dcc74">SVF::SaberCondAllocator::newCond</a></div><div class="ttdeci">Condition newCond(const SVFInstruction *inst)</div><div class="ttdoc">Allocate a new condition.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00597">SaberCondAllocator.cpp:597</a></div></div>
|
|
344
352
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aba5226558dcb5c52b12b02ad37b03f34"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aba5226558dcb5c52b12b02ad37b03f34">SVF::SaberCondAllocator::CFWorkList</a></div><div class="ttdeci">FIFOWorkList< const SVFBasicBlock * > CFWorkList</div><div class="ttdoc">worklist for control-flow guard computation</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00058">SaberCondAllocator.h:58</a></div></div>
|
|
345
353
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
|
|
346
354
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_accf26eb31e7724daa3ba9170feee9644"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#accf26eb31e7724daa3ba9170feee9644">SVF::SaberCondAllocator::isTestNullExpr</a></div><div class="ttdeci">bool isTestNullExpr(const SVFValue *test) const</div><div class="ttdoc">Return true if this is a test null expression.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00344">SaberCondAllocator.cpp:344</a></div></div>
|
|
355
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a1e5ab069ebb4d17f04788a37fa616cab"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a1e5ab069ebb4d17f04788a37fa616cab">SVF::SaberCondAllocator::SVFGNodeToSVFGNodeSetMap</a></div><div class="ttdeci">Map< const SVFGNode *, Set< const SVFGNode * > > SVFGNodeToSVFGNodeSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00059">SaberCondAllocator.h:59</a></div></div>
|
|
347
356
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a7c132cc105a97a5dbf0c9b9d16b4b72a"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a7c132cc105a97a5dbf0c9b9d16b4b72a">SVF::SaberCondAllocator::isSatisfiable</a></div><div class="ttdeci">bool isSatisfiable(const Condition &condition)</div><div class="ttdoc">whether condition is satisfiable</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00621">SaberCondAllocator.cpp:621</a></div></div>
|
|
348
357
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00871">SVFStatements.h:871</a></div></div>
|
|
349
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a1d8b90edf6ec679a97282ba60c07134d"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a1d8b90edf6ec679a97282ba60c07134d">SVF::SaberCondAllocator::getCondInst</a></div><div class="ttdeci">const SVFInstruction * getCondInst(u32_t id) const</div><div class="ttdoc">Get/Set instruction based on Z3 expression id.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
358
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a1d8b90edf6ec679a97282ba60c07134d"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a1d8b90edf6ec679a97282ba60c07134d">SVF::SaberCondAllocator::getCondInst</a></div><div class="ttdeci">const SVFInstruction * getCondInst(u32_t id) const</div><div class="ttdoc">Get/Set instruction based on Z3 expression id.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00128">SaberCondAllocator.h:128</a></div></div>
|
|
350
359
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
351
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a4267ed81d5100d49581a4216f46e660c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a4267ed81d5100d49581a4216f46e660c">SVF::SaberCondAllocator::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdoc">key: z3 expression id, value: instruction</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
352
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a59e01031d81c2e06bbc6577036b51732"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a59e01031d81c2e06bbc6577036b51732">SVF::SaberCondAllocator::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
360
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a4267ed81d5100d49581a4216f46e660c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a4267ed81d5100d49581a4216f46e660c">SVF::SaberCondAllocator::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdoc">key: z3 expression id, value: instruction</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00306">SaberCondAllocator.h:306</a></div></div>
|
|
361
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a59e01031d81c2e06bbc6577036b51732"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a59e01031d81c2e06bbc6577036b51732">SVF::SaberCondAllocator::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00293">SaberCondAllocator.h:293</a></div></div>
|
|
353
362
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5335280b02e1fab5a0404ba902eb0937"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5335280b02e1fab5a0404ba902eb0937">SVF::SaberCondAllocator::IndexToTermInstMap</a></div><div class="ttdeci">Map< u32_t, const SVFInstruction * > IndexToTermInstMap</div><div class="ttdoc">z3 condition</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00052">SaberCondAllocator.h:52</a></div></div>
|
|
354
363
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
|
|
355
364
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a7d5ec3597ef0befe3b928c04db706d7a"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a7d5ec3597ef0befe3b928c04db706d7a">SVF::SaberCondAllocator::getBranchCond</a></div><div class="ttdeci">Condition getBranchCond(const SVFBasicBlock *bb, const SVFBasicBlock *succ) const</div><div class="ttdoc">Get branch condition.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00140">SaberCondAllocator.cpp:140</a></div></div>
|
|
356
365
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9f43fe1cacf419f03276d66c3a54fe77"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9f43fe1cacf419f03276d66c3a54fe77">SVF::SaberCondAllocator::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const Condition &condition, NodeBS &support) const</div><div class="ttdoc">extract subexpression from a Z3 expression</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00633">SaberCondAllocator.cpp:633</a></div></div>
|
|
357
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a3eb0a564ba8047dc5512b2e79ba64313"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a3eb0a564ba8047dc5512b2e79ba64313">SVF::SaberCondAllocator::postDominate</a></div><div class="ttdeci">bool postDominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
358
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aee401aa2c7884888bbd26544bcd92881"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">SVF::SaberCondAllocator::idToTermInstMap</a></div><div class="ttdeci">IndexToTermInstMap idToTermInstMap</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
366
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a3eb0a564ba8047dc5512b2e79ba64313"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a3eb0a564ba8047dc5512b2e79ba64313">SVF::SaberCondAllocator::postDominate</a></div><div class="ttdeci">bool postDominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00147">SaberCondAllocator.h:147</a></div></div>
|
|
367
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aee401aa2c7884888bbd26544bcd92881"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aee401aa2c7884888bbd26544bcd92881">SVF::SaberCondAllocator::idToTermInstMap</a></div><div class="ttdeci">IndexToTermInstMap idToTermInstMap</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00305">SaberCondAllocator.h:305</a></div></div>
|
|
359
368
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_a9a545e516e6dee37310ad02481a84356"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a9a545e516e6dee37310ad02481a84356">SVF::Z3Expr::NEG</a></div><div class="ttdeci">static Z3Expr NEG(const Z3Expr &z3Expr)</div><div class="ttdoc">compute NEG</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00294">Z3Expr.h:294</a></div></div>
|
|
360
369
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a4fc06192d4f7db305c3414a39e7c2b49"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a4fc06192d4f7db305c3414a39e7c2b49">SVF::SaberCondAllocator::isTestNotNullExpr</a></div><div class="ttdeci">bool isTestNotNullExpr(const SVFValue *test) const</div><div class="ttdoc">Return true if this is a test not null expression.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00359">SaberCondAllocator.cpp:359</a></div></div>
|
|
361
370
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
|
|
@@ -366,25 +375,26 @@ $(function() {
|
|
|
366
375
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
|
|
367
376
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_acdb4fbb53f19bac033e79cfe96ce82ca"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">SVF::Z3Expr::id</a></div><div class="ttdeci">u32_t id() const</div><div class="ttdoc">get id</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00104">Z3Expr.h:104</a></div></div>
|
|
368
377
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a59f2e92299ea13284f4f2d724bddd8d7"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a59f2e92299ea13284f4f2d724bddd8d7">SVF::SaberCondAllocator::getPHIComplementCond</a></div><div class="ttdeci">virtual Condition getPHIComplementCond(const SVFBasicBlock *BB1, const SVFBasicBlock *BB2, const SVFBasicBlock *BB0)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00465">SaberCondAllocator.cpp:465</a></div></div>
|
|
369
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a97d540340f9039b3f8bd1527fc7d7ebb"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a97d540340f9039b3f8bd1527fc7d7ebb">SVF::SaberCondAllocator::setCondInst</a></div><div class="ttdeci">void setCondInst(const Condition &condition, const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
378
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a97d540340f9039b3f8bd1527fc7d7ebb"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a97d540340f9039b3f8bd1527fc7d7ebb">SVF::SaberCondAllocator::setCondInst</a></div><div class="ttdeci">void setCondInst(const Condition &condition, const SVFInstruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00135">SaberCondAllocator.h:135</a></div></div>
|
|
370
379
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a513ab32b3f9ddfb0a21668e881bcf27b"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a513ab32b3f9ddfb0a21668e881bcf27b">SVF::SaberCondAllocator::BBCondMap</a></div><div class="ttdeci">Map< const SVFBasicBlock *, CondPosMap > BBCondMap</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00054">SaberCondAllocator.h:54</a></div></div>
|
|
371
380
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a1f13ef0f88ef09e0ee13c61ebc6ae678"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a1f13ef0f88ef09e0ee13c61ebc6ae678">SVF::SaberCondAllocator::FunToExitBBsMap</a></div><div class="ttdeci">Map< const SVFFunction *, BasicBlockSet > FunToExitBBsMap</div><div class="ttdoc">map a function to all its basic blocks calling program exit</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00056">SaberCondAllocator.h:56</a></div></div>
|
|
372
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a79682a4e4da23d0eaf0066a91c2f7bd4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4">SVF::SaberCondAllocator::condAnd</a></div><div class="ttdeci">Condition condAnd(const Condition &lhs, const Condition &rhs)</div><div class="ttdoc">Condition operations.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
381
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a79682a4e4da23d0eaf0066a91c2f7bd4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4">SVF::SaberCondAllocator::condAnd</a></div><div class="ttdeci">Condition condAnd(const Condition &lhs, const Condition &rhs)</div><div class="ttdoc">Condition operations.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00087">SaberCondAllocator.h:87</a></div></div>
|
|
373
382
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a4b1625597c6b331dfe0e8ceef95731b5"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a4b1625597c6b331dfe0e8ceef95731b5">SVF::SaberCondAllocator::SaberCondAllocator</a></div><div class="ttdeci">SaberCondAllocator()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00050">SaberCondAllocator.cpp:50</a></div></div>
|
|
374
383
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aac5762d9a7d584a9748301acbb31b401"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aac5762d9a7d584a9748301acbb31b401">SVF::SaberCondAllocator::isNECmp</a></div><div class="ttdeci">bool isNECmp(const CmpStmt *cmp) const</div><div class="ttdoc">Return true if the predicate of this compare instruction is not equal.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00339">SaberCondAllocator.cpp:339</a></div></div>
|
|
384
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aaac0aab3bb5c3533889779b4f63bd6a4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aaac0aab3bb5c3533889779b4f63bd6a4">SVF::SaberCondAllocator::getRemovedSUVFEdges</a></div><div class="ttdeci">SVFGNodeToSVFGNodeSetMap & getRemovedSUVFEdges()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00244">SaberCondAllocator.h:244</a></div></div>
|
|
375
385
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_af541505af93ccebf57543793658cf495"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#af541505af93ccebf57543793658cf495">SVF::Z3Expr::getFalseCond</a></div><div class="ttdeci">static Z3Expr getFalseCond()</div><div class="ttdoc">Return the unique false condition.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00288">Z3Expr.h:288</a></div></div>
|
|
376
386
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9c55829ba737d6100a0a39c32929a56a"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9c55829ba737d6100a0a39c32929a56a">SVF::SaberCondAllocator::collectBBCallingProgExit</a></div><div class="ttdeci">void collectBBCallingProgExit(const SVFBasicBlock &bb)</div><div class="ttdoc">Collect basic block contains program exit function call.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00425">SaberCondAllocator.cpp:425</a></div></div>
|
|
377
387
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00297">SVFValue.h:297</a></div></div>
|
|
378
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a87205db039579f05214507c48d6befec"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a87205db039579f05214507c48d6befec">SVF::SaberCondAllocator::exactCondElem</a></div><div class="ttdeci">NodeBS exactCondElem(const Condition &cond)</div><div class="ttdoc">Iterator every element of the condition.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
388
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a87205db039579f05214507c48d6befec"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a87205db039579f05214507c48d6befec">SVF::SaberCondAllocator::exactCondElem</a></div><div class="ttdeci">NodeBS exactCondElem(const Condition &cond)</div><div class="ttdoc">Iterator every element of the condition.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00108">SaberCondAllocator.h:108</a></div></div>
|
|
379
389
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aa9027574586fd4fbb12039f595ecec71"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aa9027574586fd4fbb12039f595ecec71">SVF::SaberCondAllocator::isEquivalentBranchCond</a></div><div class="ttdeci">bool isEquivalentBranchCond(const Condition &lhs, const Condition &rhs) const</div><div class="ttdoc">Whether lhs and rhs are equivalent branch conditions.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00610">SaberCondAllocator.cpp:610</a></div></div>
|
|
380
390
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a630ff9c47f58f9b8df7c8a2b3711477c"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a630ff9c47f58f9b8df7c8a2b3711477c">SVF::SVFUtil::getMemoryUsageKB</a></div><div class="ttdeci">bool getMemoryUsageKB(u32_t *vmrss_kb, u32_t *vmsize_kb)</div><div class="ttdoc">Get memory usage from system file. Return TRUE if succeed.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00177">SVFUtil.cpp:177</a></div></div>
|
|
381
391
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aedb63308f8980bbaf2b6c1bd2826a710"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aedb63308f8980bbaf2b6c1bd2826a710">SVF::SaberCondAllocator::ComputeInterCallVFGGuard</a></div><div class="ttdeci">virtual Condition ComputeInterCallVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *callBB)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00485">SaberCondAllocator.cpp:485</a></div></div>
|
|
382
392
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
383
393
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a0014c59d7f3c7bd0845548aea05a9a5b"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a0014c59d7f3c7bd0845548aea05a9a5b">SVF::SaberCondAllocator::allocate</a></div><div class="ttdeci">void allocate(const SVFModule *module)</div><div class="ttdoc">Perform path allocation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00058">SaberCondAllocator.cpp:58</a></div></div>
|
|
384
394
|
<div class="ttc" id="aSVFModule_8h_html"><div class="ttname"><a href="SVFModule_8h.html">SVFModule.h</a></div></div>
|
|
385
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5c129ebf5ae55eb3af8bd670c921a646"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5c129ebf5ae55eb3af8bd670c921a646">SVF::SaberCondAllocator::bbConds</a></div><div class="ttdeci">BBCondMap bbConds</div><div class="ttdoc">
|
|
395
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5c129ebf5ae55eb3af8bd670c921a646"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5c129ebf5ae55eb3af8bd670c921a646">SVF::SaberCondAllocator::bbConds</a></div><div class="ttdeci">BBCondMap bbConds</div><div class="ttdoc">map basic block to its successors/predecessors branch conditions</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00312">SaberCondAllocator.h:312</a></div></div>
|
|
386
396
|
<div class="ttc" id="aSVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
|
|
387
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a100c1962eac6d7af420defc827a025ed"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed">SVF::SaberCondAllocator::dumpCond</a></div><div class="ttdeci">std::string dumpCond(const Condition &cond) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
397
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a100c1962eac6d7af420defc827a025ed"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed">SVF::SaberCondAllocator::dumpCond</a></div><div class="ttdeci">std::string dumpCond(const Condition &cond) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00115">SaberCondAllocator.h:115</a></div></div>
|
|
388
398
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ab4eba98cf7306c89e40975c766d5bf65"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ab4eba98cf7306c89e40975c766d5bf65">SVF::SaberCondAllocator::Condition</a></div><div class="ttdeci">Z3Expr Condition</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00051">SaberCondAllocator.h:51</a></div></div>
|
|
389
399
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a8bb7f9ce20b5a640aa48c32176f429bf"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a8bb7f9ce20b5a640aa48c32176f429bf">SVF::SaberCondAllocator::ComputeInterRetVFGGuard</a></div><div class="ttdeci">virtual Condition ComputeInterRetVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *retBB)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00502">SaberCondAllocator.cpp:502</a></div></div>
|
|
390
400
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_af48d08d3adf7dd3ed69d97e4df360059"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#af48d08d3adf7dd3ed69d97e4df360059">SVF::SVFBasicBlock::getParent</a></div><div class="ttdeci">const SVFFunction * getParent() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00583">SVFValue.h:583</a></div></div>
|
|
@@ -393,49 +403,50 @@ $(function() {
|
|
|
393
403
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a34be6721a311d72dcd355eeb41dbd3e1"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a34be6721a311d72dcd355eeb41dbd3e1">SVF::SaberCondAllocator::isTestContainsNullAndTheValue</a></div><div class="ttdeci">bool isTestContainsNullAndTheValue(const CmpStmt *cmp) const</div><div class="ttdoc">Return true if two values on the predicate are what we want.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00394">SaberCondAllocator.cpp:394</a></div></div>
|
|
394
404
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_acc4af12afb0bc14982060d2e3baa1929"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#acc4af12afb0bc14982060d2e3baa1929">SVF::SVFFunction::postDominate</a></div><div class="ttdeci">bool postDominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00516">SVFValue.h:516</a></div></div>
|
|
395
405
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a112f2ede1240c95f9fe810f2882fab80"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a112f2ede1240c95f9fe810f2882fab80">SVF::SparseBitVector::test</a></div><div class="ttdeci">bool test(unsigned Idx) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00708">SparseBitVector.h:708</a></div></div>
|
|
396
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9aec07a64b97d546cfa0efe10f888b6a"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9aec07a64b97d546cfa0efe10f888b6a">SVF::SaberCondAllocator::getCurEvalSVFGNode</a></div><div class="ttdeci">const SVFGNode * getCurEvalSVFGNode() const</div><div class="ttdoc">Get current value for branch condition evaluation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
397
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ad1620cc7482aeb464b53cfce64e17cc3"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ad1620cc7482aeb464b53cfce64e17cc3">SVF::SaberCondAllocator::funToExitBBsMap</a></div><div class="ttdeci">FunToExitBBsMap funToExitBBsMap</div><div class="ttdoc">map a function to all its basic blocks calling program exit</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
398
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ae8858c45c7406842ca967ed14f0b58e5"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ae8858c45c7406842ca967ed14f0b58e5">SVF::SaberCondAllocator::setNegCondInst</a></div><div class="ttdeci">void setNegCondInst(const Condition &condition, const SVFInstruction *inst)</div><div class="ttdoc">mark neg Z3 expression</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
399
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a634376c35eceaf4dc995a71484d9bc7c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c">SVF::SaberCondAllocator::getCondNum</a></div><div class="ttdeci">u32_t getCondNum()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
406
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9aec07a64b97d546cfa0efe10f888b6a"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9aec07a64b97d546cfa0efe10f888b6a">SVF::SaberCondAllocator::getCurEvalSVFGNode</a></div><div class="ttdeci">const SVFGNode * getCurEvalSVFGNode() const</div><div class="ttdoc">Get current value for branch condition evaluation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00187">SaberCondAllocator.h:187</a></div></div>
|
|
407
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ad1620cc7482aeb464b53cfce64e17cc3"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ad1620cc7482aeb464b53cfce64e17cc3">SVF::SaberCondAllocator::funToExitBBsMap</a></div><div class="ttdeci">FunToExitBBsMap funToExitBBsMap</div><div class="ttdoc">map a function to all its basic blocks calling program exit</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00302">SaberCondAllocator.h:302</a></div></div>
|
|
408
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ae8858c45c7406842ca967ed14f0b58e5"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ae8858c45c7406842ca967ed14f0b58e5">SVF::SaberCondAllocator::setNegCondInst</a></div><div class="ttdeci">void setNegCondInst(const Condition &condition, const SVFInstruction *inst)</div><div class="ttdoc">mark neg Z3 expression</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00238">SaberCondAllocator.h:238</a></div></div>
|
|
409
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a634376c35eceaf4dc995a71484d9bc7c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c">SVF::SaberCondAllocator::getCondNum</a></div><div class="ttdeci">u32_t getCondNum()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00079">SaberCondAllocator.h:79</a></div></div>
|
|
400
410
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aa330cc6a1a3c38601ebeb325ffd87221"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aa330cc6a1a3c38601ebeb325ffd87221">SVF::SaberCondAllocator::CondPosMap</a></div><div class="ttdeci">Map< u32_t, Condition > CondPosMap</div><div class="ttdoc">id to instruction map for z3</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00053">SaberCondAllocator.h:53</a></div></div>
|
|
401
411
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_a4f56bd6d3a31df94e19af9ce6e685fea"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a4f56bd6d3a31df94e19af9ce6e685fea">SVF::Z3Expr::AND</a></div><div class="ttdeci">static Z3Expr AND(const Z3Expr &lhs, const Z3Expr &rhs)</div><div class="ttdoc">compute AND, used for branch condition</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8cpp_source.html#l00092">Z3Expr.cpp:92</a></div></div>
|
|
402
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a6d29487d00d66dadae7b4b79f9bf50e9"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">SVF::SaberCondAllocator::bbToCondMap</a></div><div class="ttdeci">BBToCondMap bbToCondMap</div><div class="ttdoc">map a basic block to its path condition starting from root</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
412
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a6d29487d00d66dadae7b4b79f9bf50e9"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">SVF::SaberCondAllocator::bbToCondMap</a></div><div class="ttdeci">BBToCondMap bbToCondMap</div><div class="ttdoc">map a basic block to its path condition starting from root</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00303">SaberCondAllocator.h:303</a></div></div>
|
|
403
413
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
|
|
414
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a0eb6b0b625f412cb603e5483ca88e8dc"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a0eb6b0b625f412cb603e5483ca88e8dc">SVF::SaberCondAllocator::removedSUVFEdges</a></div><div class="ttdeci">SVFGNodeToSVFGNodeSetMap removedSUVFEdges</div><div class="ttdoc">a counter for fresh condition</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00309">SaberCondAllocator.h:309</a></div></div>
|
|
404
415
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a45642ecc305ea97b58e0eeebd00fec7b"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a45642ecc305ea97b58e0eeebd00fec7b">SVF::SaberCondAllocator::BasicBlockSet</a></div><div class="ttdeci">Set< const SVFBasicBlock * > BasicBlockSet</div><div class="ttdoc">map bb to a Condition</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00055">SaberCondAllocator.h:55</a></div></div>
|
|
405
416
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a25b84bca2e3a439ade40bb98fa7093f7"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a25b84bca2e3a439ade40bb98fa7093f7">SVF::SaberCondAllocator::evaluateTestNullLikeExpr</a></div><div class="ttdeci">Condition evaluateTestNullLikeExpr(const BranchStmt *branchStmt, const SVFBasicBlock *succ)</div><div class="ttdoc">Return branch condition after evaluating test null like expression.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00184">SaberCondAllocator.cpp:184</a></div></div>
|
|
406
417
|
<div class="ttc" id="aWorkList_8h_html"><div class="ttname"><a href="WorkList_8h.html">WorkList.h</a></div></div>
|
|
407
418
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a060bb514ec1e8c3d80858d6a7d2ab8dc"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a060bb514ec1e8c3d80858d6a7d2ab8dc">SVF::SaberCondAllocator::allocateForBB</a></div><div class="ttdeci">virtual void allocateForBB(const SVFBasicBlock &bb)</div><div class="ttdoc">Allocate path condition for every basic block.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00086">SaberCondAllocator.cpp:86</a></div></div>
|
|
408
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ad5d27f65374025b6a105ea7a92cbdb50"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ad5d27f65374025b6a105ea7a92cbdb50">SVF::SaberCondAllocator::isNegCond</a></div><div class="ttdeci">bool isNegCond(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
419
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ad5d27f65374025b6a105ea7a92cbdb50"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ad5d27f65374025b6a105ea7a92cbdb50">SVF::SaberCondAllocator::isNegCond</a></div><div class="ttdeci">bool isNegCond(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00142">SaberCondAllocator.h:142</a></div></div>
|
|
409
420
|
<div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
|
|
410
421
|
<div class="ttc" id="aclassSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
411
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a4ac9b5ec6bfd7a7b468cb13a5e8803e0"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a4ac9b5ec6bfd7a7b468cb13a5e8803e0">SVF::SaberCondAllocator::curEvalSVFGNode</a></div><div class="ttdeci">const SVFGNode * curEvalSVFGNode</div><div class="ttdoc">current llvm value to evaluate branch condition when computing guards</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
422
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a4ac9b5ec6bfd7a7b468cb13a5e8803e0"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a4ac9b5ec6bfd7a7b468cb13a5e8803e0">SVF::SaberCondAllocator::curEvalSVFGNode</a></div><div class="ttdeci">const SVFGNode * curEvalSVFGNode</div><div class="ttdoc">current llvm value to evaluate branch condition when computing guards</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00304">SaberCondAllocator.h:304</a></div></div>
|
|
412
423
|
<div class="ttc" id="aclassSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01094">SVFStatements.h:1094</a></div></div>
|
|
413
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5406e73b860c419143035ee3774e7c1c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c">SVF::SaberCondAllocator::clearCFCond</a></div><div class="ttdeci">void clearCFCond()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
414
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ae717f565b947a72651c0de19bf6bcca0"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0">SVF::SaberCondAllocator::setCurEvalSVFGNode</a></div><div class="ttdeci">void setCurEvalSVFGNode(const SVFGNode *node)</div><div class="ttdoc">Set current value for branch condition evaluation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
424
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5406e73b860c419143035ee3774e7c1c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c">SVF::SaberCondAllocator::clearCFCond</a></div><div class="ttdeci">void clearCFCond()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00177">SaberCondAllocator.h:177</a></div></div>
|
|
425
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ae717f565b947a72651c0de19bf6bcca0"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0">SVF::SaberCondAllocator::setCurEvalSVFGNode</a></div><div class="ttdeci">void setCurEvalSVFGNode(const SVFGNode *node)</div><div class="ttdoc">Set current value for branch condition evaluation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00182">SaberCondAllocator.h:182</a></div></div>
|
|
415
426
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5012a977e0db66a2ae111d4164936037"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5012a977e0db66a2ae111d4164936037">SVF::SaberCondAllocator::setBranchCond</a></div><div class="ttdeci">void setBranchCond(const SVFBasicBlock *bb, const SVFBasicBlock *succ, const Condition &cond)</div><div class="ttdoc">Get/Set a branch condition, and its terminator instruction.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00166">SaberCondAllocator.cpp:166</a></div></div>
|
|
416
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_afd6cf17070e3629ced1ac36b8e2b0bbb"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#afd6cf17070e3629ced1ac36b8e2b0bbb">SVF::SaberCondAllocator::conditionVec</a></div><div class="ttdeci">std::vector< Condition > conditionVec</div><div class="ttdoc">bit vector for distinguish neg</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
417
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ac0060d6660cb022e599dbcb9eabc5aaa"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa">SVF::SaberCondAllocator::getMemUsage</a></div><div class="ttdeci">std::string getMemUsage()</div><div class="ttdoc">Statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
418
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ab9d7f1f5c5f22b190ec34255dead41b3"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3">SVF::SaberCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
427
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_afd6cf17070e3629ced1ac36b8e2b0bbb"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#afd6cf17070e3629ced1ac36b8e2b0bbb">SVF::SaberCondAllocator::conditionVec</a></div><div class="ttdeci">std::vector< Condition > conditionVec</div><div class="ttdoc">bit vector for distinguish neg</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00307">SaberCondAllocator.h:307</a></div></div>
|
|
428
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ac0060d6660cb022e599dbcb9eabc5aaa"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa">SVF::SaberCondAllocator::getMemUsage</a></div><div class="ttdeci">std::string getMemUsage()</div><div class="ttdoc">Statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00071">SaberCondAllocator.h:71</a></div></div>
|
|
429
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ab9d7f1f5c5f22b190ec34255dead41b3"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3">SVF::SaberCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00099">SaberCondAllocator.h:99</a></div></div>
|
|
419
430
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_af77d3631664b21a16818f54b03b5a832"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#af77d3631664b21a16818f54b03b5a832">SVF::SaberCondAllocator::ComputeIntraVFGGuard</a></div><div class="ttdeci">virtual Condition ComputeIntraVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst)</div><div class="ttdoc">Guard Computation for a value-flow (between two basic blocks)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00516">SaberCondAllocator.cpp:516</a></div></div>
|
|
420
431
|
<div class="ttc" id="aSVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
|
|
421
432
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ab61767b4608efbd2fc4139bb6781b824"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ab61767b4608efbd2fc4139bb6781b824">SVF::SaberCondAllocator::evaluateLoopExitBranch</a></div><div class="ttdeci">Condition evaluateLoopExitBranch(const SVFBasicBlock *bb, const SVFBasicBlock *succ)</div><div class="ttdoc">Evaluate loop exit branch.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00257">SaberCondAllocator.cpp:257</a></div></div>
|
|
422
433
|
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00626">SVFValue.h:626</a></div></div>
|
|
423
434
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html">SVF::SaberCondAllocator</a></div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00046">SaberCondAllocator.h:46</a></div></div>
|
|
424
435
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a03db4ff0d8140ebc0219caea902e7078"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a03db4ff0d8140ebc0219caea902e7078">SVF::SVFFunction::dominate</a></div><div class="ttdeci">bool dominate(const SVFBasicBlock *bbKey, const SVFBasicBlock *bbValue) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00511">SVFValue.h:511</a></div></div>
|
|
425
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a246da0431273c312800459aa85d80a86"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a246da0431273c312800459aa85d80a86">SVF::SaberCondAllocator::isAllPathReachable</a></div><div class="ttdeci">bool isAllPathReachable(Condition &condition)</div><div class="ttdoc">whether condition is satisfiable for all possible boolean guards</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
436
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a246da0431273c312800459aa85d80a86"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a246da0431273c312800459aa85d80a86">SVF::SaberCondAllocator::isAllPathReachable</a></div><div class="ttdeci">bool isAllPathReachable(Condition &condition)</div><div class="ttdoc">whether condition is satisfiable for all possible boolean guards</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00200">SaberCondAllocator.h:200</a></div></div>
|
|
426
437
|
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
|
|
427
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a6bd67514e0ea9a2704ae83a38c9f2592"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a6bd67514e0ea9a2704ae83a38c9f2592">SVF::SaberCondAllocator::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
438
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a6bd67514e0ea9a2704ae83a38c9f2592"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a6bd67514e0ea9a2704ae83a38c9f2592">SVF::SaberCondAllocator::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00208">SaberCondAllocator.h:208</a></div></div>
|
|
428
439
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ae4e8c7b47b9d672157b3c6f1c01188f8"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ae4e8c7b47b9d672157b3c6f1c01188f8">SVF::SaberCondAllocator::BBToCondMap</a></div><div class="ttdeci">Map< const SVFBasicBlock *, Condition > BBToCondMap</div><div class="ttdoc">map a basic block to its condition during control-flow guard computation</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00057">SaberCondAllocator.h:57</a></div></div>
|
|
429
440
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html_aaa0c9122f34208235a2d830432665752"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#aaa0c9122f34208235a2d830432665752">SVF::Z3Expr::getTrueCond</a></div><div class="ttdeci">static Z3Expr getTrueCond()</div><div class="ttdoc">Return the unique true condition.</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00281">Z3Expr.h:281</a></div></div>
|
|
430
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9c1660f4a9ecc161c0fb97c735a690b9"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9c1660f4a9ecc161c0fb97c735a690b9">SVF::SaberCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const SVFBasicBlock *bb, const Condition &cond)</div><div class="ttdoc">Get/Set control-flow conditions.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
431
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a76fad4d58db94d7c572876ba6f1adf83"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a76fad4d58db94d7c572876ba6f1adf83">SVF::SaberCondAllocator::totalCondNum</a></div><div class="ttdeci">static u32_t totalCondNum</div><div class="ttdoc">vector storing z3expression</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
432
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a009db4214557cbe2ff53b81f0519fbcd"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a009db4214557cbe2ff53b81f0519fbcd">SVF::SaberCondAllocator::~SaberCondAllocator</a></div><div class="ttdeci">virtual ~SaberCondAllocator()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
433
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a2e4c3f5149a5085a5c8bb7547eae8161"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161">SVF::SaberCondAllocator::condOr</a></div><div class="ttdeci">Condition condOr(const Condition &lhs, const Condition &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
441
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9c1660f4a9ecc161c0fb97c735a690b9"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9c1660f4a9ecc161c0fb97c735a690b9">SVF::SaberCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const SVFBasicBlock *bb, const Condition &cond)</div><div class="ttdoc">Get/Set control-flow conditions.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00215">SaberCondAllocator.h:215</a></div></div>
|
|
442
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a76fad4d58db94d7c572876ba6f1adf83"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a76fad4d58db94d7c572876ba6f1adf83">SVF::SaberCondAllocator::totalCondNum</a></div><div class="ttdeci">static u32_t totalCondNum</div><div class="ttdoc">vector storing z3expression</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00308">SaberCondAllocator.h:308</a></div></div>
|
|
443
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a009db4214557cbe2ff53b81f0519fbcd"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a009db4214557cbe2ff53b81f0519fbcd">SVF::SaberCondAllocator::~SaberCondAllocator</a></div><div class="ttdeci">virtual ~SaberCondAllocator()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00066">SaberCondAllocator.h:66</a></div></div>
|
|
444
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a2e4c3f5149a5085a5c8bb7547eae8161"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161">SVF::SaberCondAllocator::condOr</a></div><div class="ttdeci">Condition condOr(const Condition &lhs, const Condition &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00091">SaberCondAllocator.h:91</a></div></div>
|
|
434
445
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9d626dea5aa694799ec15a3b64021a35"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9d626dea5aa694799ec15a3b64021a35">SVF::SaberCondAllocator::isBBCallsProgExit</a></div><div class="ttdeci">bool isBBCallsProgExit(const SVFBasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00443">SaberCondAllocator.cpp:443</a></div></div>
|
|
435
446
|
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aeaac2e7be66c26cc10b0cad7d2040874"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aeaac2e7be66c26cc10b0cad7d2040874">SVF::SaberCondAllocator::getEvalBrCond</a></div><div class="ttdeci">Condition getEvalBrCond(const SVFBasicBlock *bb, const SVFBasicBlock *succ)</div><div class="ttdoc">Get a condition, evaluate the value for conditions if necessary (e.g., testNull like express)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00155">SaberCondAllocator.cpp:155</a></div></div>
|
|
436
447
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
437
448
|
<div class="ttc" id="aZ3Expr_8h_html"><div class="ttname"><a href="Z3Expr_8h.html">Z3Expr.h</a></div></div>
|
|
438
|
-
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a620d53b9af8dd30523c478f4e9655817"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817">SVF::SaberCondAllocator::condNeg</a></div><div class="ttdeci">Condition condNeg(const Condition &cond)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#
|
|
449
|
+
<div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a620d53b9af8dd30523c478f4e9655817"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817">SVF::SaberCondAllocator::condNeg</a></div><div class="ttdeci">Condition condNeg(const Condition &cond)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00095">SaberCondAllocator.h:95</a></div></div>
|
|
439
450
|
<!-- start footer part -->
|
|
440
451
|
<hr class="footer"/><address class="footer"><small>
|
|
441
452
|
Generated by  <a href="http://www.doxygen.org/index.html">
|