Index: include/clang-c/Index.h =================================================================== --- include/clang-c/Index.h +++ include/clang-c/Index.h @@ -2854,7 +2854,7 @@ CXCallingConv_X86Pascal = 5, CXCallingConv_AAPCS = 6, CXCallingConv_AAPCS_VFP = 7, - CXCallingConv_PnaclCall = 8, + CXCallingConv_PnaclCall = 8, /* unused */ CXCallingConv_IntelOclBicc = 9, CXCallingConv_X86_64Win64 = 10, CXCallingConv_X86_64SysV = 11, Index: include/clang/AST/Type.h =================================================================== --- include/clang/AST/Type.h +++ 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: include/clang/Basic/Attr.td =================================================================== --- include/clang/Basic/Attr.td +++ 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: include/clang/Basic/Specifiers.h =================================================================== --- include/clang/Basic/Specifiers.h +++ 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: lib/AST/Type.cpp =================================================================== --- lib/AST/Type.cpp +++ 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: lib/AST/TypePrinter.cpp =================================================================== --- lib/AST/TypePrinter.cpp +++ 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: lib/Basic/Targets.cpp =================================================================== --- lib/Basic/Targets.cpp +++ lib/Basic/Targets.cpp @@ -688,8 +688,7 @@ } typename Target::CallingConvCheckResult checkCallingConvention( CallingConv CC) const override { - return CC == CC_PnaclCall ? Target::CCCR_OK : - Target::checkCallingConvention(CC); + return Target::checkCallingConvention(CC); } }; } // end anonymous namespace. Index: lib/CodeGen/CGCall.cpp =================================================================== --- lib/CodeGen/CGCall.cpp +++ 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: lib/CodeGen/TargetInfo.cpp =================================================================== --- lib/CodeGen/TargetInfo.cpp +++ lib/CodeGen/TargetInfo.cpp @@ -3095,12 +3095,11 @@ class NaClX86_64ABIInfo : public ABIInfo { public: NaClX86_64ABIInfo(CodeGen::CodeGenTypes &CGT, bool HasAVX) - : ABIInfo(CGT), PInfo(CGT), NInfo(CGT, HasAVX) {} + : ABIInfo(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. }; @@ -3118,10 +3117,7 @@ } void NaClX86_64ABIInfo::computeInfo(CGFunctionInfo &FI) const { - if (FI.getASTCallingConvention() == CC_PnaclCall) - PInfo.computeInfo(FI); - else - NInfo.computeInfo(FI); + NInfo.computeInfo(FI); } llvm::Value *NaClX86_64ABIInfo::EmitVAArg(llvm::Value *VAListAddr, QualType Ty, @@ -5102,12 +5098,11 @@ class NaClARMABIInfo : public ABIInfo { public: NaClARMABIInfo(CodeGen::CodeGenTypes &CGT, ARMABIInfo::ABIKind Kind) - : ABIInfo(CGT), PInfo(CGT), NInfo(CGT, Kind) {} + : ABIInfo(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. }; @@ -5120,10 +5115,7 @@ } void NaClARMABIInfo::computeInfo(CGFunctionInfo &FI) const { - if (FI.getASTCallingConvention() == CC_PnaclCall) - PInfo.computeInfo(FI); - else - static_cast(NInfo).computeInfo(FI); + static_cast(NInfo).computeInfo(FI); } llvm::Value *NaClARMABIInfo::EmitVAArg(llvm::Value *VAListAddr, QualType Ty, Index: lib/Sema/SemaDeclAttr.cpp =================================================================== --- lib/Sema/SemaDeclAttr.cpp +++ 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: lib/Sema/SemaType.cpp =================================================================== --- lib/Sema/SemaType.cpp +++ 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: test/CodeGen/arm-pnaclcall.c =================================================================== --- test/CodeGen/arm-pnaclcall.c +++ /dev/null @@ -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: test/CodeGen/x86_64-arguments-nacl.c =================================================================== --- test/CodeGen/x86_64-arguments-nacl.c +++ 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: test/Sema/callingconv.c =================================================================== --- test/Sema/callingconv.c +++ 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: tools/libclang/CXType.cpp =================================================================== --- tools/libclang/CXType.cpp +++ 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;