| Index: src/compiler/common-node-cache.h
|
| diff --git a/src/compiler/common-node-cache.h b/src/compiler/common-node-cache.h
|
| index 54795749d520082337ddc8ff153e128c341741a4..7ec70aea7e352e35cbb2084c905eb48f02cd5162 100644
|
| --- a/src/compiler/common-node-cache.h
|
| +++ b/src/compiler/common-node-cache.h
|
| @@ -5,57 +5,63 @@
|
| #ifndef V8_COMPILER_COMMON_NODE_CACHE_H_
|
| #define V8_COMPILER_COMMON_NODE_CACHE_H_
|
|
|
| -#include "src/assembler.h"
|
| #include "src/compiler/node-cache.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
| +
|
| +// Forward declarations.
|
| +class ExternalReference;
|
| +
|
| +
|
| namespace compiler {
|
|
|
| // Bundles various caches for common nodes.
|
| -class CommonNodeCache FINAL : public ZoneObject {
|
| +class CommonNodeCache FINAL {
|
| public:
|
| explicit CommonNodeCache(Zone* zone) : zone_(zone) {}
|
| + ~CommonNodeCache() {}
|
|
|
| Node** FindInt32Constant(int32_t value) {
|
| - return int32_constants_.Find(zone_, value);
|
| + return int32_constants_.Find(zone(), value);
|
| }
|
|
|
| Node** FindInt64Constant(int64_t value) {
|
| - return int64_constants_.Find(zone_, value);
|
| + return int64_constants_.Find(zone(), value);
|
| + }
|
| +
|
| + Node** FindFloat32Constant(float value) {
|
| + // We canonicalize float constants at the bit representation level.
|
| + return float32_constants_.Find(zone(), bit_cast<int32_t>(value));
|
| }
|
|
|
| Node** FindFloat64Constant(double value) {
|
| // We canonicalize double constants at the bit representation level.
|
| - return float64_constants_.Find(zone_, bit_cast<int64_t>(value));
|
| + return float64_constants_.Find(zone(), bit_cast<int64_t>(value));
|
| }
|
|
|
| - Node** FindExternalConstant(ExternalReference reference) {
|
| - return external_constants_.Find(zone_, reference.address());
|
| - }
|
| + Node** FindExternalConstant(ExternalReference value);
|
|
|
| Node** FindNumberConstant(double value) {
|
| // We canonicalize double constants at the bit representation level.
|
| - return number_constants_.Find(zone_, bit_cast<int64_t>(value));
|
| + return number_constants_.Find(zone(), bit_cast<int64_t>(value));
|
| }
|
|
|
| - Zone* zone() const { return zone_; }
|
| + // Return all nodes from the cache.
|
| + void GetCachedNodes(ZoneVector<Node*>* nodes);
|
|
|
| - void GetCachedNodes(NodeVector* nodes) {
|
| - int32_constants_.GetCachedNodes(nodes);
|
| - int64_constants_.GetCachedNodes(nodes);
|
| - float64_constants_.GetCachedNodes(nodes);
|
| - external_constants_.GetCachedNodes(nodes);
|
| - number_constants_.GetCachedNodes(nodes);
|
| - }
|
| + Zone* zone() const { return zone_; }
|
|
|
| private:
|
| Int32NodeCache int32_constants_;
|
| Int64NodeCache int64_constants_;
|
| + Int32NodeCache float32_constants_;
|
| Int64NodeCache float64_constants_;
|
| - PtrNodeCache external_constants_;
|
| + IntPtrNodeCache external_constants_;
|
| Int64NodeCache number_constants_;
|
| Zone* zone_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(CommonNodeCache);
|
| };
|
|
|
| } // namespace compiler
|
|
|