|
LLVM 24.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/CommandLine.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 (Register 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 | mayHaveOffset (const MachineOperand &Offset) |
| static unsigned | getADDrrFromLEA (unsigned LEAOpcode) |
| static unsigned | getSUBrrFromLEA (unsigned LEAOpcode) |
| static unsigned | getADDriFromLEA (unsigned LEAOpcode, const MachineOperand &Offset) |
| static unsigned | getSUBriFromLEA (unsigned LEAOpcode) |
| static unsigned | getINCDECFromLEA (unsigned LEAOpcode, bool IsINC) |
| #define DEBUG_TYPE FIXUPLEA_NAME |
Definition at line 34 of file X86FixupLEAs.cpp.
| #define FIXUPLEA_DESC "X86 LEA Fixup" |
Definition at line 31 of file X86FixupLEAs.cpp.
| #define FIXUPLEA_NAME "x86-fixup-leas" |
Definition at line 32 of file X86FixupLEAs.cpp.
|
inlinestatic |
Definition at line 376 of file X86FixupLEAs.cpp.
References llvm_unreachable, and llvm::Offset.
Definition at line 352 of file X86FixupLEAs.cpp.
References llvm_unreachable.
Definition at line 401 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 296 of file X86FixupLEAs.cpp.
Definition at line 389 of file X86FixupLEAs.cpp.
References llvm_unreachable.
Definition at line 364 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 341 of file X86FixupLEAs.cpp.
References llvm::sampleprof::Base, and isInefficientLEAReg().
Definition at line 332 of file X86FixupLEAs.cpp.
References Reg.
Referenced by hasInefficientLEABaseReg().
Definition at line 228 of file X86FixupLEAs.cpp.
Referenced by llvm::X86InstrInfo::isDataInvariant().
|
inlinestatic |
Definition at line 348 of file X86FixupLEAs.cpp.
References llvm::Offset.
| STATISTIC | ( | NumLEAs | , |
| "Number of LEA instructions created" | ) |