mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 19:47:05 +00:00

Defines a subset of attributes and emits them to a section called .hexagon.attributes. The current attributes recorded are the attributes needed by llvm-objdump to automatically determine target features and eliminate the need to manually pass features.
28 lines
873 B
C++
28 lines
873 B
C++
//===-- HexagonAttributes.cpp - Qualcomm Hexagon Attributes ---------------===//
|
|
//
|
|
// 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 "llvm/Support/HexagonAttributes.h"
|
|
|
|
using namespace llvm;
|
|
using namespace llvm::HexagonAttrs;
|
|
|
|
static constexpr TagNameItem TagData[] = {
|
|
{ARCH, "Tag_arch"},
|
|
{HVXARCH, "Tag_hvx_arch"},
|
|
{HVXIEEEFP, "Tag_hvx_ieeefp"},
|
|
{HVXQFLOAT, "Tag_hvx_qfloat"},
|
|
{ZREG, "Tag_zreg"},
|
|
{AUDIO, "Tag_audio"},
|
|
{CABAC, "Tag_cabac"},
|
|
};
|
|
|
|
constexpr TagNameMap HexagonAttributeTags{TagData};
|
|
const TagNameMap &llvm::HexagonAttrs::getHexagonAttributeTags() {
|
|
return HexagonAttributeTags;
|
|
}
|