Index: cfe/trunk/include/clang-c/Index.h =================================================================== --- cfe/trunk/include/clang-c/Index.h +++ cfe/trunk/include/clang-c/Index.h @@ -2854,7 +2854,7 @@ CXCallingConv_X86Pascal = 5, CXCallingConv_AAPCS = 6, CXCallingConv_AAPCS_VFP = 7, - CXCallingConv_PnaclCall = 8, + /* Value 8 was PnaclCall, but it was never used, so it could safely be re-used. */ CXCallingConv_IntelOclBicc = 9, CXCallingConv_X86_64Win64 = 10, CXCallingConv_X86_64SysV = 11, Index: cfe/trunk/include/clang/AST/Type.h =================================================================== --- cfe/trunk/include/clang/AST/Type.h +++ cfe/trunk/include/clang/AST/Type.h @@ -3472,7 +3472,6 @@ attr_thiscall, attr_pascal, attr_vectorcall, - attr_pnaclcall, attr_inteloclbicc, attr_ms_abi, attr_sysv_abi, Index: cfe/trunk/include/clang/Basic/Attr.td =================================================================== --- cfe/trunk/include/clang/Basic/Attr.td +++ cfe/trunk/include/clang/Basic/Attr.td @@ -1141,12 +1141,6 @@ let Documentation = [Undocumented]; } -def PnaclCall : InheritableAttr { - let Spellings = [GNU<"pnaclcall">]; -// let Subjects = [Function, ObjCMethod]; - let Documentation = [Undocumented]; -} - def IntelOclBicc : InheritableAttr { let Spellings = [GNU<"intel_ocl_bicc">]; // let Subjects = [Function, ObjCMethod]; Index: cfe/trunk/include/clang/Basic/Specifiers.h =================================================================== --- cfe/trunk/include/clang/Basic/Specifiers.h +++ cfe/trunk/include/clang/Basic/Specifiers.h @@ -209,7 +209,6 @@ CC_X86_64SysV, // __attribute__((sysv_abi)) CC_AAPCS, // __attribute__((pcs("aapcs"))) CC_AAPCS_VFP, // __attribute__((pcs("aapcs-vfp"))) - CC_PnaclCall, // __attribute__((pnaclcall)) CC_IntelOclBicc, // __attribute__((intel_ocl_bicc)) CC_SpirFunction, // default for OpenCL functions on SPIR target CC_SpirKernel // inferred for OpenCL kernels on SPIR target Index: cfe/trunk/lib/AST/Type.cpp =================================================================== --- cfe/trunk/lib/AST/Type.cpp +++ cfe/trunk/lib/AST/Type.cpp @@ -1586,7 +1586,6 @@ case CC_X86_64SysV: return "sysv_abi"; case CC_AAPCS: return "aapcs"; case CC_AAPCS_VFP: return "aapcs-vfp"; - case CC_PnaclCall: return "pnaclcall"; case CC_IntelOclBicc: return "intel_ocl_bicc"; case CC_SpirFunction: return "spir_function"; case CC_SpirKernel: return "spir_kernel"; @@ -1938,7 +1937,6 @@ case attr_pascal: case attr_ms_abi: case attr_sysv_abi: - case attr_pnaclcall: case attr_inteloclbicc: return true; } Index: cfe/trunk/lib/AST/TypePrinter.cpp =================================================================== --- cfe/trunk/lib/AST/TypePrinter.cpp +++ cfe/trunk/lib/AST/TypePrinter.cpp @@ -685,9 +685,6 @@ case CC_AAPCS_VFP: OS << " __attribute__((pcs(\"aapcs-vfp\")))"; break; - case CC_PnaclCall: - OS << " __attribute__((pnaclcall))"; - break; case CC_IntelOclBicc: OS << " __attribute__((intel_ocl_bicc))"; break; @@ -1257,7 +1254,6 @@ OS << ')'; break; } - case AttributedType::attr_pnaclcall: OS << "pnaclcall"; break; case AttributedType::attr_inteloclbicc: OS << "inteloclbicc"; break; } OS << "))"; Index: cfe/trunk/lib/Basic/Targets.cpp =================================================================== --- cfe/trunk/lib/Basic/Targets.cpp +++ cfe/trunk/lib/Basic/Targets.cpp @@ -686,11 +686,6 @@ this->DescriptionString = "e-p:32:32-i64:64"; } } - typename Target::CallingConvCheckResult checkCallingConvention( - CallingConv CC) const override { - return CC == CC_PnaclCall ? Target::CCCR_OK : - Target::checkCallingConvention(CC); - } }; } // end anonymous namespace. Index: cfe/trunk/lib/CodeGen/CGCall.cpp =================================================================== --- cfe/trunk/lib/CodeGen/CGCall.cpp +++ cfe/trunk/lib/CodeGen/CGCall.cpp @@ -135,9 +135,6 @@ if (PcsAttr *PCS = D->getAttr()) return (PCS->getPCS() == PcsAttr::AAPCS ? CC_AAPCS : CC_AAPCS_VFP); - if (D->hasAttr()) - return CC_PnaclCall; - if (D->hasAttr()) return CC_IntelOclBicc; Index: cfe/trunk/lib/CodeGen/TargetInfo.cpp =================================================================== --- cfe/trunk/lib/CodeGen/TargetInfo.cpp +++ cfe/trunk/lib/CodeGen/TargetInfo.cpp @@ -3092,23 +3092,11 @@ namespace { -class NaClX86_64ABIInfo : public ABIInfo { - public: - NaClX86_64ABIInfo(CodeGen::CodeGenTypes &CGT, bool HasAVX) - : ABIInfo(CGT), PInfo(CGT), NInfo(CGT, HasAVX) {} - void computeInfo(CGFunctionInfo &FI) const override; - llvm::Value *EmitVAArg(llvm::Value *VAListAddr, QualType Ty, - CodeGenFunction &CGF) const override; - private: - PNaClABIInfo PInfo; // Used for generating calls with pnaclcall callingconv. - X86_64ABIInfo NInfo; // Used for everything else. -}; - class NaClX86_64TargetCodeGenInfo : public TargetCodeGenInfo { bool HasAVX; public: NaClX86_64TargetCodeGenInfo(CodeGen::CodeGenTypes &CGT, bool HasAVX) - : TargetCodeGenInfo(new NaClX86_64ABIInfo(CGT, HasAVX)), HasAVX(HasAVX) { + : TargetCodeGenInfo(new X86_64ABIInfo(CGT, HasAVX)), HasAVX(HasAVX) { } unsigned getOpenMPSimdDefaultAlignment(QualType) const override { return HasAVX ? 32 : 16; @@ -3117,21 +3105,6 @@ } -void NaClX86_64ABIInfo::computeInfo(CGFunctionInfo &FI) const { - if (FI.getASTCallingConvention() == CC_PnaclCall) - PInfo.computeInfo(FI); - else - NInfo.computeInfo(FI); -} - -llvm::Value *NaClX86_64ABIInfo::EmitVAArg(llvm::Value *VAListAddr, QualType Ty, - CodeGenFunction &CGF) const { - // Always use the native convention; calling pnacl-style varargs functions - // is unuspported. - return NInfo.EmitVAArg(VAListAddr, Ty, CGF); -} - - // PowerPC-32 namespace { /// PPC32_SVR4_ABIInfo - The 32-bit PowerPC ELF (SVR4) ABI information. @@ -5098,39 +5071,11 @@ } namespace { - -class NaClARMABIInfo : public ABIInfo { - public: - NaClARMABIInfo(CodeGen::CodeGenTypes &CGT, ARMABIInfo::ABIKind Kind) - : ABIInfo(CGT), PInfo(CGT), NInfo(CGT, Kind) {} - void computeInfo(CGFunctionInfo &FI) const override; - llvm::Value *EmitVAArg(llvm::Value *VAListAddr, QualType Ty, - CodeGenFunction &CGF) const override; - private: - PNaClABIInfo PInfo; // Used for generating calls with pnaclcall callingconv. - ARMABIInfo NInfo; // Used for everything else. -}; - class NaClARMTargetCodeGenInfo : public TargetCodeGenInfo { public: NaClARMTargetCodeGenInfo(CodeGen::CodeGenTypes &CGT, ARMABIInfo::ABIKind Kind) - : TargetCodeGenInfo(new NaClARMABIInfo(CGT, Kind)) {} + : TargetCodeGenInfo(new ARMABIInfo(CGT, Kind)) {} }; - -} - -void NaClARMABIInfo::computeInfo(CGFunctionInfo &FI) const { - if (FI.getASTCallingConvention() == CC_PnaclCall) - PInfo.computeInfo(FI); - else - static_cast(NInfo).computeInfo(FI); -} - -llvm::Value *NaClARMABIInfo::EmitVAArg(llvm::Value *VAListAddr, QualType Ty, - CodeGenFunction &CGF) const { - // Always use the native convention; calling pnacl-style varargs functions - // is unsupported. - return static_cast(NInfo).EmitVAArg(VAListAddr, Ty, CGF); } //===----------------------------------------------------------------------===// Index: cfe/trunk/lib/Sema/SemaDeclAttr.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaDeclAttr.cpp +++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp @@ -3331,11 +3331,6 @@ Attr.getAttributeSpellingListIndex())); return; } - case AttributeList::AT_PnaclCall: - D->addAttr(::new (S.Context) - PnaclCallAttr(Attr.getRange(), S.Context, - Attr.getAttributeSpellingListIndex())); - return; case AttributeList::AT_IntelOclBicc: D->addAttr(::new (S.Context) IntelOclBiccAttr(Attr.getRange(), S.Context, @@ -3392,7 +3387,6 @@ Diag(attr.getLoc(), diag::err_invalid_pcs); return true; } - case AttributeList::AT_PnaclCall: CC = CC_PnaclCall; break; case AttributeList::AT_IntelOclBicc: CC = CC_IntelOclBicc; break; default: llvm_unreachable("unexpected attribute kind"); } @@ -4668,7 +4662,6 @@ case AttributeList::AT_MSABI: case AttributeList::AT_SysVABI: case AttributeList::AT_Pcs: - case AttributeList::AT_PnaclCall: case AttributeList::AT_IntelOclBicc: handleCallConvAttr(S, D, Attr); break; Index: cfe/trunk/lib/Sema/SemaType.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaType.cpp +++ cfe/trunk/lib/Sema/SemaType.cpp @@ -112,7 +112,6 @@ case AttributeList::AT_SysVABI: \ case AttributeList::AT_Regparm: \ case AttributeList::AT_Pcs: \ - case AttributeList::AT_PnaclCall: \ case AttributeList::AT_IntelOclBicc // Microsoft-specific type qualifiers. @@ -3448,8 +3447,6 @@ case AttributedType::attr_pcs: case AttributedType::attr_pcs_vfp: return AttributeList::AT_Pcs; - case AttributedType::attr_pnaclcall: - return AttributeList::AT_PnaclCall; case AttributedType::attr_inteloclbicc: return AttributeList::AT_IntelOclBicc; case AttributedType::attr_ms_abi: @@ -4478,8 +4475,6 @@ .Case("aapcs", AttributedType::attr_pcs) .Case("aapcs-vfp", AttributedType::attr_pcs_vfp); } - case AttributeList::AT_PnaclCall: - return AttributedType::attr_pnaclcall; case AttributeList::AT_IntelOclBicc: return AttributedType::attr_inteloclbicc; case AttributeList::AT_MSABI: Index: cfe/trunk/test/CodeGen/arm-pnaclcall.c =================================================================== --- cfe/trunk/test/CodeGen/arm-pnaclcall.c +++ cfe/trunk/test/CodeGen/arm-pnaclcall.c @@ -1,33 +0,0 @@ -// RUN: %clang_cc1 -triple armv7-unknown-nacl-gnueabi \ -// RUN: -ffreestanding -mfloat-abi hard -target-cpu cortex-a8 \ -// RUN: -emit-llvm -w -o - %s | FileCheck %s - -// Test that functions with pnaclcall attribute generate portable bitcode -// like the le32 arch target - -typedef struct { - int a; - int b; -} s1; -// CHECK-LABEL: define i32 @f48(%struct.s1* byval %s) -int __attribute__((pnaclcall)) f48(s1 s) { return s.a; } - -// CHECK-LABEL: define void @f49(%struct.s1* noalias sret %agg.result) -s1 __attribute__((pnaclcall)) f49() { s1 s; s.a = s.b = 1; return s; } - -union simple_union { - int a; - char b; -}; -// Unions should be passed as byval structs -// CHECK-LABEL: define void @f50(%union.simple_union* byval %s) -void __attribute__((pnaclcall)) f50(union simple_union s) {} - -typedef struct { - int b4 : 4; - int b3 : 3; - int b8 : 8; -} bitfield1; -// Bitfields should be passed as byval structs -// CHECK-LABEL: define void @f51(%struct.bitfield1* byval %bf1) -void __attribute__((pnaclcall)) f51(bitfield1 bf1) {} Index: cfe/trunk/test/CodeGen/x86_64-arguments-nacl.c =================================================================== --- cfe/trunk/test/CodeGen/x86_64-arguments-nacl.c +++ cfe/trunk/test/CodeGen/x86_64-arguments-nacl.c @@ -90,31 +90,3 @@ { func(ss); } - - -typedef struct { - int a; - int b; -} s1; -// CHECK-LABEL: define i32 @f48(%struct.s1* byval %s) -int __attribute__((pnaclcall)) f48(s1 s) { return s.a; } - -// CHECK-LABEL: define void @f49(%struct.s1* noalias sret %agg.result) -s1 __attribute__((pnaclcall)) f49() { s1 s; s.a = s.b = 1; return s; } - -union simple_union { - int a; - char b; -}; -// Unions should be passed as byval structs -// CHECK-LABEL: define void @f50(%union.simple_union* byval %s) -void __attribute__((pnaclcall)) f50(union simple_union s) {} - -typedef struct { - int b4 : 4; - int b3 : 3; - int b8 : 8; -} bitfield1; -// Bitfields should be passed as byval structs -// CHECK-LABEL: define void @f51(%struct.bitfield1* byval %bf1) -void __attribute__((pnaclcall)) f51(bitfield1 bf1) {} Index: cfe/trunk/test/Sema/callingconv.c =================================================================== --- cfe/trunk/test/Sema/callingconv.c +++ cfe/trunk/test/Sema/callingconv.c @@ -59,8 +59,6 @@ typedef __attribute__((stdcall)) void (*PROC)(); PROC __attribute__((cdecl)) ctest4(const char *x) {} -void __attribute__((pnaclcall)) pnaclfunc(float *a) {} // expected-warning {{calling convention 'pnaclcall' ignored for this target}} - void __attribute__((intel_ocl_bicc)) inteloclbifunc(float *a) {} typedef void typedef_fun_t(int); Index: cfe/trunk/tools/libclang/CXType.cpp =================================================================== --- cfe/trunk/tools/libclang/CXType.cpp +++ cfe/trunk/tools/libclang/CXType.cpp @@ -525,7 +525,6 @@ TCALLINGCONV(X86_64SysV); TCALLINGCONV(AAPCS); TCALLINGCONV(AAPCS_VFP); - TCALLINGCONV(PnaclCall); TCALLINGCONV(IntelOclBicc); case CC_SpirFunction: return CXCallingConv_Unexposed; case CC_SpirKernel: return CXCallingConv_Unexposed;