LoongArchRegisterInfo.cpp
LoongArchSubtarget.cpp
LoongArchTargetMachine.cpp
- LoongArchTargetTransformInfo.cpp
LINK_COMPONENTS
Analysis
#include "LoongArchTargetMachine.h"
#include "LoongArch.h"
#include "LoongArchMachineFunctionInfo.h"
-#include "LoongArchTargetTransformInfo.h"
#include "MCTargetDesc/LoongArchBaseInfo.h"
#include "TargetInfo/LoongArchTargetInfo.h"
-#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
#include "llvm/CodeGen/TargetPassConfig.h"
return false;
}
-TargetTransformInfo
-LoongArchTargetMachine::getTargetTransformInfo(const Function &F) const {
- return TargetTransformInfo(LoongArchTTIImpl(this, F));
-}
-
void LoongArchPassConfig::addPreEmitPass() { addPass(&BranchRelaxationPassID); }
void LoongArchPassConfig::addPreEmitPass2() {
CodeGenOpt::Level OL, bool JIT);
~LoongArchTargetMachine() override;
- TargetTransformInfo getTargetTransformInfo(const Function &F) const override;
const LoongArchSubtarget *getSubtargetImpl(const Function &F) const override;
const LoongArchSubtarget *getSubtargetImpl() const = delete;
+++ /dev/null
-//===-- 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"
-
-using namespace llvm;
-
-#define DEBUG_TYPE "loongarchtti"
-
-// TODO: Implement more hooks to provide TTI machinery for LoongArch.
+++ /dev/null
-//===- LoongArchTargetTransformInfo.h - LoongArch specific TTI --*- 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
-//
-//===----------------------------------------------------------------------===//
-/// \file
-/// This file a TargetTransformInfo::Concept conforming object 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.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETTRANSFORMINFO_H
-#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETTRANSFORMINFO_H
-
-#include "LoongArchSubtarget.h"
-#include "LoongArchTargetMachine.h"
-#include "llvm/Analysis/TargetTransformInfo.h"
-#include "llvm/CodeGen/BasicTTIImpl.h"
-
-namespace llvm {
-
-class LoongArchTTIImpl : public BasicTTIImplBase<LoongArchTTIImpl> {
- typedef BasicTTIImplBase<LoongArchTTIImpl> BaseT;
- typedef TargetTransformInfo TTI;
- friend BaseT;
-
- const LoongArchSubtarget *ST;
- const LoongArchTargetLowering *TLI;
-
- const LoongArchSubtarget *getST() const { return ST; }
- const LoongArchTargetLowering *getTLI() const { return TLI; }
-
-public:
- explicit LoongArchTTIImpl(const LoongArchTargetMachine *TM, const Function &F)
- : BaseT(TM, F.getParent()->getDataLayout()), ST(TM->getSubtargetImpl(F)),
- TLI(ST->getTargetLowering()) {}
-
- // TODO: Implement more hooks to provide TTI machinery for LoongArch.
-};
-
-} // end namespace llvm
-
-#endif // LLVM_LIB_TARGET_LOONGARCH_LOONGARCHTARGETTRANSFORMINFO_H