LLVM 20.0.0git
|
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/BasicBlockSectionUtils.h"
#include "llvm/CodeGen/BasicBlockSectionsProfileReader.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachinePostDominators.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/InitializePasses.h"
#include "llvm/Target/TargetMachine.h"
#include <optional>
Go to the source code of this file.
Functions | |
INITIALIZE_PASS_BEGIN (BasicBlockSections, "bbsections-prepare", "Prepares for basic block sections, by splitting functions " "into clusters of basic blocks.", false, false) INITIALIZE_PASS_END(BasicBlockSections | |
bbsections Prepares for basic block by splitting functions into clusters of basic static false void | updateBranches (MachineFunction &MF, const SmallVector< MachineBasicBlock * > &PreLayoutFallThroughs) |
static void | assignSections (MachineFunction &MF, const DenseMap< UniqueBBID, BBClusterInfo > &FuncClusterInfo) |
Variables | |
static cl::opt< bool > | BBSectionsDetectSourceDrift ("bbsections-detect-source-drift", cl::desc("This checks if there is a fdo instr. profile hash " "mismatch for this function"), cl::init(true), cl::Hidden) |
bbsections | prepare |
bbsections Prepares for basic block | sections |
bbsections Prepares for basic block by splitting functions into clusters of basic | blocks |
bbsections Prepares for basic block by splitting functions into clusters of basic | false |
|
static |
Definition at line 188 of file BasicBlockSections.cpp.
References llvm::All, assert(), llvm::MBBSectionID::ColdSectionID, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::MBBSectionID::ExceptionSectionID, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::MachineBasicBlock::getBBID(), llvm::TargetMachine::getBBSectionsType(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getNumber(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::getSectionID(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::hasBBSections(), I, llvm::MachineBasicBlock::isEHPad(), MBB, llvm::MachineBasicBlock::setSectionID(), and TII.
INITIALIZE_PASS_BEGIN | ( | BasicBlockSections | , |
"bbsections-prepare" | , | ||
"Prepares for basic block | sections, | ||
by splitting functions " "into clusters of basic blocks." | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 146 of file BasicBlockSections.cpp.
References llvm::HexagonInstrInfo::analyzeBranch(), Cond, llvm::MachineBasicBlock::findBranchDebugLoc(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getNumber(), llvm::MachineBasicBlock::isEndSection(), MBB, TBB, TII, and llvm::MachineBasicBlock::updateTerminator().
Referenced by llvm::sortBasicBlocksAndUpdateBranches().
|
static |
Referenced by llvm::hasInstrProfHashMismatch().
Definition at line 140 of file BasicBlockSections.cpp.
Referenced by blake3_hash16_avx512(), blake3_hash4_avx512(), blake3_hash4_sse2(), blake3_hash4_sse41(), blake3_hash8_avx2(), blake3_hash8_avx512(), blake3_hash_many(), blake3_hash_many_avx2(), blake3_hash_many_avx512(), blake3_hash_many_portable(), blake3_hash_many_sse2(), blake3_hash_many_sse41(), llvm::RegionBase< RegionTraits< MachineFunction > >::contains(), llvm::deleteDeadLoop(), llvm::GCOVBlock::getCyclesCount(), llvm::LoopBase< BlockT, LoopT >::getExitBlocks(), llvm::GenericCycle< ContextT >::getExitBlocks(), llvm::LoopBase< BlockT, LoopT >::getExitEdges(), llvm::LoopBase< BlockT, LoopT >::getExitingBlock(), llvm::LoopBase< BlockT, LoopT >::getExitingBlocks(), llvm::GenericCycle< ContextT >::getExitingBlocks(), hash_one_avx512(), hash_one_portable(), hash_one_sse2(), and hash_one_sse41().
Definition at line 141 of file BasicBlockSections.cpp.
bbsections prepare |
Definition at line 138 of file BasicBlockSections.cpp.
Referenced by llvm::jitlink::ELFLinkGraphBuilder< ELFT >::buildGraph().
Definition at line 139 of file BasicBlockSections.cpp.
Referenced by llvm::object::ELFFile< ELFT >::dynamicEntries(), llvm::object::ELFFile< ELFT >::getDynSymtabSize(), llvm::object::ELFFile< ELFT >::getSection(), llvm::object::ELFFile< ELFT >::getSectionAndRelocations(), llvm::object::ELFFile< ELFT >::getSectionName(), llvm::object::ELFFile< ELFT >::getSHNDXTable(), llvm::object::ELFFile< ELFT >::getStringTableForSymtab(), llvm::pdb::InputFile::hasTypes(), and LLVMObjectFileCopySectionIterator().