@@ -2153,6 +2153,7 @@ void SelectionDAGLegalize::ExpandFPLibCall(SDNode* Node,
21532153 EVT RetVT = Node->getValueType (0 );
21542154 SmallVector<SDValue, 4 > Ops (drop_begin (Node->ops ()));
21552155 TargetLowering::MakeLibCallOptions CallOptions;
2156+ CallOptions.IsPostTypeLegalization = true ;
21562157 // FIXME: This doesn't support tail calls.
21572158 std::pair<SDValue, SDValue> Tmp = TLI.makeLibCall (DAG, LC, RetVT,
21582159 Ops, CallOptions,
@@ -4342,6 +4343,8 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
43424343 LLVM_DEBUG (dbgs () << " Trying to convert node to libcall\n " );
43434344 SmallVector<SDValue, 8 > Results;
43444345 SDLoc dl (Node);
4346+ TargetLowering::MakeLibCallOptions CallOptions;
4347+ CallOptions.IsPostTypeLegalization = true ;
43454348 // FIXME: Check flags on the node to see if we can use a finite call.
43464349 unsigned Opc = Node->getOpcode ();
43474350 switch (Opc) {
@@ -4384,7 +4387,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
43844387 AtomicOrdering Order = cast<AtomicSDNode>(Node)->getMergedOrdering ();
43854388 RTLIB::Libcall LC = RTLIB::getOUTLINE_ATOMIC (Opc, Order, VT);
43864389 EVT RetVT = Node->getValueType (0 );
4387- TargetLowering::MakeLibCallOptions CallOptions;
43884390 SmallVector<SDValue, 4 > Ops;
43894391 if (TLI.getLibcallName (LC)) {
43904392 // If outline atomic available, prepare its arguments and expand.
@@ -4422,7 +4424,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
44224424 break ;
44234425 }
44244426 case ISD::CLEAR_CACHE: {
4425- TargetLowering::MakeLibCallOptions CallOptions;
44264427 SDValue InputChain = Node->getOperand (0 );
44274428 SDValue StartVal = Node->getOperand (1 );
44284429 SDValue EndVal = Node->getOperand (2 );
@@ -4728,7 +4729,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
47284729 break ;
47294730 case ISD::STRICT_BF16_TO_FP:
47304731 if (Node->getValueType (0 ) == MVT::f32 ) {
4731- TargetLowering::MakeLibCallOptions CallOptions;
47324732 std::pair<SDValue, SDValue> Tmp = TLI.makeLibCall (
47334733 DAG, RTLIB::FPEXT_BF16_F32, MVT::f32 , Node->getOperand (1 ),
47344734 CallOptions, SDLoc (Node), Node->getOperand (0 ));
@@ -4738,7 +4738,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
47384738 break ;
47394739 case ISD::STRICT_FP16_TO_FP: {
47404740 if (Node->getValueType (0 ) == MVT::f32 ) {
4741- TargetLowering::MakeLibCallOptions CallOptions;
47424741 std::pair<SDValue, SDValue> Tmp = TLI.makeLibCall (
47434742 DAG, RTLIB::FPEXT_F16_F32, MVT::f32 , Node->getOperand (1 ), CallOptions,
47444743 SDLoc (Node), Node->getOperand (0 ));
@@ -4793,7 +4792,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
47934792 // Sign/zero extend the argument if the libcall takes a larger type.
47944793 SDValue Op = DAG.getNode (Signed ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND, dl,
47954794 NVT, Node->getOperand (IsStrict ? 1 : 0 ));
4796- TargetLowering::MakeLibCallOptions CallOptions;
47974795 CallOptions.setIsSigned (Signed);
47984796 std::pair<SDValue, SDValue> Tmp =
47994797 TLI.makeLibCall (DAG, LC, RVT, Op, CallOptions, dl, Chain);
@@ -4833,7 +4831,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
48334831 assert (LC != RTLIB::UNKNOWN_LIBCALL && " Unable to legalize as libcall" );
48344832
48354833 SDValue Chain = IsStrict ? Node->getOperand (0 ) : SDValue ();
4836- TargetLowering::MakeLibCallOptions CallOptions;
48374834 std::pair<SDValue, SDValue> Tmp =
48384835 TLI.makeLibCall (DAG, LC, NVT, Op, CallOptions, dl, Chain);
48394836
@@ -4861,7 +4858,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
48614858 RTLIB::Libcall LC = RTLIB::getFPROUND (Op.getValueType (), VT);
48624859 assert (LC != RTLIB::UNKNOWN_LIBCALL && " Unable to legalize as libcall" );
48634860
4864- TargetLowering::MakeLibCallOptions CallOptions;
48654861 std::pair<SDValue, SDValue> Tmp =
48664862 TLI.makeLibCall (DAG, LC, VT, Op, CallOptions, SDLoc (Node), Chain);
48674863 Results.push_back (Tmp.first );
@@ -4890,7 +4886,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
48904886
48914887 assert (LC != RTLIB::UNKNOWN_LIBCALL && " Unable to legalize as libcall" );
48924888
4893- TargetLowering::MakeLibCallOptions CallOptions;
48944889 std::pair<SDValue, SDValue> Tmp =
48954890 TLI.makeLibCall (DAG, LC, Node->getValueType (0 ), Node->getOperand (1 ),
48964891 CallOptions, SDLoc (Node), Node->getOperand (0 ));
0 commit comments