espindola created this revision. espindola added reviewers: rnk, echristo. With https://reviews.llvm.org/D44706 we can just forward to CreateRuntimeFunction.
https://reviews.llvm.org/D44710 Files: lib/CodeGen/CodeGenModule.cpp test/CodeGen/mingw-long-double.c Index: test/CodeGen/mingw-long-double.c =================================================================== --- test/CodeGen/mingw-long-double.c +++ test/CodeGen/mingw-long-double.c @@ -42,6 +42,6 @@ // GNU64: define dso_local void @TestLDC({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 }* %x) // MSC64: define dso_local void @TestLDC({ double, double }* noalias sret %agg.result, { double, double }* %x) -// GNU32: declare void @__mulxc3 -// GNU64: declare void @__mulxc3 -// MSC64: declare void @__muldc3 +// GNU32: declare dso_local void @__mulxc3 +// GNU64: declare dso_local void @__mulxc3 +// MSC64: declare dso_local void @__muldc3 Index: lib/CodeGen/CodeGenModule.cpp =================================================================== --- lib/CodeGen/CodeGenModule.cpp +++ lib/CodeGen/CodeGenModule.cpp @@ -2640,13 +2640,7 @@ llvm::Constant * CodeGenModule::CreateBuiltinFunction(llvm::FunctionType *FTy, StringRef Name, llvm::AttributeList ExtraAttrs) { - llvm::Constant *C = - GetOrCreateLLVMFunction(Name, FTy, GlobalDecl(), /*ForVTable=*/false, - /*DontDefer=*/false, /*IsThunk=*/false, ExtraAttrs); - if (auto *F = dyn_cast<llvm::Function>(C)) - if (F->empty()) - F->setCallingConv(getRuntimeCC()); - return C; + return CreateRuntimeFunction(FTy, Name, ExtraAttrs, true); } /// isTypeConstant - Determine whether an object of this type can be emitted
Index: test/CodeGen/mingw-long-double.c =================================================================== --- test/CodeGen/mingw-long-double.c +++ test/CodeGen/mingw-long-double.c @@ -42,6 +42,6 @@ // GNU64: define dso_local void @TestLDC({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 }* %x) // MSC64: define dso_local void @TestLDC({ double, double }* noalias sret %agg.result, { double, double }* %x) -// GNU32: declare void @__mulxc3 -// GNU64: declare void @__mulxc3 -// MSC64: declare void @__muldc3 +// GNU32: declare dso_local void @__mulxc3 +// GNU64: declare dso_local void @__mulxc3 +// MSC64: declare dso_local void @__muldc3 Index: lib/CodeGen/CodeGenModule.cpp =================================================================== --- lib/CodeGen/CodeGenModule.cpp +++ lib/CodeGen/CodeGenModule.cpp @@ -2640,13 +2640,7 @@ llvm::Constant * CodeGenModule::CreateBuiltinFunction(llvm::FunctionType *FTy, StringRef Name, llvm::AttributeList ExtraAttrs) { - llvm::Constant *C = - GetOrCreateLLVMFunction(Name, FTy, GlobalDecl(), /*ForVTable=*/false, - /*DontDefer=*/false, /*IsThunk=*/false, ExtraAttrs); - if (auto *F = dyn_cast<llvm::Function>(C)) - if (F->empty()) - F->setCallingConv(getRuntimeCC()); - return C; + return CreateRuntimeFunction(FTy, Name, ExtraAttrs, true); } /// isTypeConstant - Determine whether an object of this type can be emitted
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits