fix: add option to enable/disable heapless in ocloc

Related-To: GSD-10681
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
Kamil Kopryk
2025-02-21 15:12:49 +00:00
committed by Compute-Runtime-Automation
parent b10c6b4703
commit 7c3468794e
8 changed files with 75 additions and 9 deletions

View File

@@ -1075,6 +1075,19 @@ int OfflineCompiler::parseCommandLine(size_t numArgs, const std::vector<std::str
} else if ("-stateful_address_mode" == currArg) {
addressingMode = argv[argIndex + 1];
argIndex++;
} else if (("-heapless_mode" == currArg) && hasMoreArgs) {
if (argv[argIndex + 1] == "enable") {
heaplessMode = CompilerOptions::HeaplessMode::enabled;
} else if (argv[argIndex + 1] == "disable") {
heaplessMode = CompilerOptions::HeaplessMode::disabled;
} else if (argv[argIndex + 1] == "default") {
heaplessMode = CompilerOptions::HeaplessMode::defaultMode;
} else {
argHelper->printf("Error: Invalid heapless mode.\n");
retVal = OCLOC_INVALID_COMMAND_LINE;
break;
}
argIndex++;
} else if (("-config" == currArg) && hasMoreArgs) {
parseHwInfoConfigString(argv[argIndex + 1], hwInfoConfig);
if (!hwInfoConfig) {
@@ -1189,7 +1202,7 @@ void OfflineCompiler::appendExtraInternalOptions(std::string &internalOptions) {
}
CompilerOptions::concatenateAppend(internalOptions, compilerProductHelper->getCachingPolicyOptions(false));
CompilerOptions::applyExtraInternalOptions(internalOptions, *compilerProductHelper);
CompilerOptions::applyExtraInternalOptions(internalOptions, *compilerProductHelper, this->heaplessMode);
}
void OfflineCompiler::parseDebugSettings() {
@@ -1412,6 +1425,11 @@ Usage: ocloc [compile] -file <filename> -device <device_type> [-output <filename
-stateful_address_mode default - default mode
not defined: default mode.
-heapless_mode Enforce heapless mode for the binary. The possible values are:
-heapless_mode enable - enforce generating in heapless mode
-heapless_mode disable - enforce generating in heapful mode
-heapless_mode default - default mode for current platform
-config Target hardware info config for a single device,
e.g 1x4x8.

View File

@@ -8,6 +8,7 @@
#pragma once
#include "shared/offline_compiler/source/ocloc_api.h"
#include "shared/source/compiler_interface/compiler_options.h"
#include "shared/source/helpers/hw_info.h"
#include "shared/source/helpers/non_copyable_or_moveable.h"
#include "shared/source/utilities/arrayref.h"
@@ -199,6 +200,7 @@ All supported acronyms: %s.
std::string internalOptionsReadFromFile = "";
std::string formatToEnforce = "";
std::string addressingMode = "default";
CompilerOptions::HeaplessMode heaplessMode = CompilerOptions::HeaplessMode::defaultMode;
std::string irHash, genHash, dbgHash, elfHash;
std::string cacheDir;