LLVM 20.0.0git
|
#include "X86.h"
#include "X86InstrInfo.h"
#include "X86Subtarget.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/CodeGen/LazyMachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineSizeOpts.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetSchedule.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Macros | |
#define | FIXUPLEA_DESC "X86 LEA Fixup" |
#define | FIXUPLEA_NAME "x86-fixup-LEAs" |
#define | DEBUG_TYPE FIXUPLEA_NAME |
Functions | |
STATISTIC (NumLEAs, "Number of LEA instructions created") | |
static bool | isLEA (unsigned Opcode) |
static bool | getPreviousInstr (MachineBasicBlock::iterator &I, MachineBasicBlock &MBB) |
getPreviousInstr - Given a reference to an instruction in a basic block, return a reference to the previous instruction in the block, wrapping around to the last instruction of the block if the block branches to itself. | |
static bool | isInefficientLEAReg (unsigned Reg) |
static bool | hasInefficientLEABaseReg (const MachineOperand &Base, const MachineOperand &Index) |
Returns true if this LEA uses base and index registers, and the base register is known to be inefficient for the subtarget. | |
static bool | hasLEAOffset (const MachineOperand &Offset) |
static unsigned | getADDrrFromLEA (unsigned LEAOpcode) |
static unsigned | getSUBrrFromLEA (unsigned LEAOpcode) |
static unsigned | getADDriFromLEA (unsigned LEAOpcode, const MachineOperand &Offset) |
static unsigned | getINCDECFromLEA (unsigned LEAOpcode, bool IsINC) |
#define DEBUG_TYPE FIXUPLEA_NAME |
Definition at line 33 of file X86FixupLEAs.cpp.
#define FIXUPLEA_DESC "X86 LEA Fixup" |
Definition at line 30 of file X86FixupLEAs.cpp.
#define FIXUPLEA_NAME "x86-fixup-LEAs" |
Definition at line 31 of file X86FixupLEAs.cpp.
|
inlinestatic |
Definition at line 372 of file X86FixupLEAs.cpp.
References llvm_unreachable.
Definition at line 348 of file X86FixupLEAs.cpp.
References llvm_unreachable.
Definition at line 385 of file X86FixupLEAs.cpp.
References llvm_unreachable.
|
inlinestatic |
getPreviousInstr - Given a reference to an instruction in a basic block, return a reference to the previous instruction in the block, wrapping around to the last instruction of the block if the block branches to itself.
Definition at line 291 of file X86FixupLEAs.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::end(), I, llvm::MachineBasicBlock::isPredecessor(), and MBB.
Definition at line 360 of file X86FixupLEAs.cpp.
References llvm_unreachable.
|
inlinestatic |
Returns true if this LEA uses base and index registers, and the base register is known to be inefficient for the subtarget.
Definition at line 337 of file X86FixupLEAs.cpp.
References llvm::sampleprof::Base, and isInefficientLEAReg().
|
inlinestatic |
Definition at line 343 of file X86FixupLEAs.cpp.
References llvm::Offset.
Definition at line 328 of file X86FixupLEAs.cpp.
Referenced by hasInefficientLEABaseReg().
Definition at line 216 of file X86FixupLEAs.cpp.
Referenced by llvm::X86InstrInfo::isDataInvariant().
STATISTIC | ( | NumLEAs | , |
"Number of LEA instructions created" | |||
) |