|
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.