mirror of
https://github.com/llvm/llvm-project.git
synced 2026-10-26 13:53:31 +08:00
AMDGPU reads -misched-prera-direction and -verify-misched, every target's TTI reads -partial-unrolling-threshold through BasicTTIImpl.h, and AsmPrinter reads -emit-bb-hash through extern declarations. Add getters for them, move inline code that reads options (LiveIntervals, MachinePipeliner, MIR2Vec) out of line, and let unittests use default weights, so that the options can be file-local. Aided by Opus 5.5
39 lines
1.6 KiB
C++
39 lines
1.6 KiB
C++
//===- BasicTargetTransformInfo.cpp - Basic target-independent TTI impl ---===//
|
|
//
|
|
// 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 provides the implementation of a basic TargetTransformInfo pass
|
|
/// predicated on the target abstractions present in the target independent
|
|
/// code generator. It uses these (primarily TargetLowering) to model as much
|
|
/// of the TTI query interface as possible. It is included by most targets so
|
|
/// that they can specialize only a small subset of the query space.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/CodeGen/BasicTTIImpl.h"
|
|
#include "llvm/CodeGen/TargetSubtargetInfo.h"
|
|
#include "llvm/IR/Function.h"
|
|
#include "llvm/Support/CommandLine.h"
|
|
#include "llvm/Target/TargetMachine.h"
|
|
|
|
using namespace llvm;
|
|
|
|
static cl::opt<unsigned>
|
|
PartialUnrollingThreshold("partial-unrolling-threshold", cl::init(0),
|
|
cl::desc("Threshold for partial unrolling"),
|
|
cl::Hidden);
|
|
|
|
std::optional<unsigned> llvm::getPartialUnrollingThreshold() {
|
|
if (PartialUnrollingThreshold.getNumOccurrences())
|
|
return PartialUnrollingThreshold;
|
|
return std::nullopt;
|
|
}
|
|
|
|
BasicTTIImpl::BasicTTIImpl(const TargetMachine *TM, const Function &F)
|
|
: BaseT(TM, F.getDataLayout()), ST(TM->getSubtargetImpl(F)),
|
|
TLI(ST->getTargetLowering()) {}
|