|
LLVM 22.0.0git
|
#include "llvm/CodeGen/LiveIntervals.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/DepthFirstIterator.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/iterator_range.h"#include "llvm/CodeGen/LiveInterval.h"#include "llvm/CodeGen/LiveIntervalCalc.h"#include "llvm/CodeGen/LiveVariables.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBundle.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/MachineSizeOpts.h"#include "llvm/CodeGen/Passes.h"#include "llvm/CodeGen/SlotIndexes.h"#include "llvm/CodeGen/StackMaps.h"#include "llvm/CodeGen/TargetRegisterInfo.h"#include "llvm/CodeGen/TargetSubtargetInfo.h"#include "llvm/CodeGen/VirtRegMap.h"#include "llvm/Config/llvm-config.h"#include "llvm/IR/ProfileSummary.h"#include "llvm/IR/Statepoint.h"#include "llvm/MC/LaneBitmask.h"#include "llvm/MC/MCRegisterInfo.h"#include "llvm/Pass.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Debug.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/raw_ostream.h"#include <algorithm>#include <cassert>#include <cstdint>#include <iterator>#include <tuple>#include <utility>Go to the source code of this file.
Classes | |
| class | llvm::LiveIntervals::HMEditor |
| Toolkit used by handleMove to trim or extend live intervals. More... | |
Macros | |
| #define | DEBUG_TYPE "regalloc" |
Functions | |
| INITIALIZE_PASS_BEGIN (LiveIntervalsWrapperPass, "liveintervals", "Live Interval Analysis", false, false) INITIALIZE_PASS_END(LiveIntervalsWrapperPass | |
| static void | createSegmentsForValues (LiveRange &LR, iterator_range< LiveInterval::vni_iterator > VNIs) |
| static bool | hasLiveThroughUse (const MachineInstr *MI, Register Reg) |
| Check whether use of reg in MI is live-through. | |
Variables | |
| liveintervals | |
| Live Interval | Analysis |
| Live Interval | false |
| static cl::opt< bool > | EnablePrecomputePhysRegs ("precompute-phys-liveness", cl::Hidden, cl::desc("Eagerly compute live intervals for all physreg units.")) |
| #define DEBUG_TYPE "regalloc" |
Definition at line 60 of file LiveIntervals.cpp.
|
static |
Definition at line 390 of file LiveIntervals.cpp.
References llvm::LiveRange::addSegment(), llvm::VNInfo::def, and llvm::VNInfo::isUnused().
Referenced by llvm::LiveIntervals::shrinkToUses(), and llvm::LiveIntervals::shrinkToUses().
|
static |
Check whether use of reg in MI is live-through.
Live-through means that the value is alive on exit from Machine instruction. The example of such use is a deopt value in statepoint instruction.
Definition at line 939 of file LiveIntervals.cpp.
References llvm::DeoptLiveIn, E(), llvm::StatepointOpers::getFlags(), llvm::StatepointOpers::getNumDeoptArgsIdx(), llvm::StatepointOpers::getNumGCPtrIdx(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), MI, and Reg.
Referenced by llvm::LiveIntervals::checkRegMaskInterference().
| INITIALIZE_PASS_BEGIN | ( | LiveIntervalsWrapperPass | , |
| "liveintervals" | , | ||
| "Live Interval Analysis" | , | ||
| false | , | ||
| false | ) |
References INITIALIZE_PASS_DEPENDENCY.
| Live Interval Analysis |
Definition at line 86 of file LiveIntervals.cpp.
|
static |
| Live Interval false |
Definition at line 86 of file LiveIntervals.cpp.
| liveintervals |
Definition at line 85 of file LiveIntervals.cpp.