v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
value-numbering-reducer.h
Go to the documentation of this file.
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
#ifndef V8_COMPILER_VALUE_NUMBERING_REDUCER_H_
6
#define V8_COMPILER_VALUE_NUMBERING_REDUCER_H_
7
8
#include "
src/base/compiler-specific.h
"
9
#include "
src/common/globals.h
"
10
#include "
src/compiler/graph-reducer.h
"
11
12
namespace
v8
{
13
namespace
internal
{
14
namespace
compiler {
15
16
class
V8_EXPORT_PRIVATE
ValueNumberingReducer
final
17
:
public
NON_EXPORTED_BASE
(Reducer) {
18
public
:
19
explicit
ValueNumberingReducer
(
Zone
* temp_zone,
Zone
*
graph_zone
);
20
~ValueNumberingReducer
()
override
;
21
22
const
char
*
reducer_name
()
const override
{
return
"ValueNumberingReducer"
; }
23
24
Reduction
Reduce(
Node
* node)
override
;
25
26
private
:
27
enum
{ kInitialCapacity = 256u };
28
29
Reduction
ReplaceIfTypesMatch(
Node
* node,
Node
* replacement);
30
void
Grow();
31
Zone
*
temp_zone
()
const
{
return
temp_zone_; }
32
Zone
*
graph_zone
()
const
{
return
graph_zone_; }
33
34
Node
**
entries_
;
35
size_t
capacity_
;
36
size_t
size_
;
37
Zone
*
temp_zone_
;
38
Zone
*
graph_zone_
;
39
};
40
41
}
// namespace compiler
42
}
// namespace internal
43
}
// namespace v8
44
45
#endif
// V8_COMPILER_VALUE_NUMBERING_REDUCER_H_
v8::internal::Zone
Definition
zone.h:43
v8::internal::compiler::Node
Definition
node.h:41
v8::internal::compiler::Reduction
Definition
graph-reducer.h:34
v8::internal::compiler::ValueNumberingReducer::reducer_name
const char * reducer_name() const override
Definition
value-numbering-reducer.h:22
v8::internal::compiler::ValueNumberingReducer::capacity_
size_t capacity_
Definition
value-numbering-reducer.h:35
v8::internal::compiler::ValueNumberingReducer::entries_
Node ** entries_
Definition
value-numbering-reducer.h:34
v8::internal::compiler::ValueNumberingReducer::graph_zone_
Zone * graph_zone_
Definition
value-numbering-reducer.h:38
v8::internal::compiler::ValueNumberingReducer::temp_zone_
Zone * temp_zone_
Definition
value-numbering-reducer.h:37
v8::internal::compiler::ValueNumberingReducer::temp_zone
Zone * temp_zone() const
Definition
value-numbering-reducer.h:31
v8::internal::compiler::ValueNumberingReducer::graph_zone
Zone * graph_zone() const
Definition
value-numbering-reducer.h:32
v8::internal::compiler::ValueNumberingReducer::~ValueNumberingReducer
~ValueNumberingReducer() override
v8::internal::compiler::ValueNumberingReducer::size_
size_t size_
Definition
value-numbering-reducer.h:36
v8::internal::compiler::turboshaft::ValueNumberingReducer
Definition
value-numbering-reducer.h:107
globals.h
graph_zone
Zone * graph_zone
Definition
graph-builder.cc:69
graph-reducer.h
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8
Definition
api-arguments-inl.h:19
compiler-specific.h
NON_EXPORTED_BASE
#define NON_EXPORTED_BASE(code)
Definition
compiler-specific.h:93
V8_EXPORT_PRIVATE
#define V8_EXPORT_PRIVATE
Definition
macros.h:460
src
compiler
value-numbering-reducer.h
Generated on Sun Apr 6 2025 21:08:53 for v8 by
1.12.0