|
LLVM
8.0.1
|
#include "AArch64.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/TargetInstrInfo.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "aarch64-fix-cortex-a53-835769" |
Functions | |
| STATISTIC (NumNopsAdded, "Number of Nops added to work around erratum 835769") | |
| static bool | isFirstInstructionInSequence (MachineInstr *MI) |
| static bool | isSecondInstructionInSequence (MachineInstr *MI) |
| INITIALIZE_PASS (AArch64A53Fix835769, "aarch64-fix-cortex-a53-835769-pass", "AArch64 fix for A53 erratum 835769", false, false) bool AArch64A53Fix835769 | |
| static MachineBasicBlock * | getBBFallenThrough (MachineBasicBlock *MBB, const TargetInstrInfo *TII) |
| static MachineInstr * | getLastNonPseudo (MachineBasicBlock &MBB, const TargetInstrInfo *TII) |
| static void | insertNopBeforeInstruction (MachineBasicBlock &MBB, MachineInstr *MI, const TargetInstrInfo *TII) |
| #define DEBUG_TYPE "aarch64-fix-cortex-a53-835769" |
Definition at line 31 of file AArch64A53Fix835769.cpp.
|
static |
Definition at line 131 of file AArch64A53Fix835769.cpp.
References llvm::TargetInstrInfo::analyzeBranch(), llvm::MachineFunction::begin(), llvm::MachineBasicBlock::getParent(), and llvm::MachineBasicBlock::predecessors().
Referenced by getLastNonPseudo().
|
static |
Definition at line 156 of file AArch64A53Fix835769.cpp.
References getBBFallenThrough(), I, llvm::make_range(), llvm::MachineBasicBlock::rbegin(), and llvm::MachineBasicBlock::rend().
Referenced by insertNopBeforeInstruction().
| INITIALIZE_PASS | ( | AArch64A53Fix835769 | , |
| "aarch64-fix-cortex-a53-835769-pass" | , | ||
| "AArch64 fix for A53 erratum 835769" | , | ||
| false | , | ||
| false | |||
| ) |
Definition at line 112 of file AArch64A53Fix835769.cpp.
References llvm::dbgs(), LLVM_DEBUG, runOnBasicBlock(), and TII.
|
static |
Definition at line 172 of file AArch64A53Fix835769.cpp.
References assert(), llvm::BuildMI(), llvm::dbgs(), llvm::MachineBasicBlock::front(), llvm::MCInstrInfo::get(), llvm::MachineInstr::getDebugLoc(), getLastNonPseudo(), llvm::MachineInstr::getParent(), I, isFirstInstructionInSequence(), llvm::MachineInstr::isPseudo(), isSecondInstructionInSequence(), LLVM_DEBUG, MI, runOnBasicBlock(), and TII.
|
static |
Definition at line 40 of file AArch64A53Fix835769.cpp.
References llvm::MachineInstr::getOpcode(), and llvm::MachineInstr::mayLoadOrStore().
Referenced by insertNopBeforeInstruction().
|
static |
Definition at line 56 of file AArch64A53Fix835769.cpp.
References F(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::Pass::getPassName(), llvm::PassRegistry::getPassRegistry(), llvm::MachineOperand::getReg(), llvm::MachineFunctionPass::getRequiredProperties(), llvm::initializeAArch64A53Fix835769Pass(), llvm::MachineFunctionPass::MachineFunctionPass(), llvm::MachineFunctionProperties::NoVRegs, runOnBasicBlock(), llvm::MachineFunctionPass::runOnMachineFunction(), llvm::MachineFunctionProperties::set(), llvm::AnalysisUsage::setPreservesCFG(), and TII.
Referenced by insertNopBeforeInstruction().
| STATISTIC | ( | NumNopsAdded | , |
| "Number of Nops added to work around erratum 835769" | |||
| ) |
1.8.13