|
LLVM
3.7.0
|
#include "AMDGPU.h"#include "AMDGPUSubtarget.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/InstVisitor.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 (const Type *ArrayTy) |
| static Value * | calculateVectorIndex (Value *Ptr, const std::map< GetElementPtrInst *, Value * > &GEPIdx) |
| static Value * | GEPToVectorIndex (GetElementPtrInst *GEP) |
| static bool | canVectorizeInst (Instruction *Inst) |
| static bool | tryPromoteAllocaToVector (AllocaInst *Alloca) |
| static bool | collectUsesWithPtrTypes (Value *Val, std::vector< Value * > &WorkList) |
| #define DEBUG_TYPE "amdgpu-promote-alloca" |
Definition at line 23 of file AMDGPUPromoteAlloca.cpp.
|
static |
Definition at line 104 of file AMDGPUPromoteAlloca.cpp.
References llvm::VectorType::get(), llvm::Type::getArrayElementType(), and llvm::Type::getArrayNumElements().
Referenced by tryPromoteAllocaToVector().
|
static |
Definition at line 110 of file AMDGPUPromoteAlloca.cpp.
References GEP, llvm::Value::getContext(), llvm::Type::getInt32Ty(), llvm::Constant::getNullValue(), and I.
Referenced by tryPromoteAllocaToVector().
|
static |
Definition at line 137 of file AMDGPUPromoteAlloca.cpp.
References llvm::Instruction::getOpcode(), llvm::SPII::Load, and llvm::SPII::Store.
Referenced by tryPromoteAllocaToVector().
Definition at line 238 of file AMDGPUPromoteAlloca.cpp.
References llvm::dyn_cast(), llvm::Instruction::getOpcode(), llvm::Value::getType(), llvm::Type::isPointerTy(), Success, and llvm::Value::users().
|
static |
Definition at line 121 of file AMDGPUPromoteAlloca.cpp.
References llvm::dyn_cast(), llvm::User::getNumOperands(), llvm::User::getOperand(), and llvm::ConstantInt::isZero().
Referenced by tryPromoteAllocaToVector().
|
static |
Definition at line 149 of file AMDGPUPromoteAlloca.cpp.
References arrayTypeToVecType(), calculateVectorIndex(), canVectorizeInst(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateBitCast(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateExtractElement(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateInsertElement(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateLoad(), llvm::IRBuilder< preserveNames, T, Inserter >::CreateStore(), llvm::dbgs(), DEBUG, llvm::Value::dump(), llvm::dyn_cast(), llvm::Instruction::eraseFromParent(), ExtractElement(), GEP, GEPToVectorIndex(), llvm::AllocaInst::getAllocatedType(), llvm::Type::getArrayElementType(), llvm::Type::getArrayNumElements(), llvm::Instruction::getOpcode(), llvm::User::getOperand(), llvm::Type::getPointerTo(), I, llvm::Type::isArrayTy(), llvm::Type::isVectorTy(), llvm_unreachable, llvm::SPII::Load, llvm::Value::replaceAllUsesWith(), llvm::SPII::Store, and llvm::Value::users().
1.8.6