|
1 |
| -//===- llvm/Value.h - Definition of the Value class -------------*- C++ -*-===// |
| 1 | +//===-- llvm/Value.h - Definition of the Value class ------------*- C++ -*-===// |
2 | 2 | //
|
3 | 3 | // The LLVM Compiler Infrastructure
|
4 | 4 | //
|
@@ -44,12 +44,12 @@ class LLVMContext;
|
44 | 44 | class Module;
|
45 | 45 | class ModuleSlotTracker;
|
46 | 46 | class raw_ostream;
|
47 |
| -template<typename ValueTy> class StringMapEntry; |
48 | 47 | class StringRef;
|
49 | 48 | class Twine;
|
50 | 49 | class Type;
|
51 | 50 |
|
52 |
| -using ValueName = StringMapEntry<Value*>; |
| 51 | +template<typename ValueTy> class StringMapEntry; |
| 52 | +typedef StringMapEntry<Value*> ValueName; |
53 | 53 |
|
54 | 54 | //===----------------------------------------------------------------------===//
|
55 | 55 | // Value Class
|
@@ -120,14 +120,12 @@ class Value {
|
120 | 120 | template <typename UseT> // UseT == 'Use' or 'const Use'
|
121 | 121 | class use_iterator_impl
|
122 | 122 | : public std::iterator<std::forward_iterator_tag, UseT *> {
|
123 |
| - friend class Value; |
124 |
| - |
125 |
| - UseT *U = nullptr; |
126 |
| - |
| 123 | + UseT *U; |
127 | 124 | explicit use_iterator_impl(UseT *u) : U(u) {}
|
| 125 | + friend class Value; |
128 | 126 |
|
129 | 127 | public:
|
130 |
| - use_iterator_impl() = default; |
| 128 | + use_iterator_impl() : U() {} |
131 | 129 |
|
132 | 130 | bool operator==(const use_iterator_impl &x) const { return U == x.U; }
|
133 | 131 | bool operator!=(const use_iterator_impl &x) const { return !operator==(x); }
|
@@ -159,11 +157,9 @@ class Value {
|
159 | 157 | template <typename UserTy> // UserTy == 'User' or 'const User'
|
160 | 158 | class user_iterator_impl
|
161 | 159 | : public std::iterator<std::forward_iterator_tag, UserTy *> {
|
162 |
| - friend class Value; |
163 |
| - |
164 | 160 | use_iterator_impl<Use> UI;
|
165 |
| - |
166 | 161 | explicit user_iterator_impl(Use *U) : UI(U) {}
|
| 162 | + friend class Value; |
167 | 163 |
|
168 | 164 | public:
|
169 | 165 | user_iterator_impl() = default;
|
@@ -313,8 +309,8 @@ class Value {
|
313 | 309 | return UseList == nullptr;
|
314 | 310 | }
|
315 | 311 |
|
316 |
| - using use_iterator = use_iterator_impl<Use>; |
317 |
| - using const_use_iterator = use_iterator_impl<const Use>; |
| 312 | + typedef use_iterator_impl<Use> use_iterator; |
| 313 | + typedef use_iterator_impl<const Use> const_use_iterator; |
318 | 314 | use_iterator materialized_use_begin() { return use_iterator(UseList); }
|
319 | 315 | const_use_iterator materialized_use_begin() const {
|
320 | 316 | return const_use_iterator(UseList);
|
@@ -349,8 +345,8 @@ class Value {
|
349 | 345 | return UseList == nullptr;
|
350 | 346 | }
|
351 | 347 |
|
352 |
| - using user_iterator = user_iterator_impl<User>; |
353 |
| - using const_user_iterator = user_iterator_impl<const User>; |
| 348 | + typedef user_iterator_impl<User> user_iterator; |
| 349 | + typedef user_iterator_impl<const User> const_user_iterator; |
354 | 350 | user_iterator materialized_user_begin() { return user_iterator(UseList); }
|
355 | 351 | const_user_iterator materialized_user_begin() const {
|
356 | 352 | return const_user_iterator(UseList);
|
@@ -564,6 +560,7 @@ class Value {
|
564 | 560 | /// block.
|
565 | 561 | const Value *DoPHITranslation(const BasicBlock *CurBB,
|
566 | 562 | const BasicBlock *PredBB) const;
|
| 563 | + |
567 | 564 | Value *DoPHITranslation(const BasicBlock *CurBB, const BasicBlock *PredBB) {
|
568 | 565 | return const_cast<Value *>(
|
569 | 566 | static_cast<const Value *>(this)->DoPHITranslation(CurBB, PredBB));
|
@@ -609,7 +606,7 @@ class Value {
|
609 | 606 | Use *Merged;
|
610 | 607 | Use **Next = &Merged;
|
611 | 608 |
|
612 |
| - while (true) { |
| 609 | + for (;;) { |
613 | 610 | if (!L) {
|
614 | 611 | *Next = R;
|
615 | 612 | break;
|
|
0 commit comments