Author: Sergei Barannikov Date: 2023-05-19T23:54:55+03:00 New Revision: f2492f7cf0b175d5d9403cbfc970a521adbde659
URL: https://github.com/llvm/llvm-project/commit/f2492f7cf0b175d5d9403cbfc970a521adbde659 DIFF: https://github.com/llvm/llvm-project/commit/f2492f7cf0b175d5d9403cbfc970a521adbde659.diff LOG: [clang][CodeGen] Break up TargetInfo.cpp [1/8] `CCState` is a helper class originally used by the x86 implementation but has since been abused by other implementations. Remove this dependency by implementing customized versions of the class for implementations that need such functionality. Reviewed By: efriedma, MaskRay Differential Revision: https://reviews.llvm.org/D148089 Added: Modified: clang/lib/CodeGen/TargetInfo.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index 13c2a6b65f76..5514161da230 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -9056,13 +9056,17 @@ Address HexagonABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, namespace { class LanaiABIInfo : public DefaultABIInfo { + struct CCState { + unsigned FreeRegs; + }; + public: LanaiABIInfo(CodeGen::CodeGenTypes &CGT) : DefaultABIInfo(CGT) {} bool shouldUseInReg(QualType Ty, CCState &State) const; void computeInfo(CGFunctionInfo &FI) const override { - CCState State(FI); + CCState State; // Lanai uses 4 registers to pass arguments unless the function has the // regparm attribute set. if (FI.getHasRegParm()) { @@ -10074,6 +10078,10 @@ SparcV9TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, namespace { class ARCABIInfo : public DefaultABIInfo { + struct CCState { + unsigned FreeRegs; + }; + public: using DefaultABIInfo::DefaultABIInfo; @@ -10096,7 +10104,7 @@ class ARCABIInfo : public DefaultABIInfo { } void computeInfo(CGFunctionInfo &FI) const override { - CCState State(FI); + CCState State; // ARC uses 8 registers to pass arguments. State.FreeRegs = 8; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits