# en_US.txt #

#
#//===----------------------------------------------------------------------===//
#//
#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
#// See https://llvm.org/LICENSE.txt for license information.
#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#//
#//===----------------------------------------------------------------------===//
#

# Default messages, embedded into the OpenMP RTL, and source for English catalog.


# Compatible changes (which does not require version bumping):
#     * Editing message (number and type of placeholders must remain, relative order of
#       placeholders may be changed, e.g. "File %1$s line %2$d" may be safely edited to
#       "Line %2$d file %1$s").
#     * Adding new message to the end of section.
# Incompatible changes (version must be bumbed by 1):
#     * Introducing new placeholders to existing messages.
#     * Changing type of placeholders (e.g. "line %1$d" -> "line %1$s").
#     * Rearranging order of messages.
#     * Deleting messages.
# Use special "OBSOLETE" pseudoidentifier for obsolete entries, which is kept only for backward
# compatibility. When version is bumped, do not forget to delete all obsolete entries.


# --------------------------------------------------------------------------------------------------
-*- META -*-
# --------------------------------------------------------------------------------------------------

# Meta information about message catalog.

Language "English"
Country  "USA"
LangId   "1033"
Version  "2"
Revision "20170523"



# --------------------------------------------------------------------------------------------------
-*- STRINGS -*-
# --------------------------------------------------------------------------------------------------

# Strings are not complete messages, just fragments. We need to work on it and reduce number of
# strings (to zero?).

Error                        "Error"
UnknownFile                  "(unknown file)"
NotANumber                   "not a number"
BadUnit                      "bad unit"
IllegalCharacters            "illegal characters"
ValueTooLarge                "value too large"
ValueTooSmall                "value too small"
NotMultiple4K                "value is not a multiple of 4k"
UnknownTopology              "Unknown processor topology"
CantOpenCpuinfo              "Cannot open /proc/cpuinfo"
ProcCpuinfo                  "/proc/cpuinfo"
NoProcRecords                "cpuinfo file invalid (No processor records)"
TooManyProcRecords           "cpuinfo file invalid (Too many processor records)"
CantRewindCpuinfo            "Cannot rewind cpuinfo file"
LongLineCpuinfo              "cpuinfo file invalid (long line)"
TooManyEntries               "cpuinfo file contains too many entries"
MissingProcField             "cpuinfo file missing processor field"
MissingPhysicalIDField       "cpuinfo file missing physical id field"
MissingValCpuinfo            "cpuinfo file invalid (missing val)"
DuplicateFieldCpuinfo        "cpuinfo file invalid (duplicate field)"
PhysicalIDsNotUnique         "Physical node/pkg/core/thread ids not unique"
ApicNotPresent               "APIC not present"
InvalidCpuidInfo             "Invalid cpuid info"
OBSOLETE                     "APIC ids not unique"
InconsistentCpuidInfo        "Inconsistent cpuid info"
OutOfHeapMemory              "Out of heap memory"
MemoryAllocFailed            "Memory allocation failed"
Core                         "core"
Thread                       "thread"
Package                      "package"
Node                         "node"
OBSOLETE                     "<undef>"
DecodingLegacyAPIC           "decoding legacy APIC ids"
OBSOLETE                     "parsing /proc/cpuinfo"
NotDefined                   "value is not defined"
EffectiveSettings            "Effective settings:"
UserSettings                 "User settings:"
StorageMapWarning            "warning: pointers or size don't make sense"
OBSOLETE                     "CPU"
OBSOLETE                     "TPU"
OBSOLETE                     "TPUs per package"
OBSOLETE                     "HT enabled"
OBSOLETE                     "HT disabled"
Decodingx2APIC               "decoding x2APIC ids"
NoLeaf11Support              "cpuid leaf 11 not supported"
NoLeaf4Support               "cpuid leaf 4 not supported"
ThreadIDsNotUnique           "thread ids not unique"
UsingPthread                 "using pthread info"
LegacyApicIDsNotUnique       "legacy APIC ids not unique"
x2ApicIDsNotUnique           "x2APIC ids not unique"
DisplayEnvBegin              "OPENMP DISPLAY ENVIRONMENT BEGIN"
DisplayEnvEnd                "OPENMP DISPLAY ENVIRONMENT END"
Device                       "[device]"
Host                         "[host]"
Tile                         "tile"
Tiles                        "tiles"
Threads                      "threads"
Cores                        "cores"
Socket                       "socket"
Sockets                      "sockets"
Die                          "die"
Dice                         "dice"
Module                       "module"
Modules                      "modules"
L1Cache                      "L1 cache"
L1Caches                     "L1 caches"
L2Cache                      "L2 cache"
L2Caches                     "L2 caches"
L3Cache                      "L3 cache"
L3Caches                     "L3 caches"
NumaDomain                   "NUMA domain"
NumaDomains                  "NUMA domains"
ProcGroup                    "processor group"
ProcGroups                   "processor groups"
Unknown                      "unknown"
NoLeaf31Support              "cpuid leaf 31 not supported"
HwlocFailed                  "Hwloc api failure"
LLCache                      "LL cache"
LLCaches                     "LL caches"



# --------------------------------------------------------------------------------------------------
-*- FORMATS -*-
# --------------------------------------------------------------------------------------------------

Info                         "OMP: Info #%1$d: %2$s\n"
Warning                      "OMP: Warning #%1$d: %2$s\n"
Fatal                        "OMP: Error #%1$d: %2$s\n"
SysErr                       "OMP: System error #%1$d: %2$s\n"
Hint                         "OMP: Hint %1$s\n"

Pragma                       "%1$s pragma (at %2$s:%3$s():%4$s)"
    # %1 is pragma name (like "parallel" or "masked",
    # %2 is file name,
    # %3 is function (routine) name,
    # %4 is the line number (as string, so "s" type specifier should be used).



# --------------------------------------------------------------------------------------------------
-*- MESSAGES -*-
# --------------------------------------------------------------------------------------------------

# Messages of any severity: informational, warning, or fatal.
# To maintain message numbers (they are visible to customers), add new messages to the end.

# Use following prefixes for messages and hints when appropriate:
#    Aff -- Affinity messages.
#    Cns -- Consistency check failures (KMP_CONSISTENCY_CHECK).
#    Itt -- ITT Notify-related messages.

LibraryIsSerial              "Library is \"serial\"."
CantOpenMessageCatalog       "Cannot open message catalog \"%1$s\":"
WillUseDefaultMessages       "Default messages will be used."
LockIsUninitialized          "%1$s: Lock is uninitialized"
LockSimpleUsedAsNestable     "%1$s: Lock was initialized as simple, but used as nestable"
LockNestableUsedAsSimple     "%1$s: Lock was initialized as nestable, but used as simple"
LockIsAlreadyOwned           "%1$s: Lock is already owned by requesting thread"
LockStillOwned               "%1$s: Lock is still owned by a thread"
LockUnsettingFree            "%1$s: Attempt to release a lock not owned by any thread"
LockUnsettingSetByAnother    "%1$s: Attempt to release a lock owned by another thread"
StackOverflow                "Stack overflow detected for OpenMP thread #%1$d"
StackOverlap                 "Stack overlap detected. "
AssertionFailure             "Assertion failure at %1$s(%2$d)."
CantRegisterNewThread        "Unable to register a new user thread."
DuplicateLibrary             "Initializing %1$s, but found %2$s already initialized."
CantOpenFileForReading       "Cannot open file \"%1$s\" for reading:"
CantGetEnvVar                "Getting environment variable \"%1$s\" failed:"
CantSetEnvVar                "Setting environment variable \"%1$s\" failed:"
CantGetEnvironment           "Getting environment failed:"
BadBoolValue                 "%1$s=\"%2$s\": Wrong value, boolean expected."
SSPNotBuiltIn                "No Helper Thread support built in this OMP library."
SPPSotfTerminateFailed       "Helper thread failed to soft terminate."
BufferOverflow               "Buffer overflow detected."
RealTimeSchedNotSupported    "Real-time scheduling policy is not supported."
RunningAtMaxPriority         "OMP application is running at maximum priority with real-time scheduling policy. "
CantChangeMonitorPriority    "Changing priority of the monitor thread failed:"
MonitorWillStarve            "Deadlocks are highly possible due to monitor thread starvation."
CantSetMonitorStackSize      "Unable to set monitor thread stack size to %1$lu bytes:"
CantSetWorkerStackSize       "Unable to set OMP thread stack size to %1$lu bytes:"
CantInitThreadAttrs          "Thread attribute initialization failed:"
CantDestroyThreadAttrs       "Thread attribute destroying failed:"
CantSetWorkerState           "OMP thread joinable state setting failed:"
CantSetMonitorState          "Monitor thread joinable state setting failed:"
NoResourcesForWorkerThread   "System unable to allocate necessary resources for OMP thread:"
NoResourcesForMonitorThread  "System unable to allocate necessary resources for the monitor thread:"
CantTerminateWorkerThread    "Unable to terminate OMP thread:"
ScheduleKindOutOfRange       "Wrong schedule type %1$d, see <omp.h> or <omp_lib.h> file for the list of values supported."
UnknownSchedulingType        "Unknown scheduling type \"%1$d\"."
InvalidValue                 "%1$s value \"%2$s\" is invalid."
SmallValue                   "%1$s value \"%2$s\" is too small."
LargeValue                   "%1$s value \"%2$s\" is too large."
StgInvalidValue              "%1$s: \"%2$s\" is an invalid value; ignored."
BarrReleaseValueInvalid      "%1$s release value \"%2$s\" is invalid."
BarrGatherValueInvalid       "%1$s gather value \"%2$s\" is invalid."
OBSOLETE                     "%1$s supported only on debug builds; ignored."
ParRangeSyntax               "Syntax error: Usage: %1$s=[ routine=<func> | filename=<file> | range=<lb>:<ub> "
                             "| excl_range=<lb>:<ub> ],..."
