LLVM API Documentation

Defines | Functions | Variables
XCoreLowerThreadLocal.cpp File Reference

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/Module.h"
#include "llvm/IR/NoFolder.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Pass.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
Include dependency graph for XCoreLowerThreadLocal.cpp:

Go to the source code of this file.

Defines

#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 Instruction * createReplacementInstr (ConstantExpr *CE, Instruction *Instr)
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))

Detailed Description

This file contains a pass that lowers thread local variables on the XCore.

Definition in file XCoreLowerThreadLocal.cpp.


Define Documentation

#define DEBUG_TYPE   "xcore-lower-thread-local"

Definition at line 29 of file XCoreLowerThreadLocal.cpp.


Function Documentation

static Constant* createLoweredInitializer ( ArrayType *  NewType,
Constant *  OriginalInitializer 
) [static]

Definition at line 69 of file XCoreLowerThreadLocal.cpp.

References llvm::ConstantArray::get(), and MaxThreads.

static ArrayType* createLoweredType ( Type *  OriginalType) [static]

Definition at line 64 of file XCoreLowerThreadLocal.cpp.

References llvm::ArrayType::get(), and MaxThreads.

static Instruction* createReplacementInstr ( ConstantExpr *  CE,
Instruction *  Instr 
) [static]
INITIALIZE_PASS ( XCoreLowerThreadLocal  ,
"xcore-lower-thread-local"  ,
"Lower thread local variables"  ,
false  ,
false   
)

Definition at line 57 of file XCoreLowerThreadLocal.cpp.

static bool isZeroLengthArray ( Type *  Ty) [static]
static bool replaceConstantExprOp ( ConstantExpr *  CE,
Pass *  P 
) [static]
static bool rewriteNonInstructionUses ( GlobalVariable *  GV,
Pass *  P 
) [static]

Variable Documentation

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)) [static]