Pierre-vh created this revision. Pierre-vh added reviewers: MaskRay, stuij. Herald added subscribers: kosarev, mattd, gchakrabarti, asavonic, StephenFan, kerbowa, jvesely. Herald added a project: All. Pierre-vh requested review of this revision. Herald added subscribers: cfe-commits, jholewinski. Herald added a project: clang.
All targets that currently implement `__bf16` use the exact same mangled name. Reduce code duplication by adding that name to the default implementation, like it's done in e.g. `getLongDoubleMangling` and `getFloat128Mangling` Depends on D139398 <https://reviews.llvm.org/D139398> Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D139608 Files: clang/include/clang/Basic/TargetInfo.h clang/lib/Basic/Targets/AArch64.h clang/lib/Basic/Targets/AMDGPU.h clang/lib/Basic/Targets/ARM.h clang/lib/Basic/Targets/NVPTX.h clang/lib/Basic/Targets/X86.h Index: clang/lib/Basic/Targets/X86.h =================================================================== --- clang/lib/Basic/Targets/X86.h +++ clang/lib/Basic/Targets/X86.h @@ -415,8 +415,6 @@ uint64_t getPointerAlignV(LangAS AddrSpace) const override { return getPointerWidthV(AddrSpace); } - - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; }; // X86-32 generic target Index: clang/lib/Basic/Targets/NVPTX.h =================================================================== --- clang/lib/Basic/Targets/NVPTX.h +++ clang/lib/Basic/Targets/NVPTX.h @@ -179,7 +179,6 @@ bool hasBitIntType() const override { return true; } bool hasBFloat16Type() const override { return true; } - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; }; } // namespace targets } // namespace clang Index: clang/lib/Basic/Targets/ARM.h =================================================================== --- clang/lib/Basic/Targets/ARM.h +++ clang/lib/Basic/Targets/ARM.h @@ -197,8 +197,6 @@ bool hasSjLjLowering() const override; bool hasBitIntType() const override { return true; } - - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; }; class LLVM_LIBRARY_VISIBILITY ARMleTargetInfo : public ARMTargetInfo { Index: clang/lib/Basic/Targets/AMDGPU.h =================================================================== --- clang/lib/Basic/Targets/AMDGPU.h +++ clang/lib/Basic/Targets/AMDGPU.h @@ -116,7 +116,6 @@ } bool hasBFloat16Type() const override { return isAMDGCN(getTriple()); } - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; const char *getClobbers() const override { return ""; } Index: clang/lib/Basic/Targets/AArch64.h =================================================================== --- clang/lib/Basic/Targets/AArch64.h +++ clang/lib/Basic/Targets/AArch64.h @@ -167,7 +167,6 @@ int getEHDataRegisterNumber(unsigned RegNo) const override; - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; bool hasInt128Type() const override; bool hasBitIntType() const override { return true; } Index: clang/include/clang/Basic/TargetInfo.h =================================================================== --- clang/include/clang/Basic/TargetInfo.h +++ clang/include/clang/Basic/TargetInfo.h @@ -758,9 +758,7 @@ } /// Return the mangled code of bfloat. - virtual const char *getBFloat16Mangling() const { - llvm_unreachable("bfloat not implemented on this target"); - } + virtual const char *getBFloat16Mangling() const { return "u6__bf16"; } /// Return the value for the C99 FLT_EVAL_METHOD macro. virtual LangOptions::FPEvalMethodKind getFPEvalMethod() const {
Index: clang/lib/Basic/Targets/X86.h =================================================================== --- clang/lib/Basic/Targets/X86.h +++ clang/lib/Basic/Targets/X86.h @@ -415,8 +415,6 @@ uint64_t getPointerAlignV(LangAS AddrSpace) const override { return getPointerWidthV(AddrSpace); } - - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; }; // X86-32 generic target Index: clang/lib/Basic/Targets/NVPTX.h =================================================================== --- clang/lib/Basic/Targets/NVPTX.h +++ clang/lib/Basic/Targets/NVPTX.h @@ -179,7 +179,6 @@ bool hasBitIntType() const override { return true; } bool hasBFloat16Type() const override { return true; } - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; }; } // namespace targets } // namespace clang Index: clang/lib/Basic/Targets/ARM.h =================================================================== --- clang/lib/Basic/Targets/ARM.h +++ clang/lib/Basic/Targets/ARM.h @@ -197,8 +197,6 @@ bool hasSjLjLowering() const override; bool hasBitIntType() const override { return true; } - - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; }; class LLVM_LIBRARY_VISIBILITY ARMleTargetInfo : public ARMTargetInfo { Index: clang/lib/Basic/Targets/AMDGPU.h =================================================================== --- clang/lib/Basic/Targets/AMDGPU.h +++ clang/lib/Basic/Targets/AMDGPU.h @@ -116,7 +116,6 @@ } bool hasBFloat16Type() const override { return isAMDGCN(getTriple()); } - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; const char *getClobbers() const override { return ""; } Index: clang/lib/Basic/Targets/AArch64.h =================================================================== --- clang/lib/Basic/Targets/AArch64.h +++ clang/lib/Basic/Targets/AArch64.h @@ -167,7 +167,6 @@ int getEHDataRegisterNumber(unsigned RegNo) const override; - const char *getBFloat16Mangling() const override { return "u6__bf16"; }; bool hasInt128Type() const override; bool hasBitIntType() const override { return true; } Index: clang/include/clang/Basic/TargetInfo.h =================================================================== --- clang/include/clang/Basic/TargetInfo.h +++ clang/include/clang/Basic/TargetInfo.h @@ -758,9 +758,7 @@ } /// Return the mangled code of bfloat. - virtual const char *getBFloat16Mangling() const { - llvm_unreachable("bfloat not implemented on this target"); - } + virtual const char *getBFloat16Mangling() const { return "u6__bf16"; } /// Return the value for the C99 FLT_EVAL_METHOD macro. virtual LangOptions::FPEvalMethodKind getFPEvalMethod() const {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits