LLVM 22.0.0git
|
This pass does misc. More...
#include "AMDGPU.h"
#include "AMDGPUTargetMachine.h"
#include "SIModeRegisterDefaults.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/UniformityAnalysis.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/KnownBits.h"
#include "llvm/Support/KnownFPClass.h"
#include "llvm/Transforms/Utils/IntegerDivision.h"
#include "llvm/Transforms/Utils/Local.h"
Go to the source code of this file.
Classes | |
class | VectorSlice |
Helper class for "break large PHIs" (visitPHINode). More... |
Macros | |
#define | DEBUG_TYPE "amdgpu-codegenprepare" |
Variables | |
DEBUG_TYPE | |
AMDGPU IR | optimizations |
AMDGPU IR | false |
This pass does misc.
AMDGPU optimizations on IR before instruction selection.
Definition in file AMDGPUCodeGenPrepare.cpp.
#define DEBUG_TYPE "amdgpu-codegenprepare" |
Definition at line 39 of file AMDGPUCodeGenPrepare.cpp.
Definition at line 1536 of file AMDGPUCodeGenPrepare.cpp.
References A(), B(), and llvm::dyn_cast().
Referenced by isInterestingPHIIncomingValue().
|
static |
Definition at line 1599 of file AMDGPUCodeGenPrepare.cpp.
References collectPHINodes(), llvm::dyn_cast(), I, and llvm::SmallPtrSetImpl< PtrType >::insert().
Referenced by collectPHINodes().
Emit an expansion of 1.0 / sqrt(Src) good for 1ulp that supports denormals.
Definition at line 599 of file AMDGPUCodeGenPrepare.cpp.
References llvm::APFloat::getSmallestNormalized().
|
static |
Definition at line 338 of file AMDGPUCodeGenPrepare.cpp.
References llvm::dyn_cast(), E(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
static |
Definition at line 430 of file AMDGPUCodeGenPrepare.cpp.
References llvm::dyn_cast(), and llvm::User::getOperand().
Definition at line 902 of file AMDGPUCodeGenPrepare.cpp.
References llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::Hi, LHS, llvm::Lo, and RHS.
Referenced by getMulHu().
Definition at line 916 of file AMDGPUCodeGenPrepare.cpp.
References getMul64(), LHS, and RHS.
|
static |
Definition at line 1110 of file AMDGPUCodeGenPrepare.cpp.
References llvm::computeKnownBits(), DL, llvm::Constant::getAllOnesValue(), llvm::Constant::getNullValue(), llvm::KnownBits::isNegative(), and llvm::KnownBits::isNonNegative().
INITIALIZE_PASS_BEGIN | ( | AMDGPUCodeGenPrepare | , |
DEBUG_TYPE | , | ||
"AMDGPU IR optimizations" | , | ||
false | , | ||
false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 350 of file AMDGPUCodeGenPrepare.cpp.
References assert(), E(), llvm::PoisonValue::get(), I, and llvm::SmallVectorTemplateCommon< T, typename >::size().
Definition at line 1544 of file AMDGPUCodeGenPrepare.cpp.
References llvm::BitVector::all(), areInSameBB(), llvm::dyn_cast(), llvm::isa(), and llvm::BitVector::set().
|
static |
V | Value to check |
DL | DataLayout |
TM | TargetMachine (TODO: remove once DL contains nullptr values) |
AS | Target Address Space |
V
cannot be the null value of AS
, false otherwise. Definition at line 1829 of file AMDGPUCodeGenPrepare.cpp.
References assert(), llvm::cast(), llvm::computeKnownBits(), DL, llvm::dyn_cast(), and llvm::isa().
DEBUG_TYPE |
Definition at line 2090 of file AMDGPUCodeGenPrepare.cpp.
AMDGPU IR false |
Definition at line 2091 of file AMDGPUCodeGenPrepare.cpp.
AMDGPU IR optimizations |
Definition at line 2090 of file AMDGPUCodeGenPrepare.cpp.