156f187c53
This is a reland of 8ff8ddbaf5
Original change's description:
> [turbofan] Further brokerize BytecodeGraphBuilder
>
> Replace all usages of VectorSlotPair with FeedbackSource.
>
> Bug: v8:7790
> Change-Id: I0ac6e9cd8f5730154cc1842e267ca1ebfdebc874
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763536
> Commit-Queue: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#63378}
Bug: v8:7790
Change-Id: I54fbf4433a65681780fda4ded09ec2d145d36ec1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768361
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63391}
53 lines
1.5 KiB
C++
53 lines
1.5 KiB
C++
// Copyright 2019 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef V8_COMPILER_FEEDBACK_SOURCE_H_
|
|
#define V8_COMPILER_FEEDBACK_SOURCE_H_
|
|
|
|
#include "src/compiler/heap-refs.h"
|
|
#include "src/objects/feedback-vector.h"
|
|
|
|
namespace v8 {
|
|
namespace internal {
|
|
namespace compiler {
|
|
|
|
struct FeedbackSource {
|
|
FeedbackSource() { DCHECK(!IsValid()); }
|
|
V8_EXPORT_PRIVATE FeedbackSource(Handle<FeedbackVector> vector_,
|
|
FeedbackSlot slot_);
|
|
FeedbackSource(FeedbackVectorRef vector_, FeedbackSlot slot_);
|
|
explicit FeedbackSource(FeedbackNexus const& nexus);
|
|
|
|
bool IsValid() const { return !vector.is_null() && !slot.IsInvalid(); }
|
|
int index() const;
|
|
|
|
Handle<FeedbackVector> vector;
|
|
FeedbackSlot slot;
|
|
|
|
struct Hash {
|
|
size_t operator()(FeedbackSource const& source) const {
|
|
return base::hash_combine(source.vector.address(), source.slot);
|
|
}
|
|
};
|
|
|
|
struct Equal {
|
|
bool operator()(FeedbackSource const& lhs,
|
|
FeedbackSource const& rhs) const {
|
|
return lhs.vector.equals(rhs.vector) && lhs.slot == rhs.slot;
|
|
}
|
|
};
|
|
};
|
|
|
|
bool operator==(FeedbackSource const&, FeedbackSource const&);
|
|
bool operator!=(FeedbackSource const&, FeedbackSource const&);
|
|
|
|
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
|
|
FeedbackSource const&);
|
|
|
|
} // namespace compiler
|
|
} // namespace internal
|
|
} // namespace v8
|
|
|
|
#endif // V8_COMPILER_FEEDBACK_SOURCE_H_
|