This commit provides definitions of builtins with the generic address space. One concept to consider is the difference between supporting the generic address space from the user's perspective and the requirement for libclc as a compiler implementation detail to define separate generic address space builtins. In practice a target (like NVPTX) might notionally support the generic address space, but it's mapped to the same LLVM target address space as another address space (often the private one). In such cases libclc must be careful not to define both private and generic overloads of the same builtin. We track these two concepts separately, and make the assumption that if the generic address space does clash with another, it's with the private one. We track the concepts separately because there are some builtins such as atomics that are defined for the generic address space but not the private address space.
38 lines
1.1 KiB
Common Lisp
38 lines
1.1 KiB
Common Lisp
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include <clc/clc_convert.h>
|
|
#include <clc/clcmacro.h>
|
|
#include <clc/integer/clc_clz.h>
|
|
#include <clc/internal/clc.h>
|
|
#include <clc/math/clc_floor.h>
|
|
#include <clc/math/clc_fma.h>
|
|
#include <clc/math/clc_ldexp.h>
|
|
#include <clc/math/clc_subnormal_config.h>
|
|
#include <clc/math/clc_trunc.h>
|
|
#include <clc/math/math.h>
|
|
#include <clc/shared/clc_max.h>
|
|
|
|
#define __CLC_ADDRESS_SPACE private
|
|
#include <clc_remquo.inc>
|
|
#undef __CLC_ADDRESS_SPACE
|
|
|
|
#define __CLC_ADDRESS_SPACE global
|
|
#include <clc_remquo.inc>
|
|
#undef __CLC_ADDRESS_SPACE
|
|
|
|
#define __CLC_ADDRESS_SPACE local
|
|
#include <clc_remquo.inc>
|
|
#undef __CLC_ADDRESS_SPACE
|
|
|
|
#if _CLC_DISTINCT_GENERIC_AS_SUPPORTED
|
|
#define __CLC_ADDRESS_SPACE generic
|
|
#include <clc_remquo.inc>
|
|
#undef __CLC_ADDRESS_SPACE
|
|
#endif
|