cb424d7448
verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
202 lines
10 KiB
C++
202 lines
10 KiB
C++
//===-------- LegacyAPI.cpp - Target independent OpenMP target RTL --------===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Legacy interfaces for libomptarget used to maintain backwards-compatibility.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "OpenMP/OMPT/Interface.h"
|
|
#include "omptarget.h"
|
|
#include "private.h"
|
|
|
|
#include "Shared/Profile.h"
|
|
|
|
#ifdef OMPT_SUPPORT
|
|
using namespace llvm::omp::target::ompt;
|
|
#endif
|
|
|
|
EXTERN void __tgt_target_data_begin(int64_t DeviceId, int32_t ArgNum,
|
|
void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
__tgt_target_data_begin_mapper(nullptr, DeviceId, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN void __tgt_target_data_begin_nowait(int64_t DeviceId, int32_t ArgNum,
|
|
void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes,
|
|
int32_t DepNum, void *DepList,
|
|
int32_t NoAliasDepNum,
|
|
void *NoAliasDepList) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
__tgt_target_data_begin_mapper(nullptr, DeviceId, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN void __tgt_target_data_end(int64_t DeviceId, int32_t ArgNum,
|
|
void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
__tgt_target_data_end_mapper(nullptr, DeviceId, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN void __tgt_target_data_update(int64_t DeviceId, int32_t ArgNum,
|
|
void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
__tgt_target_data_update_mapper(nullptr, DeviceId, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN void __tgt_target_data_update_nowait(
|
|
int64_t DeviceId, int32_t ArgNum, void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes, int32_t DepNum, void *DepList,
|
|
int32_t NoAliasDepNum, void *NoAliasDepList) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
__tgt_target_data_update_mapper(nullptr, DeviceId, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN void __tgt_target_data_end_nowait(int64_t DeviceId, int32_t ArgNum,
|
|
void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes,
|
|
int32_t DepNum, void *DepList,
|
|
int32_t NoAliasDepNum,
|
|
void *NoAliasDepList) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
__tgt_target_data_end_mapper(nullptr, DeviceId, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN int __tgt_target_mapper(ident_t *Loc, int64_t DeviceId, void *HostPtr,
|
|
uint32_t ArgNum, void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes,
|
|
map_var_info_t *ArgNames, void **ArgMappers) {
|
|
TIMESCOPE_WITH_IDENT(Loc);
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
KernelArgsTy KernelArgs{1, ArgNum, ArgsBase, Args, ArgSizes,
|
|
ArgTypes, ArgNames, ArgMappers, 0, {},
|
|
{}, {}, 0};
|
|
return __tgt_target_kernel(Loc, DeviceId, -1, -1, HostPtr, &KernelArgs);
|
|
}
|
|
|
|
EXTERN int __tgt_target(int64_t DeviceId, void *HostPtr, int32_t ArgNum,
|
|
void **ArgsBase, void **Args, int64_t *ArgSizes,
|
|
int64_t *ArgTypes) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
return __tgt_target_mapper(nullptr, DeviceId, HostPtr, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN int __tgt_target_nowait(int64_t DeviceId, void *HostPtr, int32_t ArgNum,
|
|
void **ArgsBase, void **Args, int64_t *ArgSizes,
|
|
int64_t *ArgTypes, int32_t DepNum, void *DepList,
|
|
int32_t NoAliasDepNum, void *NoAliasDepList) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
return __tgt_target_mapper(nullptr, DeviceId, HostPtr, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, nullptr, nullptr);
|
|
}
|
|
|
|
EXTERN int __tgt_target_nowait_mapper(
|
|
ident_t *Loc, int64_t DeviceId, void *HostPtr, int32_t ArgNum,
|
|
void **ArgsBase, void **Args, int64_t *ArgSizes, int64_t *ArgTypes,
|
|
map_var_info_t *ArgNames, void **ArgMappers, int32_t DepNum, void *DepList,
|
|
int32_t NoAliasDepNum, void *NoAliasDepList) {
|
|
TIMESCOPE_WITH_IDENT(Loc);
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
return __tgt_target_mapper(Loc, DeviceId, HostPtr, ArgNum, ArgsBase, Args,
|
|
ArgSizes, ArgTypes, ArgNames, ArgMappers);
|
|
}
|
|
|
|
EXTERN int __tgt_target_teams_mapper(ident_t *Loc, int64_t DeviceId,
|
|
void *HostPtr, uint32_t ArgNum,
|
|
void **ArgsBase, void **Args,
|
|
int64_t *ArgSizes, int64_t *ArgTypes,
|
|
map_var_info_t *ArgNames,
|
|
void **ArgMappers, int32_t NumTeams,
|
|
int32_t ThreadLimit) {
|
|
TIMESCOPE_WITH_IDENT(Loc);
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
KernelArgsTy KernelArgs{1, ArgNum, ArgsBase, Args, ArgSizes,
|
|
ArgTypes, ArgNames, ArgMappers, 0, {},
|
|
{}, {}, 0};
|
|
return __tgt_target_kernel(Loc, DeviceId, NumTeams, ThreadLimit, HostPtr,
|
|
&KernelArgs);
|
|
}
|
|
|
|
EXTERN int __tgt_target_teams(int64_t DeviceId, void *HostPtr, int32_t ArgNum,
|
|
void **ArgsBase, void **Args, int64_t *ArgSizes,
|
|
int64_t *ArgTypes, int32_t NumTeams,
|
|
int32_t ThreadLimit) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
return __tgt_target_teams_mapper(nullptr, DeviceId, HostPtr, ArgNum, ArgsBase,
|
|
Args, ArgSizes, ArgTypes, nullptr, nullptr,
|
|
NumTeams, ThreadLimit);
|
|
}
|
|
|
|
EXTERN int __tgt_target_teams_nowait(int64_t DeviceId, void *HostPtr,
|
|
int32_t ArgNum, void **ArgsBase,
|
|
void **Args, int64_t *ArgSizes,
|
|
int64_t *ArgTypes, int32_t NumTeams,
|
|
int32_t ThreadLimit, int32_t DepNum,
|
|
void *DepList, int32_t NoAliasDepNum,
|
|
void *NoAliasDepList) {
|
|
TIMESCOPE();
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
return __tgt_target_teams_mapper(nullptr, DeviceId, HostPtr, ArgNum, ArgsBase,
|
|
Args, ArgSizes, ArgTypes, nullptr, nullptr,
|
|
NumTeams, ThreadLimit);
|
|
}
|
|
|
|
EXTERN int __tgt_target_teams_nowait_mapper(
|
|
ident_t *Loc, int64_t DeviceId, void *HostPtr, int32_t ArgNum,
|
|
void **ArgsBase, void **Args, int64_t *ArgSizes, int64_t *ArgTypes,
|
|
map_var_info_t *ArgNames, void **ArgMappers, int32_t NumTeams,
|
|
int32_t ThreadLimit, int32_t DepNum, void *DepList, int32_t NoAliasDepNum,
|
|
void *NoAliasDepList) {
|
|
TIMESCOPE_WITH_IDENT(Loc);
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
return __tgt_target_teams_mapper(Loc, DeviceId, HostPtr, ArgNum, ArgsBase,
|
|
Args, ArgSizes, ArgTypes, ArgNames,
|
|
ArgMappers, NumTeams, ThreadLimit);
|
|
}
|
|
|
|
EXTERN void __kmpc_push_target_tripcount_mapper(ident_t *Loc, int64_t DeviceId,
|
|
uint64_t LoopTripcount) {
|
|
TIMESCOPE_WITH_IDENT(Loc);
|
|
DP("WARNING: __kmpc_push_target_tripcount has been deprecated and is a noop");
|
|
}
|
|
|
|
EXTERN void __kmpc_push_target_tripcount(int64_t DeviceId,
|
|
uint64_t LoopTripcount) {
|
|
__kmpc_push_target_tripcount_mapper(nullptr, DeviceId, LoopTripcount);
|
|
}
|
|
|
|
EXTERN int __tgt_target_kernel_nowait(ident_t *Loc, int64_t DeviceId,
|
|
int32_t NumTeams, int32_t ThreadLimit,
|
|
void *HostPtr, KernelArgsTy *KernelArgs,
|
|
int32_t DepNum, void *DepList,
|
|
int32_t NoAliasDepNum,
|
|
void *NoAliasDepList) {
|
|
TIMESCOPE_WITH_IDENT(Loc);
|
|
OMPT_IF_BUILT(ReturnAddressSetterRAII RA(__builtin_return_address(0)));
|
|
return __tgt_target_kernel(Loc, DeviceId, NumTeams, ThreadLimit, HostPtr,
|
|
KernelArgs);
|
|
}
|