rocr: Fixed inefficient copy operations
Changed variable assignments to use std::move() where appropriate.
Changed function headers to pass string arguments by reference where appropriate.
Signed-off-by: Alysa Liu <Alysa.Liu@amd.com>
[ROCm/ROCR-Runtime commit: ae6851dbb4]
Este commit está contenido en:
@@ -83,8 +83,8 @@ __forceinline uint64_t drm_perm(hsa_access_permission_t perm) {
|
||||
|
||||
} // namespace
|
||||
|
||||
KfdDriver::KfdDriver(std::string devnode_name)
|
||||
: core::Driver(core::DriverType::KFD, devnode_name) {}
|
||||
KfdDriver::KfdDriver(std::string& devnode_name)
|
||||
: core::Driver(core::DriverType::KFD, std::move(devnode_name)) {}
|
||||
|
||||
hsa_status_t KfdDriver::Init() {
|
||||
HSAKMT_STATUS ret =
|
||||
@@ -128,7 +128,8 @@ hsa_status_t KfdDriver::ShutDown() {
|
||||
}
|
||||
|
||||
hsa_status_t KfdDriver::DiscoverDriver(std::unique_ptr<core::Driver>& driver) {
|
||||
auto tmp_driver = std::unique_ptr<core::Driver>(new KfdDriver("/dev/kfd"));
|
||||
std::string devnode("/dev/kfd");
|
||||
auto tmp_driver = std::unique_ptr<core::Driver>(new KfdDriver(devnode));
|
||||
|
||||
if (tmp_driver->Open() == HSA_STATUS_SUCCESS) {
|
||||
driver = std::move(tmp_driver);
|
||||
|
||||
@@ -220,7 +220,7 @@ namespace code {
|
||||
void PrintRelocationData(std::ostream& out, RelocationSection* section);
|
||||
void PrintSymbol(std::ostream& out, Symbol* sym);
|
||||
void PrintDisassembly(std::ostream& out, const unsigned char *isa, size_t size, uint32_t isa_offset = 0);
|
||||
std::string MangleSymbolName(const std::string& module_name, const std::string symbol_name);
|
||||
std::string MangleSymbolName(const std::string& module_name, const std::string& symbol_name);
|
||||
bool ElfImageError();
|
||||
|
||||
public:
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace AMD {
|
||||
/// and more.
|
||||
class KfdDriver final : public core::Driver {
|
||||
public:
|
||||
KfdDriver(std::string devnode_name);
|
||||
KfdDriver(std::string& devnode_name);
|
||||
|
||||
/// @brief Determine of the KFD is present on the system and attemp to open it if found.
|
||||
///
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace code {
|
||||
std::string Symbol::GetSymbolName() const {
|
||||
std::string FullName = Name();
|
||||
return FullName.rfind(":") != std::string::npos ?
|
||||
std::move(FullName.substr(FullName.rfind(":") + 1)) : std::move(FullName);
|
||||
FullName.substr(FullName.rfind(":") + 1) : std::move(FullName);
|
||||
}
|
||||
|
||||
hsa_code_symbol_t Symbol::ToHandle(Symbol* sym)
|
||||
@@ -920,7 +920,10 @@ namespace code {
|
||||
|
||||
hsa_status_t AmdHsaCode::GetSymbol(const char *module_name, const char *symbol_name, hsa_code_symbol_t *s)
|
||||
{
|
||||
std::string mname = MangleSymbolName(module_name ? module_name : "", symbol_name);
|
||||
std::string mname = MangleSymbolName(
|
||||
std::string(module_name ? module_name : ""),
|
||||
std::string(symbol_name)
|
||||
);
|
||||
for (Symbol* sym : symbols) {
|
||||
if (sym->Name() == mname) {
|
||||
*s = Symbol::ToHandle(sym);
|
||||
@@ -1729,10 +1732,10 @@ namespace code {
|
||||
out << std::dec;
|
||||
}
|
||||
|
||||
std::string AmdHsaCode::MangleSymbolName(const std::string& module_name, const std::string symbol_name)
|
||||
std::string AmdHsaCode::MangleSymbolName(const std::string& module_name, const std::string& symbol_name)
|
||||
{
|
||||
if (module_name.empty()) {
|
||||
return std::move(symbol_name);
|
||||
return symbol_name;
|
||||
} else {
|
||||
return module_name + "::" + symbol_name;
|
||||
}
|
||||
|
||||
Referencia en una nueva incidencia
Block a user