comparison lib/Analysis/PtrUseVisitor.cpp @ 0:95c75e76d11b LLVM3.4

LLVM 3.4
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Thu, 12 Dec 2013 13:56:28 +0900
parents
children 54457678186b
comparison
equal deleted inserted replaced
-1:000000000000 0:95c75e76d11b
1 //===- PtrUseVisitor.cpp - InstVisitors over a pointers uses --------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 /// \file
10 /// Implementation of the pointer use visitors.
11 ///
12 //===----------------------------------------------------------------------===//
13
14 #include "llvm/Analysis/PtrUseVisitor.h"
15
16 using namespace llvm;
17
18 void detail::PtrUseVisitorBase::enqueueUsers(Instruction &I) {
19 for (Value::use_iterator UI = I.use_begin(), UE = I.use_end();
20 UI != UE; ++UI) {
21 if (VisitedUses.insert(&UI.getUse())) {
22 UseToVisit NewU = {
23 UseToVisit::UseAndIsOffsetKnownPair(&UI.getUse(), IsOffsetKnown),
24 Offset
25 };
26 Worklist.push_back(llvm_move(NewU));
27 }
28 }
29 }
30
31 bool detail::PtrUseVisitorBase::adjustOffsetForGEP(GetElementPtrInst &GEPI) {
32 if (!IsOffsetKnown)
33 return false;
34
35 return GEPI.accumulateConstantOffset(DL, Offset);
36 }