| LLVM 22.0.0git
    | 
#include "llvm/CodeGen/EarlyIfConversion.h"#include "llvm/ADT/BitVector.h"#include "llvm/ADT/DenseSet.h"#include "llvm/ADT/PostOrderIterator.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/ADT/SparseSet.h"#include "llvm/ADT/Statistic.h"#include "llvm/Analysis/OptimizationRemarkEmitter.h"#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/MachineTraceMetrics.h"#include "llvm/CodeGen/Register.h"#include "llvm/CodeGen/TargetInstrInfo.h"#include "llvm/CodeGen/TargetRegisterInfo.h"#include "llvm/CodeGen/TargetSubtargetInfo.h"#include "llvm/InitializePasses.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 | DEBUG_TYPE "early-ifcvt" | 
| #define | DEBUG_TYPE "early-if-predicator" | 
| Functions | |
| STATISTIC (NumDiamondsSeen, "Number of diamonds") | |
| STATISTIC (NumDiamondsConv, "Number of diamonds converted") | |
| STATISTIC (NumTrianglesSeen, "Number of triangles") | |
| STATISTIC (NumTrianglesConv, "Number of triangles converted") | |
| static bool | hasSameValue (const MachineRegisterInfo &MRI, const TargetInstrInfo *TII, Register TReg, Register FReg) | 
| INITIALIZE_PASS_BEGIN (EarlyIfConverterLegacy, DEBUG_TYPE, "Early If Converter", false, false) INITIALIZE_PASS_END(EarlyIfConverterLegacy | |
| static unsigned | adjCycles (unsigned Cyc, int Delta) | 
| INITIALIZE_PASS_BEGIN (EarlyIfPredicator, DEBUG_TYPE, "Early If Predicator", false, false) INITIALIZE_PASS_END(EarlyIfPredicator | |
| Variables | |
| static cl::opt< unsigned > | BlockInstrLimit ("early-ifcvt-limit", cl::init(30), cl::Hidden, cl::desc("Maximum number of instructions per speculated block.")) | 
| static cl::opt< bool > | Stress ("stress-early-ifcvt", cl::Hidden, cl::desc("Turn all knobs to 11")) | 
| DEBUG_TYPE | |
| Early If | Converter | 
| Early If | false | 
| Early If | Predicator | 
| #define DEBUG_TYPE "early-ifcvt" | 
Definition at line 46 of file EarlyIfConversion.cpp.
| #define DEBUG_TYPE "early-if-predicator" | 
Definition at line 46 of file EarlyIfConversion.cpp.
Definition at line 900 of file EarlyIfConversion.cpp.
| 
 | static | 
Definition at line 572 of file EarlyIfConversion.cpp.
References llvm::any_of(), llvm::MachineInstr::findRegisterDefOperandIdx(), llvm::MachineInstr::hasUnmodeledSideEffects(), llvm::MachineInstr::isDereferenceableInvariantLoad(), llvm::Register::isVirtual(), llvm::MachineInstr::mayLoadOrStore(), MRI, TII, and llvm::MachineInstr::uses().
| INITIALIZE_PASS_BEGIN | ( | EarlyIfConverterLegacy | , | 
| DEBUG_TYPE | , | ||
| "Early If Converter" | , | ||
| false | , | ||
| false | ) | 
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
| INITIALIZE_PASS_BEGIN | ( | EarlyIfPredicator | , | 
| DEBUG_TYPE | , | ||
| "Early If Predicator" | , | ||
| false | , | ||
| false | ) | 
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
| STATISTIC | ( | NumDiamondsConv | , | 
| "Number of diamonds converted" | ) | 
| STATISTIC | ( | NumDiamondsSeen | , | 
| "Number of diamonds" | ) | 
| STATISTIC | ( | NumTrianglesConv | , | 
| "Number of triangles converted" | ) | 
References MRI, llvm::CallingConv::Tail, TBB, TII, and TRI.
| STATISTIC | ( | NumTrianglesSeen | , | 
| "Number of triangles" | ) | 
| 
 | static | 
| Early If Converter | 
Definition at line 846 of file EarlyIfConversion.cpp.
Referenced by createInterfaceFile().
| DEBUG_TYPE | 
Definition at line 846 of file EarlyIfConversion.cpp.
| Early If false | 
Definition at line 847 of file EarlyIfConversion.cpp.
| Early If Predicator | 
Definition at line 1228 of file EarlyIfConversion.cpp.
Referenced by llvm::VPlanTransforms::introduceMasksAndLinearize().
| 
 | static | 
Referenced by shouldConvertImpl().