
Summary: We used to avoid a lot of this stuff because we didn't properly handle variadics in device code. That's been solved for now, so we can just make an internal printf handler that forwards to the external `vprintf` function. This is either provided by NVIDIA's SDK or by the GPU libc implementation. The main reason for doing this is because it prevents the stupid AMDGPU printf pass from mangling our beautiful printfs!
24 lines
618 B
C++
24 lines
618 B
C++
//===--------- LibC.h - Simple implementation of libc functions --- C++ -*-===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef OMPTARGET_LIBC_H
|
|
#define OMPTARGET_LIBC_H
|
|
|
|
#include "DeviceTypes.h"
|
|
|
|
namespace ompx {
|
|
|
|
int printf(const char *Format, ...);
|
|
|
|
} // namespace ompx
|
|
|
|
#endif
|