|
LLVM 23.0.0git
|
#include "NVPTXAsmPrinter.h"#include "MCTargetDesc/NVPTXBaseInfo.h"#include "MCTargetDesc/NVPTXInstPrinter.h"#include "MCTargetDesc/NVPTXMCAsmInfo.h"#include "MCTargetDesc/NVPTXTargetStreamer.h"#include "NVPTX.h"#include "NVPTXDwarfDebug.h"#include "NVPTXMCExpr.h"#include "NVPTXMachineFunctionInfo.h"#include "NVPTXRegisterInfo.h"#include "NVPTXSubtarget.h"#include "NVPTXTargetMachine.h"#include "NVPTXUtilities.h"#include "NVVMProperties.h"#include "TargetInfo/NVPTXTargetInfo.h"#include "cl_common_defines.h"#include "llvm/ADT/APFloat.h"#include "llvm/ADT/APInt.h"#include "llvm/ADT/ArrayRef.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/Twine.h"#include "llvm/ADT/iterator_range.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/TargetRegisterInfo.h"#include "llvm/CodeGen/ValueTypes.h"#include "llvm/CodeGenTypes/MachineValueType.h"#include "llvm/IR/Argument.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/GlobalAlias.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/MC/TargetRegistry.h"#include "llvm/Support/Alignment.h"#include "llvm/Support/Casting.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Endian.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/NativeFormatting.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetLoweringObjectFile.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Transforms/Utils/UnrollLoop.h"#include <cassert>#include <cstdint>#include <cstring>#include <string>Go to the source code of this file.
Macros | |
| #define | DEPOTNAME "__local_depot" |
Functions | |
| static StringRef | getTextureName (const Value &V) |
| static StringRef | getSurfaceName (const Value &V) |
| static StringRef | getSamplerName (const Value &V) |
| static void | discoverDependentGlobals (const Value *V, DenseSet< const GlobalVariable * > &Globals) |
discoverDependentGlobals - Return a set of GlobalVariables on which V depends. | |
| 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. | |
| 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, const SmallPtrSetImpl< const Function * > &SeenSet) |
| INITIALIZE_PASS (NVPTXAsmPrinter, "nvptx-asm-printer", "NVPTX Assembly Printer", false, false) extern "C" LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeNVPTXAsmPrinter() | |
| #define DEPOTNAME "__local_depot" |
Definition at line 97 of file NVPTXAsmPrinter.cpp.
Referenced by llvm::NVPTXAsmPrinter::getFunctionFrameSymbol().
|
static |
Definition at line 597 of file NVPTXAsmPrinter.cpp.
References llvm::NVPTXAS::ADDRESS_SPACE_SHARED, llvm::GlobalValue::getAddressSpace(), llvm::GlobalValue::hasLocalLinkage(), and usedInOneFunc().
|
static |
discoverDependentGlobals - Return a set of GlobalVariables on which V depends.
Definition at line 117 of file NVPTXAsmPrinter.cpp.
References discoverDependentGlobals(), and llvm::dyn_cast().
Referenced by discoverDependentGlobals(), and VisitGlobalVariableForEmission().
Definition at line 109 of file NVPTXAsmPrinter.cpp.
References assert().
Definition at line 104 of file NVPTXAsmPrinter.cpp.
References assert().
Definition at line 99 of file NVPTXAsmPrinter.cpp.
References assert().
| INITIALIZE_PASS | ( | NVPTXAsmPrinter | , |
| "nvptx-asm-printer" | , | ||
| "NVPTX Assembly Printer" | , | ||
| false | , | ||
| false | ) |
Definition at line 1987 of file NVPTXAsmPrinter.cpp.
References llvm::getTheNVPTXTarget32(), llvm::getTheNVPTXTarget64(), LLVM_ABI, LLVM_EXTERNAL_VISIBILITY, X, and Y.
Definition at line 553 of file NVPTXAsmPrinter.cpp.
References llvm::CallingConv::C, llvm::dyn_cast(), and usedInGlobalVarDef().
Referenced by usedInGlobalVarDef().
Definition at line 568 of file NVPTXAsmPrinter.cpp.
References llvm::dyn_cast(), I, usedInOneFunc(), and llvm::Value::users().
Referenced by canDemoteGlobalVar(), and usedInOneFunc().
Definition at line 614 of file NVPTXAsmPrinter.cpp.
References llvm::CallingConv::C, llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::dyn_cast(), I, and useFuncSeen().
Referenced by useFuncSeen().
|
static |
VisitGlobalVariableForEmission - Add GV to the list of GlobalVariable instances to be emitted, but only after any dependents have been added first.s.
Definition at line 133 of file NVPTXAsmPrinter.cpp.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), discoverDependentGlobals(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::User::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::report_fatal_error(), and VisitGlobalVariableForEmission().
Referenced by VisitGlobalVariableForEmission().