@@ -2153,6 +2153,7 @@ void SelectionDAGLegalize::ExpandFPLibCall(SDNode* Node,
2153
2153
EVT RetVT = Node->getValueType (0 );
2154
2154
SmallVector<SDValue, 4 > Ops (drop_begin (Node->ops ()));
2155
2155
TargetLowering::MakeLibCallOptions CallOptions;
2156
+ CallOptions.IsPostTypeLegalization = true ;
2156
2157
// FIXME: This doesn't support tail calls.
2157
2158
std::pair<SDValue, SDValue> Tmp = TLI.makeLibCall (DAG, LC, RetVT,
2158
2159
Ops, CallOptions,
@@ -4342,6 +4343,8 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4342
4343
LLVM_DEBUG (dbgs () << " Trying to convert node to libcall\n " );
4343
4344
SmallVector<SDValue, 8 > Results;
4344
4345
SDLoc dl (Node);
4346
+ TargetLowering::MakeLibCallOptions CallOptions;
4347
+ CallOptions.IsPostTypeLegalization = true ;
4345
4348
// FIXME: Check flags on the node to see if we can use a finite call.
4346
4349
unsigned Opc = Node->getOpcode ();
4347
4350
switch (Opc) {
@@ -4384,7 +4387,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4384
4387
AtomicOrdering Order = cast<AtomicSDNode>(Node)->getMergedOrdering ();
4385
4388
RTLIB::Libcall LC = RTLIB::getOUTLINE_ATOMIC (Opc, Order, VT);
4386
4389
EVT RetVT = Node->getValueType (0 );
4387
- TargetLowering::MakeLibCallOptions CallOptions;
4388
4390
SmallVector<SDValue, 4 > Ops;
4389
4391
if (TLI.getLibcallName (LC)) {
4390
4392
// If outline atomic available, prepare its arguments and expand.
@@ -4422,7 +4424,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4422
4424
break ;
4423
4425
}
4424
4426
case ISD::CLEAR_CACHE: {
4425
- TargetLowering::MakeLibCallOptions CallOptions;
4426
4427
SDValue InputChain = Node->getOperand (0 );
4427
4428
SDValue StartVal = Node->getOperand (1 );
4428
4429
SDValue EndVal = Node->getOperand (2 );
@@ -4728,7 +4729,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4728
4729
break ;
4729
4730
case ISD::STRICT_BF16_TO_FP:
4730
4731
if (Node->getValueType (0 ) == MVT::f32 ) {
4731
- TargetLowering::MakeLibCallOptions CallOptions;
4732
4732
std::pair<SDValue, SDValue> Tmp = TLI.makeLibCall (
4733
4733
DAG, RTLIB::FPEXT_BF16_F32, MVT::f32 , Node->getOperand (1 ),
4734
4734
CallOptions, SDLoc (Node), Node->getOperand (0 ));
@@ -4738,7 +4738,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4738
4738
break ;
4739
4739
case ISD::STRICT_FP16_TO_FP: {
4740
4740
if (Node->getValueType (0 ) == MVT::f32 ) {
4741
- TargetLowering::MakeLibCallOptions CallOptions;
4742
4741
std::pair<SDValue, SDValue> Tmp = TLI.makeLibCall (
4743
4742
DAG, RTLIB::FPEXT_F16_F32, MVT::f32 , Node->getOperand (1 ), CallOptions,
4744
4743
SDLoc (Node), Node->getOperand (0 ));
@@ -4793,7 +4792,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4793
4792
// Sign/zero extend the argument if the libcall takes a larger type.
4794
4793
SDValue Op = DAG.getNode (Signed ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND, dl,
4795
4794
NVT, Node->getOperand (IsStrict ? 1 : 0 ));
4796
- TargetLowering::MakeLibCallOptions CallOptions;
4797
4795
CallOptions.setIsSigned (Signed);
4798
4796
std::pair<SDValue, SDValue> Tmp =
4799
4797
TLI.makeLibCall (DAG, LC, RVT, Op, CallOptions, dl, Chain);
@@ -4833,7 +4831,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4833
4831
assert (LC != RTLIB::UNKNOWN_LIBCALL && " Unable to legalize as libcall" );
4834
4832
4835
4833
SDValue Chain = IsStrict ? Node->getOperand (0 ) : SDValue ();
4836
- TargetLowering::MakeLibCallOptions CallOptions;
4837
4834
std::pair<SDValue, SDValue> Tmp =
4838
4835
TLI.makeLibCall (DAG, LC, NVT, Op, CallOptions, dl, Chain);
4839
4836
@@ -4861,7 +4858,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4861
4858
RTLIB::Libcall LC = RTLIB::getFPROUND (Op.getValueType (), VT);
4862
4859
assert (LC != RTLIB::UNKNOWN_LIBCALL && " Unable to legalize as libcall" );
4863
4860
4864
- TargetLowering::MakeLibCallOptions CallOptions;
4865
4861
std::pair<SDValue, SDValue> Tmp =
4866
4862
TLI.makeLibCall (DAG, LC, VT, Op, CallOptions, SDLoc (Node), Chain);
4867
4863
Results.push_back (Tmp.first );
@@ -4890,7 +4886,6 @@ void SelectionDAGLegalize::ConvertNodeToLibcall(SDNode *Node) {
4890
4886
4891
4887
assert (LC != RTLIB::UNKNOWN_LIBCALL && " Unable to legalize as libcall" );
4892
4888
4893
- TargetLowering::MakeLibCallOptions CallOptions;
4894
4889
std::pair<SDValue, SDValue> Tmp =
4895
4890
TLI.makeLibCall (DAG, LC, Node->getValueType (0 ), Node->getOperand (1 ),
4896
4891
CallOptions, SDLoc (Node), Node->getOperand (0 ));
0 commit comments