svf-tools 1.0.820 → 1.0.822
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/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +488 -486
- package/SVF-doxygen/html/LLVMModule_8h_source.html +14 -14
- package/SVF-doxygen/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFIRExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/VFG_8cpp_source.html +4 -5
- package/SVF-doxygen/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +470 -468
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1RaceResultValidator.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1VFG.html +4 -5
- package/SVF-doxygen/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/package.json +1 -1
- package/svf/lib/Graphs/SVFG.cpp +4 -4
- package/svf/lib/Graphs/VFG.cpp +4 -4
- package/svf-llvm/lib/LLVMModule.cpp +2 -0
|
@@ -1016,484 +1016,486 @@ $(function() {
|
|
|
1016
1016
|
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <span class="comment">// ExtDecl -> ExtDecl in Table 1</span></div>
|
|
1017
1017
|
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  std::vector<const Function*> calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(extfun);</div>
|
|
1018
1018
|
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.insert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.end(), calledFunctions.begin(), calledFunctions.end());</div>
|
|
1019
|
-
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span> 
|
|
1020
|
-
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> 
|
|
1021
|
-
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> 
|
|
1022
|
-
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> 
|
|
1023
|
-
<div class="line"><a name="
|
|
1024
|
-
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> 
|
|
1025
|
-
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> 
|
|
1026
|
-
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> 
|
|
1027
|
-
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> 
|
|
1028
|
-
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> 
|
|
1029
|
-
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> 
|
|
1030
|
-
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <a class="code" href="namespaceSVF.html#
|
|
1031
|
-
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <a class="code" href="namespaceSVF.html#
|
|
1032
|
-
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <a class="code" href="
|
|
1033
|
-
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <
|
|
1034
|
-
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <
|
|
1035
|
-
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> 
|
|
1036
|
-
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  fun->
|
|
1037
|
-
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> 
|
|
1038
|
-
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> 
|
|
1039
|
-
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <
|
|
1040
|
-
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <
|
|
1041
|
-
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> 
|
|
1042
|
-
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  decls.
|
|
1043
|
-
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> 
|
|
1044
|
-
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="comment">//
|
|
1045
|
-
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> 
|
|
1046
|
-
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> 
|
|
1047
|
-
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> 
|
|
1048
|
-
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> 
|
|
1049
|
-
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> 
|
|
1050
|
-
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> }</div>
|
|
1051
|
-
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> 
|
|
1052
|
-
<div class="line"><a name="l01004"></a><span class="lineno"
|
|
1053
|
-
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> 
|
|
1054
|
-
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> 
|
|
1055
|
-
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> 
|
|
1056
|
-
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="
|
|
1057
|
-
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> 
|
|
1058
|
-
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> 
|
|
1059
|
-
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> 
|
|
1060
|
-
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> 
|
|
1061
|
-
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> 
|
|
1062
|
-
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> 
|
|
1063
|
-
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="
|
|
1064
|
-
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> 
|
|
1065
|
-
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> 
|
|
1066
|
-
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> 
|
|
1067
|
-
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> 
|
|
1068
|
-
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> 
|
|
1069
|
-
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> 
|
|
1070
|
-
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> 
|
|
1071
|
-
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> 
|
|
1072
|
-
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> 
|
|
1073
|
-
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> 
|
|
1074
|
-
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keyword">const</span> <
|
|
1075
|
-
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> 
|
|
1076
|
-
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> 
|
|
1077
|
-
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> 
|
|
1078
|
-
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> 
|
|
1079
|
-
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> 
|
|
1080
|
-
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> 
|
|
1081
|
-
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> 
|
|
1082
|
-
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> 
|
|
1083
|
-
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> 
|
|
1084
|
-
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> 
|
|
1085
|
-
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> 
|
|
1086
|
-
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> 
|
|
1087
|
-
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> 
|
|
1088
|
-
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> 
|
|
1089
|
-
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> 
|
|
1090
|
-
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> 
|
|
1091
|
-
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> 
|
|
1092
|
-
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> }</div>
|
|
1093
|
-
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> 
|
|
1094
|
-
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> 
|
|
1095
|
-
<div class="line"><a name="l01047"></a><span class="lineno"
|
|
1096
|
-
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> 
|
|
1097
|
-
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> 
|
|
1098
|
-
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> 
|
|
1099
|
-
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> 
|
|
1100
|
-
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> 
|
|
1101
|
-
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  std::
|
|
1102
|
-
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <
|
|
1103
|
-
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> 
|
|
1104
|
-
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="keywordflow">
|
|
1105
|
-
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  OutputFilename = moduleName + suffix;</div>
|
|
1106
|
-
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  </div>
|
|
1107
|
-
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> 
|
|
1108
|
-
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> 
|
|
1109
|
-
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> 
|
|
1110
|
-
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> 
|
|
1111
|
-
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> 
|
|
1112
|
-
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="preprocessor">#
|
|
1113
|
-
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  WriteBitcodeToFile(
|
|
1114
|
-
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="preprocessor">#
|
|
1115
|
-
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> 
|
|
1116
|
-
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> 
|
|
1117
|
-
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> 
|
|
1118
|
-
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> 
|
|
1119
|
-
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> 
|
|
1120
|
-
<div class="line"><a name="l01072"></a><span class="lineno"
|
|
1121
|
-
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> 
|
|
1122
|
-
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> 
|
|
1123
|
-
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> 
|
|
1124
|
-
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <
|
|
1125
|
-
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> 
|
|
1126
|
-
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#
|
|
1127
|
-
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  svfvalue-><a class="code" href="classSVF_1_1SVFValue.html#
|
|
1128
|
-
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  </div>
|
|
1129
|
-
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> 
|
|
1130
|
-
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> 
|
|
1131
|
-
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> 
|
|
1132
|
-
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> 
|
|
1133
|
-
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> 
|
|
1134
|
-
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> 
|
|
1135
|
-
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> 
|
|
1136
|
-
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> 
|
|
1137
|
-
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span> 
|
|
1138
|
-
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> 
|
|
1139
|
-
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> 
|
|
1140
|
-
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  svffun->
|
|
1141
|
-
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> 
|
|
1142
|
-
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  </div>
|
|
1143
|
-
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> 
|
|
1144
|
-
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span> 
|
|
1145
|
-
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  </div>
|
|
1146
|
-
<div class="line"><a name="l01098"></a><span class="lineno"
|
|
1147
|
-
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> 
|
|
1148
|
-
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> 
|
|
1149
|
-
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> 
|
|
1150
|
-
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> 
|
|
1151
|
-
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span> 
|
|
1152
|
-
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> 
|
|
1153
|
-
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> 
|
|
1154
|
-
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> 
|
|
1155
|
-
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> 
|
|
1156
|
-
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> 
|
|
1157
|
-
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> 
|
|
1158
|
-
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> 
|
|
1159
|
-
<div class="line"><a name="
|
|
1160
|
-
<div class="line"><a name="
|
|
1161
|
-
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  <span class="keywordflow">
|
|
1162
|
-
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()), cint->getZExtValue(), cint->
|
|
1163
|
-
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordflow">else</span
|
|
1164
|
-
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()),
|
|
1165
|
-
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> 
|
|
1166
|
-
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> 
|
|
1167
|
-
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> 
|
|
1168
|
-
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span> 
|
|
1169
|
-
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> 
|
|
1170
|
-
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  <span class="
|
|
1171
|
-
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> 
|
|
1172
|
-
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> 
|
|
1173
|
-
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> 
|
|
1174
|
-
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> 
|
|
1175
|
-
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> 
|
|
1176
|
-
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>
|
|
1177
|
-
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  svfcd = <span class="keyword">new</span> <a class="code" href="
|
|
1178
|
-
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  <span class="keywordflow">else</span
|
|
1179
|
-
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  svfcd = <span class="keyword">new</span> <a class="code" href="
|
|
1180
|
-
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  </div>
|
|
1181
|
-
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> 
|
|
1182
|
-
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span> 
|
|
1183
|
-
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  </div>
|
|
1184
|
-
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> 
|
|
1185
|
-
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> 
|
|
1186
|
-
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  <
|
|
1187
|
-
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> 
|
|
1188
|
-
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span> 
|
|
1189
|
-
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> 
|
|
1190
|
-
<div class="line"><a name="l01145"></a><span class="lineno"
|
|
1191
|
-
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> 
|
|
1192
|
-
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> 
|
|
1193
|
-
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> 
|
|
1194
|
-
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span> 
|
|
1195
|
-
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> 
|
|
1196
|
-
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> 
|
|
1197
|
-
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> 
|
|
1198
|
-
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> 
|
|
1199
|
-
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> 
|
|
1200
|
-
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> 
|
|
1201
|
-
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#
|
|
1202
|
-
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <
|
|
1203
|
-
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span> 
|
|
1204
|
-
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> 
|
|
1205
|
-
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> 
|
|
1206
|
-
<div class="line"><a name="l01161"></a><span class="lineno"
|
|
1207
|
-
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> 
|
|
1208
|
-
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> 
|
|
1209
|
-
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> 
|
|
1210
|
-
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span> 
|
|
1211
|
-
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> 
|
|
1212
|
-
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> 
|
|
1213
|
-
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> 
|
|
1214
|
-
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> 
|
|
1215
|
-
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> 
|
|
1216
|
-
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> 
|
|
1217
|
-
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> 
|
|
1218
|
-
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span> 
|
|
1219
|
-
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> 
|
|
1220
|
-
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> 
|
|
1221
|
-
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <
|
|
1222
|
-
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> 
|
|
1223
|
-
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> 
|
|
1224
|
-
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> 
|
|
1225
|
-
<div class="line"><a name="l01180"></a><span class="lineno"
|
|
1226
|
-
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span> 
|
|
1227
|
-
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> 
|
|
1228
|
-
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> 
|
|
1229
|
-
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  <span class="keywordflow">
|
|
1230
|
-
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#
|
|
1231
|
-
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#
|
|
1232
|
-
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#
|
|
1233
|
-
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>
|
|
1234
|
-
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#
|
|
1235
|
-
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#
|
|
1236
|
-
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> 
|
|
1237
|
-
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> 
|
|
1238
|
-
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> 
|
|
1239
|
-
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  <span class="keywordflow">
|
|
1240
|
-
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#
|
|
1241
|
-
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  <span class="keywordflow">else</span
|
|
1242
|
-
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#
|
|
1243
|
-
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> 
|
|
1244
|
-
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> 
|
|
1245
|
-
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> 
|
|
1246
|
-
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> 
|
|
1247
|
-
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  </div>
|
|
1248
|
-
<div class="line"><a name="l01203"></a><span class="lineno"
|
|
1249
|
-
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> 
|
|
1250
|
-
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> 
|
|
1251
|
-
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> 
|
|
1252
|
-
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> 
|
|
1253
|
-
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> 
|
|
1254
|
-
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> 
|
|
1255
|
-
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> 
|
|
1256
|
-
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> 
|
|
1257
|
-
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> 
|
|
1258
|
-
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> 
|
|
1259
|
-
<div class="line"><a name="
|
|
1260
|
-
<div class="line"><a name="
|
|
1261
|
-
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> 
|
|
1262
|
-
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> 
|
|
1263
|
-
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  <span class="
|
|
1264
|
-
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> 
|
|
1265
|
-
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  </div>
|
|
1266
|
-
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> 
|
|
1267
|
-
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> 
|
|
1268
|
-
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> 
|
|
1269
|
-
<div class="line"><a name="
|
|
1270
|
-
<div class="line"><a name="
|
|
1271
|
-
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  <
|
|
1272
|
-
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> 
|
|
1273
|
-
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  </div>
|
|
1274
|
-
<div class="line"><a name="l01237"></a><span class="lineno"
|
|
1275
|
-
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> 
|
|
1276
|
-
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> 
|
|
1277
|
-
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> 
|
|
1278
|
-
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> 
|
|
1279
|
-
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> 
|
|
1280
|
-
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> 
|
|
1281
|
-
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span> 
|
|
1282
|
-
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> 
|
|
1283
|
-
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  <span class="
|
|
1284
|
-
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> 
|
|
1285
|
-
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> 
|
|
1286
|
-
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> 
|
|
1287
|
-
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span> 
|
|
1288
|
-
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> 
|
|
1289
|
-
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> 
|
|
1290
|
-
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> 
|
|
1291
|
-
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  <
|
|
1292
|
-
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> 
|
|
1293
|
-
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> 
|
|
1294
|
-
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span> 
|
|
1295
|
-
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> 
|
|
1296
|
-
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> 
|
|
1297
|
-
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> 
|
|
1298
|
-
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> 
|
|
1299
|
-
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> 
|
|
1300
|
-
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> 
|
|
1301
|
-
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> 
|
|
1302
|
-
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> 
|
|
1303
|
-
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  <
|
|
1304
|
-
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> 
|
|
1305
|
-
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  </div>
|
|
1306
|
-
<div class="line"><a name="l01269"></a><span class="lineno"
|
|
1307
|
-
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> 
|
|
1308
|
-
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> 
|
|
1309
|
-
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> 
|
|
1310
|
-
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  </div>
|
|
1311
|
-
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> 
|
|
1312
|
-
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span> 
|
|
1313
|
-
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <span class="
|
|
1314
|
-
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> 
|
|
1315
|
-
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> 
|
|
1316
|
-
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> 
|
|
1317
|
-
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  <a class="code" href="namespaceSVF.html#
|
|
1318
|
-
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span> 
|
|
1319
|
-
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> 
|
|
1320
|
-
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> 
|
|
1321
|
-
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> 
|
|
1322
|
-
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> 
|
|
1323
|
-
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> 
|
|
1324
|
-
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> 
|
|
1325
|
-
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> 
|
|
1326
|
-
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> 
|
|
1327
|
-
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> 
|
|
1328
|
-
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span> 
|
|
1329
|
-
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> 
|
|
1330
|
-
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> 
|
|
1331
|
-
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> 
|
|
1332
|
-
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> 
|
|
1333
|
-
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> 
|
|
1334
|
-
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> 
|
|
1335
|
-
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> 
|
|
1336
|
-
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#
|
|
1337
|
-
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> 
|
|
1338
|
-
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> 
|
|
1339
|
-
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> 
|
|
1340
|
-
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> 
|
|
1341
|
-
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> 
|
|
1342
|
-
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> 
|
|
1343
|
-
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> 
|
|
1344
|
-
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span> 
|
|
1345
|
-
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> 
|
|
1346
|
-
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> 
|
|
1347
|
-
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  svfat
|
|
1348
|
-
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> 
|
|
1349
|
-
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> 
|
|
1350
|
-
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> 
|
|
1351
|
-
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> 
|
|
1352
|
-
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> 
|
|
1353
|
-
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> 
|
|
1354
|
-
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> 
|
|
1355
|
-
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> 
|
|
1356
|
-
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> 
|
|
1357
|
-
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> 
|
|
1358
|
-
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> 
|
|
1359
|
-
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> 
|
|
1360
|
-
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> 
|
|
1361
|
-
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  <
|
|
1362
|
-
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> 
|
|
1363
|
-
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> 
|
|
1364
|
-
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> 
|
|
1365
|
-
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> 
|
|
1366
|
-
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> 
|
|
1367
|
-
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> 
|
|
1368
|
-
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  </div>
|
|
1369
|
-
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> 
|
|
1370
|
-
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span> 
|
|
1371
|
-
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  </div>
|
|
1372
|
-
<div class="line"><a name="
|
|
1373
|
-
<div class="line"><a name="
|
|
1374
|
-
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> 
|
|
1375
|
-
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> 
|
|
1376
|
-
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <
|
|
1377
|
-
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> 
|
|
1378
|
-
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> 
|
|
1379
|
-
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> 
|
|
1380
|
-
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span> 
|
|
1381
|
-
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> 
|
|
1382
|
-
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> 
|
|
1383
|
-
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> 
|
|
1384
|
-
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  </div>
|
|
1385
|
-
<div class="line"><a name="
|
|
1386
|
-
<div class="line"><a name="
|
|
1387
|
-
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> 
|
|
1388
|
-
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> 
|
|
1389
|
-
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#
|
|
1390
|
-
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#
|
|
1391
|
-
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> 
|
|
1392
|
-
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> 
|
|
1393
|
-
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  </div>
|
|
1394
|
-
<div class="line"><a name="
|
|
1395
|
-
<div class="line"><a name="
|
|
1396
|
-
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  <a class="code" href="
|
|
1397
|
-
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  <
|
|
1398
|
-
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> 
|
|
1399
|
-
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> 
|
|
1400
|
-
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> 
|
|
1401
|
-
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> 
|
|
1402
|
-
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  </div>
|
|
1403
|
-
<div class="line"><a name="
|
|
1404
|
-
<div class="line"><a name="
|
|
1405
|
-
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> 
|
|
1406
|
-
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> 
|
|
1407
|
-
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> 
|
|
1408
|
-
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> 
|
|
1409
|
-
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  </div>
|
|
1410
|
-
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> 
|
|
1411
|
-
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> 
|
|
1412
|
-
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> 
|
|
1413
|
-
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span> 
|
|
1414
|
-
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> 
|
|
1415
|
-
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> 
|
|
1416
|
-
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> 
|
|
1417
|
-
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> 
|
|
1418
|
-
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> 
|
|
1419
|
-
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> 
|
|
1420
|
-
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> 
|
|
1421
|
-
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#
|
|
1422
|
-
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span> 
|
|
1423
|
-
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> 
|
|
1424
|
-
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> 
|
|
1425
|
-
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  </div>
|
|
1426
|
-
<div class="line"><a name="
|
|
1427
|
-
<div class="line"><a name="
|
|
1428
|
-
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> 
|
|
1429
|
-
<div class="line"><a name="
|
|
1430
|
-
<div class="line"><a name="
|
|
1431
|
-
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <
|
|
1432
|
-
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> 
|
|
1433
|
-
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  <span class="comment">//
|
|
1434
|
-
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> 
|
|
1435
|
-
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  <span class="
|
|
1436
|
-
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> 
|
|
1437
|
-
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> 
|
|
1438
|
-
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> 
|
|
1439
|
-
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> 
|
|
1440
|
-
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  </div>
|
|
1441
|
-
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> 
|
|
1442
|
-
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> 
|
|
1443
|
-
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span> 
|
|
1444
|
-
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> 
|
|
1445
|
-
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  <a class="code" href="
|
|
1446
|
-
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  <
|
|
1447
|
-
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <
|
|
1448
|
-
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> 
|
|
1449
|
-
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> 
|
|
1450
|
-
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> 
|
|
1451
|
-
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> 
|
|
1452
|
-
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> 
|
|
1453
|
-
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span> 
|
|
1454
|
-
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> 
|
|
1455
|
-
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> 
|
|
1456
|
-
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> 
|
|
1457
|
-
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> 
|
|
1458
|
-
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> 
|
|
1459
|
-
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  </div>
|
|
1460
|
-
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> 
|
|
1461
|
-
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span> 
|
|
1462
|
-
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> 
|
|
1463
|
-
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> 
|
|
1464
|
-
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span> 
|
|
1465
|
-
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span> 
|
|
1466
|
-
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span> 
|
|
1467
|
-
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span> 
|
|
1468
|
-
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> 
|
|
1469
|
-
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span> 
|
|
1470
|
-
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span> 
|
|
1471
|
-
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span> 
|
|
1472
|
-
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span> 
|
|
1473
|
-
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#
|
|
1474
|
-
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span> 
|
|
1475
|
-
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span> 
|
|
1476
|
-
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span> 
|
|
1477
|
-
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  </div>
|
|
1478
|
-
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> 
|
|
1479
|
-
<div class="line"><a name="
|
|
1480
|
-
<div class="line"><a name="
|
|
1481
|
-
<div class="line"><a name="
|
|
1482
|
-
<div class="line"><a name="
|
|
1483
|
-
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  stInfo
|
|
1484
|
-
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  </div>
|
|
1485
|
-
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#
|
|
1486
|
-
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span> 
|
|
1487
|
-
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#
|
|
1488
|
-
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  </div>
|
|
1489
|
-
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span> 
|
|
1490
|
-
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span> 
|
|
1019
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">break</span>;</div>
|
|
1020
|
+
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div>
|
|
1021
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  }</div>
|
|
1022
|
+
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  }</div>
|
|
1023
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  </div>
|
|
1024
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* appfunc : funDefs)</div>
|
|
1025
|
+
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  {</div>
|
|
1026
|
+
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* owfunc : overwriteExtFuncs)</div>
|
|
1027
|
+
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  {</div>
|
|
1028
|
+
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  <span class="keywordflow">if</span> (appfunc->getName().str().compare(owfunc->getName().str()) == 0)</div>
|
|
1029
|
+
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  {</div>
|
|
1030
|
+
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*<span class="keyword">></span>(appfunc);</div>
|
|
1031
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod = fun->getParent();</div>
|
|
1032
|
+
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* funType = fun->getFunctionType();</div>
|
|
1033
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> funName = fun->getName().str();</div>
|
|
1034
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="comment">// Replace app function definition with declaration</span></div>
|
|
1035
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* declaration = Function::Create(funType, GlobalValue::ExternalLinkage, funName, mod);</div>
|
|
1036
|
+
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  fun->replaceAllUsesWith(declaration);</div>
|
|
1037
|
+
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  fun->eraseFromParent();</div>
|
|
1038
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  declaration->setName(funName);</div>
|
|
1039
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="comment">// AppDef -> ExtDef in Table 1, AppDef has been changed to AppDecl</span></div>
|
|
1040
|
+
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[declaration] = owfunc;</div>
|
|
1041
|
+
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="comment">// ExtDef -> AppDef in Table 1</span></div>
|
|
1042
|
+
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  std::vector<const Function*>& decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[owfunc];</div>
|
|
1043
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  decls.push_back(declaration);</div>
|
|
1044
|
+
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="comment">// Keep all called functions in owfunc</span></div>
|
|
1045
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="comment">// ExtDecl -> ExtDecl in Table 1</span></div>
|
|
1046
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  std::vector<const Function*> calledFunctions = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a47d2af43ff12d9e1014fa19256619466">LLVMUtil::getCalledFunctions</a>(owfunc);</div>
|
|
1047
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.insert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">ExtFuncsVec</a>.end(), calledFunctions.begin(), calledFunctions.end());</div>
|
|
1048
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keywordflow">break</span>;</div>
|
|
1049
|
+
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  }</div>
|
|
1050
|
+
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  }</div>
|
|
1051
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  }</div>
|
|
1052
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> }</div>
|
|
1053
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  </div>
|
|
1054
|
+
<div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47"> 1006</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">LLVMModuleSet::buildGlobalDefToRepMap</a>()</div>
|
|
1055
|
+
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> {</div>
|
|
1056
|
+
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<string, Set<GlobalVariable*></a>> NameToGlobalsMapTy;</div>
|
|
1057
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  NameToGlobalsMapTy nameToGlobalsMap;</div>
|
|
1058
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
1059
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  {</div>
|
|
1060
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="comment">// Collect ctor and dtor functions</span></div>
|
|
1061
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>& global : mod.globals())</div>
|
|
1062
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  {</div>
|
|
1063
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
|
|
1064
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">continue</span>;</div>
|
|
1065
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
|
|
1066
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
|
|
1067
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="keywordflow">continue</span>;</div>
|
|
1068
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  nameToGlobalsMap[<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)].insert(&global);</div>
|
|
1069
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  }</div>
|
|
1070
|
+
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  }</div>
|
|
1071
|
+
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  </div>
|
|
1072
|
+
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pair : nameToGlobalsMap)</div>
|
|
1073
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  {</div>
|
|
1074
|
+
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<GlobalVariable*></a> &globals = pair.second;</div>
|
|
1075
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  </div>
|
|
1076
|
+
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
|
|
1077
|
+
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  std::find_if(globals.begin(), globals.end(),</div>
|
|
1078
|
+
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
|
|
1079
|
+
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  {</div>
|
|
1080
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  return g->hasInitializer();</div>
|
|
1081
|
+
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  });</div>
|
|
1082
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
|
|
1083
|
+
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  repIt != globals.end()</div>
|
|
1084
|
+
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  ? *repIt</div>
|
|
1085
|
+
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="comment">// When there is no initializer, just pick the first one.</span></div>
|
|
1086
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  : (assert(!globals.empty() && <span class="stringliteral">"Empty global set"</span>),</div>
|
|
1087
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  *globals.begin());</div>
|
|
1088
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  </div>
|
|
1089
|
+
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
|
|
1090
|
+
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  {</div>
|
|
1091
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
|
|
1092
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  }</div>
|
|
1093
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  }</div>
|
|
1094
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> }</div>
|
|
1095
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  </div>
|
|
1096
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">// Dump modules to files</span></div>
|
|
1097
|
+
<div class="line"><a name="l01049"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c"> 1049</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">LLVMModuleSet::dumpModulesToFile</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& suffix)</div>
|
|
1098
|
+
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> {</div>
|
|
1099
|
+
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
1100
|
+
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  {</div>
|
|
1101
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
|
|
1102
|
+
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
|
|
1103
|
+
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  std::size_t pos = moduleName.rfind(<span class="charliteral">'.'</span>);</div>
|
|
1104
|
+
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="keywordflow">if</span> (pos != std::string::npos)</div>
|
|
1105
|
+
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  OutputFilename = moduleName.substr(0, pos) + suffix;</div>
|
|
1106
|
+
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">else</span></div>
|
|
1107
|
+
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  OutputFilename = moduleName + suffix;</div>
|
|
1108
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  </div>
|
|
1109
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  std::error_code EC;</div>
|
|
1110
|
+
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
|
|
1111
|
+
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  </div>
|
|
1112
|
+
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR >= 7)</span></div>
|
|
1113
|
+
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  WriteBitcodeToFile(mod, OS);</div>
|
|
1114
|
+
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="preprocessor">#else</span></div>
|
|
1115
|
+
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  WriteBitcodeToFile(&mod, OS);</div>
|
|
1116
|
+
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="preprocessor">#endif</span></div>
|
|
1117
|
+
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  </div>
|
|
1118
|
+
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  OS.flush();</div>
|
|
1119
|
+
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  }</div>
|
|
1120
|
+
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> }</div>
|
|
1121
|
+
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  </div>
|
|
1122
|
+
<div class="line"><a name="l01074"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a"> 1074</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">LLVMModuleSet::setValueAttr</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfvalue)</div>
|
|
1123
|
+
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> {</div>
|
|
1124
|
+
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
|
|
1125
|
+
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  </div>
|
|
1126
|
+
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
|
|
1127
|
+
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  svfvalue-><a class="code" href="classSVF_1_1SVFValue.html#ac2e5c42d0ac92375c88ef5b3f1b65dc4">setPtrInUncalledFunction</a>();</div>
|
|
1128
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
|
|
1129
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  svfvalue-><a class="code" href="classSVF_1_1SVFValue.html#afe1de41ca3215b325d0ca61814c6bd6b">setConstDataOrAggData</a>();</div>
|
|
1130
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  </div>
|
|
1131
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* glob = SVFUtil::dyn_cast<SVFGlobalValue>(svfvalue))</div>
|
|
1132
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  {</div>
|
|
1133
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* llvmVal = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">LLVMUtil::getGlobalRep</a>(val);</div>
|
|
1134
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  assert(SVFUtil::isa<GlobalValue>(llvmVal) && <span class="stringliteral">"not a GlobalValue?"</span>);</div>
|
|
1135
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  glob->setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast<GlobalValue>(llvmVal)));</div>
|
|
1136
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  }</div>
|
|
1137
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = SVFUtil::dyn_cast<SVFFunction>(svfvalue))</div>
|
|
1138
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  {</div>
|
|
1139
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast<Function>(val);</div>
|
|
1140
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  svffun->setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
|
|
1141
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  svffun->setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
|
|
1142
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  svffun->setDefFunForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">LLVMUtil::getDefFunForMultipleModule</a>(func)));</div>
|
|
1143
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  }</div>
|
|
1144
|
+
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  </div>
|
|
1145
|
+
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  svfvalue-><a class="code" href="classSVF_1_1SVFValue.html#a588acec1904d440797ca4500f63f7d28">setSourceLoc</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
|
|
1146
|
+
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> }</div>
|
|
1147
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  </div>
|
|
1148
|
+
<div class="line"><a name="l01100"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727"> 1100</a></span> <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">LLVMModuleSet::getSVFConstantData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* cd)</div>
|
|
1149
|
+
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> {</div>
|
|
1150
|
+
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
|
|
1151
|
+
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
|
|
1152
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  {</div>
|
|
1153
|
+
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  assert(SVFUtil::isa<SVFConstantData>(it->second) && <span class="stringliteral">"not a SVFConstantData type!"</span>);</div>
|
|
1154
|
+
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  <span class="keywordflow">return</span> SVFUtil::cast<SVFConstantData>(it->second);</div>
|
|
1155
|
+
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  }</div>
|
|
1156
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordflow">else</span></div>
|
|
1157
|
+
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  {</div>
|
|
1158
|
+
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
|
|
1159
|
+
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* cint = SVFUtil::dyn_cast<ConstantInt>(cd))</div>
|
|
1160
|
+
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  {</div>
|
|
1161
|
+
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  <span class="keywordflow">if</span>(cint->getBitWidth() == 1)</div>
|
|
1162
|
+
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()), cint->getZExtValue(), cint->getZExtValue());</div>
|
|
1163
|
+
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(cint->getBitWidth() <= 64 && cint->getBitWidth() > 1)</div>
|
|
1164
|
+
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()), cint->getZExtValue(), cint->getSExtValue());</div>
|
|
1165
|
+
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  <span class="keywordflow">else</span></div>
|
|
1166
|
+
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()), 0, 0);</div>
|
|
1167
|
+
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  }</div>
|
|
1168
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad49e4222ba46d9490b87a80df8b46800">ConstantFP</a>* cfp = SVFUtil::dyn_cast<ConstantFP>(cd))</div>
|
|
1169
|
+
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  {</div>
|
|
1170
|
+
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  <span class="keywordtype">double</span> dval = 0;</div>
|
|
1171
|
+
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
|
|
1172
|
+
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="keywordflow">if</span>(cfp->isNormalFP() && (&cfp->getValueAPF().getSemantics()== &llvm::APFloatBase::IEEEdouble()))</div>
|
|
1173
|
+
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  dval = cfp->getValueAPF().convertToDouble();</div>
|
|
1174
|
+
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()), dval);</div>
|
|
1175
|
+
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  }</div>
|
|
1176
|
+
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ConstantPointerNull>(cd))</div>
|
|
1177
|
+
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantNullPtr.html">SVFConstantNullPtr</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()));</div>
|
|
1178
|
+
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<UndefValue>(cd))</div>
|
|
1179
|
+
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFBlackHoleValue.html">SVFBlackHoleValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()));</div>
|
|
1180
|
+
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  <span class="keywordflow">else</span></div>
|
|
1181
|
+
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()));</div>
|
|
1182
|
+
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  </div>
|
|
1183
|
+
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <span class="keywordflow">if</span> (cd->hasName())</div>
|
|
1184
|
+
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  svfcd-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd->getName().str());</div>
|
|
1185
|
+
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  </div>
|
|
1186
|
+
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfcd);</div>
|
|
1187
|
+
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
|
|
1188
|
+
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <span class="keywordflow">return</span> svfcd;</div>
|
|
1189
|
+
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  }</div>
|
|
1190
|
+
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> }</div>
|
|
1191
|
+
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  </div>
|
|
1192
|
+
<div class="line"><a name="l01147"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc"> 1147</a></span> <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">LLVMModuleSet::getOtherSVFConstant</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* oc)</div>
|
|
1193
|
+
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> {</div>
|
|
1194
|
+
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
|
|
1195
|
+
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
|
|
1196
|
+
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  {</div>
|
|
1197
|
+
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
1198
|
+
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  }</div>
|
|
1199
|
+
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keywordflow">else</span></div>
|
|
1200
|
+
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  {</div>
|
|
1201
|
+
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>* svfoc = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(oc->getType()));</div>
|
|
1202
|
+
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfoc);</div>
|
|
1203
|
+
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
|
|
1204
|
+
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  <span class="keywordflow">return</span> svfoc;</div>
|
|
1205
|
+
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  }</div>
|
|
1206
|
+
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> }</div>
|
|
1207
|
+
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  </div>
|
|
1208
|
+
<div class="line"><a name="l01163"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965"> 1163</a></span> <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">LLVMModuleSet::getSVFOtherValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* ov)</div>
|
|
1209
|
+
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> {</div>
|
|
1210
|
+
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
|
|
1211
|
+
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
|
|
1212
|
+
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  {</div>
|
|
1213
|
+
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
1214
|
+
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  }</div>
|
|
1215
|
+
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  <span class="keywordflow">else</span></div>
|
|
1216
|
+
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  {</div>
|
|
1217
|
+
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
|
|
1218
|
+
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  SVFUtil::isa<MetadataAsValue>(ov)</div>
|
|
1219
|
+
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  ? <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFMetadataAsValue.html">SVFMetadataAsValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov->getType()))</div>
|
|
1220
|
+
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  : <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov->getType()));</div>
|
|
1221
|
+
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#a48d7f0643bb228701dcabb88ef541fca">addOtherValue</a>(svfov);</div>
|
|
1222
|
+
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
|
|
1223
|
+
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  <span class="keywordflow">return</span> svfov;</div>
|
|
1224
|
+
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  }</div>
|
|
1225
|
+
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> }</div>
|
|
1226
|
+
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  </div>
|
|
1227
|
+
<div class="line"><a name="l01182"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392"> 1182</a></span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">LLVMModuleSet::getSVFValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value)</div>
|
|
1228
|
+
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> {</div>
|
|
1229
|
+
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = SVFUtil::dyn_cast<Function>(value))</div>
|
|
1230
|
+
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
|
|
1231
|
+
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast<BasicBlock>(value))</div>
|
|
1232
|
+
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
|
|
1233
|
+
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast<Instruction>(value))</div>
|
|
1234
|
+
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
|
|
1235
|
+
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast<Argument>(value))</div>
|
|
1236
|
+
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
|
|
1237
|
+
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* cons = SVFUtil::dyn_cast<Constant>(value))</div>
|
|
1238
|
+
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  {</div>
|
|
1239
|
+
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* cd = SVFUtil::dyn_cast<ConstantData>(cons))</div>
|
|
1240
|
+
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
|
|
1241
|
+
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">GlobalValue</a>* glob = SVFUtil::dyn_cast<GlobalValue>(cons))</div>
|
|
1242
|
+
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
|
|
1243
|
+
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="keywordflow">else</span></div>
|
|
1244
|
+
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
|
|
1245
|
+
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  }</div>
|
|
1246
|
+
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  <span class="keywordflow">else</span></div>
|
|
1247
|
+
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
|
|
1248
|
+
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> }</div>
|
|
1249
|
+
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>  </div>
|
|
1250
|
+
<div class="line"><a name="l01205"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044"> 1205</a></span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">LLVMModuleSet::getLLVMType</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* T)<span class="keyword"> const</span></div>
|
|
1251
|
+
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="keyword"></span>{</div>
|
|
1252
|
+
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>  <span class="keywordflow">for</span>(LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.begin(), eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end(); it!=eit; ++it)</div>
|
|
1253
|
+
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>  {</div>
|
|
1254
|
+
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>  <span class="keywordflow">if</span> (it->second == T)</div>
|
|
1255
|
+
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  <span class="keywordflow">return</span> it->first;</div>
|
|
1256
|
+
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>  }</div>
|
|
1257
|
+
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"can't find the corresponding LLVM Type"</span>);</div>
|
|
1258
|
+
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  abort();</div>
|
|
1259
|
+
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> }</div>
|
|
1260
|
+
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  </div>
|
|
1261
|
+
<div class="line"><a name="l01219"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99"> 1219</a></span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">LLVMModuleSet::getSVFType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
|
|
1262
|
+
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> {</div>
|
|
1263
|
+
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  assert(T && <span class="stringliteral">"SVFType should not be null"</span>);</div>
|
|
1264
|
+
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
|
|
1265
|
+
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
|
|
1266
|
+
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
1267
|
+
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  </div>
|
|
1268
|
+
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>  <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">addSVFTypeInfo</a>(T);</div>
|
|
1269
|
+
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stinfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(T);</div>
|
|
1270
|
+
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>  svfType-><a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
|
|
1271
|
+
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = PointerType::getInt8PtrTy(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>());</div>
|
|
1272
|
+
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>  svfType-><a class="code" href="classSVF_1_1SVFType.html#a3ddabbd763acaaca28cacbabe5bc7f3b">setPointerTo</a>(SVFUtil::cast<SVFPointerType>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ptrTy)));</div>
|
|
1273
|
+
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  <span class="keywordflow">return</span> svfType;</div>
|
|
1274
|
+
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> }</div>
|
|
1275
|
+
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  </div>
|
|
1276
|
+
<div class="line"><a name="l01239"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92"> 1239</a></span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">LLVMModuleSet::collectTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
|
|
1277
|
+
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> {</div>
|
|
1278
|
+
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>  Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
|
|
1279
|
+
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
|
|
1280
|
+
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  {</div>
|
|
1281
|
+
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  <span class="keywordflow">return</span> tit->second;</div>
|
|
1282
|
+
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  }</div>
|
|
1283
|
+
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  <span class="comment">// No such StInfo for T, create it now.</span></div>
|
|
1284
|
+
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
|
|
1285
|
+
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast<ArrayType>(T))</div>
|
|
1286
|
+
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>  {</div>
|
|
1287
|
+
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
|
|
1288
|
+
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  }</div>
|
|
1289
|
+
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* sty = SVFUtil::dyn_cast<StructType>(T))</div>
|
|
1290
|
+
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  {</div>
|
|
1291
|
+
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf;</div>
|
|
1292
|
+
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
|
|
1293
|
+
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  <span class="keywordflow">if</span> (nf > <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>)</div>
|
|
1294
|
+
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  {</div>
|
|
1295
|
+
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a> = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(sty);</div>
|
|
1296
|
+
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a> = nf;</div>
|
|
1297
|
+
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  }</div>
|
|
1298
|
+
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  }</div>
|
|
1299
|
+
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>  <span class="keywordflow">else</span></div>
|
|
1300
|
+
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  {</div>
|
|
1301
|
+
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>  stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
|
|
1302
|
+
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  }</div>
|
|
1303
|
+
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
|
|
1304
|
+
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a72be32d606db86090067159de44e01ec">addStInfo</a>(stInfo);</div>
|
|
1305
|
+
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1306
|
+
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span> }</div>
|
|
1307
|
+
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  </div>
|
|
1308
|
+
<div class="line"><a name="l01271"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073"> 1271</a></span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">LLVMModuleSet::addSVFTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T)</div>
|
|
1309
|
+
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> {</div>
|
|
1310
|
+
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  assert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T) == <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end() &&</div>
|
|
1311
|
+
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  <span class="stringliteral">"SVFType has been added before"</span>);</div>
|
|
1312
|
+
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  </div>
|
|
1313
|
+
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <span class="comment">// add SVFType's LLVM byte size iff T isSized(), otherwise byteSize is 0(default value)</span></div>
|
|
1314
|
+
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> byteSize = 0;</div>
|
|
1315
|
+
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  <span class="keywordflow">if</span> (T->isSized())</div>
|
|
1316
|
+
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  {</div>
|
|
1317
|
+
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">llvm::DataLayout</a> &DL = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-></div>
|
|
1318
|
+
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a9fe3fa15a6a0ec25864cb8439a45596e">getMainLLVMModule</a>()->getDataLayout();</div>
|
|
1319
|
+
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *mut_T = <span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *<span class="keyword">></span>(T);</div>
|
|
1320
|
+
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  byteSize = DL.getTypeAllocSize(mut_T);</div>
|
|
1321
|
+
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  }</div>
|
|
1322
|
+
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  </div>
|
|
1323
|
+
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
|
|
1324
|
+
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  <span class="keywordflow">if</span> (SVFUtil::isa<PointerType>(T))</div>
|
|
1325
|
+
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  {</div>
|
|
1326
|
+
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>(byteSize);</div>
|
|
1327
|
+
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  }</div>
|
|
1328
|
+
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a>* intT = SVFUtil::dyn_cast<IntegerType>(T))</div>
|
|
1329
|
+
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  {</div>
|
|
1330
|
+
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>(byteSize);</div>
|
|
1331
|
+
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  <span class="keywordtype">unsigned</span> signWidth = intT->getBitWidth();</div>
|
|
1332
|
+
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  assert(signWidth < INT16_MAX && <span class="stringliteral">"Integer width too big"</span>);</div>
|
|
1333
|
+
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  svfIntT->setSignAndWidth(intT->getSignBit() ? -signWidth : signWidth);</div>
|
|
1334
|
+
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  svftype = svfIntT;</div>
|
|
1335
|
+
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  }</div>
|
|
1336
|
+
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* ft = SVFUtil::dyn_cast<FunctionType>(T))</div>
|
|
1337
|
+
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ft->getReturnType()));</div>
|
|
1338
|
+
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* st = SVFUtil::dyn_cast<StructType>(T))</div>
|
|
1339
|
+
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  {</div>
|
|
1340
|
+
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>(byteSize);</div>
|
|
1341
|
+
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <span class="keywordflow">if</span> (st->hasName())</div>
|
|
1342
|
+
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  svfst->setName(st->getName().str());</div>
|
|
1343
|
+
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>  svftype = svfst;</div>
|
|
1344
|
+
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  }</div>
|
|
1345
|
+
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> at = SVFUtil::dyn_cast<ArrayType>(T))</div>
|
|
1346
|
+
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  {</div>
|
|
1347
|
+
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>(byteSize);</div>
|
|
1348
|
+
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  svfat->setNumOfElement(at->getNumElements());</div>
|
|
1349
|
+
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  svfat->setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at->getElementType()));</div>
|
|
1350
|
+
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>  svftype = svfat;</div>
|
|
1351
|
+
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  }</div>
|
|
1352
|
+
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  <span class="keywordflow">else</span></div>
|
|
1353
|
+
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  {</div>
|
|
1354
|
+
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
|
|
1355
|
+
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  <span class="keyword">auto</span> ot = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFOtherType.html">SVFOtherType</a>(byteSize, T->isSingleValueType());</div>
|
|
1356
|
+
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>  llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) << *T;</div>
|
|
1357
|
+
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  ot->setRepr(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>));</div>
|
|
1358
|
+
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>  svftype = ot;</div>
|
|
1359
|
+
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  }</div>
|
|
1360
|
+
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  </div>
|
|
1361
|
+
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa">addTypeInfo</a>(svftype);</div>
|
|
1362
|
+
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
|
|
1363
|
+
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pt = SVFUtil::dyn_cast<PointerType>(T))</div>
|
|
1364
|
+
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  {</div>
|
|
1365
|
+
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  <span class="comment">//cast svftype to SVFPointerType</span></div>
|
|
1366
|
+
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>  <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* svfPtrType = SVFUtil::dyn_cast<SVFPointerType>(svftype);</div>
|
|
1367
|
+
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  assert(svfPtrType && <span class="stringliteral">"this is not SVFPointerType"</span>);</div>
|
|
1368
|
+
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  svfPtrType-><a class="code" href="classSVF_1_1SVFPointerType.html#aaaa79de3df0f6764bfd3d2e487ea7a09">setPtrElementType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(pt)));</div>
|
|
1369
|
+
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  }</div>
|
|
1370
|
+
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  </div>
|
|
1371
|
+
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  <span class="keywordflow">return</span> svftype;</div>
|
|
1372
|
+
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> }</div>
|
|
1373
|
+
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  </div>
|
|
1374
|
+
<div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29"> 1340</a></span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">LLVMModuleSet::collectArrayInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* ty)</div>
|
|
1375
|
+
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> {</div>
|
|
1376
|
+
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty->getNumElements();</div>
|
|
1377
|
+
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty->getElementType();</div>
|
|
1378
|
+
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast<ArrayType>(elemTy))</div>
|
|
1379
|
+
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  {</div>
|
|
1380
|
+
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  totalElemNum *= aty->getNumElements();</div>
|
|
1381
|
+
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  elemTy = aty->getElementType();</div>
|
|
1382
|
+
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  }</div>
|
|
1383
|
+
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  </div>
|
|
1384
|
+
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(totalElemNum);</div>
|
|
1385
|
+
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
|
|
1386
|
+
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  </div>
|
|
1387
|
+
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  <span class="keywordflow">if</span> (totalElemNum == 0)</div>
|
|
1388
|
+
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  {</div>
|
|
1389
|
+
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, 0);</div>
|
|
1390
|
+
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
|
|
1391
|
+
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
|
|
1392
|
+
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
|
|
1393
|
+
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1394
|
+
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  }</div>
|
|
1395
|
+
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  </div>
|
|
1396
|
+
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* elemStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
|
|
1397
|
+
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
|
|
1398
|
+
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
|
|
1399
|
+
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j < nfF; j++)</div>
|
|
1400
|
+
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  {</div>
|
|
1401
|
+
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* fieldTy = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
|
|
1402
|
+
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
|
|
1403
|
+
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>  }</div>
|
|
1404
|
+
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  </div>
|
|
1405
|
+
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> outArrayElemNum = ty->getNumElements();</div>
|
|
1406
|
+
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < outArrayElemNum; ++i)</div>
|
|
1407
|
+
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  {</div>
|
|
1408
|
+
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
|
|
1409
|
+
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, elemSvfType, idx);</div>
|
|
1410
|
+
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  }</div>
|
|
1411
|
+
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  </div>
|
|
1412
|
+
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < totalElemNum; ++i)</div>
|
|
1413
|
+
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  {</div>
|
|
1414
|
+
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j < nfE; ++j)</div>
|
|
1415
|
+
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  {</div>
|
|
1416
|
+
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* et = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[j];</div>
|
|
1417
|
+
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
|
|
1418
|
+
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>  }</div>
|
|
1419
|
+
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  }</div>
|
|
1420
|
+
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>  </div>
|
|
1421
|
+
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>  assert(stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &&</div>
|
|
1422
|
+
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  <span class="stringliteral">"typeForArray size incorrect!!!"</span>);</div>
|
|
1423
|
+
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
|
|
1424
|
+
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  </div>
|
|
1425
|
+
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1426
|
+
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> }</div>
|
|
1427
|
+
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  </div>
|
|
1428
|
+
<div class="line"><a name="l01403"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258"> 1403</a></span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">LLVMModuleSet::collectStructInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* structTy,</div>
|
|
1429
|
+
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>& numFields)</div>
|
|
1430
|
+
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> {</div>
|
|
1431
|
+
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
|
|
1432
|
+
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  </div>
|
|
1433
|
+
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  <span class="comment">// Number of fields after flattening the struct</span></div>
|
|
1434
|
+
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  numFields = 0;</div>
|
|
1435
|
+
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  <span class="comment">// The offset when considering array stride info</span></div>
|
|
1436
|
+
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> strideOffset = 0;</div>
|
|
1437
|
+
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy : structTy->elements())</div>
|
|
1438
|
+
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  {</div>
|
|
1439
|
+
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfTy = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
|
|
1440
|
+
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  <span class="comment">// offset with int_32 (s32_t) is large enough and won't overflow</span></div>
|
|
1441
|
+
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
|
|
1442
|
+
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  </div>
|
|
1443
|
+
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StructType, ArrayType>(elemTy))</div>
|
|
1444
|
+
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  {</div>
|
|
1445
|
+
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* subStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
|
|
1446
|
+
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
|
|
1447
|
+
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
|
|
1448
|
+
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  <span class="comment">// Copy ST's info, whose element 0 is the size of ST itself.</span></div>
|
|
1449
|
+
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j < nfF; ++j)</div>
|
|
1450
|
+
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  {</div>
|
|
1451
|
+
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemTy = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
|
|
1452
|
+
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemTy);</div>
|
|
1453
|
+
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  }</div>
|
|
1454
|
+
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  numFields += nfF;</div>
|
|
1455
|
+
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  strideOffset += nfE;</div>
|
|
1456
|
+
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tpj = 0; tpj < nfE; ++tpj)</div>
|
|
1457
|
+
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>  {</div>
|
|
1458
|
+
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[tpj];</div>
|
|
1459
|
+
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(ty);</div>
|
|
1460
|
+
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  }</div>
|
|
1461
|
+
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  </div>
|
|
1462
|
+
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  }</div>
|
|
1463
|
+
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  <span class="keywordflow">else</span></div>
|
|
1464
|
+
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  {</div>
|
|
1465
|
+
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <span class="comment">// Simple type</span></div>
|
|
1466
|
+
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  numFields += 1;</div>
|
|
1467
|
+
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  strideOffset += 1;</div>
|
|
1468
|
+
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
|
|
1469
|
+
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfTy);</div>
|
|
1470
|
+
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  }</div>
|
|
1471
|
+
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  }</div>
|
|
1472
|
+
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  </div>
|
|
1473
|
+
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  assert(stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == strideOffset &&</div>
|
|
1474
|
+
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  <span class="stringliteral">"typeForStruct size incorrect!"</span>);</div>
|
|
1475
|
+
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(numFields,strideOffset);</div>
|
|
1476
|
+
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  </div>
|
|
1477
|
+
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1478
|
+
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span> }</div>
|
|
1479
|
+
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  </div>
|
|
1480
|
+
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>  </div>
|
|
1481
|
+
<div class="line"><a name="l01460"></a><span class="lineno"><a class="line" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2"> 1460</a></span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">LLVMModuleSet::collectSimpleTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* ty)</div>
|
|
1482
|
+
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span> {</div>
|
|
1483
|
+
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
|
|
1484
|
+
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ty);</div>
|
|
1485
|
+
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">addFldWithType</a>(0, svfType, 0);</div>
|
|
1486
|
+
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  </div>
|
|
1487
|
+
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
|
|
1488
|
+
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
|
|
1489
|
+
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
|
|
1490
|
+
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  </div>
|
|
1491
|
+
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1492
|
+
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span> }</div>
|
|
1491
1493
|
</div><!-- fragment --></div><!-- contents -->
|
|
1492
1494
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a72be32d606db86090067159de44e01ec"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a72be32d606db86090067159de44e01ec">SVF::SymbolTableInfo::addStInfo</a></div><div class="ttdeci">void addStInfo(StInfo *stInfo)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00352">SymbolTableInfo.h:352</a></div></div>
|
|
1493
1495
|
<div class="ttc" id="anamespaceSVF_html_a827d09974dc7bf0849f96823cc2fee89"><div class="ttname"><a href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">SVF::DomTreeNode</a></div><div class="ttdeci">llvm::DomTreeNode DomTreeNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
|
|
1494
1496
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af2c555af91679d9e6d3009547ee11486"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">SVF::LLVMModuleSet::Type2TypeInfo</a></div><div class="ttdeci">Type2TypeInfoMap Type2TypeInfo</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00091">LLVMModule.h:91</a></div></div>
|
|
1495
1497
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae265a7f3cc7367d62013e0f15cf3d233"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">SVF::LLVMModuleSet::getModuleNum</a></div><div class="ttdeci">u32_t getModuleNum() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00125">LLVMModule.h:125</a></div></div>
|
|
1496
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaab03cb6ff665bc008c67b866ba81e47"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">SVF::LLVMModuleSet::buildGlobalDefToRepMap</a></div><div class="ttdeci">void buildGlobalDefToRepMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1498
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaab03cb6ff665bc008c67b866ba81e47"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">SVF::LLVMModuleSet::buildGlobalDefToRepMap</a></div><div class="ttdeci">void buildGlobalDefToRepMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01006">LLVMModule.cpp:1006</a></div></div>
|
|
1497
1499
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00679">LLVMUtil.cpp:679</a></div></div>
|
|
1498
1500
|
<div class="ttc" id="aLLVMModule_8cpp_html_a9fd6e28e6ed93f65a20a348ab0646320"><div class="ttname"><a href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a></div><div class="ttdeci">#define SVF_GLOBAL_DTORS</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00069">LLVMModule.cpp:69</a></div></div>
|
|
1499
1501
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_aef5999ada62dac3cc946d832ac66948c"><div class="ttname"><a href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">SVF::SVFType::setTypeInfo</a></div><div class="ttdeci">void setTypeInfo(StInfo *ti)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00304">SVFType.h:304</a></div></div>
|
|
@@ -1502,7 +1504,7 @@ $(function() {
|
|
|
1502
1504
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00101">LLVMModule.h:101</a></div></div>
|
|
1503
1505
|
<div class="ttc" id="anamespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdoc">LLVM Dominators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00131">BasicTypes.h:131</a></div></div>
|
|
1504
1506
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a0c1143eff451edf8ea47d4487a8d3a55"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">SVF::SymbolTableInfo::maxStruct</a></div><div class="ttdeci">const SVFType * maxStruct</div><div class="ttdoc">The struct type with the most fields.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00340">SymbolTableInfo.h:340</a></div></div>
|
|
1505
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aab7b08db9252ef7e21e54d019f44b073"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">SVF::LLVMModuleSet::addSVFTypeInfo</a></div><div class="ttdeci">SVFType * addSVFTypeInfo(const Type *t)</div><div class="ttdoc">Create SVFTypes.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1507
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aab7b08db9252ef7e21e54d019f44b073"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">SVF::LLVMModuleSet::addSVFTypeInfo</a></div><div class="ttdeci">SVFType * addSVFTypeInfo(const Type *t)</div><div class="ttdoc">Create SVFTypes.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01271">LLVMModule.cpp:1271</a></div></div>
|
|
1506
1508
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ac1b15d8f9c2499add8dbc889ae5cab65"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac1b15d8f9c2499add8dbc889ae5cab65">SVF::SVFBasicBlock::addInstruction</a></div><div class="ttdeci">void addInstruction(const SVFInstruction *inst)</div><div class="ttdoc">Function where this BasicBlock is.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00541">SVFValue.h:541</a></div></div>
|
|
1507
1509
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4091b12bdfe4423d8114612a199bc480"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4091b12bdfe4423d8114612a199bc480">SVF::LLVMModuleSet::getLLVMModules</a></div><div class="ttdeci">const std::vector< std::reference_wrapper< Module > > & getLLVMModules() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00130">LLVMModule.h:130</a></div></div>
|
|
1508
1510
|
<div class="ttc" id="anamespaceSVF_html_a94824519e439aeef1568d415b6f7331c"><div class="ttname"><a href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">SVF::IRBuilder</a></div><div class="ttdeci">llvm::IRBuilder IRBuilder</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
|
|
@@ -1521,7 +1523,7 @@ $(function() {
|
|
|
1521
1523
|
<div class="ttc" id="anamespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
|
|
1522
1524
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ab932917041e1b1d8b461bfef464330fd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ab932917041e1b1d8b461bfef464330fd">SVF::LLVMModuleSet::ExtFuncsVec</a></div><div class="ttdeci">FunctionSetType ExtFuncsVec</div><div class="ttdoc">Record some "sse_" function declarations used in other ext function definition, e....</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00079">LLVMModule.h:79</a></div></div>
|
|
1523
1525
|
<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>
|
|
1524
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af37b9976b282c875cac7bb1777da635c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">SVF::LLVMModuleSet::dumpModulesToFile</a></div><div class="ttdeci">void dumpModulesToFile(const std::string &suffix)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1526
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af37b9976b282c875cac7bb1777da635c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">SVF::LLVMModuleSet::dumpModulesToFile</a></div><div class="ttdeci">void dumpModulesToFile(const std::string &suffix)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01049">LLVMModule.cpp:1049</a></div></div>
|
|
1525
1527
|
<div class="ttc" id="aSVFGBuilder_8h_html"><div class="ttname"><a href="SVFGBuilder_8h.html">SVFGBuilder.h</a></div></div>
|
|
1526
1528
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ad3f66b40ad360003845253f452d6a711"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">SVF::LLVMModuleSet::getSVFArgument</a></div><div class="ttdeci">SVFArgument * getSVFArgument(const Argument *arg) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00220">LLVMModule.h:220</a></div></div>
|
|
1527
1529
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a8325774df9d65d78ef6a66fef59b9a97"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">SVF::SVFValue::setName</a></div><div class="ttdeci">void setName(const std::string &n)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00247">SVFValue.h:247</a></div></div>
|
|
@@ -1533,17 +1535,17 @@ $(function() {
|
|
|
1533
1535
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a7af3076a26060090377d1f74293560fe"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a7af3076a26060090377d1f74293560fe">SVF::SVFModule::setPagFromTXT</a></div><div class="ttdeci">static void setPagFromTXT(const std::string &txt)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00083">SVFModule.h:83</a></div></div>
|
|
1534
1536
|
<div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00604">SVFType.h:604</a></div></div>
|
|
1535
1537
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a3eaadb33cd21d0bd868526b5ddb051d9"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a3eaadb33cd21d0bd868526b5ddb051d9">SVF::LLVMModuleSet::addBasicBlockMap</a></div><div class="ttdeci">void addBasicBlockMap(const BasicBlock *bb, SVFBasicBlock *svfBB)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00154">LLVMModule.h:154</a></div></div>
|
|
1536
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0ef17c1d5e6a95c597d2334ea577a965"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">SVF::LLVMModuleSet::getSVFOtherValue</a></div><div class="ttdeci">SVFOtherValue * getSVFOtherValue(const Value *ov)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1538
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0ef17c1d5e6a95c597d2334ea577a965"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">SVF::LLVMModuleSet::getSVFOtherValue</a></div><div class="ttdeci">SVFOtherValue * getSVFOtherValue(const Value *ov)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01163">LLVMModule.cpp:1163</a></div></div>
|
|
1537
1539
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a518c82138fcadc6634980566c1c0f762"><div class="ttname"><a href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">SVF::StInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements() const</div><div class="ttdoc">Return number of elements after flattening (including array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00225">SVFType.h:225</a></div></div>
|
|
1538
1540
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller?</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00154">LLVMUtil.cpp:154</a></div></div>
|
|
1539
1541
|
<div class="ttc" id="aclassSVF_1_1SVFConstantData_html"><div class="ttname"><a href="classSVF_1_1SVFConstantData.html">SVF::SVFConstantData</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00932">SVFValue.h:932</a></div></div>
|
|
1540
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1542
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01219">LLVMModule.cpp:1219</a></div></div>
|
|
1541
1543
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a0bc5a63d8c10da51766007cf40b095e5"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a0bc5a63d8c10da51766007cf40b095e5">SVF::SVFModule::addGlobalSet</a></div><div class="ttdeci">void addGlobalSet(SVFGlobalValue *glob)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00110">SVFModule.h:110</a></div></div>
|
|
1542
1544
|
<div class="ttc" id="aclassSVF_1_1SVFMetadataAsValue_html"><div class="ttname"><a href="classSVF_1_1SVFMetadataAsValue.html">SVF::SVFMetadataAsValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01086">SVFValue.h:1086</a></div></div>
|
|
1543
1545
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4b94c96898dbbc71bc1cee04786cf3dc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">SVF::LLVMModuleSet::LLVMConst2SVFConst</a></div><div class="ttdeci">LLVMConst2SVFConstMap LLVMConst2SVFConst</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00087">LLVMModule.h:87</a></div></div>
|
|
1544
1546
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00108">LLVMModule.h:108</a></div></div>
|
|
1545
1547
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00199">LLVMModule.h:199</a></div></div>
|
|
1546
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a946d1251501c7e0e33a9210838951258"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">SVF::LLVMModuleSet::collectStructInfo</a></div><div class="ttdeci">StInfo * collectStructInfo(const StructType *structTy, u32_t &numFields)</div><div class="ttdoc">Collect the struct info and set the number of fields after flattening.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1548
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a946d1251501c7e0e33a9210838951258"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">SVF::LLVMModuleSet::collectStructInfo</a></div><div class="ttdeci">StInfo * collectStructInfo(const StructType *structTy, u32_t &numFields)</div><div class="ttdoc">Collect the struct info and set the number of fields after flattening.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01403">LLVMModule.cpp:1403</a></div></div>
|
|
1547
1549
|
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
|
|
1548
1550
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_ae64d24569942d7c4b18d2198be4839f3"><div class="ttname"><a href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">SVF::SVFModule::addConstant</a></div><div class="ttdeci">void addConstant(SVFConstant *cd)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00120">SVFModule.h:120</a></div></div>
|
|
1549
1551
|
<div class="ttc" id="aclassSVF_1_1SVFBlackHoleValue_html"><div class="ttname"><a href="classSVF_1_1SVFBlackHoleValue.html">SVF::SVFBlackHoleValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01044">SVFValue.h:1044</a></div></div>
|
|
@@ -1619,7 +1621,7 @@ $(function() {
|
|
|
1619
1621
|
<div class="ttc" id="aclassSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00851">SVFValue.h:851</a></div></div>
|
|
1620
1622
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ad06a92bf8bc556de742e0ffdf79ffafe"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">SVF::LLVMModuleSet::cxts</a></div><div class="ttdeci">std::unique_ptr< LLVMContext > cxts</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
|
|
1621
1623
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a1357c876eccedd58b3abe68875b3a570"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVF::SVFModule::pagReadFromTXT</a></div><div class="ttdeci">static bool pagReadFromTXT()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00098">SVFModule.h:98</a></div></div>
|
|
1622
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a52853bd34a394882c6fd0fc73739c9f2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">SVF::LLVMModuleSet::collectSimpleTypeInfo</a></div><div class="ttdeci">StInfo * collectSimpleTypeInfo(const Type *T)</div><div class="ttdoc">Collect simple type (non-aggregate) info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1624
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a52853bd34a394882c6fd0fc73739c9f2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">SVF::LLVMModuleSet::collectSimpleTypeInfo</a></div><div class="ttdeci">StInfo * collectSimpleTypeInfo(const Type *T)</div><div class="ttdoc">Collect simple type (non-aggregate) info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01460">LLVMModule.cpp:1460</a></div></div>
|
|
1623
1625
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae365189769640adb919a23c36978e5e2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">SVF::LLVMModuleSet::owned_modules</a></div><div class="ttdeci">std::vector< std::unique_ptr< Module > > owned_modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00071">LLVMModule.h:71</a></div></div>
|
|
1624
1626
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a66f51cd41e93ad055c4a0c2874e73fae"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a66f51cd41e93ad055c4a0c2874e73fae">SVF::SVFBasicBlock::getSuccessors</a></div><div class="ttdeci">const std::vector< const SVFBasicBlock * > & getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00607">SVFValue.h:607</a></div></div>
|
|
1625
1627
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a43832e93a42ae43d44b0cc160981678f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">SVF::LLVMModuleSet::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdoc">Borrowed from singleton SVFModule::svfModule.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
|
|
@@ -1639,12 +1641,12 @@ $(function() {
|
|
|
1639
1641
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a428bd75b33fab60988d8758090712f29"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">SVF::LLVMUtil::isArgOfUncalledFunction</a></div><div class="ttdeci">bool isArgOfUncalledFunction(const Value *val)</div><div class="ttdoc">Return true if the argument in a function does not have a caller.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00201">LLVMUtil.h:201</a></div></div>
|
|
1640
1642
|
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_ac979b49b449b97b2a23f195cb107ec77"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#ac979b49b449b97b2a23f195cb107ec77">SVF::SVFCallInst::addArgument</a></div><div class="ttdeci">void addArgument(const SVFValue *a)</div><div class="ttdoc">attributes to be set only through Module builders e.g., LLVMModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00708">SVFValue.h:708</a></div></div>
|
|
1641
1643
|
<div class="ttc" id="anamespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
|
|
1642
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa8de934358332505d4805db137d8ec29"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">SVF::LLVMModuleSet::collectArrayInfo</a></div><div class="ttdeci">StInfo * collectArrayInfo(const ArrayType *T)</div><div class="ttdoc">Collect the array info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1644
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa8de934358332505d4805db137d8ec29"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">SVF::LLVMModuleSet::collectArrayInfo</a></div><div class="ttdeci">StInfo * collectArrayInfo(const ArrayType *T)</div><div class="ttdoc">Collect the array info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01340">LLVMModule.cpp:1340</a></div></div>
|
|
1643
1645
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4ca8c4678a7fefe26372fc1f4b2880fd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4ca8c4678a7fefe26372fc1f4b2880fd">SVF::LLVMModuleSet::createSVFDataStructure</a></div><div class="ttdeci">void createSVFDataStructure()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00153">LLVMModule.cpp:153</a></div></div>
|
|
1644
1646
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7f8e61cf5d838d7a2e862bc6955f16be"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVF::LLVMModuleSet::SVFValue2LLVMValue</a></div><div class="ttdeci">SVFValue2LLVMValueMap SVFValue2LLVMValue</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00089">LLVMModule.h:89</a></div></div>
|
|
1645
1647
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference< T >::type && move(T &&t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
|
|
1646
1648
|
<div class="ttc" id="anamespaceSVF_html_a1c7c7ac12791c0ae386283c0a4f127ba"><div class="ttname"><a href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">SVF::raw_fd_ostream</a></div><div class="ttdeci">llvm::raw_fd_ostream raw_fd_ostream</div><div class="ttdoc">LLVM outputs.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00261">BasicTypes.h:261</a></div></div>
|
|
1647
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a610a7777a48132caadec167c8109f044"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">SVF::LLVMModuleSet::getLLVMType</a></div><div class="ttdeci">const Type * getLLVMType(const SVFType *T) const</div><div class="ttdoc">Get LLVM Type.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1649
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a610a7777a48132caadec167c8109f044"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a610a7777a48132caadec167c8109f044">SVF::LLVMModuleSet::getLLVMType</a></div><div class="ttdeci">const Type * getLLVMType(const SVFType *T) const</div><div class="ttdoc">Get LLVM Type.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01205">LLVMModule.cpp:1205</a></div></div>
|
|
1648
1650
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ae37546be7304c66b4eca2654d995eaa7"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ae37546be7304c66b4eca2654d995eaa7">SVF::SVFLoopAndDomInfo::getDomFrontierMap</a></div><div class="ttdeci">const Map< const SVFBasicBlock *, BBSet > & getDomFrontierMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00075">SVFValue.h:75</a></div></div>
|
|
1649
1651
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a03bfeee0406c7e54557e74f3a8e848b7"><div class="ttname"><a href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">SVF::StInfo::getFlattenElementTypes</a></div><div class="ttdeci">std::vector< const SVFType * > & getFlattenElementTypes()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00188">SVFType.h:188</a></div></div>
|
|
1650
1652
|
<div class="ttc" id="anamespaceSVF_html_a7e230c0cba2e3a7c2e5a5f2ee7d88af9"><div class="ttname"><a href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">SVF::Constant</a></div><div class="ttdeci">llvm::Constant Constant</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
|
|
@@ -1661,14 +1663,14 @@ $(function() {
|
|
|
1661
1663
|
<div class="ttc" id="anamespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00273">BasicTypes.h:273</a></div></div>
|
|
1662
1664
|
<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>
|
|
1663
1665
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html">SVF::SymbolTableBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8h_source.html#l00042">SymbolTableBuilder.h:42</a></div></div>
|
|
1664
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a25821b0feeb3b08e00ec9d444520b727"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">SVF::LLVMModuleSet::getSVFConstantData</a></div><div class="ttdeci">SVFConstantData * getSVFConstantData(const ConstantData *cd)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1666
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a25821b0feeb3b08e00ec9d444520b727"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">SVF::LLVMModuleSet::getSVFConstantData</a></div><div class="ttdeci">SVFConstantData * getSVFConstantData(const ConstantData *cd)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01100">LLVMModule.cpp:1100</a></div></div>
|
|
1665
1667
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
1666
1668
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html">SVF::SymbolTableInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00047">SymbolTableInfo.h:47</a></div></div>
|
|
1667
1669
|
<div class="ttc" id="aclassSVF_1_1SVFIntegerType_html"><div class="ttname"><a href="classSVF_1_1SVFIntegerType.html">SVF::SVFIntegerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00383">SVFType.h:383</a></div></div>
|
|
1668
1670
|
<div class="ttc" id="aclassSVF_1_1SVFStat_html_ae89293bc063bdc74a988e9c37c70321e"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ae89293bc063bdc74a988e9c37c70321e">SVF::SVFStat::timeOfBuildingSymbolTable</a></div><div class="ttdeci">static double timeOfBuildingSymbolTable</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00091">SVFStat.h:91</a></div></div>
|
|
1669
1671
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00057">LLVMUtil.h:57</a></div></div>
|
|
1670
1672
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a3ddabbd763acaaca28cacbabe5bc7f3b"><div class="ttname"><a href="classSVF_1_1SVFType.html#a3ddabbd763acaaca28cacbabe5bc7f3b">SVF::SVFType::setPointerTo</a></div><div class="ttdeci">void setPointerTo(const SVFPointerType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00292">SVFType.h:292</a></div></div>
|
|
1671
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a74256f36f0fdc242df9729906c34efbc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">SVF::LLVMModuleSet::getOtherSVFConstant</a></div><div class="ttdeci">SVFConstant * getOtherSVFConstant(const Constant *oc)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1673
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a74256f36f0fdc242df9729906c34efbc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">SVF::LLVMModuleSet::getOtherSVFConstant</a></div><div class="ttdeci">SVFConstant * getOtherSVFConstant(const Constant *oc)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01147">LLVMModule.cpp:1147</a></div></div>
|
|
1672
1674
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html">SVF::LLVMModuleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00044">LLVMModule.h:44</a></div></div>
|
|
1673
1675
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a0d5031bd11b6372803082111ec2cb4f6"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a0d5031bd11b6372803082111ec2cb4f6">SVF::SVFFunction::addBasicBlock</a></div><div class="ttdeci">void addBasicBlock(const SVFBasicBlock *bb)</div><div class="ttdoc">a 'single' basic block having no successors and containing return instruction in a function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00327">SVFValue.h:327</a></div></div>
|
|
1674
1676
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae74f307b6f96950ceedb2c375ef1c3a3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">SVF::LLVMModuleSet::getSVFInstruction</a></div><div class="ttdeci">SVFInstruction * getSVFInstruction(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00213">LLVMModule.h:213</a></div></div>
|
|
@@ -1682,13 +1684,13 @@ $(function() {
|
|
|
1682
1684
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9bd6f54920929e5ad35102ba2f2223da"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9bd6f54920929e5ad35102ba2f2223da">SVF::LLVMUtil::getFunReachableBBs</a></div><div class="ttdeci">void getFunReachableBBs(const Function *svfFun, std::vector< const SVFBasicBlock * > &bbs)</div><div class="ttdoc">Get reachable basic block from function entry.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00069">LLVMUtil.cpp:69</a></div></div>
|
|
1683
1685
|
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a38f8fdd93ef7222f408cbbb2a98a1cd5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a38f8fdd93ef7222f408cbbb2a98a1cd5">SVF::SVFBasicBlock::addPredBasicBlock</a></div><div class="ttdeci">void addPredBasicBlock(const SVFBasicBlock *pred)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00551">SVFValue.h:551</a></div></div>
|
|
1684
1686
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad07f95e790b5c3a50c864155aa20a083"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">SVF::SVFLoopAndDomInfo::getPostDomTreeMap</a></div><div class="ttdeci">const Map< const SVFBasicBlock *, BBSet > & getPostDomTreeMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00108">SVFValue.h:108</a></div></div>
|
|
1685
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7d61f479f52e1dc71a4ae7a4d62f3b6a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">SVF::LLVMModuleSet::setValueAttr</a></div><div class="ttdeci">void setValueAttr(const Value *val, SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1687
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7d61f479f52e1dc71a4ae7a4d62f3b6a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">SVF::LLVMModuleSet::setValueAttr</a></div><div class="ttdeci">void setValueAttr(const Value *val, SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01074">LLVMModule.cpp:1074</a></div></div>
|
|
1686
1688
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad478ac88bc07cf4d6d0ad3517b2c4ab3"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVF::SVFLoopAndDomInfo::BBSet</a></div><div class="ttdeci">Set< const SVFBasicBlock * > BBSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00055">SVFValue.h:55</a></div></div>
|
|
1687
1689
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00316">LLVMUtil.cpp:316</a></div></div>
|
|
1688
1690
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
1689
1691
|
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a374cbaa780f540cb4b4ccac562a82632"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a374cbaa780f540cb4b4ccac562a82632">SVF::SVFFunction::exitBlock</a></div><div class="ttdeci">SVFBasicBlock * exitBlock</div><div class="ttdoc">annotations of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00323">SVFValue.h:323</a></div></div>
|
|
1690
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1691
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a1f6cc76c996a0577b20b8cedd83fff92"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">SVF::LLVMModuleSet::collectTypeInfo</a></div><div class="ttdeci">StInfo * collectTypeInfo(const Type *ty)</div><div class="ttdoc">Collect a type info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
1692
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01182">LLVMModule.cpp:1182</a></div></div>
|
|
1693
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a1f6cc76c996a0577b20b8cedd83fff92"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">SVF::LLVMModuleSet::collectTypeInfo</a></div><div class="ttdeci">StInfo * collectTypeInfo(const Type *ty)</div><div class="ttdoc">Collect a type info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01239">LLVMModule.cpp:1239</a></div></div>
|
|
1692
1694
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a067661e0049314779a44c9600420820f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">SVF::LLVMModuleSet::LLVMType2SVFType</a></div><div class="ttdeci">LLVMType2SVFTypeMap LLVMType2SVFType</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00090">LLVMModule.h:90</a></div></div>
|
|
1693
1695
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00202">LLVMUtil.cpp:202</a></div></div>
|
|
1694
1696
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8b5f24c873db1f6a0614d1dac48bb4bb"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">SVF::LLVMModuleSet::prePassSchedule</a></div><div class="ttdeci">void prePassSchedule()</div><div class="ttdoc">Invoke llvm passes to modify module.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00447">LLVMModule.cpp:447</a></div></div>
|