aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Benyei <guy.benyei@intel.com>2013-01-10 10:41:05 +0000
committerGuy Benyei <guy.benyei@intel.com>2013-01-10 10:41:05 +0000
commit7266cf6464bc3ec65044c5783df739cfe7b6cd61 (patch)
treea1e8270a6e445e1ffc4aa0ad6330b33b83fa67f9
parent4c60fc6cb9928fe03b6b4794260edb779b2c44e1 (diff)
Enable intel_ocl_bicc for x86_64 target only. Remove fix from 171969 that enabled this extension for multiple targets.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172052 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Basic/TargetInfo.h1
-rw-r--r--lib/Basic/Targets.cpp4
-rw-r--r--test/CodeGen/intel_ocl_bicc.c1
3 files changed, 4 insertions, 2 deletions
diff --git a/include/clang/Basic/TargetInfo.h b/include/clang/Basic/TargetInfo.h
index 7ecd6d5335..328ffd9601 100644
--- a/include/clang/Basic/TargetInfo.h
+++ b/include/clang/Basic/TargetInfo.h
@@ -775,7 +775,6 @@ public:
return CCCR_Warning;
case CC_C:
case CC_Default:
- case CC_IntelOclBicc:
return CCCR_OK;
}
}
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index f79aec3c5c..3426262b2a 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -2895,7 +2895,9 @@ public:
}
virtual CallingConvCheckResult checkCallingConvention(CallingConv CC) const {
- return TargetInfo::checkCallingConvention(CC);
+ return (CC == CC_Default ||
+ CC == CC_C ||
+ CC == CC_IntelOclBicc) ? CCCR_OK : CCCR_Warning;
}
virtual CallingConv getDefaultCallingConv(CallingConvMethodType MT) const {
diff --git a/test/CodeGen/intel_ocl_bicc.c b/test/CodeGen/intel_ocl_bicc.c
index 2f5c58cfc3..c5c5229e1c 100644
--- a/test/CodeGen/intel_ocl_bicc.c
+++ b/test/CodeGen/intel_ocl_bicc.c
@@ -1,4 +1,5 @@
// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s
void __attribute__((intel_ocl_bicc)) f1(void);