LLVM 20.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 605 of file X86FloatingPoint.cpp.
#define DEBUG_TYPE "x86-codegen" |
Definition at line 51 of file X86FloatingPoint.cpp.
|
static |
Definition at line 831 of file X86FloatingPoint.cpp.
References MI.
Definition at line 789 of file X86FloatingPoint.cpp.
References assert(), ASSERT_SORTED, Lookup(), 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 314 of file X86FloatingPoint.cpp.
References assert(), llvm::MachineOperand::getReg(), and llvm::MachineOperand::isReg().
|
static |
Definition at line 840 of file X86FloatingPoint.cpp.
References llvm::MachineBasicBlock::end(), I, llvm::X86::isX87Instruction(), MBB, and MI.
INITIALIZE_PASS_BEGIN | ( | FPS | , |
DEBUG_TYPE | , | ||
"X86 FP Stackifier" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 595 of file X86FloatingPoint.cpp.
References llvm::ArrayRef< T >::end(), I, and llvm::lower_bound().
Referenced by llvm::TargetLowering::CTTZTableLookup(), llvm::fillMapFromAssume(), getConcreteOpcode(), llvm::getExtInstName(), llvm::getLinkStringForBuiltIn(), llvm::ConstantUniqueMap< ConstantClass >::getOrCreate(), llvm::getSpirvBuiltInIdByName(), llvm::getSymbolicOperandMaxVersion(), llvm::getSymbolicOperandMinVersion(), llvm::getSymbolicOperandMnemonic(), llvm::orc::EPCGenericDylibManager::lookup(), llvm::orc::EPCGenericDylibManager::lookupAsync(), and llvm::ConstantUniqueMap< ConstantClass >::replaceOperandsInPlace().
STATISTIC | ( | NumFP | , |
"Number of floating point instructions" | |||
) |
STATISTIC | ( | NumFXCH | , |
"Number of fxch instructions inserted" | |||
) |
DEBUG_TYPE |
Definition at line 307 of file X86FloatingPoint.cpp.
X86 FP false |
Definition at line 308 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1278 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1310 of file X86FloatingPoint.cpp.
|
static |
Definition at line 624 of file X86FloatingPoint.cpp.
Referenced by getConcreteOpcode().
|
static |
Definition at line 803 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1294 of file X86FloatingPoint.cpp.
|
static |
Definition at line 1326 of file X86FloatingPoint.cpp.
X86 FP Stackifier |
Definition at line 307 of file X86FloatingPoint.cpp.