brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 26958ac Raw
55 lines · c
1//===--- AMDGPUMCKernelDescriptor.h ---------------------------*- C++ -*---===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9/// \file10/// AMDHSA kernel descriptor MCExpr struct for use in MC layer. Uses11/// AMDHSAKernelDescriptor.h for sizes and constants.12///13//14//===----------------------------------------------------------------------===//15 16#ifndef LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUMCKERNELDESCRIPTOR_H17#define LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUMCKERNELDESCRIPTOR_H18 19#include "llvm/Support/AMDHSAKernelDescriptor.h"20 21namespace llvm {22class MCExpr;23class MCContext;24class MCSubtargetInfo;25namespace AMDGPU {26 27struct MCKernelDescriptor {28  const MCExpr *group_segment_fixed_size = nullptr;29  const MCExpr *private_segment_fixed_size = nullptr;30  const MCExpr *kernarg_size = nullptr;31  const MCExpr *compute_pgm_rsrc3 = nullptr;32  const MCExpr *compute_pgm_rsrc1 = nullptr;33  const MCExpr *compute_pgm_rsrc2 = nullptr;34  const MCExpr *kernel_code_properties = nullptr;35  const MCExpr *kernarg_preload = nullptr;36 37  static MCKernelDescriptor38  getDefaultAmdhsaKernelDescriptor(const MCSubtargetInfo *STI, MCContext &Ctx);39  // MCExpr for:40  // Dst = Dst & ~Mask41  // Dst = Dst | (Value << Shift)42  static void bits_set(const MCExpr *&Dst, const MCExpr *Value, uint32_t Shift,43                       uint32_t Mask, MCContext &Ctx);44 45  // MCExpr for:46  // return (Src & Mask) >> Shift47  static const MCExpr *bits_get(const MCExpr *Src, uint32_t Shift,48                                uint32_t Mask, MCContext &Ctx);49};50 51} // end namespace AMDGPU52} // end namespace llvm53 54#endif // LLVM_LIB_TARGET_AMDGPU_MCTARGETDESC_AMDGPUMCKERNELDESCRIPTOR_H55