Home | History | Annotate | Download | only in compiler

Lines Matching refs:Operator

5 #include "src/compiler/simplified-operator.h"
9 #include "src/compiler/operator.h"
20 std::ostream& operator<<(std::ostream& os, BaseTaggedness base_taggedness) {
57 bool operator==(BufferAccess lhs, BufferAccess rhs) {
62 bool operator!=(BufferAccess lhs, BufferAccess rhs) { return !(lhs == rhs); }
70 std::ostream& operator<<(std::ostream& os, BufferAccess access) {
83 BufferAccess const BufferAccessOf(const Operator* op) {
90 bool operator==(FieldAccess const& lhs, FieldAccess const& rhs) {
99 bool operator!=(FieldAccess const& lhs, FieldAccess const& rhs) {
113 std::ostream& operator<<(std::ostream& os, FieldAccess const& access) {
137 bool operator==(ElementAccess const& lhs, ElementAccess const& rhs) {
147 bool operator!=(ElementAccess const& lhs, ElementAccess const& rhs) {
161 std::ostream& operator<<(std::ostream& os, ElementAccess const& access) {
169 const FieldAccess& FieldAccessOf(const Operator* op) {
177 const ElementAccess& ElementAccessOf(const Operator* op) {
184 ExternalArrayType ExternalArrayTypeOf(const Operator* op) {
194 std::ostream& operator<<(std::ostream& os, CheckFloat64HoleMode mode) {
205 CheckFloat64HoleMode CheckFloat64HoleModeOf(const Operator* op) {
210 CheckForMinusZeroMode CheckMinusZeroModeOf(const Operator* op) {
221 std::ostream& operator<<(std::ostream& os, CheckForMinusZeroMode mode) {
236 std::ostream& operator<<(std::ostream& os, CheckTaggedInputMode mode) {
247 CheckTaggedInputMode CheckTaggedInputModeOf(const Operator* op) {
252 std::ostream& operator<<(std::ostream& os, GrowFastElementsFlags flags) {
272 GrowFastElementsFlags GrowFastElementsFlagsOf(const Operator* op) {
281 std::ostream& operator<<(std::ostream& os, ElementsTransition transition) {
292 ElementsTransition ElementsTransitionOf(const Operator* op) {
297 std::ostream& operator<<(std::ostream& os, NumberOperationHint hint) {
316 NumberOperationHint NumberOperationHintOf(const Operator* op) {
334 PretenureFlag PretenureFlagOf(const Operator* op) {
339 UnicodeEncoding UnicodeEncodingOf(const Operator* op) {
345 V(BooleanNot, Operator::kNoProperties, 1, 0) \
346 V(NumberEqual, Operator::kCommutative, 2, 0) \
347 V(NumberLessThan, Operator::kNoProperties, 2, 0) \
348 V(NumberLessThanOrEqual, Operator::kNoProperties, 2, 0) \
349 V(NumberAdd, Operator::kCommutative, 2, 0) \
350 V(NumberSubtract, Operator::kNoProperties, 2, 0) \
351 V(NumberMultiply, Operator::kCommutative, 2, 0) \
352 V(NumberDivide, Operator::kNoProperties, 2, 0) \
353 V(NumberModulus, Operator::kNoProperties, 2, 0) \
354 V(NumberBitwiseOr, Operator::kCommutative, 2, 0) \
355 V(NumberBitwiseXor, Operator::kCommutative, 2, 0) \
356 V(NumberBitwiseAnd, Operator::kCommutative, 2, 0) \
357 V(NumberShiftLeft, Operator::kNoProperties, 2, 0) \
358 V(NumberShiftRight, Operator::kNoProperties, 2, 0) \
359 V(NumberShiftRightLogical, Operator::kNoProperties, 2, 0) \
360 V(NumberImul, Operator::kCommutative, 2, 0) \
361 V(NumberAbs, Operator::kNoProperties, 1, 0) \
362 V(NumberClz32, Operator::kNoProperties, 1, 0) \
363 V(NumberCeil, Operator::kNoProperties, 1, 0) \
364 V(NumberFloor, Operator::kNoProperties, 1, 0) \
365 V(NumberFround, Operator::kNoProperties, 1, 0) \
366 V(NumberAcos, Operator::kNoProperties, 1, 0) \
367 V(NumberAcosh, Operator::kNoProperties, 1, 0) \
368 V(NumberAsin, Operator::kNoProperties, 1, 0) \
369 V(NumberAsinh, Operator::kNoProperties, 1, 0) \
370 V(NumberAtan, Operator::kNoProperties, 1, 0) \
371 V(NumberAtan2, Operator::kNoProperties, 2, 0) \
372 V(NumberAtanh, Operator::kNoProperties, 1, 0) \
373 V(NumberCbrt, Operator::kNoProperties, 1, 0) \
374 V(NumberCos, Operator::kNoProperties, 1, 0) \
375 V(NumberCosh, Operator::kNoProperties, 1, 0) \
376 V(NumberExp, Operator::kNoProperties, 1, 0) \
377 V(NumberExpm1, Operator::kNoProperties, 1, 0) \
378 V(NumberLog, Operator::kNoProperties, 1, 0) \
379 V(NumberLog1p, Operator::kNoProperties, 1, 0) \
380 V(NumberLog10, Operator::kNoProperties, 1, 0) \
381 V(NumberLog2, Operator::kNoProperties, 1, 0) \
382 V(NumberMax, Operator::kNoProperties, 2, 0) \
383 V(NumberMin, Operator::kNoProperties, 2, 0) \
384 V(NumberPow, Operator::kNoProperties, 2, 0) \
385 V(NumberRound, Operator::kNoProperties, 1, 0) \
386 V(NumberSign, Operator::kNoProperties, 1, 0) \
387 V(NumberSin, Operator::kNoProperties, 1, 0) \
388 V(NumberSinh, Operator::kNoProperties, 1, 0) \
389 V(NumberSqrt, Operator::kNoProperties, 1, 0) \
390 V(NumberTan, Operator::kNoProperties, 1, 0) \
391 V(NumberTanh, Operator::kNoProperties, 1, 0) \
392 V(NumberTrunc, Operator::kNoProperties, 1, 0) \
393 V(NumberToBoolean, Operator::kNoProperties, 1, 0) \
394 V(NumberToInt32, Operator::kNoProperties, 1, 0) \
395 V(NumberToUint32, Operator::kNoProperties, 1, 0) \
396 V(NumberToUint8Clamped, Operator::kNoProperties, 1, 0) \
397 V(NumberSilenceNaN, Operator::kNoProperties, 1, 0) \
398 V(StringCharCodeAt, Operator::kNoProperties, 2, 1) \
399 V(StringFromCharCode, Operator::kNoProperties, 1, 0) \
400 V(PlainPrimitiveToNumber, Operator::kNoProperties, 1, 0) \
401 V(PlainPrimitiveToWord32, Operator::kNoProperties, 1, 0) \
402 V(PlainPrimitiveToFloat64, Operator::kNoProperties, 1, 0) \
403 V(ChangeTaggedSignedToInt32, Operator::kNoProperties, 1, 0) \
404 V(ChangeTaggedToInt32, Operator::kNoProperties, 1, 0) \
405 V(ChangeTaggedToUint32, Operator::kNoProperties, 1, 0) \
406 V(ChangeTaggedToFloat64, Operator::kNoProperties, 1, 0) \
407 V(ChangeFloat64ToTagged, Operator::kNoProperties, 1, 0) \
408 V(ChangeFloat64ToTaggedPointer, Operator::kNoProperties, 1, 0) \
409 V(ChangeInt31ToTaggedSigned, Operator::kNoProperties, 1, 0) \
410 V(ChangeInt32ToTagged, Operator::kNoProperties, 1, 0) \
411 V(ChangeUint32ToTagged, Operator::kNoProperties, 1, 0) \
412 V(ChangeTaggedToBit, Operator::kNoProperties, 1, 0) \
413 V(ChangeBitToTagged, Operator::kNoProperties, 1, 0) \
414 V(TruncateTaggedToBit, Operator::kNoProperties, 1, 0) \
415 V(TruncateTaggedToWord32, Operator::kNoProperties, 1, 0) \
416 V(TruncateTaggedToFloat64, Operator::kNoProperties, 1, 0) \
417 V(ObjectIsCallable, Operator::kNoProperties, 1, 0) \
418 V(ObjectIsNumber, Operator::kNoProperties, 1, 0) \
419 V(ObjectIsReceiver, Operator::kNoProperties, 1, 0) \
420 V(ObjectIsSmi, Operator::kNoProperties, 1, 0) \
421 V(ObjectIsString, Operator::kNoProperties, 1, 0) \
422 V(ObjectIsUndetectable, Operator::kNoProperties, 1, 0) \
423 V(ConvertTaggedHoleToUndefined, Operator::kNoProperties, 1, 0) \
424 V(ReferenceEqual, Operator::kCommutative, 2, 0) \
425 V(StringEqual, Operator::kCommutative, 2, 0) \
426 V(StringLessThan, Operator::kNoProperties, 2, 0) \
427 V(StringLessThanOrEqual, Operator::kNoProperties, 2, 0)
459 struct Name##Operator final : public Operator { \
460 Name##Operator() \
461 : Operator(IrOpcode::k##Name, Operator::kPure | properties, #Name, \
464 Name##Operator k##Name;
469 struct Name##Operator final : public Operator { \
470 Name##Operator() \
471 : Operator(IrOpcode::k##Name, \
472 Operator::kFoldable | Operator::kNoThrow, #Name, \
475 Name##Operator k##Name;
483 Operator::kPure, "StringFromCodePoint", 1,
491 struct ArrayBufferWasNeuteredOperator final : public Operator {
493 : Operator(IrOpcode::kArrayBufferWasNeutered, Operator::kEliminatable,
504 Operator::kFoldable | Operator::kNoThrow, "CheckedInt32Mul", 2, 1,
518 Operator::kFoldable | Operator::kNoThrow, "CheckedFloat64ToInt32",
532 Operator::kFoldable | Operator::kNoThrow, "CheckedTaggedToInt32",
546 Operator::kFoldable | Operator::kNoThrow,
560 Operator::kFoldable | Operator::kNoThrow, "CheckFloat64Hole", 1,
573 Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,
579 struct EnsureWritableFastElementsOperator final : public Operator {
581 : Operator( // --
583 Operator::kNoDeopt | Operator::kNoThrow, // flags
591 struct Name##Operator final : public Operator1<NumberOperationHint> { \
592 Name##Operator() \
594 IrOpcode::k##Name, Operator::kFoldable | Operator::kNoThrow, \
597 Name##Operator<NumberOperationHint::kSignedSmall> \
599 Name##Operator<NumberOperationHint::kSigned32> k##Name##Signed32Operator; \
600 Name##Operator<NumberOperationHint::kNumber> k##Name##NumberOperator; \
601 Name##Operator<NumberOperationHint::kNumberOrOddball> \
607 struct LoadBuffer##Type##Operator final : public Operator1<BufferAccess> { \
608 LoadBuffer##Type##Operator() \
611 Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite, \
615 struct StoreBuffer##Type##Operator final : public Operator1<BufferAccess> { \
616 StoreBuffer##Type##Operator() \
619 Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow, \
623 LoadBuffer##Type##Operator kLoadBuffer##Type; \
624 StoreBuffer##Type##Operator kStoreBuffer##Type;
638 const Operator* SimplifiedOperatorBuilder::Name() { return &cache_.k##Name; }
644 const Operator* SimplifiedOperatorBuilder::CheckedInt32Mul(
656 const Operator* SimplifiedOperatorBuilder::CheckedFloat64ToInt32(
668 const Operator* SimplifiedOperatorBuilder::CheckedTaggedToInt32(
680 const Operator* SimplifiedOperatorBuilder::CheckedTaggedToFloat64(
692 const Operator* SimplifiedOperatorBuilder::CheckMaps(int map_input_count) {
693 // TODO(bmeurer): Cache the most important versions of this operator.
698 Operator::kNoThrow | Operator::kNoWrite, // flags
704 const Operator* SimplifiedOperatorBuilder::CheckFloat64Hole(
716 const Operator* SimplifiedOperatorBuilder::EnsureWritableFastElements() {
720 const Operator* SimplifiedOperatorBuilder::MaybeGrowFastElements(
724 Operator::kNoThrow, // flags
730 const Operator* SimplifiedOperatorBuilder::TransitionElementsKind(
734 Operator::kNoDeopt | Operator::kNoThrow, // flags
740 const Operator* SimplifiedOperatorBuilder::Allocate(PretenureFlag pretenure) {
752 const Operator* SimplifiedOperatorBuilder::LoadBuffer(BufferAccess access) {
765 const Operator* SimplifiedOperatorBuilder::StoreBuffer(BufferAccess access) {
777 const Operator* SimplifiedOperatorBuilder::StringFromCodePoint(
790 const Operator* SimplifiedOperatorBuilder::Name(NumberOperationHint hint) { \
808 V(LoadField, FieldAccess, Operator::kNoWrite, 1, 1, 1) \
809 V(StoreField, FieldAccess, Operator::kNoRead, 2, 1, 0) \
810 V(LoadElement, ElementAccess, Operator::kNoWrite, 2, 1, 1) \
811 V(StoreElement, ElementAccess, Operator::kNoRead, 3, 1, 0) \
812 V(LoadTypedElement, ExternalArrayType, Operator::kNoWrite, 4, 1, 1) \
813 V(StoreTypedElement, ExternalArrayType, Operator::kNoRead, 5, 1, 0)
817 const Operator* SimplifiedOperatorBuilder::Name(const Type& access) { \
820 Operator::kNoDeopt | Operator::kNoThrow | properties, \