Lines Matching defs:const
36 LoadElimination(const LoadElimination&) = delete;
37 LoadElimination& operator=(const LoadElimination&) = delete;
39 const char* reducer_name() const override { return "LoadElimination"; }
44 static const size_t kMaxTrackedElements = 8;
61 AbstractElements const* Extend(Node* object, Node* index, Node* value,
63 Zone* zone) const {
71 MachineRepresentation representation) const;
72 AbstractElements const* Kill(Node* object, Node* index, Zone* zone) const;
73 bool Equals(AbstractElements const* that) const;
74 AbstractElements const* Merge(AbstractElements const* that,
75 Zone* zone) const;
77 void Print() const;
114 bool operator==(const FieldInfo& other) const {
119 bool operator!=(const FieldInfo& other) const { return !(*this == other); }
137 AbstractField const* Extend(Node* object, FieldInfo info,
138 Zone* zone) const {
144 FieldInfo const* Lookup(Node* object) const;
145 AbstractField const* KillConst(Node* object, Zone* zone) const;
146 AbstractField const* Kill(const AliasStateInfo& alias_info,
147 MaybeHandle<Name> name, Zone* zone) const;
148 bool Equals(AbstractField const* that) const {
151 AbstractField const* Merge(AbstractField const* that, Zone* zone) const {
167 void Print() const;
173 static size_t const kMaxTrackedFields = 32;
182 AbstractMaps const* Extend(Node* object, ZoneHandleSet<Map> maps,
183 Zone* zone) const;
184 bool Lookup(Node* object, ZoneHandleSet<Map>* object_maps) const;
185 AbstractMaps const* Kill(const AliasStateInfo& alias_info,
186 Zone* zone) const;
187 bool Equals(AbstractMaps const* that) const {
190 AbstractMaps const* Merge(AbstractMaps const* that, Zone* zone) const;
192 void Print() const;
209 bool operator==(const IndexRange& other) {
212 bool operator!=(const IndexRange& other) { return !(*this == other); }
233 bool Equals(AbstractState const* that) const;
234 void Merge(AbstractState const* that, Zone* zone);
236 AbstractState const* SetMaps(Node* object, ZoneHandleSet<Map> maps,
237 Zone* zone) const;
238 AbstractState const* KillMaps(Node* object, Zone* zone) const;
239 AbstractState const* KillMaps(const AliasStateInfo& alias_info,
240 Zone* zone) const;
241 bool LookupMaps(Node* object, ZoneHandleSet<Map>* object_maps) const;
243 AbstractState const* AddField(Node* object, IndexRange index,
244 FieldInfo info, Zone* zone) const;
245 AbstractState const* KillConstField(Node* object, IndexRange index_range,
246 Zone* zone) const;
247 AbstractState const* KillField(const AliasStateInfo& alias_info,
249 Zone* zone) const;
250 AbstractState const* KillField(Node* object, IndexRange index,
251 MaybeHandle<Name> name, Zone* zone) const;
252 AbstractState const* KillFields(Node* object, MaybeHandle<Name> name,
253 Zone* zone) const;
254 AbstractState const* KillAll(Zone* zone) const;
255 FieldInfo const* LookupField(Node* object, IndexRange index,
256 ConstFieldInfo const_field_info) const;
258 AbstractState const* AddElement(Node* object, Node* index, Node* value,
260 Zone* zone) const;
261 AbstractState const* KillElement(Node* object, Node* index,
262 Zone* zone) const;
264 MachineRepresentation representation) const;
266 void Print() const;
268 static AbstractState const* empty_state() { return &empty_state_; }
271 static AbstractState const empty_state_;
273 using AbstractFields = std::array<AbstractField const*, kMaxTrackedFields>;
275 bool FieldsEquals(AbstractFields const& this_fields,
276 AbstractFields const& that_fields) const;
278 AbstractFields const& that_fields, Zone* zone);
280 AbstractElements const* elements_ = nullptr;
283 AbstractMaps const* maps_ = nullptr;
289 AbstractState const* Get(Node* node) const;
290 void Set(Node* node, AbstractState const* state);
292 Zone* zone() const { return info_for_node_.get_allocator().zone(); }
295 ZoneVector<AbstractState const*> info_for_node_;
304 Reduction ReduceLoadField(Node* node, FieldAccess const& access);
305 Reduction ReduceStoreField(Node* node, FieldAccess const& access);
314 Reduction UpdateState(Node* node, AbstractState const* state);
316 AbstractState const* ComputeLoopState(Node* node,
317 AbstractState const* state) const;
318 AbstractState const* ComputeLoopStateForStoreField(
319 Node* current, LoadElimination::AbstractState const* state,
320 FieldAccess const& access) const;
321 AbstractState const* UpdateStateForPhi(AbstractState const* state,
325 static IndexRange FieldIndexOf(FieldAccess const& access);
327 static AbstractState const* empty_state() {
331 CommonOperatorBuilder* common() const;
332 Isolate* isolate() const;
333 Factory* factory() const;
334 Graph* graph() const;
335 JSGraph* jsgraph() const { return jsgraph_; }
336 Zone* zone() const { return node_states_.zone(); }
339 JSGraph* const jsgraph_;