Lines Matching refs:lowering

5 #include "src/compiler/simplified-lowering.h"
28 #include "src/compiler/simplified-lowering-verifier.h"
51 // Representation selection and lowering of {Simplified} operators to machine
53 // output representation and the best possible lowering for {Simplified} nodes.
62 // possible lowering for each operator so far, and that in turn determines
71 // 3.) LOWER: perform lowering for all {Simplified} nodes by replacing some
714 void RunLowerPhase(SimplifiedLowering* lowering) {
724 NodeOriginTable::Scope origin_scope(node_origins_, "simplified lowering",
726 VisitNode<LOWER>(node, info->truncation(), lowering);
750 // lowering.
783 void Run(SimplifiedLowering* lowering) {
787 RunLowerPhase(lowering);
790 RunVerifyPhase(lowering->info_);
1160 SimplifiedLowering* lowering) {
1172 ChangeOp(node, lowering->common()->Select(output, p.hint()));
1185 SimplifiedLowering* lowering) {
1196 ChangeOp(node, lowering->common()->Phi(output, values));
1209 void VisitObjectIs(Node* node, Type type, SimplifiedLowering* lowering) {
1214 DeferReplacement(node, lowering->jsgraph()->Int32Constant(1));
1219 DeferReplacement(node, lowering->jsgraph()->Int32Constant(0));
1225 void VisitCheck(Node* node, Type type, SimplifiedLowering* lowering) {
1238 void VisitCall(Node* node, SimplifiedLowering* lowering) {
1321 // When lowering 64 bit BigInts to Word64 representation, we have to
1575 SimplifiedLowering* lowering) {
1666 SimplifiedLowering* lowering) {
1690 SimplifiedLowering* lowering) {
1696 if (lower<T>()) DeferReplacement(node, lowering->Uint32Mod(node));
1704 if (lower<T>()) DeferReplacement(node, lowering->Int32Mod(node));
1746 if (lower<T>()) DeferReplacement(node, lowering->Int32Mod(node));
1775 if (lower<T>()) DeferReplacement(node, lowering->Uint32Mod(node));
1784 if (lower<T>()) DeferReplacement(node, lowering->Int32Mod(node));
1812 void VisitCheckBounds(Node* node, SimplifiedLowering* lowering) {
1923 void VisitFastApiCall(Node* node, SimplifiedLowering* lowering) {
2001 void VisitJSWasmCall(Node* node, SimplifiedLowering* lowering) {
2058 // The actual lowering of JSWasmCall nodes happens later, in the subsequent
2067 SimplifiedLowering* lowering) {
2072 // dead code. Otherwise we might end up lowering the operation in a way,
2101 // would thus kill the cached {node} during lowering (i.e. replace all
2102 // uses with Dead), but at that point some node lowering might have
2139 lowering->jsgraph()->IntPtrConstant(smi));
2154 DeferReplacement(node, lowering->jsgraph()->IntPtrConstant(value));
2170 return VisitSelect<T>(node, truncation, lowering);
2172 return VisitPhi<T>(node, truncation, lowering);
2174 return VisitCall<T>(node, lowering);
2189 lowering->DoJSToNumberOrNumericTruncatesToWord32(node, this);
2193 lowering->DoJSToNumberOrNumericTruncatesToFloat64(node, this);
2220 ChangeOp(node, lowering->machine()->Word32Equal());
2224 ChangeOp(node, lowering->machine()->WordEqual());
2227 DeferReplacement(node, lowering->jsgraph()->Int32Constant(0));
2230 // No input representation requirement; adapt during lowering.
2302 return VisitSpeculativeIntegerAdditiveOp<T>(node, truncation, lowering);
2306 return VisitSpeculativeAdditiveOp<T>(node, truncation, lowering);
2481 if (lower<T>()) DeferReplacement(node, lowering->Uint32Div(node));
2488 if (lower<T>()) DeferReplacement(node, lowering->Int32Div(node));
2494 if (lower<T>()) DeferReplacement(node, lowering->Int32Div(node));
2531 if (lower<T>()) DeferReplacement(node, lowering->Int32Div(node));
2556 if (lower<T>()) DeferReplacement(node, lowering->Uint32Div(node));
2565 if (lower<T>()) DeferReplacement(node, lowering->Int32Div(node));
2574 return VisitSpeculativeNumberModulus<T>(node, truncation, lowering);
2584 if (lower<T>()) DeferReplacement(node, lowering->Uint32Mod(node));
2594 if (lower<T>()) DeferReplacement(node, lowering->Int32Mod(node));
2631 ChangeToPureOp(node, lowering->machine()->Word32Shl());
2643 ChangeToPureOp(node, lowering->machine()->Word32Shl());
2654 ChangeToPureOp(node, lowering->machine()->Word32Shl());
2665 ChangeToPureOp(node, lowering->machine()->Word32Sar());
2677 ChangeToPureOp(node, lowering->machine()->Word32Sar());
2688 ChangeToPureOp(node, lowering->machine()->Word32Sar());
2699 ChangeToPureOp(node, lowering->machine()->Word32Shr());
2729 ChangeToPureOp(node, lowering->machine()->Word32Shr());
2738 ChangeToPureOp(node, lowering->machine()->Word32Shr());
2754 if (lower<T>()) DeferReplacement(node, lowering->Int32Abs(node));
2801 lowering->DoMax(node, lowering->machine()->Uint32LessThan(),
2811 lowering->DoMax(node, lowering->machine()->Int32LessThan(),
2819 lowering->DoMax(node, lowering->machine()->Int64LessThan(),
2834 lowering->DoMax(node, lowering->machine()->Float64LessThan(),
2859 lowering->DoMin(node, lowering->machine()->Uint32LessThan(),
2869 lowering->DoMin(node, lowering->machine()->Int32LessThan(),
2877 lowering->DoMin(node, lowering->machine()->Int64LessThan(),
2892 lowering->DoMin(node,
2893 lowering->machine()->Float64LessThanOrEqual(),
2934 DeferReplacement(node, lowering->Float64Round(node));
2973 ChangeUnaryToPureBinaryOp(node, lowering->machine()->Word64And(),
2988 graph()->NewNode(lowering->machine()->Word64Shl(), value,
2991 graph()->NewNode(lowering->machine()->Word64Sar(), shifted,
3028 if (lower<T>()) DeferReplacement(node, lowering->Int32Sign(node));
3032 if (lower<T>()) DeferReplacement(node, lowering->Float64Sign(node));
3066 if (lower<T>()) lowering->DoIntegral32ToBit(node);
3070 if (lower<T>()) lowering->DoOrderedNumberToBit(node);
3074 if (lower<T>()) lowering->DoNumberToBit(node);
3106 if (lower<T>()) lowering->DoUnsigned32ToUint8Clamped(node);
3110 if (lower<T>()) lowering->DoSigned32ToUint8Clamped(node);
3114 if (lower<T>()) lowering->DoIntegerToUint8Clamped(node);
3118 if (lower<T>()) lowering->DoNumberToUint8Clamped(node);
3126 ChangeOp(node, lowering->machine()->Word32Equal());
3128 ChangeOp(node, lowering->machine()->WordEqual());
3144 ChangeOp(node, lowering->simplified()->NumberSameValue());
3174 ChangeToPureOp(node, lowering->machine()->Int64Add());
3181 ChangeOp(node, lowering->simplified()->BigIntAdd());
3192 ChangeToPureOp(node, lowering->machine()->Int64Sub());
3199 ChangeOp(node, lowering->simplified()->BigIntSubtract());
3210 ChangeUnaryToPureBinaryOp(node, lowering->machine()->Int64Sub(), 0,
3218 ChangeToPureOp(node, lowering->simplified()->BigIntNegate());
3293 return VisitCheckBounds<T>(node, lowering);
3313 VisitCheck<T>(node, Type::InternalizedString(), lowering);
3327 VisitCheck<T>(node, Type::Receiver(), lowering);
3331 VisitCheck<T>(node, Type::ReceiverOrNullOrUndefined(), lowering);
3365 VisitCheck<T>(node, Type::Symbol(), lowering);
3573 ChangeOp(node, lowering->simplified()->ConvertReceiver(
3653 VisitObjectIs<T>(node, Type::BigInt(), lowering);
3657 VisitObjectIs<T>(node, Type::Callable(), lowering);
3666 VisitObjectIs<T>(node, Type::DetectableCallable(), lowering);
3674 DeferReplacement(node, lowering->jsgraph()->Int32Constant(1));
3679 DeferReplacement(node, lowering->jsgraph()->Int32Constant(0));
3685 ChangeOp(node, lowering->simplified()->NumberIsFinite());
3702 DeferReplacement(node, lowering->jsgraph()->Int32Constant(1));
3707 DeferReplacement(node, lowering->jsgraph()->Int32Constant(0));
3713 ChangeOp(node, lowering->simplified()->NumberIsSafeInteger());
3728 DeferReplacement(node, lowering->jsgraph()->Int32Constant(1));
3733 DeferReplacement(node, lowering->jsgraph()->Int32Constant(0));
3739 ChangeOp(node, lowering->simplified()->NumberIsInteger());
3756 DeferReplacement(node, lowering->jsgraph()->Int32Constant(1));
3761 DeferReplacement(node, lowering->jsgraph()->Int32Constant(0));
3779 DeferReplacement(node, lowering->jsgraph()->Int32Constant(1));
3784 DeferReplacement(node, lowering->jsgraph()->Int32Constant(0));
3803 VisitObjectIs<T>(node, Type::NonCallable(), lowering);
3807 VisitObjectIs<T>(node, Type::Number(), lowering);
3811 VisitObjectIs<T>(node, Type::Receiver(), lowering);
3820 VisitObjectIs<T>(node, Type::String(), lowering);
3824 VisitObjectIs<T>(node, Type::Symbol(), lowering);
3828 VisitObjectIs<T>(node, Type::Undetectable(), lowering);
3998 lowering->simplified()->FindOrderedHashMapEntryForInt32Key());
4008 VisitFastApiCall<T>(node, lowering);
4054 return VisitJSWasmCall<T>(node, lowering);
4172 NodeVector replacements_; // replacements to be done after lowering
4184 // lowering. Once this phase becomes a vanilla reducer, it should get source