UnbalancedQuotes             "Unbalanced quotes in %1$s."
EmptyString                  "Empty string specified for %1$s; ignored."
LongValue                    "%1$s value is too long; ignored."
InvalidClause                "%1$s: Invalid clause in \"%2$s\"."
EmptyClause                  "Empty clause in %1$s."
InvalidChunk                 "%1$s value \"%2$s\" is invalid chunk size."
LargeChunk                   "%1$s value \"%2$s\" is to large chunk size."
IgnoreChunk                  "%1$s value \"%2$s\" is ignored."
CantGetProcFreq              "Cannot get processor frequency, using zero KMP_ITT_PREPARE_DELAY."
EnvParallelWarn              "%1$s must be set prior to first parallel region; ignored."
AffParamDefined              "%1$s: parameter has been specified already, ignoring \"%2$s\"."
AffInvalidParam              "%1$s: parameter invalid, ignoring \"%2$s\"."
AffManyParams                "%1$s: too many integer parameters specified, ignoring \"%2$s\"."
AffManyParamsForLogic        "%1$s: too many integer parameters specified for logical or physical type, ignoring \"%2$d\"."
AffNoParam                   "%1$s: '%2$s' type does not take any integer parameters, ignoring them."
AffNoProcList                "%1$s: proclist not specified with explicit affinity type, using \"none\"."
AffProcListNoType            "%1$s: proclist specified, setting affinity type to \"explicit\"."
AffProcListNotExplicit       "%1$s: proclist specified without \"explicit\" affinity type, proclist ignored."
AffSyntaxError               "%1$s: syntax error, not using affinity."
AffZeroStride                "%1$s: range error (zero stride), not using affinity."
AffStartGreaterEnd           "%1$s: range error (%2$d > %3$d), not using affinity."
AffStrideLessZero            "%1$s: range error (%2$d < %3$d & stride < 0), not using affinity."
AffRangeTooBig               "%1$s: range error ((%2$d-%3$d)/%4$d too big), not using affinity."
OBSOLETE                     "%1$s: %2$s is defined. %3$s will be ignored."
AffNotSupported              "%1$s: affinity not supported, using \"disabled\"."
OBSOLETE                     "%1$s: affinity only supported for Intel(R) Architecture Processors."
GetAffSysCallNotSupported    "%1$s: getaffinity system call not supported."
SetAffSysCallNotSupported    "%1$s: setaffinity system call not supported."
OBSOLETE                     "%1$s: pthread_aff_set_np call not found."
OBSOLETE                     "%1$s: pthread_get_num_resources_np call not found."
OBSOLETE                     "%1$s: the OS kernel does not support affinity."
OBSOLETE                     "%1$s: pthread_get_num_resources_np returned %2$d."
AffCantGetMaskSize           "%1$s: cannot determine proper affinity mask size."
ParseSizeIntWarn             "%1$s=\"%2$s\": %3$s."
ParseExtraCharsWarn          "%1$s: extra trailing characters ignored: \"%2$s\"."
UnknownForceReduction        "%1$s: unknown method \"%2$s\"."
TimerUseGettimeofday         "KMP_STATS_TIMER: clock_gettime is undefined, using gettimeofday."
TimerNeedMoreParam           "KMP_STATS_TIMER: \"%1$s\" needs additional parameter, e.g. 'clock_gettime,2'. Using gettimeofday."
TimerInvalidParam            "KMP_STATS_TIMER: clock_gettime parameter \"%1$s\" is invalid, using gettimeofday."
TimerGettimeFailed           "KMP_STATS_TIMER: clock_gettime failed, using gettimeofday."
TimerUnknownFunction         "KMP_STATS_TIMER: clock function unknown (ignoring value \"%1$s\")."
UnknownSchedTypeDetected     "Unknown scheduling type detected."
DispatchManyThreads          "Too many threads to use analytical guided scheduling - switching to iterative guided scheduling."
IttLookupFailed              "ittnotify: Lookup of \"%1$s\" function in \"%2$s\" library failed."
IttLoadLibFailed             "ittnotify: Loading \"%1$s\" library failed."
IttAllNotifDisabled          "ittnotify: All itt notifications disabled."
IttObjNotifDisabled          "ittnotify: Object state itt notifications disabled."
IttMarkNotifDisabled         "ittnotify: Mark itt notifications disabled."
IttUnloadLibFailed           "ittnotify: Unloading \"%1$s\" library failed."
CantFormThrTeam              "Cannot form a team with %1$d threads, using %2$d instead."
ActiveLevelsNegative         "Requested number of active parallel levels \"%1$d\" is negative; ignored."
ActiveLevelsExceedLimit      "Requested number of active parallel levels \"%1$d\" exceeds supported limit; "
                             "the following limit value will be used: \"%1$d\"."
SetLibraryIncorrectCall      "kmp_set_library must only be called from the top level serial thread; ignored."
FatalSysError                "Fatal system error detected."
OutOfHeapMemory              "Out of heap memory."
OBSOLETE                     "Clearing __KMP_REGISTERED_LIB env var failed."
OBSOLETE                     "Registering library with env var failed."
Using_int_Value              "%1$s value \"%2$d\" will be used."
Using_uint_Value             "%1$s value \"%2$u\" will be used."
Using_uint64_Value           "%1$s value \"%2$s\" will be used."
Using_str_Value              "%1$s value \"%2$s\" will be used."
BarrierPatternOverride       "Mixing other barrier patterns with dist is prohibited. Using dist for all barrier patterns."
MaxValueUsing                "%1$s maximum value \"%2$d\" will be used."
MinValueUsing                "%1$s minimum value \"%2$d\" will be used."
MemoryAllocFailed            "Memory allocation failed."
FileNameTooLong              "File name too long."
OBSOLETE                     "Lock table overflow."
ManyThreadsForTPDirective    "Too many threads to use threadprivate directive."
AffinityInvalidMask          "%1$s: invalid mask."
WrongDefinition              "Wrong definition."
TLSSetValueFailed            "Windows* OS: TLS Set Value failed."
TLSOutOfIndexes              "Windows* OS: TLS out of indexes."
OBSOLETE                     "PDONE directive must be nested within a DO directive."
CantGetNumAvailCPU           "Cannot get number of available CPUs."
AssumedNumCPU                "Assumed number of CPUs is 2."
ErrorInitializeAffinity      "Error initializing affinity - not using affinity."
AffThreadsMayMigrate         "Threads may migrate across all available OS procs (granularity setting too coarse)."
AffIgnoreInvalidProcID       "Ignoring invalid OS proc ID %1$d."
AffNoValidProcID             "No valid OS proc IDs specified - not using affinity."
UsingFlatOS                  "%1$s - using \"flat\" OS <-> physical proc mapping."
UsingFlatOSFile              "%1$s: %2$s - using \"flat\" OS <-> physical proc mapping."
UsingFlatOSFileLine          "%1$s, line %2$d: %3$s - using \"flat\" OS <-> physical proc mapping."
FileMsgExiting               "%1$s: %2$s - exiting."
FileLineMsgExiting           "%1$s, line %2$d: %3$s - exiting."
ConstructIdentInvalid        "Construct identifier invalid."
ThreadIdentInvalid           "Thread identifier invalid."
RTLNotInitialized            "runtime library not initialized."
TPCommonBlocksInconsist      "Inconsistent THREADPRIVATE common block declarations are non-conforming "
                             "and are unsupported. Either all threadprivate common blocks must be declared "
                             "identically, or the largest instance of each threadprivate common block "
                             "must be referenced first during the run."
CantSetThreadAffMask         "Cannot set thread affinity mask."
CantSetThreadPriority        "Cannot set thread priority."
CantCreateThread             "Cannot create thread."
CantCreateEvent              "Cannot create event."
CantSetEvent                 "Cannot set event."
CantCloseHandle              "Cannot close handle."
UnknownLibraryType           "Unknown library type: %1$d."
ReapMonitorError             "Monitor did not reap properly."
ReapWorkerError              "Worker thread failed to join."
ChangeThreadAffMaskError     "Cannot change thread affinity mask."
ThreadsMigrate               "%1$s: Threads may migrate across %2$d innermost levels of machine"
DecreaseToThreads            "%1$s: decrease to %2$d threads"
IncreaseToThreads            "%1$s: increase to %2$d threads"
OBSOLETE                     "%1$s: Internal thread %2$d bound to OS proc set %3$s"
AffCapableUseCpuinfo         "%1$s: Affinity capable, using cpuinfo file"
AffUseGlobCpuid              "%1$s: Affinity capable, using global cpuid info"
AffCapableUseFlat            "%1$s: Affinity capable, using default \"flat\" topology"
AffNotCapableUseLocCpuid     "%1$s: Affinity not capable, using local cpuid info"
AffNotCapableUseCpuinfo      "%1$s: Affinity not capable, using cpuinfo file"
AffFlatTopology              "%1$s: Affinity not capable, assuming \"flat\" topology"
InitOSProcSetRespect         "%1$s: Initial OS proc set respected: %2$s"
InitOSProcSetNotRespect      "%1$s: Initial OS proc set not respected: %2$s"
AvailableOSProc              "%1$s: %2$d available OS procs"
Uniform                      "%1$s: Uniform topology"
NonUniform                   "%1$s: Nonuniform topology"
Topology                     "%1$s: %2$d packages x %3$d cores/pkg x %4$d threads/core (%5$d total cores)"
OBSOLETE                     "%1$s: OS proc to physical thread map ([] => level not in map):"
OSProcToPackage              "%1$s: OS proc <n> maps to <n>th package core 0"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d [core %4$d] [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] [core %4$d] [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] [core %4$d] thread %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] core %4$d [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d [core %4$d] [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] core %4$d thread %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d core %4$d [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d [core %4$d] thread %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d core %4$d thread %5$d"
OSProcMapToPack              "%1$s: OS proc %2$d maps to %3$s"
OBSOLETE                     "%1$s: Internal thread %2$d changed affinity mask from %3$s to %4$s"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d, CPU %4$d, TPU %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d, CPU %4$d"
OBSOLETE                     "%1$s: HT enabled; %2$d packages; %3$d TPU; %4$d TPUs per package"
OBSOLETE                     "%1$s: HT disabled; %2$d packages"
BarriersInDifferentOrder     "Threads encountered barriers in different order. "
FunctionError                "Function %1$s failed:"
TopologyExtra                "%1$s: %2$s packages x %3$d cores/pkg x %4$d threads/core (%5$d total cores)"
WrongMessageCatalog          "Incompatible message catalog \"%1$s\": Version \"%2$s\" found, version \"%3$s\" expected."
StgIgnored                   "%1$s: ignored because %2$s has been defined"
                                 # %1, -- name of ignored variable, %2 -- name of variable with higher priority.
OBSOLETE                     "%1$s: overrides %3$s specified before"
                                 # %1, %2 -- name and value of the overriding variable, %3 -- name of overridden variable.
AffTilesNoHWLOC              "%1$s: Tiles are only supported if KMP_TOPOLOGY_METHOD=hwloc, using granularity=package instead"
AffTilesNoTiles              "%1$s: Tiles requested but were not detected on this HW, using granularity=package instead"
TopologyExtraTile            "%1$s: %2$d packages x %3$d tiles/pkg x %4$d cores/tile x %5$d threads/core (%6$d total cores)"
TopologyExtraNode            "%1$s: %2$d packages x %3$d nodes/pkg x %4$d cores/node x %5$d threads/core (%6$d total cores)"
TopologyExtraNoTi            "%1$s: %2$d packages x %3$d nodes/pkg x %4$d tiles/node x %5$d cores/tile x %6$d threads/core (%7$d total cores)"
OmptOutdatedWorkshare        "OMPT: Cannot determine workshare type; using the default (loop) instead. "
                             "This issue is fixed in an up-to-date compiler."
OmpNoAllocator               "Allocator %1$s is not available, will use default allocator."
TopologyGeneric              "%1$s: %2$s (%3$d total cores)"
AffGranularityBad            "%1$s: granularity setting: %2$s does not exist in topology.  Using granularity=%3$s instead."
TopologyHybrid               "%1$s: hybrid core type detected: %2$d %3$s cores."

# --- OpenMP errors detected at runtime ---
#
#    %1 is the name of OpenMP construct (formatted with "Pragma" format).
#
CnsBoundToWorksharing        "%1$s must be bound to a work-sharing or work-queuing construct with an \"ordered\" clause"
CnsDetectedEnd               "Detected end of %1$s without first executing a corresponding beginning."
CnsIterationRangeTooLarge    "Iteration range too large in %1$s."
CnsLoopIncrZeroProhibited    "%1$s must not have a loop increment that evaluates to zero."
#
#    %1 is the name of the first OpenMP construct, %2 -- the name of the second one (both formatted with "Pragma" format).
#
CnsExpectedEnd               "Expected end of %1$s; %2$s, however, has most recently begun execution."
CnsInvalidNesting            "%1$s is incorrectly nested within %2$s"
CnsMultipleNesting           "%1$s cannot be executed multiple times during execution of one parallel iteration/section of %2$s"
CnsNestingSameName           "%1$s is incorrectly nested within %2$s of the same name"
CnsNoOrderedClause           "%1$s is incorrectly nested within %2$s that does not have an \"ordered\" clause"
CnsNotInTaskConstruct        "%1$s is incorrectly nested within %2$s but not within any of its \"task\" constructs"
CnsThreadsAtBarrier          "One thread at %1$s while another thread is at %2$s."

# New errors
CantConnect                  "Cannot connect to %1$s"
CantConnectUsing             "Cannot connect to %1$s - Using %2$s"
LibNotSupport                "%1$s does not support %2$s. Continuing without using %2$s."
LibNotSupportFor             "%1$s does not support %2$s for %3$s. Continuing without using %2$s."
StaticLibNotSupport          "Static %1$s does not support %2$s. Continuing without using %2$s."
OBSOLETE                     "KMP_DYNAMIC_MODE=irml cannot be used with KMP_USE_IRML=0"
IttUnknownGroup              "ittnotify: Unknown group \"%2$s\" specified in environment variable \"%1$s\"."
IttEnvVarTooLong             "ittnotify: Environment variable \"%1$s\" too long: Actual lengths is %2$lu, max allowed length is %3$lu."
OBSOLETE                     "%1$s: Affinity capable, using global cpuid leaf 11 info"
OBSOLETE                     "%1$s: Affinity not capable, using local cpuid leaf 11 info"
AffInfoStr                   "%1$s: %2$s."
AffInfoStrStr                "%1$s: %2$s - %3$s."
OSProcToPhysicalThreadMap    "%1$s: OS proc to physical thread map:"
AffUsingFlatOS               "%1$s: using \"flat\" OS <-> physical proc mapping."
AffParseFilename             "%1$s: parsing %2$s."
MsgExiting                   "%1$s - exiting."
IncompatibleLibrary          "Incompatible %1$s library with version %2$s found."
IttFunctionError             "ittnotify: Function %1$s failed:"
IttUnknownError              "ittnotify: Error #%1$d."
EnvMiddleWarn                "%1$s must be set prior to first parallel region or certain API calls; ignored."
CnsLockNotDestroyed          "Lock initialized at %1$s(%2$d) was not destroyed"
                                 # %1, %2, %3, %4 -- file, line, func, col
CantLoadBalUsing             "Cannot determine machine load balance - Using %1$s"
AffNotCapableUsePthread      "%1$s: Affinity not capable, using pthread info"
AffUsePthread                "%1$s: Affinity capable, using pthread info"
OBSOLETE                     "Loading \"%1$s\" library failed:"
OBSOLETE                     "Lookup of \"%1$s\" function failed:"
OBSOLETE                     "Buffer too small."
OBSOLETE                     "Error #%1$d."
NthSyntaxError               "%1$s: Invalid symbols found. Check the value \"%2$s\"."
NthSpacesNotAllowed          "%1$s: Spaces between digits are not allowed \"%2$s\"."
AffStrParseFilename          "%1$s: %2$s - parsing %3$s."
OBSOLETE                     "%1$s cannot be specified via kmp_set_defaults() on this machine because it has more than one processor group."
AffTypeCantUseMultGroups     "Cannot use affinity type \"%1$s\" with multiple Windows* OS processor groups, using \"%2$s\"."
AffGranCantUseMultGroups     "Cannot use affinity granularity \"%1$s\" with multiple Windows* OS processor groups, using \"%2$s\"."
AffWindowsProcGroupMap       "%1$s: Mapping Windows* OS processor group <i> proc <j> to OS proc 64*<i>+<j>."
AffOSProcToGroup             "%1$s: OS proc %2$d maps to Windows* OS processor group %3$d proc %4$d"
AffBalancedNotAvail          "%1$s: Affinity balanced is not available."
OBSOLETE                     "%1$s: granularity=core will be used."
EnvLockWarn                  "%1$s must be set prior to first OMP lock call or critical section; ignored."
FutexNotSupported            "futex system call not supported; %1$s=%2$s ignored."
AffGranUsing                 "%1$s: granularity=%2$s will be used."
AffHWSubsetInvalid           "%1$s: invalid value \"%2$s\", valid format is \"N<item>[@N][,...][,Nt] "
                             "(<item> can be S, N, L2, C, T  for Socket, NUMA Node, L2 Cache, Core, Thread)\"."
AffHWSubsetUnsupported       "KMP_HW_SUBSET ignored: unsupported architecture."
AffHWSubsetManyCores         "KMP_HW_SUBSET ignored: too many cores requested."
SyntaxErrorUsing             "%1$s: syntax error, using %2$s."
AdaptiveNotSupported         "%1$s: Adaptive locks are not supported; using queuing."
EnvSyntaxError               "%1$s: Invalid symbols found. Check the value \"%2$s\"."
EnvSpacesNotAllowed          "%1$s: Spaces between digits are not allowed \"%2$s\"."
BoundToOSProcSet             "%1$s: pid %2$d tid %3$d thread %4$d bound to OS proc set %5$s"
CnsLoopIncrIllegal           "%1$s error: parallel loop increment and condition are inconsistent."
NoGompCancellation           "libgomp cancellation is not currently supported."
AffHWSubsetNonUniform        "KMP_HW_SUBSET ignored: non-uniform topology."
AffHWSubsetNonThreeLevel     "KMP_HW_SUBSET ignored: only three-level topology is supported."
AffGranTopGroup              "%1$s: granularity=%2$s is not supported with KMP_TOPOLOGY_METHOD=group. Using \"granularity=fine\"."
AffGranGroupType             "%1$s: granularity=group is not supported with KMP_AFFINITY=%2$s. Using \"granularity=core\"."
AffHWSubsetManySockets       "KMP_HW_SUBSET ignored: too many sockets requested."
AffHWSubsetDeprecated        "KMP_HW_SUBSET \"o\" offset designator deprecated, please use @ prefix for offset value."
AffUsingHwloc                "%1$s: Affinity capable, using hwloc."
AffIgnoringHwloc             "%1$s: Ignoring hwloc mechanism."
AffHwlocErrorOccurred        "%1$s: Hwloc failed in %2$s. Relying on internal affinity mechanisms."
EnvSerialWarn                "%1$s must be set prior to OpenMP runtime library initialization; ignored."
EnvMwaitWarn                 "You have enabled the use of umonitor/umwait. If the CPU doesn't have that enabled "
                             "you'll get an illegal instruction exception."
EnvVarDeprecated             "%1$s variable deprecated, please use %2$s instead."
RedMethodNotSupported        "KMP_FORCE_REDUCTION: %1$s method is not supported; using critical."
AffHWSubsetNoHWLOC           "KMP_HW_SUBSET ignored: unsupported item requested for non-HWLOC topology method (KMP_TOPOLOGY_METHOD)"
AffHWSubsetManyNodes         "KMP_HW_SUBSET ignored: too many NUMA Nodes requested."
AffHWSubsetManyTiles         "KMP_HW_SUBSET ignored: too many L2 Caches requested."
AffHWSubsetManyProcs         "KMP_HW_SUBSET ignored: too many Procs requested."
HierSchedInvalid             "Hierarchy ignored: unsupported level: %1$s."
AffFormatDefault             "OMP: pid %1$s tid %2$s thread %3$s bound to OS proc set {%4$s}"
APIDeprecated                "%1$s routine deprecated, please use %2$s instead."
GompFeatureNotSupported      "libgomp compatibility layer does not support OpenMP feature: %1$s"
AffHWSubsetManyDies          "KMP_HW_SUBSET ignored: too many Dies requested."
AffUseGlobCpuidL             "%1$s: Affinity capable, using global cpuid leaf %2$d info"
AffNotCapableUseLocCpuidL    "%1$s: Affinity not capable, using local cpuid leaf %2$d info"
AffNotUsingHwloc             "%1$s: Affinity not capable, using hwloc."
UserDirectedError            "%1$s: Encountered user-directed error: %2$s."
UserDirectedWarning          "%1$s: Encountered user-directed warning: %2$s."
FailedToCreateTeam           "Failed to create teams between lower bound (%1$d) and upper bound (%2$d)."
AffHWSubsetManyGeneric       "KMP_HW_SUBSET ignored: %1$s: too many requested."
AffHWSubsetNotExistGeneric   "KMP_HW_SUBSET ignored: %1$s: level not detected in machine topology."
AffHWSubsetEqvLayers         "KMP_HW_SUBSET ignored: %1$s, %2$s: layers are equivalent, please only specify one."
AffHWSubsetOutOfOrder        "KMP_HW_SUBSET ignored: %1$s layer should come after %2$s."
AffEqualTopologyTypes        "%1$s: topology layer \"%2$s\" is equivalent to \"%3$s\"."
AffGranTooCoarseProcGroup    "%1$s: granularity=%2$s is too coarse, setting granularity=group."
StgDeprecatedValue           "%1$s: \"%2$s\" value is deprecated. Please use \"%3$s\" instead."

# --------------------------------------------------------------------------------------------------
-*- HINTS -*-
# --------------------------------------------------------------------------------------------------

# Hints. Hint may be printed after a message. Usually it is longer explanation text or suggestion.
# To maintain hint numbers (they are visible to customers), add new hints to the end.

SubmitBugReport              "Please submit a bug report with this message, compile and run "
                             "commands used, and machine configuration info including native "
                             "compiler and operating system versions. Faster response will be "
                             "obtained by including all program sources. For information on "
                             "submitting this issue, please see "
                             "https://bugs.llvm.org/."
OBSOLETE                     "Check NLSPATH environment variable, its value is \"%1$s\"."
ChangeStackLimit             "Please try changing the shell stack limit or adjusting the "
                             "OMP_STACKSIZE environment variable."
Unset_ALL_THREADS            "Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set)."
Set_ALL_THREADPRIVATE        "Consider setting KMP_ALL_THREADPRIVATE to a value larger than %1$d."
PossibleSystemLimitOnThreads "This could also be due to a system-related limit on the number of threads."
DuplicateLibrary             "This means that multiple copies of the OpenMP runtime have been "
                             "linked into the program. That is dangerous, since it can degrade "
                             "performance or cause incorrect results. "
                             "The best thing to do is to ensure that only a single OpenMP runtime is "
                             "linked into the process, e.g. by avoiding static linking of the OpenMP "
                             "runtime in any library. As an unsafe, unsupported, undocumented workaround "
                             "you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow "
                             "the program to continue to execute, but that may cause crashes or "
                             "silently produce incorrect results. "
                             "For more information, please see http://openmp.llvm.org/"
NameComesFrom_CPUINFO_FILE   "This name is specified in environment variable KMP_CPUINFO_FILE."
NotEnoughMemory              "Seems application required too much memory."
ValidBoolValues              "Use \"0\", \"FALSE\". \".F.\", \"off\", \"no\" as false values, "
                             "\"1\", \"TRUE\", \".T.\", \"on\", \"yes\" as true values."
BufferOverflow               "Perhaps too many threads."
RunningAtMaxPriority         "Decrease priority of application. "
                             "This will allow the monitor thread run at higher priority than other threads."
ChangeMonitorStackSize       "Try changing KMP_MONITOR_STACKSIZE or the shell stack limit."
ChangeWorkerStackSize        "Try changing OMP_STACKSIZE and/or the shell stack limit."
IncreaseWorkerStackSize      "Try increasing OMP_STACKSIZE or the shell stack limit."
DecreaseWorkerStackSize      "Try decreasing OMP_STACKSIZE."
Decrease_NUM_THREADS         "Try decreasing the value of OMP_NUM_THREADS."
IncreaseMonitorStackSize     "Try increasing KMP_MONITOR_STACKSIZE."
DecreaseMonitorStackSize     "Try decreasing KMP_MONITOR_STACKSIZE."
DecreaseNumberOfThreadsInUse "Try decreasing the number of threads in use simultaneously."
DefaultScheduleKindUsed      "Will use default schedule type (%1$s)."
GetNewerLibrary              "It could be a result of using an older OMP library with a newer "
                             "compiler or memory corruption. You may check the proper OMP library "
                             "is linked to the application."
CheckEnvVar                  "Check %1$s environment variable, its value is \"%2$s\"."
OBSOLETE                     "You may want to use an %1$s library that supports %2$s interface with version %3$s."
OBSOLETE                     "You may want to use an %1$s library with version %2$s."
BadExeFormat                 "System error #193 is \"Bad format of EXE or DLL file\". "
                             "Usually it means the file is found, but it is corrupted or "
                             "a file for another architecture. "
                             "Check whether \"%1$s\" is a file for %2$s architecture."
SystemLimitOnThreads         "System-related limit on the number of threads."
SetNewBound                  "Try setting new bounds (preferably less than or equal to %1$d) for num_teams clause."


# --------------------------------------------------------------------------------------------------
# end of file #
# --------------------------------------------------------------------------------------------------
