#include "src/compiler/typed-optimization.h"
#include <optional>
#include "src/compiler/compilation-dependencies.h"
#include "src/compiler/js-graph.h"
#include "src/compiler/js-heap-broker.h"
#include "src/compiler/node-matchers.h"
#include "src/compiler/node-properties.h"
#include "src/compiler/simplified-operator.h"
#include "src/compiler/type-cache.h"
#include "src/execution/isolate-inl.h"
namespace v8 {
namespace internal {
namespace compiler {
TypedOptimization::TypedOptimization(Editor* editor,
CompilationDependencies* dependencies,
JSGraph* jsgraph, JSHeapBroker* broker)
: … { … }
TypedOptimization::~TypedOptimization() = default;
Reduction TypedOptimization::Reduce(Node* node) { … }
namespace {
OptionalMapRef GetStableMapFromObjectType(JSHeapBroker* broker,
Type object_type) { … }
Node* ResolveSameValueRenames(Node* node) { … }
}
Reduction TypedOptimization::ReduceConvertReceiver(Node* node) { … }
Reduction TypedOptimization::ReduceCheckHeapObject(Node* node) { … }
Reduction TypedOptimization::ReduceMaybeGrowFastElements(Node* node) { … }
Reduction TypedOptimization::ReduceCheckBounds(Node* node) { … }
Reduction TypedOptimization::ReduceCheckNotTaggedHole(Node* node) { … }
Reduction TypedOptimization::ReduceCheckMaps(Node* node) { … }
Reduction TypedOptimization::ReduceCheckNumber(Node* node) { … }
Reduction TypedOptimization::ReduceCheckString(Node* node) { … }
Reduction TypedOptimization::ReduceCheckStringOrStringWrapper(Node* node) { … }
Reduction TypedOptimization::ReduceCheckEqualsInternalizedString(Node* node) { … }
Reduction TypedOptimization::ReduceCheckEqualsSymbol(Node* node) { … }
Reduction TypedOptimization::ReduceLoadField(Node* node) { … }
Reduction TypedOptimization::ReduceNumberFloor(Node* node) { … }
Reduction TypedOptimization::ReduceNumberRoundop(Node* node) { … }
Reduction TypedOptimization::ReduceNumberSilenceNaN(Node* node) { … }
Reduction TypedOptimization::ReduceNumberToUint8Clamped(Node* node) { … }
Reduction TypedOptimization::ReducePhi(Node* node) { … }
Reduction TypedOptimization::ReduceReferenceEqual(Node* node) { … }
const Operator* TypedOptimization::NumberComparisonFor(const Operator* op) { … }
Reduction TypedOptimization::
TryReduceStringComparisonOfStringFromSingleCharCodeToConstant(
Node* comparison, StringRef string, bool inverted) { … }
Reduction
TypedOptimization::TryReduceStringComparisonOfStringFromSingleCharCode(
Node* comparison, Node* from_char_code, Type constant_type, bool inverted) { … }
Reduction TypedOptimization::ReduceStringComparison(Node* node) { … }
Reduction TypedOptimization::ReduceStringLength(Node* node) { … }
Reduction TypedOptimization::ReduceSameValue(Node* node) { … }
Reduction TypedOptimization::ReduceSelect(Node* node) { … }
Reduction TypedOptimization::ReduceSpeculativeToNumber(Node* node) { … }
Reduction TypedOptimization::ReduceTypeOf(Node* node) { … }
Reduction TypedOptimization::ReduceToBoolean(Node* node) { … }
namespace {
bool BothAre(Type t1, Type t2, Type t3) { … }
bool NeitherCanBe(Type t1, Type t2, Type t3) { … }
const Operator* NumberOpFromSpeculativeNumberOp(
SimplifiedOperatorBuilder* simplified, const Operator* op) { … }
}
Reduction TypedOptimization::ReduceSpeculativeNumberAdd(Node* node) { … }
Reduction TypedOptimization::ReduceJSToNumberInput(Node* input) { … }
Node* TypedOptimization::ConvertPlainPrimitiveToNumber(Node* node) { … }
Reduction TypedOptimization::ReduceSpeculativeNumberBinop(Node* node) { … }
Reduction TypedOptimization::ReduceSpeculativeNumberComparison(Node* node) { … }
Factory* TypedOptimization::factory() const { … }
Graph* TypedOptimization::graph() const { … }
SimplifiedOperatorBuilder* TypedOptimization::simplified() const { … }
}
}
}