LLVM 20.0.0git
Macros | Functions
AArch64A53Fix835769.cpp File Reference
#include "AArch64.h"
#include "AArch64Subtarget.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/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 MachineBasicBlockgetBBFallenThrough (MachineBasicBlock *MBB, const TargetInstrInfo *TII)
 
static MachineInstrgetLastNonPseudo (MachineBasicBlock &MBB, const TargetInstrInfo *TII)
 
static void insertNopBeforeInstruction (MachineBasicBlock &MBB, MachineInstr *MI, const TargetInstrInfo *TII)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64-fix-cortex-a53-835769"

Definition at line 30 of file AArch64A53Fix835769.cpp.

Function Documentation

◆ getBBFallenThrough()

static MachineBasicBlock * getBBFallenThrough ( MachineBasicBlock MBB,
const TargetInstrInfo TII 
)
static

◆ getLastNonPseudo()

static MachineInstr * getLastNonPseudo ( MachineBasicBlock MBB,
const TargetInstrInfo TII 
)
static

Definition at line 160 of file AArch64A53Fix835769.cpp.

References getBBFallenThrough(), I, MBB, llvm::reverse(), and TII.

Referenced by insertNopBeforeInstruction().

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( AArch64A53Fix835769  ,
"aarch64-fix-cortex-a53-835769-pass"  ,
"AArch64 fix for A53 erratum 835769"  ,
false  ,
false   
)

Definition at line 111 of file AArch64A53Fix835769.cpp.

References llvm::dbgs(), F, LLVM_DEBUG, MBB, runOnBasicBlock(), and TII.

◆ insertNopBeforeInstruction()

static void insertNopBeforeInstruction ( MachineBasicBlock MBB,
MachineInstr MI,
const TargetInstrInfo TII 
)
static

◆ isFirstInstructionInSequence()

static bool isFirstInstructionInSequence ( MachineInstr MI)
static

Definition at line 39 of file AArch64A53Fix835769.cpp.

References MI.

◆ isSecondInstructionInSequence()

static bool isSecondInstructionInSequence ( MachineInstr MI)
static

Definition at line 55 of file AArch64A53Fix835769.cpp.

References MI.

◆ STATISTIC()

STATISTIC ( NumNopsAdded  ,
"Number of Nops added to work around erratum 835769"   
)