|
LLVM
4.0.0
|
#include "AMDGPU.h"#include "AMDGPUSubtarget.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/MDBuilder.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "amdgpu-promote-alloca" |
Functions | |
| static VectorType * | arrayTypeToVecType (Type *ArrayTy) |
| static Value * | calculateVectorIndex (Value *Ptr, const std::map< GetElementPtrInst *, Value * > &GEPIdx) |
| static Value * | GEPToVectorIndex (GetElementPtrInst *GEP) |
| static bool | canVectorizeInst (Instruction *Inst, User *User) |
| static bool | tryPromoteAllocaToVector (AllocaInst *Alloca) |
| static bool | isCallPromotable (CallInst *CI) |
| #define DEBUG_TYPE "amdgpu-promote-alloca" |
Definition at line 24 of file AMDGPUPromoteAlloca.cpp.
|
static |
Definition at line 340 of file AMDGPUPromoteAlloca.cpp.
References llvm::VectorType::get(), llvm::Type::getArrayElementType(), and llvm::Type::getArrayNumElements().
Referenced by tryPromoteAllocaToVector().
|
static |
Definition at line 346 of file AMDGPUPromoteAlloca.cpp.
Referenced by tryPromoteAllocaToVector().
|
static |
Definition at line 370 of file AMDGPUPromoteAlloca.cpp.
References llvm::Instruction::getOpcode(), llvm::StoreInst::getPointerOperand(), llvm::SPII::Load, SI, and llvm::SPII::Store.
Referenced by tryPromoteAllocaToVector().
|
static |
Definition at line 354 of file AMDGPUPromoteAlloca.cpp.
References llvm::dyn_cast(), llvm::User::getNumOperands(), llvm::User::getOperand(), and llvm::ConstantInt::isZero().
Referenced by tryPromoteAllocaToVector().
Definition at line 477 of file AMDGPUPromoteAlloca.cpp.
References llvm::dyn_cast(), and llvm::IntrinsicInst::getIntrinsicID().
|
static |
Definition at line 386 of file AMDGPUPromoteAlloca.cpp.
References arrayTypeToVecType(), calculateVectorIndex(), canVectorizeInst(), llvm::dbgs(), DEBUG, llvm::dyn_cast(), llvm::Instruction::eraseFromParent(), GEP, GEPToVectorIndex(), llvm::AllocaInst::getAllocatedType(), llvm::SequentialType::getElementType(), llvm::SequentialType::getNumElements(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Type::getPointerTo(), llvm::Type::isVectorTy(), llvm_unreachable, llvm::SPII::Load, AMDGPUAS::PRIVATE_ADDRESS, Ptr, llvm::Value::replaceAllUsesWith(), llvm::SPII::Store, and llvm::Value::users().
1.8.6