#include <BreakConstantExpr.h>
Definition at line 30 of file BreakConstantExpr.h.
◆ BreakConstantGEPs()
SVF::BreakConstantGEPs::BreakConstantGEPs |
( |
| ) |
|
|
inline |
◆ getPassName()
llvm::StringRef SVF::BreakConstantGEPs::getPassName |
( |
| ) |
const |
|
inline |
Definition at line 40 of file BreakConstantExpr.h.
41 {
42 return "Remove Constant GEP Expressions";
43 }
◆ runOnModule()
Definition at line 186 of file BreakConstantExpr.cpp.
187{
190 {
191
192 std::vector<Instruction* >
Worklist;
193
194
195
196
197
198 for (Function::iterator
BB = (*F).begin();
BB != (*F).end(); ++
BB)
199 {
200 for (BasicBlock::iterator
i =
BB->begin();
i !=
BB->end(); ++
i)
201 {
202
203
204
205
208 {
210 {
212 }
213 }
214 }
215 }
216
217
218
219
221
222
223
224
225
226
228 {
231
232
233
234
235
236
237
238 if (
PHINode * PHI = SVFUtil::dyn_cast<PHINode>(I))
239 {
241 {
242
243
244
245
246
247
248
249
252 {
255 {
256 if ((PHI->getIncomingBlock (
i2)) == PHI->getIncomingBlock (
index))
258 }
260 }
261 }
262 }
263 else
264 {
266 {
267
268
269
270
271
273 {
277 }
278 }
279 }
280 }
281
282 }
284}
static Instruction * convertExpression(ConstantExpr *CE, Instruction *InsertPt)
static ConstantExpr * hasConstantExpr(Value *V)
llvm::Instruction Instruction
llvm::ConstantExpr ConstantExpr
llvm::IRBuilder IRBuilder
◆ ID
char BreakConstantGEPs::ID = 0 |
|
static |
The documentation for this class was generated from the following files: