116 lines
3.9 KiB
TableGen
116 lines
3.9 KiB
TableGen
// RUN: llvm-tblgen -gen-target-library-info -I %p/../../include %s | FileCheck %s
|
|
|
|
include "llvm/Analysis/TargetLibraryInfoImpl.td"
|
|
|
|
def cosf : TargetLibCall< "cosf", Flt, [Flt]>;
|
|
def sinf : TargetLibCall< "sinf", Flt, [Flt]>;
|
|
|
|
def fmaxf : TargetLibCall< "fmaxf", Floating, [Same, Same]>;
|
|
|
|
def printf : TargetLibCall< "printf", Int, [Ptr, Ellip]>;
|
|
|
|
def cabs : TargetLibCall< "cabs", ? /* Checked manually. */>;
|
|
|
|
// CHECK: #ifdef GET_TARGET_LIBRARY_INFO_ENUM
|
|
// CHECK-NEXT: #undef GET_TARGET_LIBRARY_INFO_ENUM
|
|
// CHECK: enum LibFunc : unsigned {
|
|
// CHECK-NEXT: NotLibFunc = 0,
|
|
// CHECK-NEXT: LibFunc_cosf,
|
|
// CHECK-NEXT: LibFunc_sinf,
|
|
// CHECK-NEXT: LibFunc_fmaxf,
|
|
// CHECK-NEXT: LibFunc_printf,
|
|
// CHECK-NEXT: LibFunc_cabs,
|
|
// CHECK-NEXT: NumLibFuncs,
|
|
// CHECK-NEXT: End_LibFunc = NumLibFuncs,
|
|
// CHECK-NEXT: Begin_LibFunc = LibFunc_cosf,
|
|
// CHECK-NEXT: };
|
|
// CHECK: #endif // GET_TARGET_LIBRARY_INFO_ENUM
|
|
|
|
// CHECK: #ifdef GET_TARGET_LIBRARY_INFO_STRING_TABLE
|
|
// CHECK-NEXT: #undef GET_TARGET_LIBRARY_INFO_STRING_TABLE
|
|
|
|
// CHECK: #ifdef __GNUC__
|
|
// CHECK-NEXT: #pragma GCC diagnostic push
|
|
// CHECK-NEXT: #pragma GCC diagnostic ignored "-Woverlength-strings"
|
|
// CHECK-NEXT: #endif
|
|
// CHECK-NEXT: constexpr char StandardNamesStrTableStorage[] =
|
|
// CHECK-NEXT: "\0"
|
|
// CHECK-NEXT: "cosf\0"
|
|
// CHECK-NEXT: "sinf\0"
|
|
// CHECK-NEXT: "fmaxf\0"
|
|
// CHECK-NEXT: "printf\0"
|
|
// CHECK-NEXT: "cabs\0"
|
|
// CHECK-NEXT: ;
|
|
// CHECK-NEXT: #ifdef __GNUC__
|
|
// CHECK-NEXT: #pragma GCC diagnostic pop
|
|
// CHECK-NEXT: #endif
|
|
|
|
// CHECK: const llvm::StringTable
|
|
// CHECK-NEXT: TargetLibraryInfoImpl::StandardNamesStrTable = StandardNamesStrTableStorage;
|
|
|
|
// CHECK: const llvm::StringTable::Offset TargetLibraryInfoImpl::StandardNamesOffsets[6] = {
|
|
// CHECK-NEXT: 0, //
|
|
// CHECK-NEXT: 1, // cosf
|
|
// CHECK-NEXT: 6, // sinf
|
|
// CHECK-NEXT: 11, // fmaxf
|
|
// CHECK-NEXT: 17, // printf
|
|
// CHECK-NEXT: 24, // cabs
|
|
// CHECK-NEXT: };
|
|
// CHECK-NEXT: const uint8_t TargetLibraryInfoImpl::StandardNamesSizeTable[6] = {
|
|
// CHECK-NEXT: 0,
|
|
// CHECK-NEXT: 4,
|
|
// CHECK-NEXT: 4,
|
|
// CHECK-NEXT: 5,
|
|
// CHECK-NEXT: 6,
|
|
// CHECK-NEXT: 4,
|
|
// CHECK-NEXT: };
|
|
// CHECK: #endif // GET_TARGET_LIBRARY_INFO_STRING_TABLE
|
|
|
|
// CHECK: #ifdef GET_TARGET_LIBRARY_INFO_IMPL_DECL
|
|
// CHECK-NEXT: #undef GET_TARGET_LIBRARY_INFO_IMPL_DECL
|
|
// CHECK: LLVM_ABI static const llvm::StringTable StandardNamesStrTable;
|
|
// CHECK-NEXT: LLVM_ABI static const llvm::StringTable::Offset StandardNamesOffsets[6];
|
|
// CHECK-NEXT: LLVM_ABI static const uint8_t StandardNamesSizeTable[6];
|
|
// CHECK: #endif // GET_TARGET_LIBRARY_INFO_IMPL_DECL
|
|
|
|
// CHECK: #ifdef GET_TARGET_LIBRARY_INFO_SIGNATURE_TABLE
|
|
// CHECK-NEXT: #undef GET_TARGET_LIBRARY_INFO_SIGNATURE_TABLE
|
|
// CHECK: enum FuncArgTypeID : char {
|
|
// CHECK-NEXT: NoFuncArgType = 0,
|
|
// CHECK-NEXT: Void,
|
|
// CHECK-NEXT: Bool,
|
|
// CHECK-NEXT: Int16,
|
|
// CHECK-NEXT: Int32,
|
|
// CHECK-NEXT: Int,
|
|
// CHECK-NEXT: IntPlus,
|
|
// CHECK-NEXT: Long,
|
|
// CHECK-NEXT: IntX,
|
|
// CHECK-NEXT: Int64,
|
|
// CHECK-NEXT: LLong,
|
|
// CHECK-NEXT: SizeT,
|
|
// CHECK-NEXT: SSizeT,
|
|
// CHECK-NEXT: Flt,
|
|
// CHECK-NEXT: Dbl,
|
|
// CHECK-NEXT: LDbl,
|
|
// CHECK-NEXT: Floating,
|
|
// CHECK-NEXT: Ptr,
|
|
// CHECK-NEXT: Struct,
|
|
// CHECK-NEXT: Ellip,
|
|
// CHECK-NEXT: Same,
|
|
// CHECK-NEXT: };
|
|
// CHECK-NEXT: static const FuncArgTypeID SignatureTable[] = {
|
|
// CHECK-NEXT: /* 0 */ Int, Ptr, Ellip, NoFuncArgType,
|
|
// CHECK-NEXT: /* 4 */ Flt, Flt, NoFuncArgType,
|
|
// CHECK-NEXT: /* 7 */ Floating, Same, Same, NoFuncArgType,
|
|
// CHECK-NEXT: /* 11 */ Void, NoFuncArgType,
|
|
// CHECK-NEXT: };
|
|
// CHECK-NEXT: static const uint16_t SignatureOffset[] = {
|
|
// CHECK-NEXT: 11, //
|
|
// CHECK-NEXT: 4, // cosf
|
|
// CHECK-NEXT: 4, // sinf
|
|
// CHECK-NEXT: 7, // fmaxf
|
|
// CHECK-NEXT: 0, // printf
|
|
// CHECK-NEXT: 3, // cabs
|
|
// CHECK-NEXT: };
|
|
// CHECK: #endif // GET_TARGET_LIBRARY_INFO_SIGNATURE_TABLE
|