CLRX  1
An unofficial OpenCL extensions designed for Radeon GPUs
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
CLRX::Assembler Class Reference

main class of assembler More...

#include <Assembler.h>

Inheritance diagram for CLRX::Assembler:
CLRX::NonCopyableAndNonMovable

Public Types

typedef std::pair< CString, uint64_t > DefSym
 defined symbol entry
 
typedef std::unordered_map< CString, cxuintKernelMap
 kernel map type
 

Public Member Functions

 Assembler (const CString &filename, std::istream &input, Flags flags=0, BinaryFormat format=BinaryFormat::AMD, GPUDeviceType deviceType=GPUDeviceType::CAPE_VERDE, std::ostream &msgStream=std::cerr, std::ostream &printStream=std::cout)
 constructor with filename and input stream More...
 
 Assembler (const Array< CString > &filenames, Flags flags=0, BinaryFormat format=BinaryFormat::AMD, GPUDeviceType deviceType=GPUDeviceType::CAPE_VERDE, std::ostream &msgStream=std::cerr, std::ostream &printStream=std::cout)
 constructor with filename and input stream More...
 
 ~Assembler ()
 destructor
 
bool assemble ()
 main routine to assemble code
 
void writeBinary (const char *filename) const
 write binary to file
 
void writeBinary (std::ostream &outStream) const
 write binary to stream
 
void writeBinary (Array< cxbyte > &array) const
 write binary to array
 
uint32_t getDriverVersion () const
 get AMD driver version
 
void setDriverVersion (uint32_t driverVersion)
 set AMD driver version
 
uint32_t getLLVMVersion () const
 get LLVM version
 
void setLLVMVersion (uint32_t llvmVersion)
 set LLVM version
 
GPUDeviceType getDeviceType () const
 get GPU device type
 
void setDeviceType (const GPUDeviceType deviceType)
 set GPU device type
 
BinaryFormat getBinaryFormat () const
 get binary format
 
void setBinaryFormat (BinaryFormat binFormat)
 set binary format
 
bool is64Bit () const
 get bitness (true if 64-bit)
 
void set64Bit (bool this64Bit)
 set bitness (true if 64-bit)
 
Flags getFlags () const
 get flags
 
void setFlags (Flags flags)
 set flags
 
bool isAltMacro () const
 get true if altMacro enabled
 
bool isMacroCase () const
 get true if macroCase enabled
 
bool isOldModParam () const
 get true if oldModParam enabled (old modifier parametrization)
 
bool isBuggyFPLit () const
 get true if buggyFPLit enabled
 
const std::vector< CString > & getIncludeDirs () const
 get include directory list
 
void addIncludeDir (const CString &includeDir)
 adds include directory
 
const AsmSymbolMapgetSymbolMap () const
 get symbols map
 
const std::vector< AsmSection > & getSections () const
 get sections
 
const KernelMapgetKernelMap () const
 get kernel map
 
const std::vector< AsmKernel > & getKernels () const
 get kernels
 
const AsmRegVarMapgetRegVarMap () const
 get regvar map
 
bool addRegVar (const CString &name, const AsmRegVar &var)
 add regvar
 
bool getRegVar (const CString &name, const AsmRegVar *&regVar)
 get regvar by name
 
const AsmScopegetGlobalScope () const
 get global scope
 
bool isAbsoluteSymbol (const AsmSymbol &symbol) const
 returns true if symbol contains absolute value
 
void addInitialDefSym (const CString &symName, uint64_t value)
 add initiali defsyms
 
const AsmFormatHandlergetFormatHandler () const
 get format handler
 
- Public Member Functions inherited from CLRX::NonCopyableAndNonMovable
 NonCopyableAndNonMovable ()
 constructor
 
 NonCopyableAndNonMovable (const NonCopyableAndNonMovable &)=delete
 copy-constructor
 
 NonCopyableAndNonMovable (NonCopyableAndNonMovable &&)=delete
 move-constructor
 
NonCopyableAndNonMovableoperator= (const NonCopyableAndNonMovable &)=delete
 copy-assignment
 
NonCopyableAndNonMovableoperator= (NonCopyableAndNonMovable &&)=delete
 move-asignment
 

Protected Member Functions

bool readLine ()
 helper for testing
 

Friends

class AsmStreamInputFilter
 
class AsmMacroInputFilter
 
class AsmExpression
 
class AsmFormatHandler
 
class AsmRawCodeHandler
 
class AsmAmdHandler
 
class AsmAmdCL2Handler
 
class AsmGalliumHandler
 
class AsmROCmHandler
 
class ISAAssembler
 
class AsmRegAllocator
 
struct AsmParseUtils
 
struct AsmPseudoOps
 
struct AsmGalliumPseudoOps
 
struct AsmAmdPseudoOps
 
struct AsmAmdCL2PseudoOps
 
struct AsmROCmPseudoOps
 
struct GCNAsmUtils
 

Detailed Description

main class of assembler

Constructor & Destructor Documentation

CLRX::Assembler::Assembler ( const CString filename,
std::istream &  input,
Flags  flags = 0,
BinaryFormat  format = BinaryFormat::AMD,
GPUDeviceType  deviceType = GPUDeviceType::CAPE_VERDE,
std::ostream &  msgStream = std::cerr,
std::ostream &  printStream = std::cout 
)
explicit

constructor with filename and input stream

Parameters
filenamefilename
inputinput stream
flagsassembler flags
formatoutput format type
deviceTypeGPU device type
msgStreamstream for warnings and errors
printStreamstream for printing message by .print pseudo-ops
CLRX::Assembler::Assembler ( const Array< CString > &  filenames,
Flags  flags = 0,
BinaryFormat  format = BinaryFormat::AMD,
GPUDeviceType  deviceType = GPUDeviceType::CAPE_VERDE,
std::ostream &  msgStream = std::cerr,
std::ostream &  printStream = std::cout 
)
explicit

constructor with filename and input stream

Parameters
filenamesfilenames
flagsassembler flags
formatoutput format type
deviceTypeGPU device type
msgStreamstream for warnings and errors
printStreamstream for printing message by .print pseudo-ops

The documentation for this class was generated from the following file: