Skip to content

Commit c3ba68f

Browse files
committed
Merge remote-tracking branch 'intel/sycl' into steffen/func_ptr_case
2 parents e23842a + 430a3b3 commit c3ba68f

File tree

87 files changed

+9427
-622
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+9427
-622
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,3 +226,4 @@ sycl/test-e2e/ThreadSanitizer/ @intel/dpcpp-sanitizers-review
226226

227227
# ABI compatibility
228228
devops/compat_ci_exclude.sycl-rel-** @gmlueck @xtian-github
229+
sycl/test/abi/*sycl-rel*.dump @AlexeySachkov @KornevNikita

.github/workflows/sycl-nightly.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,21 @@ on:
88
permissions: read-all
99

1010
jobs:
11+
check_abi_symbols:
12+
name: Check ABI symbols tests match release branch
13+
runs-on: [Linux, build]
14+
if: github.repository == 'intel/llvm'
15+
container: ghcr.io/intel/llvm/ubuntu2404_build
16+
steps:
17+
- uses: actions/checkout@v4
18+
with:
19+
sparse-checkout: |
20+
sycl/test/abi
21+
- run: |
22+
git fetch --depth=1 origin sycl-rel-6_3
23+
git diff --exit-code -I "^# RUN" origin/sycl-rel-6_3:sycl/test/abi/sycl_symbols_linux.dump sycl/test/abi/sycl_symbols_linux-sycl-rel-6_3.dump
24+
git diff --exit-code -I "^# RUN" origin/sycl-rel-6_3:sycl/test/abi/sycl_symbols_windows.dump sycl/test/abi/sycl_symbols_windows-sycl-rel-6_3.dump
25+
1126
ubuntu2204_build:
1227
if: github.repository == 'intel/llvm'
1328
uses: ./.github/workflows/sycl-linux-build.yml

README.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,6 @@ for general guidelines around contributing to this project. You can then see
7979
[ContributeToDPCPP](./sycl/doc/developer/ContributeToDPCPP.md) for DPC++ specific
8080
guidelines.
8181

82-
## Late-outline OpenMP\* and OpenMP\* Offload
83-
84-
See [openmp](/openmp) branch.
85-
8682
# License
8783

8884
See [LICENSE](./sycl/LICENSE.TXT) for details.

clang/include/clang/Basic/Attr.td

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ def TargetAnyX86 : TargetArch<["x86", "x86_64"]>;
494494
def TargetSPIRV : TargetArch<["spirv", "spirv32", "spirv64"]>;
495495
def TargetWebAssembly : TargetArch<["wasm32", "wasm64"]>;
496496
def TargetNVPTX : TargetArch<["nvptx", "nvptx64"]>;
497+
def TargetNativeCPU : TargetArch<["native_cpu"]>;
497498
def TargetWindows : TargetSpec {
498499
let OSes = ["Win32"];
499500
}
@@ -4530,6 +4531,11 @@ def RISCVVLSCC: DeclOrTypeAttr, TargetSpecificAttr<TargetRISCV> {
45304531
let Documentation = [RISCVVLSCCDocs];
45314532
}
45324533

4534+
def NativeCPULibclcCall : DeclOrTypeAttr, TargetSpecificAttr<TargetNativeCPU> {
4535+
let Spellings = [Clang<"libclc_call", 0>];
4536+
let Documentation = [Undocumented];
4537+
}
4538+
45334539
def Target : InheritableAttr {
45344540
let Spellings = [GCC<"target">];
45354541
let Args = [StringArgument<"featuresStr">];

clang/include/clang/Basic/TargetInfo.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1711,6 +1711,11 @@ class TargetInfo : public TransferrableTargetInfo,
17111711
return CC_C;
17121712
}
17131713

1714+
/// Gets the calling convention for libclc built-ins for the given target.
1715+
virtual CallingConv getLibclcCallingConv() const {
1716+
return getDefaultCallingConv();
1717+
}
1718+
17141719
/// Get the default atomic options.
17151720
AtomicOptions getAtomicOpts() const { return AtomicOpts; }
17161721

clang/lib/AST/Type.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4341,6 +4341,7 @@ bool AttributedType::isCallingConv() const {
43414341
case attr::PreserveNone:
43424342
case attr::RISCVVectorCC:
43434343
case attr::RISCVVLSCC:
4344+
case attr::NativeCPULibclcCall:
43444345
return true;
43454346
}
43464347
llvm_unreachable("invalid attr kind");

clang/lib/AST/TypePrinter.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2125,6 +2125,9 @@ void TypePrinter::printAttributedAfter(const AttributedType *T,
21252125
case attr::RISCVVLSCC:
21262126
OS << "riscv_vls_cc";
21272127
break;
2128+
case attr::NativeCPULibclcCall:
2129+
OS << "libclc_call";
2130+
break;
21282131
case attr::NoDeref:
21292132
OS << "noderef";
21302133
break;

clang/lib/Basic/Targets/NativeCPU.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ class LLVM_LIBRARY_VISIBILITY NativeCPUTargetInfo final : public TargetInfo {
4949

5050
void setSupportedOpenCLOpts() override { supportAllOpenCLOpts(); }
5151

52+
CallingConv getLibclcCallingConv() const override { return CC_SpirFunction; }
53+
5254
CallingConvCheckResult checkCallingConvention(CallingConv CC) const override {
55+
if (CC == CC_SpirFunction)
56+
return CCCR_OK;
57+
5358
if (HostTarget)
5459
return HostTarget->checkCallingConvention(CC);
5560

clang/lib/CodeGen/CGCall.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,9 @@ static CallingConv getCallingConventionForDecl(const ObjCMethodDecl *D,
334334
}
335335
}
336336

337+
if (D->hasAttr<NativeCPULibclcCallAttr>())
338+
return CC_SpirFunction;
339+
337340
return CC_C;
338341
}
339342

clang/lib/CodeGen/Targets/NativeCPU.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class NativeCPUABIInfo : public DefaultABIInfo {
2020
public:
2121
NativeCPUABIInfo(CodeGen::CodeGenTypes &CGT, const ABIInfo *HostABIInfo)
2222
: DefaultABIInfo(CGT), HostABIInfo(HostABIInfo) {}
23+
24+
void computeInfo(CGFunctionInfo &FI) const override;
2325
};
2426

2527
class NativeCPUTargetCodeGenInfo : public TargetCodeGenInfo {
@@ -37,6 +39,17 @@ class NativeCPUTargetCodeGenInfo : public TargetCodeGenInfo {
3739
};
3840
} // namespace
3941

42+
void NativeCPUABIInfo::computeInfo(CGFunctionInfo &FI) const {
43+
if (HostABIInfo &&
44+
FI.getCallingConvention() != llvm::CallingConv::SPIR_FUNC) {
45+
HostABIInfo->computeInfo(FI);
46+
return;
47+
}
48+
49+
DefaultABIInfo::computeInfo(FI);
50+
FI.setEffectiveCallingConvention(llvm::CallingConv::C);
51+
}
52+
4053
std::unique_ptr<TargetCodeGenInfo> CodeGen::createNativeCPUTargetCodeGenInfo(
4154
CodeGenModule &CGM,
4255
std::unique_ptr<TargetCodeGenInfo> HostTargetCodeGenInfo) {

0 commit comments

Comments
 (0)