Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SYCL] Refactor address space handling in CodeGen library #2864

Merged
merged 27 commits into from
Feb 4, 2021

Conversation

bader
Copy link
Contributor

@bader bader commented Dec 4, 2020

This patch replaced SYCL specific patches aiming to implement address space handling with the approach proposed in the code review comments for https://reviews.llvm.org/D89909.
New approach: overload a couple of methods in SPIRTargetCodeGenInfo to set opencl_global address space for global variables and opencl_private for variables on the stack. The rest methods of the CodeGen library should already use these hooks and address space map to handle any inconsistencies in address spaces.

There are a lot of customizations in CodeGen library enabling generic
address space as default for SYCL mode. Based on feedback from the
community there is a better way to get similar results. CodeGen
TargetInfo object is be used to set default address space for global
variables and stack allocations.
This fixes clang/test/CodeGenSYCL/const-wg-init.cpp
@bader bader added the upstream This change is related to upstreaming SYCL support to llorg. label Dec 4, 2020
@bader
Copy link
Contributor Author

bader commented Dec 4, 2020

Check-clang results on my local machine:

Failed Tests (24):
Clang :: CodeGenSYCL/accessor_inheritance.cpp
Clang :: CodeGenSYCL/address-space-cond-op.cpp
Clang :: CodeGenSYCL/address-space-new.cpp
Clang :: CodeGenSYCL/address-space-of-returns.cpp
Clang :: CodeGenSYCL/address-space-parameter-conversions.cpp
Clang :: CodeGenSYCL/basic-kernel-wrapper.cpp
Clang :: CodeGenSYCL/device-variables.cpp
Clang :: CodeGenSYCL/inheritance.cpp
Clang :: CodeGenSYCL/inline_asm.cpp
Clang :: CodeGenSYCL/intel-fpga-ivdep-array.cpp
Clang :: CodeGenSYCL/intel-fpga-ivdep-embedded-loops.cpp
Clang :: CodeGenSYCL/intel-fpga-ivdep-global.cpp
Clang :: CodeGenSYCL/intel-fpga-local.cpp
Clang :: CodeGenSYCL/intel-fpga-loops.cpp
Clang :: CodeGenSYCL/intel-fpga-mem-builtin.cpp
Clang :: CodeGenSYCL/intel-fpga-reg.cpp
Clang :: CodeGenSYCL/kernel-param-acc-array.cpp
Clang :: CodeGenSYCL/kernel-param-member-acc-array.cpp
Clang :: CodeGenSYCL/kernel-param-pod-array.cpp
Clang :: CodeGenSYCL/sampler.cpp
Clang :: CodeGenSYCL/spir-calling-conv.cpp
Clang :: CodeGenSYCL/spir-enum.cpp
Clang :: CodeGenSYCL/sycl-device-alias.cpp
Clang :: CodeGenSYCL/unique-stable-name.cpp

Most of the tests fail due to invalidated FileCheck checks, but the are a few compiler crashes:

  • CodeGenSYCL/sycl-device-alias.cpp crashes inside EmitAliasDefinition due to invalid cast. @premanandrao, you seem to add this code, please, take a look at this crash.
  • CodeGenSYCL/intel-fpga-local.cpp crashes inside EmitAutoVarAlloca due to invalid cast. @premanandrao, could you investigate this as well, please?

In addition to check-sycl, I see compiler crash on check-sycl suite:

  • on-device/hier_par/hier_par_wgscope_O0.cpp crashes inside SYCLLowerWGScopeLegacyPass::runOnFunction due to UNREACHABLE executed at llvm/lib/SYCLLowerIR/LowerWGScope.cpp:211
    This issue impacts also on-device/basic_tests/stream/stream.cpp, on-device/hier_par/hier_par_basic.cpp, and on-device/hier_par/hier_par_wgscope.cpp. @kbobrovs, @againull, please, take a look.

@bader
Copy link
Contributor Author

bader commented Dec 4, 2020

/summary:run

@premanandrao
Copy link
Contributor

  • CodeGenSYCL/sycl-device-alias.cpp crashes inside EmitAliasDefinition due to invalid cast. @premanandrao, you seem to add this code, please, take a look at this crash.

@bader, the difference seems to be that before, we created:

(gdb) p Aliasee->dump()
@vint = addrspace(1) constant i32 7, align 4
$6 = void

Whereas, now we create:

(gdb) p Aliasee->dump()
i32* addrspacecast (i32 addrspace(1)* @vint to i32*)
$16 = void

This is after the call to:
Aliasee = GetOrCreateLLVMGlobal(AA->getAliasee(), DeclTy->getPointerTo(AS), /*D=*/nullptr);
Is this change expected?

@bader
Copy link
Contributor Author

bader commented Dec 7, 2020

This looks like a bug. I think the address space for the type must be set like this:

llvm::PointerType *PTy =
llvm::PointerType::get(Ty, getContext().getTargetAddressSpace(ASTTy));

@bader
Copy link
Contributor Author

bader commented Dec 7, 2020

Actually the fix might require calling GetGlobalVarAddressSpace...

Anyway SYCL allows casts from "named" address spaces (i.e. global, local, private in AST or (1), (3), empty - no address space in LLVM IR for SPIR) to "Default" in AST or (4) in LLVM IR for SPIR.

So casting from (1) to empty (i.e. 0) address space in LLVM IR is not valid for SPIR.

@premanandrao
Copy link
Contributor

  • CodeGenSYCL/sycl-device-alias.cpp crashes inside EmitAliasDefinition due to invalid cast. @premanandrao, you seem to add this code, please, take a look at this crash.

For this failure, this change in CodeGenModule.cpp fixes it:

@@ -5064,7 +5048,8 @@ void CodeGenModule::EmitAliasDefinition(GlobalDecl GD) {
     LT = getFunctionLinkage(GD);
     AS = Aliasee->getType()->getPointerAddressSpace();
   } else {
-    AS = ArgInfoAddressSpace(GetGlobalVarAddressSpace(/*D=*/nullptr));
+    const auto *VarD = cast<VarDecl>(GD.getDecl());
+    AS = ArgInfoAddressSpace(GetGlobalVarAddressSpace(VarD));
     Aliasee = GetOrCreateLLVMGlobal(AA->getAliasee(), DeclTy->getPointerTo(AS),
                                     /*D=*/nullptr);
     if (const auto *VD = dyn_cast<VarDecl>(GD.getDecl()))
  • CodeGenSYCL/intel-fpga-local.cpp crashes inside EmitAutoVarAlloca due to invalid cast. @premanandrao, could you investigate this as well, please?

I am not sure how to fix this failure. Before your change, this is what CGDecl.cpp:~1645 show after:
llvm::Value *V = address.getPointer();

(gdb) p V->dump()
  %numbanks = alloca i32, align 4

After your change, this is what is shows:

(gdb) p V->dump()
  %numbanks.ascast = addrspacecast i32* %numbanks to i32 addrspace(4)*

@bader
Copy link
Contributor Author

bader commented Dec 29, 2020

  • CodeGenSYCL/sycl-device-alias.cpp crashes inside EmitAliasDefinition due to invalid cast. @premanandrao, you seem to add this code, please, take a look at this crash.

For this failure, this change in CodeGenModule.cpp fixes it:

@@ -5064,7 +5048,8 @@ void CodeGenModule::EmitAliasDefinition(GlobalDecl GD) {
     LT = getFunctionLinkage(GD);
     AS = Aliasee->getType()->getPointerAddressSpace();
   } else {
-    AS = ArgInfoAddressSpace(GetGlobalVarAddressSpace(/*D=*/nullptr));
+    const auto *VarD = cast<VarDecl>(GD.getDecl());
+    AS = ArgInfoAddressSpace(GetGlobalVarAddressSpace(VarD));
     Aliasee = GetOrCreateLLVMGlobal(AA->getAliasee(), DeclTy->getPointerTo(AS),
                                     /*D=*/nullptr);
     if (const auto *VD = dyn_cast<VarDecl>(GD.getDecl()))

Thanks. I applied this change.

  • CodeGenSYCL/intel-fpga-local.cpp crashes inside EmitAutoVarAlloca due to invalid cast. @premanandrao, could you investigate this as well, please?

I am not sure how to fix this failure. Before your change, this is what CGDecl.cpp:~1645 show after:
llvm::Value *V = address.getPointer();

(gdb) p V->dump()
  %numbanks = alloca i32, align 4

After your change, this is what is shows:

(gdb) p V->dump()
  %numbanks.ascast = addrspacecast i32* %numbanks to i32 addrspace(4)*

Right. This is expected. With this change addrspacecast is inserted more aggressively compared to the current approach. I'm not sure what is the reason of the crash, but the difference is that now we have one more instruction - %numbanks.ascast = addrspacecast i32* %numbanks to i32 addrspace(4)* right after %numbanks = alloca i32, align 4.

Copy link
Contributor

@kbobrovs kbobrovs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kbobrovs
Copy link
Contributor

@bader, could you also please run https://github.com/intel/llvm-test-suite/tree/intel/SYCL/ESIMD - vector BE is very sensitive to AS changes.

@kbobrovs
Copy link
Contributor

This issue impacts also on-device/basic_tests/stream/stream.cpp, on-device/hier_par/hier_par_basic.cpp, and on-device/hier_par/hier_par_wgscope.cpp. @kbobrovs, @againull, please, take a look.

@againull - please let me know if you can take a look.

Clang creates a global variable to initialize arrays with 16+ elements.
This change fixes address space for such global variables, which might
be target dependent.
Copy link
Contributor

@AaronBallman AaronBallman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not super familiar with the CodeGen side of things, but this looks mostly reasonable to me (aside from some very minor nits).

clang/lib/Basic/Targets/SPIR.h Outdated Show resolved Hide resolved
clang/lib/Basic/Targets/SPIR.h Outdated Show resolved Hide resolved
clang/lib/CodeGen/CGExprScalar.cpp Show resolved Hide resolved
clang/lib/CodeGen/CodeGenModule.cpp Show resolved Hide resolved
clang/lib/CodeGen/TargetInfo.cpp Show resolved Hide resolved
return AddrSpace;

if (CGM.isTypeConstant(D->getType(), false)) {
if (auto ConstAS = CGM.getTarget().getConstantAddressSpace())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you spell out auto?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a copy-paste from AMDGPUTargetCodeGenInfo::getGlobalVarAddressSpace.

All the places where getConstantAddressSpace is called, authors use auto: CodeGenModule::getStringLiteralAddressSpace, castStringLiteralToDefaultAddressSpace and createReferenceTemporary.

I'm okay to apply this comment, but I think its should be applied to all instances. Right?
If so, I can create an NFC patch and merge it before - https://reviews.llvm.org/D89909. Does it sound okay to you?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your call -- I called it out because the type wasn't obvious from the context and on line 9996 we're doing LangAS AddrSpace = D->getType().getAddressSpace(); with the type spelled out, so I figured we might as well spell it out. However, given how trivial the use is on the next line, it's not critical.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll ask John McCall (CodeGen code owner) in https://reviews.llvm.org/D89909 about this.

llvm/lib/SYCLLowerIR/LowerWGScope.cpp Outdated Show resolved Hide resolved
Copy link
Contributor Author

@bader bader left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little be of context for reviewers.

As noted in the description this PR reverts existing approach for handling AS mismatches in CodeGen, which brought a couple of whitespace changes breaking code formatting guidelines, but it's because llorg code violates them.

In addition to that, one of the patches was uploaded by @againull in a separate PR - #3120. I hope his patch will go first and all changes in llvm/* directory will go away from this patch. Alternative solution would be close #3120 and commit it in scope of this PR. @againull, which way do you prefer?

clang/lib/CodeGen/CGExprScalar.cpp Show resolved Hide resolved
clang/lib/Basic/Targets/SPIR.h Outdated Show resolved Hide resolved
clang/lib/Basic/Targets/SPIR.h Outdated Show resolved Hide resolved
clang/lib/CodeGen/CodeGenModule.cpp Show resolved Hide resolved
clang/lib/CodeGen/TargetInfo.cpp Show resolved Hide resolved
return AddrSpace;

if (CGM.isTypeConstant(D->getType(), false)) {
if (auto ConstAS = CGM.getTarget().getConstantAddressSpace())
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a copy-paste from AMDGPUTargetCodeGenInfo::getGlobalVarAddressSpace.

All the places where getConstantAddressSpace is called, authors use auto: CodeGenModule::getStringLiteralAddressSpace, castStringLiteralToDefaultAddressSpace and createReferenceTemporary.

I'm okay to apply this comment, but I think its should be applied to all instances. Right?
If so, I can create an NFC patch and merge it before - https://reviews.llvm.org/D89909. Does it sound okay to you?

llvm/lib/SYCLLowerIR/LowerWGScope.cpp Outdated Show resolved Hide resolved
@againull
Copy link
Contributor

againull commented Feb 2, 2021

A little be of context for reviewers.

As noted in the description this PR reverts existing approach for handling AS mismatches in CodeGen, which brought a couple of whitespace changes breaking code formatting guidelines, but it's because llorg code violates them.

In addition to that, one of the patches was uploaded by @againull in a separate PR - #3120. I hope his patch will go first and all changes in llvm/* directory will go away from this patch. Alternative solution would be close #3120 and commit it in scope of this PR. @againull, which way do you prefer?

@bader , I have merged PR#3120.

@bader
Copy link
Contributor Author

bader commented Feb 3, 2021

/summary:run

@bader
Copy link
Contributor Author

bader commented Feb 4, 2021

@elizabethandrews, @premanandrao, could you take a look at this patch, please?
Pre-commit test status:

  • clang-format-check fails because this patch reverts clang-format change we applied to llorg code, so please, ignore this failure.
  • Jenkins/Summary - I believe this failure is caused by a bug in another component and I'm going to report it separately.

Copy link
Contributor

@premanandrao premanandrao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks okay to me @bader.

@premanandrao
Copy link
Contributor

@elizabethandrews, @premanandrao, could you take a look at this patch, please?

Also, @elizabethandrews is traveling/on vacation.

@bader
Copy link
Contributor Author

bader commented Feb 4, 2021

Thanks!

@bader bader merged commit 1113d0a into intel:sycl Feb 4, 2021
@bader bader deleted the codegen-refactor branch February 4, 2021 16:43
@erichkeane
Copy link
Contributor

erichkeane commented Feb 11, 2021

So I see that this causes a crash of a lit test. It looks like the cast you added in CodeGenModule is invalid.

FAIL: Clang :: CodeGen/alias.c (3169 of 27447)
******************** TEST 'Clang :: CodeGen/alias.c' FAILED ********************
Script:
--
: 'RUN: at line 2';   /iusers/ekeane1/workspaces/sycl/build/bin/clang -cc1 -internal-isystem /export/iusers/ekeane1/workspaces/sycl/build/lib/clang/13.0.0/include -nostdsysteminc -triple i386-pc-linux-gnu -emit-llvm -o - /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c | /iusers/ekeane1/workspaces/sycl/build/bin/FileCheck --allow-unused-prefixes=false -check-prefix=CHECKBASIC /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c
: 'RUN: at line 3';   /iusers/ekeane1/workspaces/sycl/build/bin/clang -cc1 -internal-isystem /export/iusers/ekeane1/workspaces/sycl/build/lib/clang/13.0.0/include -nostdsysteminc -triple armv7a-eabi -mfloat-abi hard -emit-llvm -o - /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c | /iusers/ekeane1/workspaces/sycl/build/bin/FileCheck --allow-unused-prefixes=false -check-prefix=CHECKCC /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c
: 'RUN: at line 4';   /iusers/ekeane1/workspaces/sycl/build/bin/clang -cc1 -internal-isystem /export/iusers/ekeane1/workspaces/sycl/build/lib/clang/13.0.0/include -nostdsysteminc -triple armv7a-eabi -mfloat-abi hard -S -o - /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c | /iusers/ekeane1/workspaces/sycl/build/bin/FileCheck --allow-unused-prefixes=false -check-prefix=CHECKASM /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c
: 'RUN: at line 5';   /iusers/ekeane1/workspaces/sycl/build/bin/clang -cc1 -internal-isystem /export/iusers/ekeane1/workspaces/sycl/build/lib/clang/13.0.0/include -nostdsysteminc -triple aarch64-linux-gnu -emit-llvm -o - /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c | /iusers/ekeane1/workspaces/sycl/build/bin/FileCheck --allow-unused-prefixes=false -check-prefix=CHECKGLOBALS /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c
--
Exit Code: 2

Command Output (stderr):
--
/export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c:117:24: warning: declaration of 'enum undeclared_type' will not be visible outside of this function [-Wvisibility]
void test13_alias(enum undeclared_type y) __attribute__((alias ("test13")));
                       ^
clang: /iusers/ekeane1/workspaces/sycl/llvm/include/llvm/Support/Casting.h:269: typename llvm::cast_retty<X, Y*>::ret_type llvm::cast(Y*) [with X = clang::VarDecl; Y = const clang::Decl; typename llvm::cast_retty<X, Y*>::ret_type = const clang::VarDecl*]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /iusers/ekeane1/workspaces/sycl/build/bin/clang -cc1 -internal-isystem /export/iusers/ekeane1/workspaces/sycl/build/lib/clang/13.0.0/include -nostdsysteminc -triple i386-pc-linux-gnu -emit-llvm -o - /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c
1.      <eof> parser at end of file
2.      /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c:117:6: LLVM IR generation of declaration 'test13_alias'
 #0 0x000000000527a969 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /iusers/ekeane1/workspaces/sycl/llvm/lib/Support/Unix/Signals.inc:565:22
 #1 0x000000000527aa20 PrintStackTraceSignalHandler(void*) /iusers/ekeane1/workspaces/sycl/llvm/lib/Support/Unix/Signals.inc:632:1
 #2 0x00000000052789e7 llvm::sys::RunSignalHandlers() /iusers/ekeane1/workspaces/sycl/llvm/lib/Support/Signals.cpp:71:20
 #3 0x000000000527a3b1 SignalHandler(int) /iusers/ekeane1/workspaces/sycl/llvm/lib/Support/Unix/Signals.inc:407:1
 #4 0x00007f74aab315e0 __restore_rt (/lib64/libpthread.so.0+0xf5e0)
 #5 0x00007f74a96aa1f7 raise (/lib64/libc.so.6+0x351f7)
 #6 0x00007f74a96ab8e8 abort (/lib64/libc.so.6+0x368e8)
 #7 0x00007f74a96a3266 __assert_fail_base (/lib64/libc.so.6+0x2e266)
 #8 0x00007f74a96a3312 (/lib64/libc.so.6+0x2e312)
 #9 0x0000000005676fba llvm::cast_retty<clang::VarDecl, clang::Decl const*>::ret_type llvm::cast<clang::VarDecl, clang::Decl const>(clang::Decl const*) /iusers/ekeane1/workspaces/sycl/llvm/include/llvm/Support/Casting.h:269:3
#10 0x000000000579a6b4 clang::CodeGen::CodeGenModule::EmitAliasDefinition(clang::GlobalDecl) /iusers/ekeane1/workspaces/sycl/clang/lib/CodeGen/CodeGenModule.cpp:5103:37
#11 0x0000000005791093 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) /iusers/ekeane1/workspaces/sycl/clang/lib/CodeGen/CodeGenModule.cpp:2874:36
#12 0x000000000579e08a clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (.localalias.1) /iusers/ekeane1/workspaces/sycl/clang/lib/CodeGen/CodeGenModule.cpp:5877:37
#13 0x00000000068090c6 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) /iusers/ekeane1/workspaces/sycl/clang/lib/CodeGen/ModuleBuilder.cpp:169:7
#14 0x00000000068027c6 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) /iusers/ekeane1/workspaces/sycl/clang/lib/CodeGen/CodeGenAction.cpp:222:11
#15 0x000000000813f73c clang::ParseAST(clang::Sema&, bool, bool) /iusers/ekeane1/workspaces/sycl/clang/lib/Parse/ParseAST.cpp:162:20
#16 0x0000000005ee3331 clang::ASTFrontendAction::ExecuteAction() /iusers/ekeane1/workspaces/sycl/clang/lib/Frontend/FrontendAction.cpp:1056:11
#17 0x0000000006800151 clang::CodeGenAction::ExecuteAction() /iusers/ekeane1/workspaces/sycl/clang/lib/CodeGen/CodeGenAction.cpp:1096:5
#18 0x0000000005ee2c5d clang::FrontendAction::Execute() /iusers/ekeane1/workspaces/sycl/clang/lib/Frontend/FrontendAction.cpp:953:38
#19 0x0000000005e3dd97 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /iusers/ekeane1/workspaces/sycl/clang/lib/Frontend/CompilerInstance.cpp:951:42
#20 0x000000000606073a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /iusers/ekeane1/workspaces/sycl/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:278:38
#21 0x000000000254fd3d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /iusers/ekeane1/workspaces/sycl/clang/tools/driver/cc1_main.cpp:240:40
#22 0x0000000002544d49 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /iusers/ekeane1/workspaces/sycl/clang/tools/driver/driver.cpp:330:20
#23 0x000000000254544a main /iusers/ekeane1/workspaces/sycl/clang/tools/driver/driver.cpp:407:26
#24 0x00007f74a9696c05 __libc_start_main (/lib64/libc.so.6+0x21c05)
#25 0x00000000025435f9 _start (/iusers/ekeane1/workspaces/sycl/build/bin/clang+0x25435f9)
FileCheck error: '<stdin>' is empty.
FileCheck command line:  /iusers/ekeane1/workspaces/sycl/build/bin/FileCheck --allow-unused-prefixes=false -check-prefix=CHECKBASIC /export/iusers/ekeane1/workspaces/sycl/clang/test/CodeGen/alias.c

@bader
Copy link
Contributor Author

bader commented Feb 11, 2021

@erichkeane, could you provide more details on how to reproduce this issue, please? I don't see this failure locally and all CI checks pass.

@erichkeane
Copy link
Contributor

@erichkeane, could you provide more details on how to reproduce this issue, please? I don't see this failure locally and all CI checks pass.

it is happening with a check-clang on a clean version of scyl HEAD using a debug compiler.

@AaronBallman
Copy link
Contributor

@erichkeane, could you provide more details on how to reproduce this issue, please? I don't see this failure locally and all CI checks pass.

it is happening with a check-clang on a clean version of scyl HEAD using a debug compiler.

If all CI checks are passing... are we doing a release test rather than a release + asserts test?

@bader
Copy link
Contributor Author

bader commented Feb 11, 2021

We are doing Release and Release + Asserts.
I trying to check Debug configuration locally.

@bader
Copy link
Contributor Author

bader commented Feb 11, 2021

// REQUIRES: arm-registered-target

That's the reason it's not caught by CI (and my local testing).
I don't recall any problems with my testing for https://reviews.llvm.org/D89909, which I do for all the targets, but it might be caused by sycl branch patches, not upstreamed to llorg yet.

@bader
Copy link
Contributor Author

bader commented Feb 11, 2021

Fix - #3206.

bader pushed a commit that referenced this pull request Jun 2, 2021
Checks for Clang::CodeGenSYCL/intel-fpga-reg.cpp test were autogenerated
to speed up fixing of LIT tests failures after a patch
"[SYCL] Refactor address space handling in CodeGen library (#2864)".

Reorganize test code and tidy up checks to improve readability.

Signed-off-by: Mikhail Lychkov <mikhail.lychkov@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
upstream This change is related to upstreaming SYCL support to llorg.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants