LLVM  4.0.0
Macros | Functions | Variables
NVPTXAsmPrinter.cpp File Reference
#include "InstPrinter/NVPTXInstPrinter.h"
#include "MCTargetDesc/NVPTXBaseInfo.h"
#include "MCTargetDesc/NVPTXMCAsmInfo.h"
#include "NVPTX.h"
#include "NVPTXAsmPrinter.h"
#include "NVPTXMCExpr.h"
#include "NVPTXMachineFunctionInfo.h"
#include "NVPTXRegisterInfo.h"
#include "NVPTXSubtarget.h"
#include "NVPTXTargetMachine.h"
#include "NVPTXUtilities.h"
#include "cl_common_defines.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Analysis/ConstantFolding.h"
#include "llvm/CodeGen/Analysis.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineValueType.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/User.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Target/TargetLoweringObjectFile.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Transforms/Utils/UnrollLoop.h"
#include <cassert>
#include <cstdint>
#include <cstring>
#include <new>
#include <sstream>
#include <string>
#include <utility>
#include <vector>

Go to the source code of this file.

Macros

#define DEPOTNAME   "__local_depot"
 

Functions

static void DiscoverDependentGlobals (const Value *V, DenseSet< const GlobalVariable * > &Globals)
 DiscoverDependentGlobals - Return a set of GlobalVariables on which V depends. More...
 
static void VisitGlobalVariableForEmission (const GlobalVariable *GV, SmallVectorImpl< const GlobalVariable * > &Order, DenseSet< const GlobalVariable * > &Visited, DenseSet< const GlobalVariable * > &Visiting)
 VisitGlobalVariableForEmission - Add GV to the list of GlobalVariable instances to be emitted, but only after any dependents have been added first.s. More...
 
static bool usedInGlobalVarDef (const Constant *C)
 
static bool usedInOneFunc (const User *U, Function const *&oneFunc)
 
static bool canDemoteGlobalVar (const GlobalVariable *gv, Function const *&f)
 
static bool useFuncSeen (const Constant *C, DenseMap< const Function *, bool > &seenMap)
 
static bool isEmptyXXStructor (GlobalVariable *GV)
 
static unsigned int getOpenCLAlignment (const DataLayout &DL, Type *Ty)
 
template<typename T >
static void ConvertIntToBytes (unsigned char *p, T val)
 
static void ConvertFloatToBytes (unsigned char *p, float val)
 
static void ConvertDoubleToBytes (unsigned char *p, double val)
 
void LLVMInitializeNVPTXAsmPrinter ()
 

Variables

static cl::opt< boolEmitLineNumbers ("nvptx-emit-line-numbers", cl::Hidden, cl::desc("NVPTX Specific: Emit Line numbers even without -G"), cl::init(true))
 
static cl::opt< boolInterleaveSrc ("nvptx-emit-src", cl::ZeroOrMore, cl::Hidden, cl::desc("NVPTX Specific: Emit source line in ptx file"), cl::init(false))
 

Macro Definition Documentation

#define DEPOTNAME   "__local_depot"

Definition at line 94 of file NVPTXAsmPrinter.cpp.

Function Documentation

static bool canDemoteGlobalVar ( const GlobalVariable gv,
Function const *&  f 
)
static
static void ConvertDoubleToBytes ( unsigned char *  p,
double  val 
)
static

Definition at line 1845 of file NVPTXAsmPrinter.cpp.

References i.

static void ConvertFloatToBytes ( unsigned char *  p,
float  val 
)
static

Definition at line 1838 of file NVPTXAsmPrinter.cpp.

References i.

template<typename T >
static void ConvertIntToBytes ( unsigned char *  p,
T  val 
)
static

Definition at line 1831 of file NVPTXAsmPrinter.cpp.

References i, and T.

static void DiscoverDependentGlobals ( const Value V,
DenseSet< const GlobalVariable * > &  Globals 
)
static

DiscoverDependentGlobals - Return a set of GlobalVariables on which V depends.

Definition at line 109 of file NVPTXAsmPrinter.cpp.

References i, and llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::insert().

Referenced by VisitGlobalVariableForEmission().

static unsigned int getOpenCLAlignment ( const DataLayout DL,
Type Ty 
)
static
static bool isEmptyXXStructor ( GlobalVariable GV)
static
void LLVMInitializeNVPTXAsmPrinter ( )

Definition at line 2414 of file NVPTXAsmPrinter.cpp.

References llvm::getTheNVPTXTarget32(), llvm::getTheNVPTXTarget64(), X, and Y.

static bool usedInGlobalVarDef ( const Constant C)
static

Definition at line 673 of file NVPTXAsmPrinter.cpp.

References llvm::Value::users().

static bool usedInOneFunc ( const User U,
Function const *&  oneFunc 
)
static

Definition at line 689 of file NVPTXAsmPrinter.cpp.

References llvm::GlobalValue::getParent(), and llvm::Value::users().

Referenced by canDemoteGlobalVar().

static bool useFuncSeen ( const Constant C,
DenseMap< const Function *, bool > &  seenMap 
)
static
static void VisitGlobalVariableForEmission ( const GlobalVariable GV,
SmallVectorImpl< const GlobalVariable * > &  Order,
DenseSet< const GlobalVariable * > &  Visited,
DenseSet< const GlobalVariable * > &  Visiting 
)
static

Variable Documentation

cl::opt<bool> EmitLineNumbers("nvptx-emit-line-numbers", cl::Hidden, cl::desc("NVPTX Specific: Emit Line numbers even without -G"), cl::init(true))
static
cl::opt<bool> InterleaveSrc("nvptx-emit-src", cl::ZeroOrMore, cl::Hidden, cl::desc("NVPTX Specific: Emit source line in ptx file"), cl::init(false))
static