• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "src/compiler/common-node-cache.h"
6 
7 #include "src/codegen/external-reference.h"
8 #include "src/compiler/node.h"
9 
10 namespace v8 {
11 namespace internal {
12 namespace compiler {
13 
FindExternalConstant(ExternalReference value)14 Node** CommonNodeCache::FindExternalConstant(ExternalReference value) {
15   return external_constants_.Find(bit_cast<intptr_t>(value.address()));
16 }
17 
18 
FindHeapConstant(Handle<HeapObject> value)19 Node** CommonNodeCache::FindHeapConstant(Handle<HeapObject> value) {
20   return heap_constants_.Find(bit_cast<intptr_t>(value.address()));
21 }
22 
23 
GetCachedNodes(ZoneVector<Node * > * nodes)24 void CommonNodeCache::GetCachedNodes(ZoneVector<Node*>* nodes) {
25   int32_constants_.GetCachedNodes(nodes);
26   int64_constants_.GetCachedNodes(nodes);
27   tagged_index_constants_.GetCachedNodes(nodes);
28   float32_constants_.GetCachedNodes(nodes);
29   float64_constants_.GetCachedNodes(nodes);
30   external_constants_.GetCachedNodes(nodes);
31   pointer_constants_.GetCachedNodes(nodes);
32   number_constants_.GetCachedNodes(nodes);
33   heap_constants_.GetCachedNodes(nodes);
34   relocatable_int32_constants_.GetCachedNodes(nodes);
35   relocatable_int64_constants_.GetCachedNodes(nodes);
36 }
37 
38 }  // namespace compiler
39 }  // namespace internal
40 }  // namespace v8
41