efriedma added inline comments.
================ Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:581 RTLIB::POWI_F128, RTLIB::POWI_PPCF128); if (!TLI.getLibcallName(LC)) { ---------------- bjope wrote: > efriedma wrote: > > This is missing a diagnostic for the exponent. We don't want to silently > > miscompile if someone uses an exponent that isn't supported by the target. > Not sure exactly what you suggest. Is that a general comment for all places > in SelectionDAG where we may emit calls to RTLIB::POWI or what makes this > SoftenFloatRes special? > > If we end up using mismatching types in the call, wouldn't that being > detected as ICE elsewhere? Only reason I made changes to this function in the > first place was due to the historical assert above regarding the type of the > exponent in FPOWI. Maybe I should just drop that assert instead? This is the > only place where that is checked, but I figure that the SoftenFloatRes > legalization is just one out of many places where FPOWI is legalized and > lowered into libcalls to RTLIB::POWI. It's a general issue with emitting calls to RTLIB::POWI; the second parameter to the call has to have type "int", to match the definition in libgcc/compiler-rt. I guess there are a few other places that also emit calls to these functions. > If we end up using mismatching types in the call, wouldn't that being > detected as ICE elsewhere? In SelectionDAG, function/pointer types don't exist; the callee of a function call is just a integer. So we'd never detect mismatched types; we'd just silently emit a call using the wrong calling convention. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99439/new/ https://reviews.llvm.org/D99439 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits