Go to the documentation of this file.
13 #ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONTARGETMACHINE_H
14 #define LLVM_LIB_TARGET_HEXAGON_HEXAGONTARGETMACHINE_H
27 std::unique_ptr<TargetLoweringObjectFile> TLOF;
33 std::optional<Reloc::Model>
RM,
This is an optimization pass for GlobalISel generic memory operations.
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
std::unique_ptr< const MCSubtargetInfo > STI
Target - Wrapper for Target specific information.
Triple - Helper class for working with autoconf configuration names.
TargetPassConfig * createPassConfig(PassManagerBase &PM) override
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of ...
This class provides access to building LLVM's passes.
void registerPassBuilderCallbacks(PassBuilder &PB) override
Allow the target to modify the pass pipeline.
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
Target-Independent Code Generator Pass Configuration Options.
Allocate memory in an ever growing pool, as if by bump-pointer.
A Module instance is used to store all the information related to an LLVM module.
static unsigned getModuleMatchQuality(const Module &M)
StringRef - Represent a constant reference to a string, i.e.
Machine Check Debug Module
TargetSubtargetInfo - Generic base class for all target subtargets.
~HexagonTargetMachine() override
TargetTransformInfo getTargetTransformInfo(const Function &F) const override
Get a TargetTransformInfo implementation for the target.
This class describes a target machine that is implemented with the LLVM target-independent code gener...
MachineFunctionInfo * createMachineFunctionInfo(BumpPtrAllocator &Allocator, const Function &F, const TargetSubtargetInfo *STI) const override
Create the target's instance of MachineFunctionInfo.
const HexagonSubtarget * getSubtargetImpl(const Function &F) const override
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInf...
HexagonTargetObjectFile * getObjFileLowering() const override
PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having ...
Level
Code generation optimization level.
PassBuilder PB(Machine, PassOpts->PTO, std::nullopt, &PIC)
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
HexagonTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CM, CodeGenOpt::Level OL, bool JIT)