diff --git a/include/llvm/IR/Use.h b/include/llvm/IR/Use.h index 846952aa6b4..62586f5b3d8 100644 --- a/include/llvm/IR/Use.h +++ b/include/llvm/IR/Use.h @@ -37,16 +37,14 @@ namespace llvm { class Value; class User; class Use; -template -struct simplify_type; +template struct simplify_type; // Use** is only 4-byte aligned. -template<> -class PointerLikeTypeTraits { +template <> class PointerLikeTypeTraits { public: - static inline void *getAsVoidPointer(Use** P) { return P; } + static inline void *getAsVoidPointer(Use **P) { return P; } static inline Use **getFromVoidPointer(void *P) { - return static_cast(P); + return static_cast(P); } enum { NumLowBitsAvailable = 2 }; }; @@ -76,28 +74,24 @@ public: // A type for the word following an array of hung-off Uses in memory, which is // a pointer back to their User with the bottom bit set. - typedef PointerIntPair UserRef; + typedef PointerIntPair UserRef; private: Use(const Use &U) LLVM_DELETED_FUNCTION; /// Destructor - Only for zap() ~Use() { - if (Val) removeFromList(); + if (Val) + removeFromList(); } - enum PrevPtrTag { zeroDigitTag - , oneDigitTag - , stopTag - , fullStopTag }; + enum PrevPtrTag { zeroDigitTag, oneDigitTag, stopTag, fullStopTag }; /// Constructor - Use(PrevPtrTag tag) : Val(0) { - Prev.setInt(tag); - } + Use(PrevPtrTag tag) : Val(0) { Prev.setInt(tag); } public: - operator Value*() const { return Val; } + operator Value *() const { return Val; } Value *get() const { return Val; } /// \brief Returns the User that contains this Use. @@ -117,7 +111,7 @@ public: return *this; } - Value *operator->() { return Val; } + Value *operator->() { return Val; } const Value *operator->() const { return Val; } Use *getNext() const { return Next; } @@ -133,25 +127,25 @@ public: static void zap(Use *Start, const Use *Stop, bool del = false); private: - const Use* getImpliedUser() const; + const Use *getImpliedUser() const; Value *Val; Use *Next; - PointerIntPair Prev; + PointerIntPair Prev; - void setPrev(Use **NewPrev) { - Prev.setPointer(NewPrev); - } + void setPrev(Use **NewPrev) { Prev.setPointer(NewPrev); } void addToList(Use **List) { Next = *List; - if (Next) Next->setPrev(&Next); + if (Next) + Next->setPrev(&Next); setPrev(List); *List = this; } void removeFromList() { Use **StrippedPrev = Prev.getPointer(); *StrippedPrev = Next; - if (Next) Next->setPrev(StrippedPrev); + if (Next) + Next->setPrev(StrippedPrev); } friend class Value; @@ -159,21 +153,15 @@ private: /// \brief Allow clients to treat uses just like values when using /// casting operators. -template<> struct simplify_type { - typedef Value* SimpleType; - static SimpleType getSimplifiedValue(Use &Val) { - return Val.get(); - } +template <> struct simplify_type { + typedef Value *SimpleType; + static SimpleType getSimplifiedValue(Use &Val) { return Val.get(); } }; -template<> struct simplify_type { - typedef /*const*/ Value* SimpleType; - static SimpleType getSimplifiedValue(const Use &Val) { - return Val.get(); - } +template <> struct simplify_type { + typedef /*const*/ Value *SimpleType; + static SimpleType getSimplifiedValue(const Use &Val) { return Val.get(); } }; - - template // UserTy == 'User' or 'const User' class value_use_iterator : public std::iterator { diff --git a/lib/IR/Use.cpp b/lib/IR/Use.cpp index 20c47a5f1a4..b6720e56764 100644 --- a/lib/IR/Use.cpp +++ b/lib/IR/Use.cpp @@ -40,10 +40,9 @@ void Use::swap(Use &RHS) { User *Use::getUser() const { const Use *End = getImpliedUser(); - const UserRef *ref = reinterpret_cast(End); - return ref->getInt() - ? ref->getPointer() - : reinterpret_cast(const_cast(End)); + const UserRef *ref = reinterpret_cast(End); + return ref->getInt() ? ref->getPointer() + : reinterpret_cast(const_cast(End)); } // Sets up the waymarking algoritm's tags for a series of Uses. See the @@ -51,31 +50,28 @@ User *Use::getUser() const { // // http://www.llvm.org/docs/ProgrammersManual.html#UserLayout // -Use *Use::initTags(Use * const Start, Use *Stop) { +Use *Use::initTags(Use *const Start, Use *Stop) { ptrdiff_t Done = 0; while (Done < 20) { if (Start == Stop--) return Start; - static const PrevPtrTag tags[20] = { fullStopTag, oneDigitTag, stopTag, - oneDigitTag, oneDigitTag, stopTag, - zeroDigitTag, oneDigitTag, oneDigitTag, - stopTag, zeroDigitTag, oneDigitTag, - zeroDigitTag, oneDigitTag, stopTag, - oneDigitTag, oneDigitTag, oneDigitTag, - oneDigitTag, stopTag - }; - new(Stop) Use(tags[Done++]); + static const PrevPtrTag tags[20] = { + fullStopTag, oneDigitTag, stopTag, oneDigitTag, oneDigitTag, + stopTag, zeroDigitTag, oneDigitTag, oneDigitTag, stopTag, + zeroDigitTag, oneDigitTag, zeroDigitTag, oneDigitTag, stopTag, + oneDigitTag, oneDigitTag, oneDigitTag, oneDigitTag, stopTag}; + new (Stop) Use(tags[Done++]); } ptrdiff_t Count = Done; while (Start != Stop) { --Stop; if (!Count) { - new(Stop) Use(stopTag); + new (Stop) Use(stopTag); ++Done; Count = Done; } else { - new(Stop) Use(PrevPtrTag(Count & 1)); + new (Stop) Use(PrevPtrTag(Count & 1)); Count >>= 1; ++Done; } @@ -97,29 +93,29 @@ const Use *Use::getImpliedUser() const { while (true) { unsigned Tag = (Current++)->Prev.getInt(); switch (Tag) { - case zeroDigitTag: - case oneDigitTag: - continue; + case zeroDigitTag: + case oneDigitTag: + continue; - case stopTag: { - ++Current; - ptrdiff_t Offset = 1; - while (true) { - unsigned Tag = Current->Prev.getInt(); - switch (Tag) { - case zeroDigitTag: - case oneDigitTag: - ++Current; - Offset = (Offset << 1) + Tag; - continue; - default: - return Current + Offset; - } + case stopTag: { + ++Current; + ptrdiff_t Offset = 1; + while (true) { + unsigned Tag = Current->Prev.getInt(); + switch (Tag) { + case zeroDigitTag: + case oneDigitTag: + ++Current; + Offset = (Offset << 1) + Tag; + continue; + default: + return Current + Offset; } } + } - case fullStopTag: - return Current; + case fullStopTag: + return Current; } } }