V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
live-range-separator.h
1
// Copyright 2015 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_BACKEND_LIVE_RANGE_SEPARATOR_H_
6
#define V8_COMPILER_BACKEND_LIVE_RANGE_SEPARATOR_H_
7
8
#include "src/zone/zone.h"
9
namespace
v8
{
10
namespace
internal {
11
12
class
Zone;
13
14
namespace
compiler {
15
16
class
RegisterAllocationData;
17
18
// A register allocation pair of transformations: splinter and merge live ranges
19
class
LiveRangeSeparator
final :
public
ZoneObject
{
20
public
:
21
LiveRangeSeparator
(
RegisterAllocationData
* data,
Zone
* zone)
22
: data_(data), zone_(zone) {}
23
24
void
Splinter();
25
26
private
:
27
RegisterAllocationData
* data()
const
{
return
data_; }
28
Zone
* zone()
const
{
return
zone_; }
29
30
RegisterAllocationData
*
const
data_;
31
Zone
*
const
zone_;
32
33
DISALLOW_COPY_AND_ASSIGN(
LiveRangeSeparator
);
34
};
35
36
class
LiveRangeMerger
final :
public
ZoneObject
{
37
public
:
38
LiveRangeMerger
(
RegisterAllocationData
* data,
Zone
* zone)
39
: data_(data), zone_(zone) {}
40
41
void
Merge();
42
43
private
:
44
RegisterAllocationData
* data()
const
{
return
data_; }
45
Zone
* zone()
const
{
return
zone_; }
46
47
// Mark ranges spilled in deferred blocks, that also cover non-deferred code.
48
// We do nothing special for ranges fully contained in deferred blocks,
49
// because they would "spill in deferred blocks" anyway.
50
void
MarkRangesSpilledInDeferredBlocks();
51
52
RegisterAllocationData
*
const
data_;
53
Zone
*
const
zone_;
54
55
DISALLOW_COPY_AND_ASSIGN(
LiveRangeMerger
);
56
};
57
58
}
// namespace compiler
59
}
// namespace internal
60
}
// namespace v8
61
#endif // V8_COMPILER_BACKEND_LIVE_RANGE_SEPARATOR_H_
v8::internal::compiler::LiveRangeSeparator
Definition:
live-range-separator.h:19
v8::internal::compiler::RegisterAllocationData
Definition:
register-allocator.h:709
v8::internal::compiler::LiveRangeMerger
Definition:
live-range-separator.h:36
v8::internal::ZoneObject
Definition:
zone.h:144
v8
Definition:
libplatform.h:13
v8::internal::Zone
Definition:
zone.h:42
v8
src
compiler
backend
live-range-separator.h
Generated on Tue Dec 25 2018 14:38:29 by
1.8.14