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

[OpenMP] Compiler crash during target compilation of 'uses_allocator' clause #77841

Open
jhuber6 opened this issue Jan 11, 2024 · 1 comment
Open
Labels
clang:codegen crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@jhuber6
Copy link
Contributor

jhuber6 commented Jan 11, 2024

The following test sourced from the libomptarget test suite fails to compile due to an unexplained crash during code generation. The reproducer is at https://godbolt.org/z/TcYfj5bfY.

#include <omp.h>

void test_omp_aligned_alloc_on_device() {
  omp_memspace_handle_t memspace = omp_default_mem_space;
  omp_alloctrait_t traits[2] = {{omp_atk_alignment, 64}, {omp_atk_access, 64}};
  omp_allocator_handle_t alloc =
      omp_init_allocator(omp_default_mem_space, 1, traits);

#pragma omp target uses_allocators(alloc(traits))
  {
    int *x;

    x = (int *)omp_aligned_alloc(64, sizeof(int), alloc);
      omp_free(x, alloc);
  }

  omp_destroy_allocator(alloc);
}
@EugeneZelenko EugeneZelenko added clang:codegen crash Prefer [crash-on-valid] or [crash-on-invalid] and removed new issue labels Jan 11, 2024
@llvmbot
Copy link
Collaborator

llvmbot commented Jan 11, 2024

@llvm/issue-subscribers-clang-codegen

Author: Joseph Huber (jhuber6)

The following test sourced from the `libomptarget` test suite fails to compile due to an unexplained crash during code generation. The reproducer is at https://godbolt.org/z/TcYfj5bfY.
#include &lt;omp.h&gt;

void test_omp_aligned_alloc_on_device() {
  omp_memspace_handle_t memspace = omp_default_mem_space;
  omp_alloctrait_t traits[2] = {{omp_atk_alignment, 64}, {omp_atk_access, 64}};
  omp_allocator_handle_t alloc =
      omp_init_allocator(omp_default_mem_space, 1, traits);

#pragma omp target uses_allocators(alloc(traits))
  {
    int *x;

    x = (int *)omp_aligned_alloc(64, sizeof(int), alloc);
      omp_free(x, alloc);
  }

  omp_destroy_allocator(alloc);
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:codegen crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

No branches or pull requests

3 participants