LLVM 20.0.0git
|
This file contains a pass that lowers thread local variables on the XCore. More...
#include "XCore.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsXCore.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Pass.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "xcore-lower-thread-local" |
Functions | |
INITIALIZE_PASS (XCoreLowerThreadLocal, "xcore-lower-thread-local", "Lower thread local variables", false, false) ModulePass *llvm | |
static ArrayType * | createLoweredType (Type *OriginalType) |
static Constant * | createLoweredInitializer (ArrayType *NewType, Constant *OriginalInitializer) |
static bool | replaceConstantExprOp (ConstantExpr *CE, Pass *P) |
static bool | rewriteNonInstructionUses (GlobalVariable *GV, Pass *P) |
static bool | isZeroLengthArray (Type *Ty) |
Variables | |
static cl::opt< unsigned > | MaxThreads ("xcore-max-threads", cl::Optional, cl::desc("Maximum number of threads (for emulation thread-local storage)"), cl::Hidden, cl::value_desc("number"), cl::init(8)) |
This file contains a pass that lowers thread local variables on the XCore.
Definition in file XCoreLowerThreadLocal.cpp.
#define DEBUG_TYPE "xcore-lower-thread-local" |
Definition at line 28 of file XCoreLowerThreadLocal.cpp.
|
static |
Definition at line 68 of file XCoreLowerThreadLocal.cpp.
References llvm::ConstantArray::get(), and MaxThreads.
Definition at line 63 of file XCoreLowerThreadLocal.cpp.
References MaxThreads.
INITIALIZE_PASS | ( | XCoreLowerThreadLocal | , |
"xcore-lower-thread-local" | , | ||
"Lower thread local variables" | , | ||
false | , | ||
false | |||
) |
Definition at line 56 of file XCoreLowerThreadLocal.cpp.
Definition at line 126 of file XCoreLowerThreadLocal.cpp.
|
static |
Definition at line 77 of file XCoreLowerThreadLocal.cpp.
References llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::erase(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::Instruction::getNumSuccessors(), llvm::BasicBlock::getParent(), llvm::BasicBlock::getTerminator(), I, llvm::Instruction::insertBefore(), P, llvm::SmallVectorImpl< T >::pop_back_val(), replaceConstantExprOp(), llvm::sort(), llvm::SplitEdge(), and llvm::unique().
Referenced by replaceConstantExprOp(), and rewriteNonInstructionUses().
|
static |
Definition at line 112 of file XCoreLowerThreadLocal.cpp.
References llvm::SmallVectorBase< Size_T >::empty(), P, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), replaceConstantExprOp(), and llvm::Value::users().
|
static |
Referenced by createLoweredInitializer(), createLoweredType(), and llvm::OpenMPIRBuilder::createTargetInit().