[flang-commits] [flang] [llvm] [flang] Use backend fp128 support to determine REAL(16) availability (PR #221907)
Michael Kruse via flang-commits
flang-commits at lists.llvm.org
Mon Sep 14 08:46:14 PDT 2026
================
@@ -67,7 +71,30 @@ namespace Fortran::tools {
constexpr bool f128Support = false;
#endif
- if constexpr (!f128Support) {
+ bool f128BESupport = false;
+ llvm::LLVMContext ctx;
+ std::unique_ptr<llvm::Module> dummyModule =
+ std::make_unique<llvm::Module>("quad-test", ctx);
+ dummyModule->setTargetTriple(targetMachine.getTargetTriple());
+ dummyModule->setDataLayout(targetMachine.createDataLayout());
+
+ llvm::FunctionType *dummyFTy =
+ llvm::FunctionType::get(llvm::Type::getVoidTy(ctx), false);
+ llvm::Function *dummyF = llvm::Function::Create(dummyFTy,
+ llvm::GlobalValue::ExternalLinkage, "quad-test", dummyModule.get());
+
+ const llvm::TargetLowering *dummyTLI =
+ targetMachine.getSubtargetImpl(*dummyF)->getTargetLowering();
+
+ if (dummyTLI) {
+ llvm::EVT fp128EVT = llvm::EVT::getEVT(llvm::Type::getFP128Ty(ctx));
----------------
Meinersbur wrote:
This requires linking to the CodeGen component:
```
diff --git a/flang/lib/Frontend/CMakeLists.txt b/flang/lib/Frontend/CMakeLists.txt
index bd67ec444f358..f84c226e92fef 100644
--- a/flang/lib/Frontend/CMakeLists.txt
+++ b/flang/lib/Frontend/CMakeLists.txt
@@ -57,6 +57,7 @@ add_flang_library(flangFrontend
Plugins
Analysis
BitReader
+ CodeGen
Extensions
IRPrinter
IRReader
```
Why even create a dummy module and not just call `targetLowering->isTypeLegal(llvm::MVT::f128)`?
https://github.com/llvm/llvm-project/pull/221907
More information about the flang-commits
mailing list