LLVM 22.0.0git
|
#include "X86.h"
#include "X86InstrInfo.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/EdgeBundles.h"
#include "llvm/CodeGen/LiveRegUnits.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include <algorithm>
#include <bitset>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "x86-codegen" |
#define | ASSERT_SORTED(TABLE) |
Functions | |
STATISTIC (NumFXCH, "Number of fxch instructions inserted") | |
STATISTIC (NumFP, "Number of floating point instructions") | |
INITIALIZE_PASS_BEGIN (FPS, DEBUG_TYPE, "X86 FP Stackifier", false, false) INITIALIZE_PASS_END(FPS | |
static unsigned | getFPReg (const MachineOperand &MO) |
getFPReg - Return the X86::FPx register number for the specified operand. | |
static int | Lookup (ArrayRef< TableEntry > Table, unsigned Opcode) |
static unsigned | getConcreteOpcode (unsigned Opcode) |
static bool | doesInstructionSetFPSW (MachineInstr &MI) |
static MachineBasicBlock::iterator | getNextFPInstruction (MachineBasicBlock::iterator I) |
Variables | |
DEBUG_TYPE | |
X86 FP | Stackifier |
X86 FP | false |
static const TableEntry | OpcodeTable [] |
static const TableEntry | PopTable [] |
static const TableEntry | ForwardST0Table [] |
static const TableEntry | ReverseST0Table [] |
static const TableEntry | ForwardSTiTable [] |
static const TableEntry | ReverseSTiTable [] |
#define ASSERT_SORTED | ( | TABLE | ) |
Definition at line 622 of file X86FloatingPoint.cpp.
Referenced by getConcreteOpcode().
#define DEBUG_TYPE "x86-codegen" |
Definition at line 51 of file X86FloatingPoint.cpp.
|
static |
Definition at line 848 of file X86FloatingPoint.cpp.
References llvm::MachineOperand::isDead(), and MI.
Definition at line 806 of file X86FloatingPoint.cpp.
References assert(), ASSERT_SORTED, Lookup(), Opc, and OpcodeTable.
|
static |
getFPReg - Return the X86::FPx register number for the specified operand.
For example, this returns 3 for X86::FP3.
Definition at line 313 of file X86FloatingPoint.cpp.
References assert(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), and Reg.
|
static |
Definition at line 857 of file X86FloatingPoint.cpp.
References I, llvm::X86::isX87Instruction(), MBB, and MI.
INITIALIZE_PASS_BEGIN | ( | FPS | , |
DEBUG_TYPE | , | ||
"X86 FP Stackifier" | , | ||
false | , | ||
false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 612 of file X86FloatingPoint.cpp.
References llvm::ArrayRef< T >::end(), I, and llvm::lower_bound().
Referenced by llvm::PointerSumType< TagT, MemberTs... >::cast(), llvm::PointerSumType< TagT, MemberTs... >::create(), llvm::TargetLowering::CTTZTableLookup(), llvm::PointerSumType< TagT, MemberTs... >::get(), getConcreteOpcode(), llvm::getExtInstName(), llvm::getLinkStringForBuiltIn(), llvm::ConstantUniqueMap< ConstantArray >::getOrCreate(), llvm::ReachingDefInfo::getReachingDef(), llvm::getSpirvBuiltInIdByName(), llvm::getSymbolicOperandMaxVersion(), llvm::getSymbolicOperandMinVersion(), llvm::getSymbolicOperandMnemonic(), llvm::orc::EPCGenericDylibManager::lookup(), llvm::orc::EPCGenericDylibManager::lookup(), llvm::orc::EPCGenericDylibManager::lookupAsync(), llvm::orc::EPCGenericDylibManager::lookupAsync(), llvm::ConstantUniqueMap< ConstantArray >::replaceOperandsInPlace(), llvm::PointerSumType< TagT, MemberTs... >::set(), and llvm::FunctionImporter::SortedImportList::SortedImportList().
STATISTIC | ( | NumFP | , |
"Number of floating point instructions" | ) |
STATISTIC | ( | NumFXCH | , |
"Number of fxch instructions inserted" | ) |
DEBUG_TYPE |
Definition at line 306 of file X86FloatingPoint.cpp.
X86 FP false |
Definition at line 307 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1295 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1327 of file X86FloatingPoint.cpp.
|
static |
Definition at line 641 of file X86FloatingPoint.cpp.
Referenced by getConcreteOpcode().
|
static |
Definition at line 820 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1311 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1343 of file X86FloatingPoint.cpp.
X86 FP Stackifier |
Definition at line 306 of file X86FloatingPoint.cpp.