LLVM 20.0.0git
|
#include "AMDGPUUnifyDivergentExitNodes.h"
#include "AMDGPU.h"
#include "SIDefines.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Analysis/DomTreeUpdater.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/UniformityAnalysis.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
#include "llvm/IR/Type.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/Casting.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Utils.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "amdgpu-unify-divergent-exit-nodes" |
Functions | |
INITIALIZE_PASS_BEGIN (AMDGPUUnifyDivergentExitNodes, DEBUG_TYPE, "Unify divergent function exit nodes", false, false) INITIALIZE_PASS_END(AMDGPUUnifyDivergentExitNodes | |
static bool | isUniformlyReached (const UniformityInfo &UA, BasicBlock &BB) |
Variables | |
DEBUG_TYPE | |
Unify divergent function exit | nodes |
Unify divergent function exit | false |
#define DEBUG_TYPE "amdgpu-unify-divergent-exit-nodes" |
Definition at line 54 of file AMDGPUUnifyDivergentExitNodes.cpp.
INITIALIZE_PASS_BEGIN | ( | AMDGPUUnifyDivergentExitNodes | , |
DEBUG_TYPE | , | ||
"Unify divergent function exit nodes" | , | ||
false | , | ||
false | |||
) |
|
static |
BB
is reachable through only uniform branches. XXX - Is there a more efficient way to find this? Definition at line 122 of file AMDGPUUnifyDivergentExitNodes.cpp.
References llvm::BasicBlock::getTerminator(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::GenericUniformityInfo< ContextT >::isUniform(), and llvm::predecessors().
DEBUG_TYPE |
Definition at line 96 of file AMDGPUUnifyDivergentExitNodes.cpp.
Unify divergent function exit false |
Definition at line 97 of file AMDGPUUnifyDivergentExitNodes.cpp.
Unify divergent function exit nodes |
Definition at line 97 of file AMDGPUUnifyDivergentExitNodes.cpp.
Referenced by llvm::DomTreeBuilder::SemiNCAInfo< DomTreeT >::FindRoots(), llvm::SpillPlacement::Node::getDissentingNeighbors(), and llvm::SpillPlacement::Node::update().