//===-- LoongArchTargetTransformInfo.cpp - LoongArch specific TTI ---------===// // // 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 // //===----------------------------------------------------------------------===// /// \file /// This file implements a TargetTransformInfo analysis pass specific to the /// LoongArch target machine. It uses the target's detailed information to /// provide more precise answers to certain TTI queries, while letting the /// target independent and default TTI implementations handle the rest. /// //===----------------------------------------------------------------------===// #include "LoongArchTargetTransformInfo.h" usingnamespacellvm; #define DEBUG_TYPE … TypeSize LoongArchTTIImpl::getRegisterBitWidth( TargetTransformInfo::RegisterKind K) const { … } unsigned LoongArchTTIImpl::getNumberOfRegisters(unsigned ClassID) const { … } unsigned LoongArchTTIImpl::getRegisterClassForType(bool Vector, Type *Ty) const { … } unsigned LoongArchTTIImpl::getMaxInterleaveFactor(ElementCount VF) { … } const char *LoongArchTTIImpl::getRegisterClassName(unsigned ClassID) const { … } TargetTransformInfo::PopcntSupportKind LoongArchTTIImpl::getPopcntSupport(unsigned TyWidth) { … } // TODO: Implement more hooks to provide TTI machinery for LoongArch.