Files
compute-runtime/shared/offline_compiler/source/decoder/helper.h
Daria Hinz 31deb4fd63 Add support for new acronyms in disasm
The "disasm" option in ocloc was not validate new acronyms.
despite handling them in "compile".
This PR is fixing the issue - ocloc disasm supports new & deprecated
acronyms.

https://github.com/intel/compute-runtime/issues/582

Signed-off-by: Daria Hinz <daria.hinz@intel.com>
Related-To: NEO-7509
2022-11-23 16:53:54 +01:00

79 lines
2.1 KiB
C++

/*
* Copyright (C) 2018-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/os_interface/os_library.h"
#include "igfxfmid.h"
#include <exception>
#include <memory>
#include <sstream>
#include <string>
#include <vector>
class OclocArgHelper;
struct IgaWrapper;
extern void (*abortOclocExecution)(int);
void abortOclocExecutionDefaultHandler(int errorCode);
void addSlash(std::string &path);
std::vector<char> readBinaryFile(const std::string &fileName);
void readFileToVectorOfStrings(std::vector<std::string> &lines, const std::string &fileName, bool replaceTabs = false);
void setProductFamilyForIga(const std::string &device, IgaWrapper *iga, OclocArgHelper *argHelper);
size_t findPos(const std::vector<std::string> &lines, const std::string &whatToFind);
PRODUCT_FAMILY getProductFamilyFromDeviceName(const std::string &deviceName);
class MessagePrinter {
public:
MessagePrinter() = default;
MessagePrinter(bool suppressMessages) : suppressMessages(suppressMessages) {}
void printf(const char *message) {
if (!suppressMessages) {
::printf("%s", message);
}
ss << std::string(message);
}
template <typename... Args>
void printf(const char *format, Args... args) {
if (!suppressMessages) {
::printf(format, std::forward<Args>(args)...);
}
ss << stringFormat(format, std::forward<Args>(args)...);
}
const std::stringstream &getLog() {
return ss;
}
bool isSuppressed() const { return suppressMessages; }
private:
template <typename... Args>
std::string stringFormat(const std::string &format, Args... args) {
std::string outputString;
size_t size = static_cast<size_t>(snprintf(nullptr, 0, format.c_str(), args...) + 1);
if (size <= 0) {
return outputString;
}
outputString.resize(size);
snprintf(&*outputString.begin(), size, format.c_str(), args...);
return outputString.c_str();
}
std::stringstream ss;
bool suppressMessages = false;
};