| OLD | NEW | 
|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef V8_COMPILER_GENERIC_NODE_INL_H_ | 5 #ifndef V8_COMPILER_GENERIC_NODE_INL_H_ | 
| 6 #define V8_COMPILER_GENERIC_NODE_INL_H_ | 6 #define V8_COMPILER_GENERIC_NODE_INL_H_ | 
| 7 | 7 | 
| 8 #include "src/v8.h" | 8 #include "src/v8.h" | 
| 9 | 9 | 
| 10 #include "src/compiler/generic-graph.h" | 10 #include "src/compiler/generic-graph.h" | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 42 } | 42 } | 
| 43 | 43 | 
| 44 template <class B, class S> | 44 template <class B, class S> | 
| 45 inline typename GenericNode<B, S>::Inputs::iterator | 45 inline typename GenericNode<B, S>::Inputs::iterator | 
| 46 GenericNode<B, S>::Inputs::end() { | 46 GenericNode<B, S>::Inputs::end() { | 
| 47   return typename GenericNode<B, S>::Inputs::iterator( | 47   return typename GenericNode<B, S>::Inputs::iterator( | 
| 48       this->node_, this->node_->InputCount()); | 48       this->node_, this->node_->InputCount()); | 
| 49 } | 49 } | 
| 50 | 50 | 
| 51 template <class B, class S> | 51 template <class B, class S> | 
|  | 52 inline typename GenericNode<B, S>::InputEdges::iterator | 
|  | 53 GenericNode<B, S>::InputEdges::begin() { | 
|  | 54   return typename GenericNode<B, S>::InputEdges::iterator(this->node_, 0); | 
|  | 55 } | 
|  | 56 | 
|  | 57 template <class B, class S> | 
|  | 58 inline typename GenericNode<B, S>::InputEdges::iterator | 
|  | 59 GenericNode<B, S>::InputEdges::end() { | 
|  | 60   return typename GenericNode<B, S>::InputEdges::iterator( | 
|  | 61       this->node_, this->node_->InputCount()); | 
|  | 62 } | 
|  | 63 | 
|  | 64 template <class B, class S> | 
| 52 inline typename GenericNode<B, S>::Uses::iterator | 65 inline typename GenericNode<B, S>::Uses::iterator | 
| 53 GenericNode<B, S>::Uses::begin() { | 66 GenericNode<B, S>::Uses::begin() { | 
| 54   return typename GenericNode<B, S>::Uses::iterator(this->node_); | 67   return typename GenericNode<B, S>::Uses::iterator(this->node_); | 
| 55 } | 68 } | 
| 56 | 69 | 
| 57 template <class B, class S> | 70 template <class B, class S> | 
| 58 inline typename GenericNode<B, S>::Uses::iterator | 71 inline typename GenericNode<B, S>::Uses::iterator | 
| 59 GenericNode<B, S>::Uses::end() { | 72 GenericNode<B, S>::Uses::end() { | 
| 60   return typename GenericNode<B, S>::Uses::iterator(); | 73   return typename GenericNode<B, S>::Uses::iterator(); | 
| 61 } | 74 } | 
| 62 | 75 | 
| 63 template <class B, class S> | 76 template <class B, class S> | 
|  | 77 inline typename GenericNode<B, S>::UseEdges::iterator | 
|  | 78 GenericNode<B, S>::UseEdges::begin() { | 
|  | 79   return typename GenericNode<B, S>::UseEdges::iterator(this->node_); | 
|  | 80 } | 
|  | 81 | 
|  | 82 template <class B, class S> | 
|  | 83 inline typename GenericNode<B, S>::UseEdges::iterator | 
|  | 84 GenericNode<B, S>::UseEdges::end() { | 
|  | 85   return typename GenericNode<B, S>::UseEdges::iterator(); | 
|  | 86 } | 
|  | 87 | 
|  | 88 template <class B, class S> | 
| 64 void GenericNode<B, S>::ReplaceUses(GenericNode* replace_to) { | 89 void GenericNode<B, S>::ReplaceUses(GenericNode* replace_to) { | 
| 65   for (Use* use = first_use_; use != NULL; use = use->next) { | 90   for (Use* use = first_use_; use != NULL; use = use->next) { | 
| 66     use->from->GetInputRecordPtr(use->input_index)->to = replace_to; | 91     use->from->GetInputRecordPtr(use->input_index)->to = replace_to; | 
| 67   } | 92   } | 
| 68   if (replace_to->last_use_ == NULL) { | 93   if (replace_to->last_use_ == NULL) { | 
| 69     DCHECK_EQ(NULL, replace_to->first_use_); | 94     DCHECK_EQ(NULL, replace_to->first_use_); | 
| 70     replace_to->first_use_ = first_use_; | 95     replace_to->first_use_ = first_use_; | 
| 71     replace_to->last_use_ = last_use_; | 96     replace_to->last_use_ = last_use_; | 
| 72   } else if (first_use_ != NULL) { | 97   } else if (first_use_ != NULL) { | 
| 73     DCHECK_NE(NULL, replace_to->first_use_); | 98     DCHECK_NE(NULL, replace_to->first_use_); | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 91       RemoveUse(use); | 116       RemoveUse(use); | 
| 92       replace_to->AppendUse(use); | 117       replace_to->AppendUse(use); | 
| 93       use->from->GetInputRecordPtr(use->input_index)->to = replace_to; | 118       use->from->GetInputRecordPtr(use->input_index)->to = replace_to; | 
| 94     } | 119     } | 
| 95     use = next; | 120     use = next; | 
| 96   } | 121   } | 
| 97 } | 122 } | 
| 98 | 123 | 
| 99 template <class B, class S> | 124 template <class B, class S> | 
| 100 void GenericNode<B, S>::RemoveAllInputs() { | 125 void GenericNode<B, S>::RemoveAllInputs() { | 
| 101   for (typename Inputs::iterator iter(inputs().begin()); iter != inputs().end(); | 126   for (auto edge : input_edges()) { | 
| 102        ++iter) { | 127     edge.UpdateTo(NULL); | 
| 103     iter.GetInput()->Update(NULL); |  | 
| 104   } | 128   } | 
| 105 } | 129 } | 
| 106 | 130 | 
| 107 template <class B, class S> | 131 template <class B, class S> | 
| 108 void GenericNode<B, S>::TrimInputCount(int new_input_count) { | 132 void GenericNode<B, S>::TrimInputCount(int new_input_count) { | 
| 109   if (new_input_count == input_count_) return;  // Nothing to do. | 133   if (new_input_count == input_count_) return;  // Nothing to do. | 
| 110 | 134 | 
| 111   DCHECK(new_input_count < input_count_); | 135   DCHECK(new_input_count < input_count_); | 
| 112 | 136 | 
| 113   // Update inline inputs. | 137   // Update inline inputs. | 
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 258     ++use; | 282     ++use; | 
| 259     ++input; | 283     ++input; | 
| 260   } | 284   } | 
| 261   return result; | 285   return result; | 
| 262 } | 286 } | 
| 263 } | 287 } | 
| 264 } | 288 } | 
| 265 }  // namespace v8::internal::compiler | 289 }  // namespace v8::internal::compiler | 
| 266 | 290 | 
| 267 #endif  // V8_COMPILER_GENERIC_NODE_INL_H_ | 291 #endif  // V8_COMPILER_GENERIC_NODE_INL_H_ | 
| OLD | NEW | 
|---|