diff options
author | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-02-21 23:40:06 +0300 |
---|---|---|
committer | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-02-21 23:40:06 +0300 |
commit | dbd0284ce8fa6dbab04240681dc8030b27c925a5 (patch) | |
tree | 1ed7e494d2185fa6e0fce5a449a6e252db5cb06a /contrib/libs/cxxsupp | |
parent | 700cb9d71f7c7a16721d302c2b9960ab189d104d (diff) | |
download | ydb-dbd0284ce8fa6dbab04240681dc8030b27c925a5.tar.gz |
intermediate changes
ref:97eeefd83b6f381aa940777f0d803b239f434eaf
Diffstat (limited to 'contrib/libs/cxxsupp')
47 files changed, 13 insertions, 14603 deletions
diff --git a/contrib/libs/cxxsupp/openmp/extractExternal.cpp b/contrib/libs/cxxsupp/openmp/extractExternal.cpp deleted file mode 100644 index 7a6fdb7e29..0000000000 --- a/contrib/libs/cxxsupp/openmp/extractExternal.cpp +++ /dev/null @@ -1,497 +0,0 @@ -/* - * extractExternal.cpp - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#include <stdlib.h> -#include <iostream> -#include <strstream> -#include <fstream> -#include <string> -#include <set> -#include <map> - -/* Given a set of n object files h ('external' object files) and a set of m - object files o ('internal' object files), - 1. Determines r, the subset of h that o depends on, directly or indirectly - 2. Removes the files in h - r from the file system - 3. For each external symbol defined in some file in r, rename it in r U o - by prefixing it with "__kmp_external_" - Usage: - hide.exe <n> <filenames for h> <filenames for o> - - Thus, the prefixed symbols become hidden in the sense that they now have a special - prefix. -*/ - -using namespace std; - -void stop(char* errorMsg) { - printf("%s\n", errorMsg); - exit(1); -} - -// an entry in the symbol table of a .OBJ file -class Symbol { -public: - __int64 name; - unsigned value; - unsigned short sectionNum, type; - char storageClass, nAux; -}; - -class _rstream : public istrstream { -private: - const char *buf; -protected: - _rstream(pair<const char*, streamsize> p):istrstream(p.first,p.second),buf(p.first){} - ~_rstream() { - delete[]buf; - } -}; - -/* A stream encapuslating the content of a file or the content of a string, overriding the - >> operator to read various integer types in binary form, as well as a symbol table - entry. -*/ -class rstream : public _rstream { -private: - template<class T> - inline rstream& doRead(T &x) { - read((char*)&x, sizeof(T)); - return *this; - } - static pair<const char*, streamsize> getBuf(const char *fileName) { - ifstream raw(fileName,ios::binary | ios::in); - if(!raw.is_open()) - stop("rstream.getBuf: Error opening file"); - raw.seekg(0,ios::end); - streampos fileSize = raw.tellg(); - if(fileSize < 0) - stop("rstream.getBuf: Error reading file"); - char *buf = new char[fileSize]; - raw.seekg(0,ios::beg); - raw.read(buf, fileSize); - return pair<const char*, streamsize>(buf,fileSize); - } -public: - // construct from a string - rstream(const char *buf,streamsize size):_rstream(pair<const char*,streamsize>(buf, size)){} - /* construct from a file whole content is fully read once to initialize the content of - this stream - */ - rstream(const char *fileName):_rstream(getBuf(fileName)){} - rstream& operator>>(int &x) { - return doRead(x); - } - rstream& operator>>(unsigned &x) { - return doRead(x); - } - rstream& operator>>(short &x) { - return doRead(x); - } - rstream& operator>>(unsigned short &x) { - return doRead(x); - } - rstream& operator>>(Symbol &e) { - read((char*)&e, 18); - return *this; - } -}; - -// string table in a .OBJ file -class StringTable { -private: - map<string, unsigned> directory; - size_t length; - char *data; - - // make <directory> from <length> bytes in <data> - void makeDirectory(void) { - unsigned i = 4; - while(i < length) { - string s = string(data + i); - directory.insert(make_pair(s, i)); - i += s.size() + 1; - } - } - // initialize <length> and <data> with contents specified by the arguments - void init(const char *_data) { - unsigned _length = *(unsigned*)_data; - - if(_length < sizeof(unsigned) || _length != *(unsigned*)_data) - stop("StringTable.init: Invalid symbol table"); - if(_data[_length - 1]) { - // to prevent runaway strings, make sure the data ends with a zero - data = new char[length = _length + 1]; - data[_length] = 0; - } else { - data = new char[length = _length]; - } - *(unsigned*)data = length; - KMP_MEMCPY(data + sizeof(unsigned), _data + sizeof(unsigned), - length - sizeof(unsigned)); - makeDirectory(); - } -public: - StringTable(rstream &f) { - /* Construct string table by reading from f. - */ - streampos s; - unsigned strSize; - char *strData; - - s = f.tellg(); - f>>strSize; - if(strSize < sizeof(unsigned)) - stop("StringTable: Invalid string table"); - strData = new char[strSize]; - *(unsigned*)strData = strSize; - // read the raw data into <strData> - f.read(strData + sizeof(unsigned), strSize - sizeof(unsigned)); - s = f.tellg() - s; - if(s < strSize) - stop("StringTable: Unexpected EOF"); - init(strData); - delete[]strData; - } - StringTable(const set<string> &strings) { - /* Construct string table from given strings. - */ - char *p; - set<string>::const_iterator it; - size_t s; - - // count required size for data - for(length = sizeof(unsigned), it = strings.begin(); it != strings.end(); ++it) { - size_t l = (*it).size(); - - if(l > (unsigned) 0xFFFFFFFF) - stop("StringTable: String too long"); - if(l > 8) { - length += l + 1; - if(length > (unsigned) 0xFFFFFFFF) - stop("StringTable: Symbol table too long"); - } - } - data = new char[length]; - *(unsigned*)data = length; - // populate data and directory - for(p = data + sizeof(unsigned), it = strings.begin(); it != strings.end(); ++it) { - const string &str = *it; - size_t l = str.size(); - if(l > 8) { - directory.insert(make_pair(str, p - data)); - KMP_MEMCPY(p, str.c_str(), l); - p[l] = 0; - p += l + 1; - } - } - } - ~StringTable() { - delete[] data; - } - /* Returns encoding for given string based on this string table. - Error if string length is greater than 8 but string is not in - the string table--returns 0. - */ - __int64 encode(const string &str) { - __int64 r; - - if(str.size() <= 8) { - // encoded directly - ((char*)&r)[7] = 0; - KMP_STRNCPY_S((char*)&r, sizeof(r), str.c_str(), 8); - return r; - } else { - // represented as index into table - map<string,unsigned>::const_iterator it = directory.find(str); - if(it == directory.end()) - stop("StringTable::encode: String now found in string table"); - ((unsigned*)&r)[0] = 0; - ((unsigned*)&r)[1] = (*it).second; - return r; - } - } - /* Returns string represented by x based on this string table. - Error if x references an invalid position in the table--returns - the empty string. - */ - string decode(__int64 x) const { - if(*(unsigned*)&x == 0) { - // represented as index into table - unsigned &p = ((unsigned*)&x)[1]; - if(p >= length) - stop("StringTable::decode: Invalid string table lookup"); - return string(data + p); - } else { - // encoded directly - char *p = (char*)&x; - int i; - - for(i = 0; i < 8 && p[i]; ++i); - return string(p, i); - } - } - void write(ostream &os) { - os.write(data, length); - } -}; - -/* for the named object file, determines the set of defined symbols and the set of undefined external symbols - and writes them to <defined> and <undefined> respectively -*/ -void computeExternalSymbols(const char *fileName, set<string> *defined, set<string> *undefined){ - streampos fileSize; - size_t strTabStart; - unsigned symTabStart, symNEntries; - rstream f(fileName); - - f.seekg(0,ios::end); - fileSize = f.tellg(); - - f.seekg(8); - f >> symTabStart >> symNEntries; - // seek to the string table - f.seekg(strTabStart = symTabStart + 18 * (size_t)symNEntries); - if(f.eof()) { - printf("computeExternalSymbols: fileName='%s', fileSize = %lu, symTabStart = %u, symNEntries = %u\n", - fileName, (unsigned long) fileSize, symTabStart, symNEntries); - stop("computeExternalSymbols: Unexpected EOF 1"); - } - StringTable stringTable(f); // read the string table - if(f.tellg() != fileSize) - stop("computeExternalSymbols: Unexpected data after string table"); - - f.clear(); - f.seekg(symTabStart); // seek to the symbol table - - defined->clear(); undefined->clear(); - for(int i = 0; i < symNEntries; ++i) { - // process each entry - Symbol e; - - if(f.eof()) - stop("computeExternalSymbols: Unexpected EOF 2"); - f>>e; - if(f.fail()) - stop("computeExternalSymbols: File read error"); - if(e.nAux) { // auxiliary entry: skip - f.seekg(e.nAux * 18, ios::cur); - i += e.nAux; - } - // if symbol is extern and defined in the current file, insert it - if(e.storageClass == 2) - if(e.sectionNum) - defined->insert(stringTable.decode(e.name)); - else - undefined->insert(stringTable.decode(e.name)); - } -} - -/* For each occurrence of an external symbol in the object file named by - by <fileName> that is a member of <hide>, renames it by prefixing - with "__kmp_external_", writing back the file in-place -*/ -void hideSymbols(char *fileName, const set<string> &hide) { - static const string prefix("__kmp_external_"); - set<string> strings; // set of all occurring symbols, appropriately prefixed - streampos fileSize; - size_t strTabStart; - unsigned symTabStart, symNEntries; - int i; - rstream in(fileName); - - in.seekg(0,ios::end); - fileSize = in.tellg(); - - in.seekg(8); - in >> symTabStart >> symNEntries; - in.seekg(strTabStart = symTabStart + 18 * (size_t)symNEntries); - if(in.eof()) - stop("hideSymbols: Unexpected EOF"); - StringTable stringTableOld(in); // read original string table - - if(in.tellg() != fileSize) - stop("hideSymbols: Unexpected data after string table"); - - // compute set of occurring strings with prefix added - for(i = 0; i < symNEntries; ++i) { - Symbol e; - - in.seekg(symTabStart + i * 18); - if(in.eof()) - stop("hideSymbols: Unexpected EOF"); - in >> e; - if(in.fail()) - stop("hideSymbols: File read error"); - if(e.nAux) - i += e.nAux; - const string &s = stringTableOld.decode(e.name); - // if symbol is extern and found in <hide>, prefix and insert into strings, - // otherwise, just insert into strings without prefix - strings.insert( (e.storageClass == 2 && hide.find(s) != hide.end()) ? - prefix + s : s); - } - - ofstream out(fileName, ios::trunc | ios::out | ios::binary); - if(!out.is_open()) - stop("hideSymbols: Error opening output file"); - - // make new string table from string set - StringTable stringTableNew = StringTable(strings); - - // copy input file to output file up to just before the symbol table - in.seekg(0); - char *buf = new char[symTabStart]; - in.read(buf, symTabStart); - out.write(buf, symTabStart); - delete []buf; - - // copy input symbol table to output symbol table with name translation - for(i = 0; i < symNEntries; ++i) { - Symbol e; - - in.seekg(symTabStart + i*18); - if(in.eof()) - stop("hideSymbols: Unexpected EOF"); - in >> e; - if(in.fail()) - stop("hideSymbols: File read error"); - const string &s = stringTableOld.decode(e.name); - out.seekp(symTabStart + i*18); - e.name = stringTableNew.encode( (e.storageClass == 2 && hide.find(s) != hide.end()) ? - prefix + s : s); - out.write((char*)&e, 18); - if(out.fail()) - stop("hideSymbols: File write error"); - if(e.nAux) { - // copy auxiliary symbol table entries - int nAux = e.nAux; - for(int j = 1; j <= nAux; ++j) { - in >> e; - out.seekp(symTabStart + (i + j) * 18); - out.write((char*)&e, 18); - } - i += nAux; - } - } - // output string table - stringTableNew.write(out); -} - -// returns true iff <a> and <b> have no common element -template <class T> -bool isDisjoint(const set<T> &a, const set<T> &b) { - set<T>::const_iterator ita, itb; - - for(ita = a.begin(), itb = b.begin(); ita != a.end() && itb != b.end();) { - const T &ta = *ita, &tb = *itb; - if(ta < tb) - ++ita; - else if (tb < ta) - ++itb; - else - return false; - } - return true; -} - -/* precondition: <defined> and <undefined> are arrays with <nTotal> elements where - <nTotal> >= <nExternal>. The first <nExternal> elements correspond to the external object - files and the rest correspond to the internal object files. - postcondition: file x is said to depend on file y if undefined[x] and defined[y] are not - disjoint. Returns the transitive closure of the set of internal object files, as a set of - file indexes, under the 'depends on' relation, minus the set of internal object files. -*/ -set<int> *findRequiredExternal(int nExternal, int nTotal, set<string> *defined, set<string> *undefined) { - set<int> *required = new set<int>; - set<int> fresh[2]; - int i, cur = 0; - bool changed; - - for(i = nTotal - 1; i >= nExternal; --i) - fresh[cur].insert(i); - do { - changed = false; - for(set<int>::iterator it = fresh[cur].begin(); it != fresh[cur].end(); ++it) { - set<string> &s = undefined[*it]; - - for(i = 0; i < nExternal; ++i) { - if(required->find(i) == required->end()) { - if(!isDisjoint(defined[i], s)) { - // found a new qualifying element - required->insert(i); - fresh[1 - cur].insert(i); - changed = true; - } - } - } - } - fresh[cur].clear(); - cur = 1 - cur; - } while(changed); - return required; -} - -int main(int argc, char **argv) { - int nExternal, nInternal, i; - set<string> *defined, *undefined; - set<int>::iterator it; - - if(argc < 3) - stop("Please specify a positive integer followed by a list of object filenames"); - nExternal = atoi(argv[1]); - if(nExternal <= 0) - stop("Please specify a positive integer followed by a list of object filenames"); - if(nExternal + 2 > argc) - stop("Too few external objects"); - nInternal = argc - nExternal - 2; - defined = new set<string>[argc - 2]; - undefined = new set<string>[argc - 2]; - - // determine the set of defined and undefined external symbols - for(i = 2; i < argc; ++i) - computeExternalSymbols(argv[i], defined + i - 2, undefined + i - 2); - - // determine the set of required external files - set<int> *requiredExternal = findRequiredExternal(nExternal, argc - 2, defined, undefined); - set<string> hide; - - /* determine the set of symbols to hide--namely defined external symbols of the - required external files - */ - for(it = requiredExternal->begin(); it != requiredExternal->end(); ++it) { - int idx = *it; - set<string>::iterator it2; - /* We have to insert one element at a time instead of inserting a range because - the insert member function taking a range doesn't exist on Windows* OS, at least - at the time of this writing. - */ - for(it2 = defined[idx].begin(); it2 != defined[idx].end(); ++it2) - hide.insert(*it2); - } - - /* process the external files--removing those that are not required and hiding - the appropriate symbols in the others - */ - for(i = 0; i < nExternal; ++i) - if(requiredExternal->find(i) != requiredExternal->end()) - hideSymbols(argv[2 + i], hide); - else - remove(argv[2 + i]); - // hide the appropriate symbols in the internal files - for(i = nExternal + 2; i < argc; ++i) - hideSymbols(argv[i], hide); - return 0; -} diff --git a/contrib/libs/cxxsupp/openmp/i18n/en_US.txt b/contrib/libs/cxxsupp/openmp/i18n/en_US.txt deleted file mode 100644 index 11d57eb798..0000000000 --- a/contrib/libs/cxxsupp/openmp/i18n/en_US.txt +++ /dev/null @@ -1,475 +0,0 @@ -# en_US.txt # - -# -#//===----------------------------------------------------------------------===// -#// -#// The LLVM Compiler Infrastructure -#// -#// This file is dual licensed under the MIT and the University of Illinois Open -#// Source Licenses. See LICENSE.txt for details. -#// -#//===----------------------------------------------------------------------===// -# - -# 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 "20140827" - - - -# -------------------------------------------------------------------------------------------------- --*- 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]" - - - -# -------------------------------------------------------------------------------------------------- --*- 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: %2$s\n" - -Pragma "%1$s pragma (at %2$s:%3$s():%4$s)" - # %1 is pragma name (like "parallel" or "master", - # %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) 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." -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, assumming \"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 overriden variable. - -# --- 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." -AffUseGlobCpuidL11 "%1$s: Affinity capable, using global cpuid leaf 11 info" -AffNotCapableUseLocCpuidL11 "%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 "ittnofify: 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." -AffThrPlaceInvalid "%1$s: invalid value \"%2$s\", valid format is \"Ns[@N],Nc[@N],Nt " - "(nSockets@offset, nCores@offset, nTthreads per core)\"." -AffThrPlaceUnsupported "KMP_PLACE_THREADS ignored: unsupported architecture." -AffThrPlaceManyCores "KMP_PLACE_THREADS 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 thread %3$d bound to OS proc set %4$s" -CnsLoopIncrIllegal "%1$s error: parallel loop increment and condition are inconsistent." -NoGompCancellation "libgomp cancellation is not currently supported." -AffThrPlaceNonUniform "KMP_PLACE_THREADS ignored: non-uniform topology." -AffThrPlaceNonThreeLevel "KMP_PLACE_THREADS 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\"." -AffThrPlaceManySockets "KMP_PLACE_THREADS ignored: too many sockets requested." -AffThrPlaceDeprecated "KMP_PLACE_THREADS \"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." - - -# -------------------------------------------------------------------------------------------------- --*- 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 " - "http://www.intel.com/software/products/support/." -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_ALL_THREADS and OMP_THREAD_LIMIT (if either is 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://www.intel.com/software/products/support/." -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." - - - -# -------------------------------------------------------------------------------------------------- -# end of file # -# -------------------------------------------------------------------------------------------------- - diff --git a/contrib/libs/cxxsupp/openmp/include/30/omp.h.var b/contrib/libs/cxxsupp/openmp/include/30/omp.h.var deleted file mode 100644 index 9ffcfb297b..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/30/omp.h.var +++ /dev/null @@ -1,164 +0,0 @@ -/* - * include/30/omp.h.var - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#ifndef __OMP_H -# define __OMP_H - -# define KMP_VERSION_MAJOR @LIBOMP_VERSION_MAJOR@ -# define KMP_VERSION_MINOR @LIBOMP_VERSION_MINOR@ -# define KMP_VERSION_BUILD @LIBOMP_VERSION_BUILD@ -# define KMP_BUILD_DATE "@LIBOMP_BUILD_DATE@" - -# ifdef __cplusplus - extern "C" { -# endif - -# define omp_set_num_threads ompc_set_num_threads -# define omp_set_dynamic ompc_set_dynamic -# define omp_set_nested ompc_set_nested -# define omp_set_max_active_levels ompc_set_max_active_levels -# define omp_set_schedule ompc_set_schedule -# define omp_get_ancestor_thread_num ompc_get_ancestor_thread_num -# define omp_get_team_size ompc_get_team_size - - -# define kmp_set_stacksize kmpc_set_stacksize -# define kmp_set_stacksize_s kmpc_set_stacksize_s -# define kmp_set_blocktime kmpc_set_blocktime -# define kmp_set_library kmpc_set_library -# define kmp_set_defaults kmpc_set_defaults -# define kmp_set_affinity_mask_proc kmpc_set_affinity_mask_proc -# define kmp_unset_affinity_mask_proc kmpc_unset_affinity_mask_proc -# define kmp_get_affinity_mask_proc kmpc_get_affinity_mask_proc - -# define kmp_malloc kmpc_malloc -# define kmp_calloc kmpc_calloc -# define kmp_realloc kmpc_realloc -# define kmp_free kmpc_free - - -# if defined(_WIN32) -# define __KAI_KMPC_CONVENTION __cdecl -# else -# define __KAI_KMPC_CONVENTION -# endif - - /* schedule kind constants */ - typedef enum omp_sched_t { - omp_sched_static = 1, - omp_sched_dynamic = 2, - omp_sched_guided = 3, - omp_sched_auto = 4 - } omp_sched_t; - - /* set API functions */ - extern void __KAI_KMPC_CONVENTION omp_set_num_threads (int); - extern void __KAI_KMPC_CONVENTION omp_set_dynamic (int); - extern void __KAI_KMPC_CONVENTION omp_set_nested (int); - extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels (int); - extern void __KAI_KMPC_CONVENTION omp_set_schedule (omp_sched_t, int); - - /* query API functions */ - extern int __KAI_KMPC_CONVENTION omp_get_num_threads (void); - extern int __KAI_KMPC_CONVENTION omp_get_dynamic (void); - extern int __KAI_KMPC_CONVENTION omp_get_nested (void); - extern int __KAI_KMPC_CONVENTION omp_get_max_threads (void); - extern int __KAI_KMPC_CONVENTION omp_get_thread_num (void); - extern int __KAI_KMPC_CONVENTION omp_get_num_procs (void); - extern int __KAI_KMPC_CONVENTION omp_in_parallel (void); - extern int __KAI_KMPC_CONVENTION omp_in_final (void); - extern int __KAI_KMPC_CONVENTION omp_get_active_level (void); - extern int __KAI_KMPC_CONVENTION omp_get_level (void); - extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num (int); - extern int __KAI_KMPC_CONVENTION omp_get_team_size (int); - extern int __KAI_KMPC_CONVENTION omp_get_thread_limit (void); - extern int __KAI_KMPC_CONVENTION omp_get_max_active_levels (void); - extern void __KAI_KMPC_CONVENTION omp_get_schedule (omp_sched_t *, int *); - - /* lock API functions */ - typedef struct omp_lock_t { - void * _lk; - } omp_lock_t; - - extern void __KAI_KMPC_CONVENTION omp_init_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_set_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_unset_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_destroy_lock (omp_lock_t *); - extern int __KAI_KMPC_CONVENTION omp_test_lock (omp_lock_t *); - - /* nested lock API functions */ - typedef struct omp_nest_lock_t { - void * _lk; - } omp_nest_lock_t; - - extern void __KAI_KMPC_CONVENTION omp_init_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_set_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_unset_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_destroy_nest_lock (omp_nest_lock_t *); - extern int __KAI_KMPC_CONVENTION omp_test_nest_lock (omp_nest_lock_t *); - - /* time API functions */ - extern double __KAI_KMPC_CONVENTION omp_get_wtime (void); - extern double __KAI_KMPC_CONVENTION omp_get_wtick (void); - -# include <stdlib.h> - /* kmp API functions */ - extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void); - extern void __KAI_KMPC_CONVENTION kmp_set_stacksize (int); - extern size_t __KAI_KMPC_CONVENTION kmp_get_stacksize_s (void); - extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t); - extern int __KAI_KMPC_CONVENTION kmp_get_blocktime (void); - extern int __KAI_KMPC_CONVENTION kmp_get_library (void); - extern void __KAI_KMPC_CONVENTION kmp_set_blocktime (int); - extern void __KAI_KMPC_CONVENTION kmp_set_library (int); - extern void __KAI_KMPC_CONVENTION kmp_set_library_serial (void); - extern void __KAI_KMPC_CONVENTION kmp_set_library_turnaround (void); - extern void __KAI_KMPC_CONVENTION kmp_set_library_throughput (void); - extern void __KAI_KMPC_CONVENTION kmp_set_defaults (char const *); - - /* affinity API functions */ - typedef void * kmp_affinity_mask_t; - - extern int __KAI_KMPC_CONVENTION kmp_set_affinity (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity_max_proc (void); - extern void __KAI_KMPC_CONVENTION kmp_create_affinity_mask (kmp_affinity_mask_t *); - extern void __KAI_KMPC_CONVENTION kmp_destroy_affinity_mask (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc (int, kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc (int, kmp_affinity_mask_t *); - - extern void * __KAI_KMPC_CONVENTION kmp_malloc (size_t); - extern void * __KAI_KMPC_CONVENTION kmp_calloc (size_t, size_t); - extern void * __KAI_KMPC_CONVENTION kmp_realloc (void *, size_t); - extern void __KAI_KMPC_CONVENTION kmp_free (void *); - - extern void __KAI_KMPC_CONVENTION kmp_set_warnings_on(void); - extern void __KAI_KMPC_CONVENTION kmp_set_warnings_off(void); - -# undef __KAI_KMPC_CONVENTION - - /* Warning: - The following typedefs are not standard, deprecated and will be removed in a future release. - */ - typedef int omp_int_t; - typedef double omp_wtime_t; - -# ifdef __cplusplus - } -# endif - -#endif /* __OMP_H */ - diff --git a/contrib/libs/cxxsupp/openmp/include/30/omp_lib.f.var b/contrib/libs/cxxsupp/openmp/include/30/omp_lib.f.var deleted file mode 100644 index 99122067af..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/30/omp_lib.f.var +++ /dev/null @@ -1,633 +0,0 @@ -! include/30/omp_lib.f.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - -!*** -!*** Some of the directives for the following routine extend past column 72, -!*** so process this file in 132-column mode. -!*** - -!dec$ fixedformlinesize:132 - - module omp_lib_kinds - - integer, parameter :: omp_integer_kind = 4 - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = 4 - integer, parameter :: omp_lock_kind = int_ptr_kind() - integer, parameter :: omp_nest_lock_kind = int_ptr_kind() - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = int_ptr_kind() - integer, parameter :: kmp_size_t_kind = int_ptr_kind() - integer, parameter :: kmp_affinity_mask_kind = int_ptr_kind() - - end module omp_lib_kinds - - module omp_lib - - use omp_lib_kinds - - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*), parameter :: kmp_build_date = '@LIBOMP_BUILD_DATE@' - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) - use omp_lib_kinds - integer (kind=omp_integer_kind) nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) - use omp_lib_kinds - logical (kind=omp_logical_kind) enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) - use omp_lib_kinds - logical (kind=omp_logical_kind) enable - end subroutine omp_set_nested - - function omp_get_num_threads() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_get_dynamic() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) - use omp_lib_kinds - integer (kind=omp_integer_kind) max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) - use omp_lib_kinds - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) - use omp_lib_kinds - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_team_size - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_wtime() - double precision omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick () - double precision omp_get_wtick - end function omp_get_wtick - - subroutine omp_init_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) - use omp_lib_kinds - integer (kind=omp_integer_kind) size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) - use omp_lib_kinds - integer (kind=kmp_size_t_kind) size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) - use omp_lib_kinds - integer (kind=omp_integer_kind) msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) - use omp_lib_kinds - integer (kind=omp_integer_kind) libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) - character*(*) string - end subroutine kmp_set_defaults - - function kmp_get_stacksize() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() - use omp_lib_kinds - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind) size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind) nelem - integer (kind=kmp_size_t_kind) elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind) ptr - integer (kind=kmp_size_t_kind) size - end function kmp_realloc - - subroutine kmp_free(ptr) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() - end subroutine kmp_set_warnings_off - - end interface - -!dec$ if defined(_WIN32) -!dec$ if defined(_WIN64) .or. defined(_M_AMD64) - -!*** -!*** The Fortran entry points must be in uppercase, even if the /Qlowercase -!*** option is specified. The alias attribute ensures that the specified -!*** string is used as the entry point. -!*** -!*** On the Windows* OS IA-32 architecture, the Fortran entry points have an -!*** underscore prepended. On the Windows* OS Intel(R) 64 -!*** architecture, no underscore is prepended. -!*** - -!dec$ attributes alias:'OMP_SET_NUM_THREADS' :: omp_set_num_threads -!dec$ attributes alias:'OMP_SET_DYNAMIC' :: omp_set_dynamic -!dec$ attributes alias:'OMP_SET_NESTED' :: omp_set_nested -!dec$ attributes alias:'OMP_GET_NUM_THREADS' :: omp_get_num_threads -!dec$ attributes alias:'OMP_GET_MAX_THREADS' :: omp_get_max_threads -!dec$ attributes alias:'OMP_GET_THREAD_NUM' :: omp_get_thread_num -!dec$ attributes alias:'OMP_GET_NUM_PROCS' :: omp_get_num_procs -!dec$ attributes alias:'OMP_IN_PARALLEL' :: omp_in_parallel -!dec$ attributes alias:'OMP_GET_DYNAMIC' :: omp_get_dynamic -!dec$ attributes alias:'OMP_GET_NESTED' :: omp_get_nested -!dec$ attributes alias:'OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit -!dec$ attributes alias:'OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels -!dec$ attributes alias:'OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels -!dec$ attributes alias:'OMP_GET_LEVEL' :: omp_get_level -!dec$ attributes alias:'OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level -!dec$ attributes alias:'OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num -!dec$ attributes alias:'OMP_GET_TEAM_SIZE' :: omp_get_team_size -!dec$ attributes alias:'OMP_SET_SCHEDULE' :: omp_set_schedule -!dec$ attributes alias:'OMP_GET_SCHEDULE' :: omp_get_schedule -!dec$ attributes alias:'OMP_GET_WTIME' :: omp_get_wtime -!dec$ attributes alias:'OMP_GET_WTICK' :: omp_get_wtick - -!dec$ attributes alias:'omp_init_lock' :: omp_init_lock -!dec$ attributes alias:'omp_destroy_lock' :: omp_destroy_lock -!dec$ attributes alias:'omp_set_lock' :: omp_set_lock -!dec$ attributes alias:'omp_unset_lock' :: omp_unset_lock -!dec$ attributes alias:'omp_test_lock' :: omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock' :: omp_init_nest_lock -!dec$ attributes alias:'omp_destroy_nest_lock' :: omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock' :: omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock' :: omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock' :: omp_test_nest_lock - -!dec$ attributes alias:'KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'KMP_FREE'::kmp_free - -!dec$ attributes alias:'KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ else - -!*** -!*** On Windows* OS IA-32 architecture, the Fortran entry points have an underscore prepended. -!*** - -!dec$ attributes alias:'_OMP_SET_NUM_THREADS' :: omp_set_num_threads -!dec$ attributes alias:'_OMP_SET_DYNAMIC' :: omp_set_dynamic -!dec$ attributes alias:'_OMP_SET_NESTED' :: omp_set_nested -!dec$ attributes alias:'_OMP_GET_NUM_THREADS' :: omp_get_num_threads -!dec$ attributes alias:'_OMP_GET_MAX_THREADS' :: omp_get_max_threads -!dec$ attributes alias:'_OMP_GET_THREAD_NUM' :: omp_get_thread_num -!dec$ attributes alias:'_OMP_GET_NUM_PROCS' :: omp_get_num_procs -!dec$ attributes alias:'_OMP_IN_PARALLEL' :: omp_in_parallel -!dec$ attributes alias:'_OMP_GET_DYNAMIC' :: omp_get_dynamic -!dec$ attributes alias:'_OMP_GET_NESTED' :: omp_get_nested -!dec$ attributes alias:'_OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit -!dec$ attributes alias:'_OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels -!dec$ attributes alias:'_OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels -!dec$ attributes alias:'_OMP_GET_LEVEL' :: omp_get_level -!dec$ attributes alias:'_OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level -!dec$ attributes alias:'_OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num -!dec$ attributes alias:'_OMP_GET_TEAM_SIZE' :: omp_get_team_size -!dec$ attributes alias:'_OMP_SET_SCHEDULE' :: omp_set_schedule -!dec$ attributes alias:'_OMP_GET_SCHEDULE' :: omp_get_schedule -!dec$ attributes alias:'_OMP_GET_WTIME' :: omp_get_wtime -!dec$ attributes alias:'_OMP_GET_WTICK' :: omp_get_wtick - -!dec$ attributes alias:'_omp_init_lock' :: omp_init_lock -!dec$ attributes alias:'_omp_destroy_lock' :: omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock' :: omp_set_lock -!dec$ attributes alias:'_omp_unset_lock' :: omp_unset_lock -!dec$ attributes alias:'_omp_test_lock' :: omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock' :: omp_init_nest_lock -!dec$ attributes alias:'_omp_destroy_nest_lock' :: omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock' :: omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock' :: omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock' :: omp_test_nest_lock - -!dec$ attributes alias:'_KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'_KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'_KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'_KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'_KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'_KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'_KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'_KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'_KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'_KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'_KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'_KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'_KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'_KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'_KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'_KMP_FREE'::kmp_free - -!dec$ attributes alias:'_KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'_KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ endif -!dec$ endif - -!dec$ if defined(__linux) - -!*** -!*** The Linux* OS entry points are in lowercase, with an underscore appended. -!*** - -!dec$ attributes alias:'omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'omp_get_level_'::omp_get_level -!dec$ attributes alias:'omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'omp_get_wtick_'::omp_get_wtick - -!dec$ attributes alias:'omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'kmp_free_'::kmp_free - -!dec$ attributes alias:'kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'kmp_set_warnings_off_'::kmp_set_warnings_off - -!dec$ endif - -!dec$ if defined(__APPLE__) - -!*** -!*** The Mac entry points are in lowercase, with an both an underscore -!*** appended and an underscore prepended. -!*** - -!dec$ attributes alias:'_omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'_omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'_omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'_omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'_omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'_omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'_omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'_omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'_omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'_omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'_omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'_omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'_omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'_omp_get_level_'::omp_get_level -!dec$ attributes alias:'_omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'_omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'_omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'_omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'_omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'_omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'_omp_get_wtick_'::omp_get_wtick - -!dec$ attributes alias:'_omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'_omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'_omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'_omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'_omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'_kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'_kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'_kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'_kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'_kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'_kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'_kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'_kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'_kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'_kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'_kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'_kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'_kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'_kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'_kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'_kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'_kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'_kmp_free_'::kmp_free - -!dec$ attributes alias:'_kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'_kmp_set_warnings_off_'::kmp_set_warnings_off - -!dec$ endif - - end module omp_lib - diff --git a/contrib/libs/cxxsupp/openmp/include/30/omp_lib.f90.var b/contrib/libs/cxxsupp/openmp/include/30/omp_lib.f90.var deleted file mode 100644 index 3325486d26..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/30/omp_lib.f90.var +++ /dev/null @@ -1,358 +0,0 @@ -! include/30/omp_lib.f90.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - - module omp_lib_kinds - - use, intrinsic :: iso_c_binding - - integer, parameter :: omp_integer_kind = c_int - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = c_float - integer, parameter :: kmp_double_kind = c_double - integer, parameter :: omp_lock_kind = c_intptr_t - integer, parameter :: omp_nest_lock_kind = c_intptr_t - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = c_intptr_t - integer, parameter :: kmp_size_t_kind = c_size_t - integer, parameter :: kmp_affinity_mask_kind = c_intptr_t - - end module omp_lib_kinds - - module omp_lib - - use omp_lib_kinds - - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*) kmp_build_date - parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' ) - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_nested - - function omp_get_num_threads() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_in_final() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_final - end function omp_in_final - - function omp_get_dynamic() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) :: omp_get_level - end function omp_get_level - - function omp_get_active_level() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) :: omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - integer (kind=omp_integer_kind), value :: level - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_team_size - integer (kind=omp_integer_kind), value :: level - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) bind(c) - use omp_lib_kinds - integer (kind=omp_sched_kind), value :: kind - integer (kind=omp_integer_kind), value :: modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) bind(c) - use omp_lib_kinds - integer (kind=omp_sched_kind) :: kind - integer (kind=omp_integer_kind) :: modifier - end subroutine omp_get_schedule - - function omp_get_wtime() bind(c) - use omp_lib_kinds - real (kind=kmp_double_kind) omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick() bind(c) - use omp_lib_kinds - real (kind=kmp_double_kind) omp_get_wtick - end function omp_get_wtick - - subroutine omp_init_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) bind(c) - use omp_lib_kinds - integer (kind=kmp_size_t_kind), value :: size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() bind(c) - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() bind(c) - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() bind(c) - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) bind(c) - use, intrinsic :: iso_c_binding - character (kind=c_char) :: string(*) - end subroutine kmp_set_defaults - - function kmp_get_stacksize() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() bind(c) - use omp_lib_kinds - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) bind(c) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) bind(c) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind), value :: size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind), value :: nelem - integer (kind=kmp_size_t_kind), value :: elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind), value :: ptr - integer (kind=kmp_size_t_kind), value :: size - end function kmp_realloc - - subroutine kmp_free(ptr) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind), value :: ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() bind(c) - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() bind(c) - end subroutine kmp_set_warnings_off - - end interface - - end module omp_lib diff --git a/contrib/libs/cxxsupp/openmp/include/30/omp_lib.h.var b/contrib/libs/cxxsupp/openmp/include/30/omp_lib.h.var deleted file mode 100644 index 84ed39b321..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/30/omp_lib.h.var +++ /dev/null @@ -1,638 +0,0 @@ -! include/30/omp_lib.h.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - -!*** -!*** Some of the directives for the following routine extend past column 72, -!*** so process this file in 132-column mode. -!*** - -!dec$ fixedformlinesize:132 - - integer, parameter :: omp_integer_kind = 4 - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = 4 - integer, parameter :: omp_lock_kind = int_ptr_kind() - integer, parameter :: omp_nest_lock_kind = int_ptr_kind() - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = int_ptr_kind() - integer, parameter :: kmp_size_t_kind = int_ptr_kind() - integer, parameter :: kmp_affinity_mask_kind = int_ptr_kind() - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*) kmp_build_date - parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' ) - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) - import - integer (kind=omp_integer_kind) nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) - import - logical (kind=omp_logical_kind) enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) - import - logical (kind=omp_logical_kind) enable - end subroutine omp_set_nested - - function omp_get_num_threads() - import - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() - import - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() - import - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() - import - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() - import - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_in_final() - import - logical (kind=omp_logical_kind) omp_in_final - end function omp_in_final - - function omp_get_dynamic() - import - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() - import - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() - import - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) - import - integer (kind=omp_integer_kind) max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() - import - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() - import - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() - import - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) - import - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) - import - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_team_size - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) - import - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) - import - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_wtime() - double precision omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick () - double precision omp_get_wtick - end function omp_get_wtick - - subroutine omp_init_lock(lockvar) - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) - import - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) - import - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) - import - integer (kind=omp_integer_kind) size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) - import - integer (kind=kmp_size_t_kind) size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) - import - integer (kind=omp_integer_kind) msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) - import - integer (kind=omp_integer_kind) libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) - character*(*) string - end subroutine kmp_set_defaults - - function kmp_get_stacksize() - import - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() - import - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() - import - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() - import - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) - import - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) - import - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() - import - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) - import - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) - import - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) - import - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) - import - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) - import - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) - import - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind) size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) - import - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind) nelem - integer (kind=kmp_size_t_kind) elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) - import - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind) ptr - integer (kind=kmp_size_t_kind) size - end function kmp_realloc - - subroutine kmp_free(ptr) - import - integer (kind=kmp_pointer_kind) ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() - end subroutine kmp_set_warnings_off - - end interface - -!dec$ if defined(_WIN32) -!dec$ if defined(_WIN64) .or. defined(_M_AMD64) - -!*** -!*** The Fortran entry points must be in uppercase, even if the /Qlowercase -!*** option is specified. The alias attribute ensures that the specified -!*** string is used as the entry point. -!*** -!*** On the Windows* OS IA-32 architecture, the Fortran entry points have an -!*** underscore prepended. On the Windows* OS Intel(R) 64 -!*** architecture, no underscore is prepended. -!*** - -!dec$ attributes alias:'OMP_SET_NUM_THREADS'::omp_set_num_threads -!dec$ attributes alias:'OMP_SET_DYNAMIC'::omp_set_dynamic -!dec$ attributes alias:'OMP_SET_NESTED'::omp_set_nested -!dec$ attributes alias:'OMP_GET_NUM_THREADS'::omp_get_num_threads -!dec$ attributes alias:'OMP_GET_MAX_THREADS'::omp_get_max_threads -!dec$ attributes alias:'OMP_GET_THREAD_NUM'::omp_get_thread_num -!dec$ attributes alias:'OMP_GET_NUM_PROCS'::omp_get_num_procs -!dec$ attributes alias:'OMP_IN_PARALLEL'::omp_in_parallel -!dec$ attributes alias:'OMP_IN_FINAL'::omp_in_final -!dec$ attributes alias:'OMP_GET_DYNAMIC'::omp_get_dynamic -!dec$ attributes alias:'OMP_GET_NESTED'::omp_get_nested -!dec$ attributes alias:'OMP_GET_THREAD_LIMIT'::omp_get_thread_limit -!dec$ attributes alias:'OMP_SET_MAX_ACTIVE_LEVELS'::omp_set_max_active_levels -!dec$ attributes alias:'OMP_GET_MAX_ACTIVE_LEVELS'::omp_get_max_active_levels -!dec$ attributes alias:'OMP_GET_LEVEL'::omp_get_level -!dec$ attributes alias:'OMP_GET_ACTIVE_LEVEL'::omp_get_active_level -!dec$ attributes alias:'OMP_GET_ANCESTOR_THREAD_NUM'::omp_get_ancestor_thread_num -!dec$ attributes alias:'OMP_GET_TEAM_SIZE'::omp_get_team_size -!dec$ attributes alias:'OMP_SET_SCHEDULE'::omp_set_schedule -!dec$ attributes alias:'OMP_GET_SCHEDULE'::omp_get_schedule -!dec$ attributes alias:'OMP_GET_WTIME'::omp_get_wtime -!dec$ attributes alias:'OMP_GET_WTICK'::omp_get_wtick - -!dec$ attributes alias:'omp_init_lock'::omp_init_lock -!dec$ attributes alias:'omp_destroy_lock'::omp_destroy_lock -!dec$ attributes alias:'omp_set_lock'::omp_set_lock -!dec$ attributes alias:'omp_unset_lock'::omp_unset_lock -!dec$ attributes alias:'omp_test_lock'::omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock'::omp_init_nest_lock -!dec$ attributes alias:'omp_destroy_nest_lock'::omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock'::omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock'::omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock'::omp_test_nest_lock - -!dec$ attributes alias:'KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'KMP_SET_DEFAULTS'::kmp_set_defaults -!dec$ attributes alias:'KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'KMP_FREE'::kmp_free - -!dec$ attributes alias:'KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ else - -!*** -!*** On Windows* OS IA-32 architecture, the Fortran entry points have an underscore prepended. -!*** - -!dec$ attributes alias:'_OMP_SET_NUM_THREADS'::omp_set_num_threads -!dec$ attributes alias:'_OMP_SET_DYNAMIC'::omp_set_dynamic -!dec$ attributes alias:'_OMP_SET_NESTED'::omp_set_nested -!dec$ attributes alias:'_OMP_GET_NUM_THREADS'::omp_get_num_threads -!dec$ attributes alias:'_OMP_GET_MAX_THREADS'::omp_get_max_threads -!dec$ attributes alias:'_OMP_GET_THREAD_NUM'::omp_get_thread_num -!dec$ attributes alias:'_OMP_GET_NUM_PROCS'::omp_get_num_procs -!dec$ attributes alias:'_OMP_IN_PARALLEL'::omp_in_parallel -!dec$ attributes alias:'_OMP_IN_FINAL'::omp_in_final -!dec$ attributes alias:'_OMP_GET_DYNAMIC'::omp_get_dynamic -!dec$ attributes alias:'_OMP_GET_NESTED'::omp_get_nested -!dec$ attributes alias:'_OMP_GET_THREAD_LIMIT'::omp_get_thread_limit -!dec$ attributes alias:'_OMP_SET_MAX_ACTIVE_LEVELS'::omp_set_max_active_levels -!dec$ attributes alias:'_OMP_GET_MAX_ACTIVE_LEVELS'::omp_get_max_active_levels -!dec$ attributes alias:'_OMP_GET_LEVEL'::omp_get_level -!dec$ attributes alias:'_OMP_GET_ACTIVE_LEVEL'::omp_get_active_level -!dec$ attributes alias:'_OMP_GET_ANCESTOR_THREAD_NUM'::omp_get_ancestor_thread_num -!dec$ attributes alias:'_OMP_GET_TEAM_SIZE'::omp_get_team_size -!dec$ attributes alias:'_OMP_SET_SCHEDULE'::omp_set_schedule -!dec$ attributes alias:'_OMP_GET_SCHEDULE'::omp_get_schedule -!dec$ attributes alias:'_OMP_GET_WTIME'::omp_get_wtime -!dec$ attributes alias:'_OMP_GET_WTICK'::omp_get_wtick - -!dec$ attributes alias:'_omp_init_lock'::omp_init_lock -!dec$ attributes alias:'_omp_destroy_lock'::omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock'::omp_set_lock -!dec$ attributes alias:'_omp_unset_lock'::omp_unset_lock -!dec$ attributes alias:'_omp_test_lock'::omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock'::omp_init_nest_lock -!dec$ attributes alias:'_omp_destroy_nest_lock'::omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock'::omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock'::omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock'::omp_test_nest_lock - -!dec$ attributes alias:'_KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'_KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'_KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'_KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'_KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'_KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'_KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'_KMP_SET_DEFAULTS'::kmp_set_defaults -!dec$ attributes alias:'_KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'_KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'_KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'_KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'_KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'_KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'_KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'_KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'_KMP_FREE'::kmp_free - -!dec$ attributes alias:'_KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'_KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ endif -!dec$ endif - -!dec$ if defined(__linux) - -!*** -!*** The Linux* OS entry points are in lowercase, with an underscore appended. -!*** - -!dec$ attributes alias:'omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'omp_in_final_'::omp_in_final -!dec$ attributes alias:'omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'omp_get_level_'::omp_get_level -!dec$ attributes alias:'omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'omp_get_wtick_'::omp_get_wtick - -!dec$ attributes alias:'omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'kmp_set_defaults_'::kmp_set_defaults -!dec$ attributes alias:'kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'kmp_free_'::kmp_free - -!dec$ attributes alias:'kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'kmp_set_warnings_off_'::kmp_set_warnings_off - -!dec$ endif - -!dec$ if defined(__APPLE__) - -!*** -!*** The Mac entry points are in lowercase, with an both an underscore -!*** appended and an underscore prepended. -!*** - -!dec$ attributes alias:'_omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'_omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'_omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'_omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'_omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'_omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'_omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'_omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'_omp_in_final_'::omp_in_final -!dec$ attributes alias:'_omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'_omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'_omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'_omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'_omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'_omp_get_level_'::omp_get_level -!dec$ attributes alias:'_omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'_omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'_omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'_omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'_omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'_omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'_omp_get_wtick_'::omp_get_wtick - -!dec$ attributes alias:'_omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'_omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'_omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'_omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'_omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'_kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'_kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'_kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'_kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'_kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'_kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'_kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'_kmp_set_defaults_'::kmp_set_defaults -!dec$ attributes alias:'_kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'_kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'_kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'_kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'_kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'_kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'_kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'_kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'_kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'_kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'_kmp_free_'::kmp_free - -!dec$ attributes alias:'_kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'_kmp_set_warnings_off_'::kmp_set_warnings_off - -!dec$ endif - - diff --git a/contrib/libs/cxxsupp/openmp/include/30/ompt.h.var b/contrib/libs/cxxsupp/openmp/include/30/ompt.h.var deleted file mode 100644 index 83b4f1e3df..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/30/ompt.h.var +++ /dev/null @@ -1,487 +0,0 @@ -/* - * include/30/ompt.h.var - */ - -#ifndef __OMPT__ -#define __OMPT__ - -/***************************************************************************** - * system include files - *****************************************************************************/ - -#include <stdint.h> - - - -/***************************************************************************** - * iteration macros - *****************************************************************************/ - -#define FOREACH_OMPT_INQUIRY_FN(macro) \ - macro (ompt_enumerate_state) \ - \ - macro (ompt_set_callback) \ - macro (ompt_get_callback) \ - \ - macro (ompt_get_idle_frame) \ - macro (ompt_get_task_frame) \ - \ - macro (ompt_get_state) \ - \ - macro (ompt_get_parallel_id) \ - macro (ompt_get_parallel_team_size) \ - macro (ompt_get_task_id) \ - macro (ompt_get_thread_id) - -#define FOREACH_OMPT_PLACEHOLDER_FN(macro) \ - macro (ompt_idle) \ - macro (ompt_overhead) \ - macro (ompt_barrier_wait) \ - macro (ompt_task_wait) \ - macro (ompt_mutex_wait) - -#define FOREACH_OMPT_STATE(macro) \ - \ - /* first */ \ - macro (ompt_state_first, 0x71) /* initial enumeration state */ \ - \ - /* work states (0..15) */ \ - macro (ompt_state_work_serial, 0x00) /* working outside parallel */ \ - macro (ompt_state_work_parallel, 0x01) /* working within parallel */ \ - macro (ompt_state_work_reduction, 0x02) /* performing a reduction */ \ - \ - /* idle (16..31) */ \ - macro (ompt_state_idle, 0x10) /* waiting for work */ \ - \ - /* overhead states (32..63) */ \ - macro (ompt_state_overhead, 0x20) /* overhead excluding wait states */ \ - \ - /* barrier wait states (64..79) */ \ - macro (ompt_state_wait_barrier, 0x40) /* waiting at a barrier */ \ - macro (ompt_state_wait_barrier_implicit, 0x41) /* implicit barrier */ \ - macro (ompt_state_wait_barrier_explicit, 0x42) /* explicit barrier */ \ - \ - /* task wait states (80..95) */ \ - macro (ompt_state_wait_taskwait, 0x50) /* waiting at a taskwait */ \ - macro (ompt_state_wait_taskgroup, 0x51) /* waiting at a taskgroup */ \ - \ - /* mutex wait states (96..111) */ \ - macro (ompt_state_wait_lock, 0x60) /* waiting for lock */ \ - macro (ompt_state_wait_nest_lock, 0x61) /* waiting for nest lock */ \ - macro (ompt_state_wait_critical, 0x62) /* waiting for critical */ \ - macro (ompt_state_wait_atomic, 0x63) /* waiting for atomic */ \ - macro (ompt_state_wait_ordered, 0x64) /* waiting for ordered */ \ - macro (ompt_state_wait_single, 0x6F) /* waiting for single region (non-standard!) */ \ - \ - /* misc (112..127) */ \ - macro (ompt_state_undefined, 0x70) /* undefined thread state */ - - -#define FOREACH_OMPT_EVENT(macro) \ - \ - /*--- Mandatory Events ---*/ \ - macro (ompt_event_parallel_begin, ompt_new_parallel_callback_t, 1) /* parallel begin */ \ - macro (ompt_event_parallel_end, ompt_end_parallel_callback_t, 2) /* parallel end */ \ - \ - macro (ompt_event_task_begin, ompt_new_task_callback_t, 3) /* task begin */ \ - macro (ompt_event_task_end, ompt_task_callback_t, 4) /* task destroy */ \ - \ - macro (ompt_event_thread_begin, ompt_thread_type_callback_t, 5) /* thread begin */ \ - macro (ompt_event_thread_end, ompt_thread_type_callback_t, 6) /* thread end */ \ - \ - macro (ompt_event_control, ompt_control_callback_t, 7) /* support control calls */ \ - \ - macro (ompt_event_runtime_shutdown, ompt_callback_t, 8) /* runtime shutdown */ \ - \ - /*--- Optional Events (blame shifting, ompt_event_unimplemented) ---*/ \ - macro (ompt_event_idle_begin, ompt_thread_callback_t, 9) /* begin idle state */ \ - macro (ompt_event_idle_end, ompt_thread_callback_t, 10) /* end idle state */ \ - \ - macro (ompt_event_wait_barrier_begin, ompt_parallel_callback_t, 11) /* begin wait at barrier */ \ - macro (ompt_event_wait_barrier_end, ompt_parallel_callback_t, 12) /* end wait at barrier */ \ - \ - macro (ompt_event_wait_taskwait_begin, ompt_parallel_callback_t, 13) /* begin wait at taskwait */ \ - macro (ompt_event_wait_taskwait_end, ompt_parallel_callback_t, 14) /* end wait at taskwait */ \ - \ - macro (ompt_event_wait_taskgroup_begin, ompt_parallel_callback_t, 15) /* begin wait at taskgroup */\ - macro (ompt_event_wait_taskgroup_end, ompt_parallel_callback_t, 16) /* end wait at taskgroup */ \ - \ - macro (ompt_event_release_lock, ompt_wait_callback_t, 17) /* lock release */ \ - macro (ompt_event_release_nest_lock_last, ompt_wait_callback_t, 18) /* last nest lock release */ \ - macro (ompt_event_release_critical, ompt_wait_callback_t, 19) /* critical release */ \ - \ - macro (ompt_event_release_atomic, ompt_wait_callback_t, 20) /* atomic release */ \ - \ - macro (ompt_event_release_ordered, ompt_wait_callback_t, 21) /* ordered release */ \ - \ - /*--- Optional Events (synchronous events, ompt_event_unimplemented) --- */ \ - macro (ompt_event_implicit_task_begin, ompt_parallel_callback_t, 22) /* implicit task begin */ \ - macro (ompt_event_implicit_task_end, ompt_parallel_callback_t, 23) /* implicit task end */ \ - \ - macro (ompt_event_initial_task_begin, ompt_parallel_callback_t, 24) /* initial task begin */ \ - macro (ompt_event_initial_task_end, ompt_parallel_callback_t, 25) /* initial task end */ \ - \ - macro (ompt_event_task_switch, ompt_task_pair_callback_t, 26) /* task switch */ \ - \ - macro (ompt_event_loop_begin, ompt_new_workshare_callback_t, 27) /* task at loop begin */ \ - macro (ompt_event_loop_end, ompt_parallel_callback_t, 28) /* task at loop end */ \ - \ - macro (ompt_event_sections_begin, ompt_new_workshare_callback_t, 29) /* task at sections begin */\ - macro (ompt_event_sections_end, ompt_parallel_callback_t, 30) /* task at sections end */ \ - \ - macro (ompt_event_single_in_block_begin, ompt_new_workshare_callback_t, 31) /* task at single begin*/ \ - macro (ompt_event_single_in_block_end, ompt_parallel_callback_t, 32) /* task at single end */ \ - \ - macro (ompt_event_single_others_begin, ompt_parallel_callback_t, 33) /* task at single begin */ \ - macro (ompt_event_single_others_end, ompt_parallel_callback_t, 34) /* task at single end */ \ - \ - macro (ompt_event_workshare_begin, ompt_new_workshare_callback_t, 35) /* task at workshare begin */\ - macro (ompt_event_workshare_end, ompt_parallel_callback_t, 36) /* task at workshare end */ \ - \ - macro (ompt_event_master_begin, ompt_parallel_callback_t, 37) /* task at master begin */ \ - macro (ompt_event_master_end, ompt_parallel_callback_t, 38) /* task at master end */ \ - \ - macro (ompt_event_barrier_begin, ompt_parallel_callback_t, 39) /* task at barrier begin */ \ - macro (ompt_event_barrier_end, ompt_parallel_callback_t, 40) /* task at barrier end */ \ - \ - macro (ompt_event_taskwait_begin, ompt_parallel_callback_t, 41) /* task at taskwait begin */ \ - macro (ompt_event_taskwait_end, ompt_parallel_callback_t, 42) /* task at task wait end */ \ - \ - macro (ompt_event_taskgroup_begin, ompt_parallel_callback_t, 43) /* task at taskgroup begin */\ - macro (ompt_event_taskgroup_end, ompt_parallel_callback_t, 44) /* task at taskgroup end */ \ - \ - macro (ompt_event_release_nest_lock_prev, ompt_wait_callback_t, 45) /* prev nest lock release */ \ - \ - macro (ompt_event_wait_lock, ompt_wait_callback_t, 46) /* lock wait */ \ - macro (ompt_event_wait_nest_lock, ompt_wait_callback_t, 47) /* nest lock wait */ \ - macro (ompt_event_wait_critical, ompt_wait_callback_t, 48) /* critical wait */ \ - macro (ompt_event_wait_atomic, ompt_wait_callback_t, 49) /* atomic wait */ \ - macro (ompt_event_wait_ordered, ompt_wait_callback_t, 50) /* ordered wait */ \ - \ - macro (ompt_event_acquired_lock, ompt_wait_callback_t, 51) /* lock acquired */ \ - macro (ompt_event_acquired_nest_lock_first, ompt_wait_callback_t, 52) /* 1st nest lock acquired */ \ - macro (ompt_event_acquired_nest_lock_next, ompt_wait_callback_t, 53) /* next nest lock acquired*/ \ - macro (ompt_event_acquired_critical, ompt_wait_callback_t, 54) /* critical acquired */ \ - macro (ompt_event_acquired_atomic, ompt_wait_callback_t, 55) /* atomic acquired */ \ - macro (ompt_event_acquired_ordered, ompt_wait_callback_t, 56) /* ordered acquired */ \ - \ - macro (ompt_event_init_lock, ompt_wait_callback_t, 57) /* lock init */ \ - macro (ompt_event_init_nest_lock, ompt_wait_callback_t, 58) /* nest lock init */ \ - \ - macro (ompt_event_destroy_lock, ompt_wait_callback_t, 59) /* lock destruction */ \ - macro (ompt_event_destroy_nest_lock, ompt_wait_callback_t, 60) /* nest lock destruction */ \ - \ - macro (ompt_event_flush, ompt_callback_t, 61) /* after executing flush */ - - - -/***************************************************************************** - * data types - *****************************************************************************/ - -/*--------------------- - * identifiers - *---------------------*/ - -typedef uint64_t ompt_thread_id_t; -#define ompt_thread_id_none ((ompt_thread_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_task_id_t; -#define ompt_task_id_none ((ompt_task_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_parallel_id_t; -#define ompt_parallel_id_none ((ompt_parallel_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_wait_id_t; -#define ompt_wait_id_none ((ompt_wait_id_t) 0) /* non-standard */ - - -/*--------------------- - * ompt_frame_t - *---------------------*/ - -typedef struct ompt_frame_s { - void *exit_runtime_frame; /* next frame is user code */ - void *reenter_runtime_frame; /* previous frame is user code */ -} ompt_frame_t; - - -/***************************************************************************** - * enumerations for thread states and runtime events - *****************************************************************************/ - -/*--------------------- - * runtime states - *---------------------*/ - -typedef enum { -#define ompt_state_macro(state, code) state = code, - FOREACH_OMPT_STATE(ompt_state_macro) -#undef ompt_state_macro -} ompt_state_t; - - -/*--------------------- - * runtime events - *---------------------*/ - -typedef enum { -#define ompt_event_macro(event, callback, eventid) event = eventid, - FOREACH_OMPT_EVENT(ompt_event_macro) -#undef ompt_event_macro -} ompt_event_t; - - -/*--------------------- - * set callback results - *---------------------*/ -typedef enum { - ompt_set_result_registration_error = 0, - ompt_set_result_event_may_occur_no_callback = 1, - ompt_set_result_event_never_occurs = 2, - ompt_set_result_event_may_occur_callback_some = 3, - ompt_set_result_event_may_occur_callback_always = 4, -} ompt_set_result_t; - - - -/***************************************************************************** - * callback signatures - *****************************************************************************/ - -/* initialization */ -typedef void (*ompt_interface_fn_t)(void); - -typedef ompt_interface_fn_t (*ompt_function_lookup_t)( - const char * /* entry point to look up */ -); - -/* threads */ -typedef void (*ompt_thread_callback_t) ( - ompt_thread_id_t thread_id /* ID of thread */ -); - -typedef enum { - ompt_thread_initial = 1, // start the enumeration at 1 - ompt_thread_worker = 2, - ompt_thread_other = 3 -} ompt_thread_type_t; - -typedef enum { - ompt_invoker_program = 0, /* program invokes master task */ - ompt_invoker_runtime = 1 /* runtime invokes master task */ -} ompt_invoker_t; - -typedef void (*ompt_thread_type_callback_t) ( - ompt_thread_type_t thread_type, /* type of thread */ - ompt_thread_id_t thread_id /* ID of thread */ -); - -typedef void (*ompt_wait_callback_t) ( - ompt_wait_id_t wait_id /* wait id */ -); - -/* parallel and workshares */ -typedef void (*ompt_parallel_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t task_id /* id of task */ -); - -typedef void (*ompt_new_workshare_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t parent_task_id, /* id of parent task */ - void *workshare_function /* pointer to outlined function */ -); - -typedef void (*ompt_new_parallel_callback_t) ( - ompt_task_id_t parent_task_id, /* id of parent task */ - ompt_frame_t *parent_task_frame, /* frame data of parent task */ - ompt_parallel_id_t parallel_id, /* id of parallel region */ - uint32_t requested_team_size, /* number of threads in team */ - void *parallel_function, /* pointer to outlined function */ - ompt_invoker_t invoker /* who invokes master task? */ -); - -typedef void (*ompt_end_parallel_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t task_id, /* id of task */ - ompt_invoker_t invoker /* who invokes master task? */ -); - -/* tasks */ -typedef void (*ompt_task_callback_t) ( - ompt_task_id_t task_id /* id of task */ -); - -typedef void (*ompt_task_pair_callback_t) ( - ompt_task_id_t first_task_id, - ompt_task_id_t second_task_id -); - -typedef void (*ompt_new_task_callback_t) ( - ompt_task_id_t parent_task_id, /* id of parent task */ - ompt_frame_t *parent_task_frame, /* frame data for parent task */ - ompt_task_id_t new_task_id, /* id of created task */ - void *task_function /* pointer to outlined function */ -); - -/* program */ -typedef void (*ompt_control_callback_t) ( - uint64_t command, /* command of control call */ - uint64_t modifier /* modifier of control call */ -); - -typedef void (*ompt_callback_t)(void); - - -/**************************************************************************** - * ompt API - ***************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#define OMPT_API_FNTYPE(fn) fn##_t - -#define OMPT_API_FUNCTION(return_type, fn, args) \ - typedef return_type (*OMPT_API_FNTYPE(fn)) args - - - -/**************************************************************************** - * INQUIRY FUNCTIONS - ***************************************************************************/ - -/* state */ -OMPT_API_FUNCTION(ompt_state_t, ompt_get_state, ( - ompt_wait_id_t *ompt_wait_id -)); - -/* thread */ -OMPT_API_FUNCTION(ompt_thread_id_t, ompt_get_thread_id, (void)); - -OMPT_API_FUNCTION(void *, ompt_get_idle_frame, (void)); - -/* parallel region */ -OMPT_API_FUNCTION(ompt_parallel_id_t, ompt_get_parallel_id, ( - int ancestor_level -)); - -OMPT_API_FUNCTION(int, ompt_get_parallel_team_size, ( - int ancestor_level -)); - -/* task */ -OMPT_API_FUNCTION(ompt_task_id_t, ompt_get_task_id, ( - int depth -)); - -OMPT_API_FUNCTION(ompt_frame_t *, ompt_get_task_frame, ( - int depth -)); - - - -/**************************************************************************** - * PLACEHOLDERS FOR PERFORMANCE REPORTING - ***************************************************************************/ - -/* idle */ -OMPT_API_FUNCTION(void, ompt_idle, ( - void -)); - -/* overhead */ -OMPT_API_FUNCTION(void, ompt_overhead, ( - void -)); - -/* barrier wait */ -OMPT_API_FUNCTION(void, ompt_barrier_wait, ( - void -)); - -/* task wait */ -OMPT_API_FUNCTION(void, ompt_task_wait, ( - void -)); - -/* mutex wait */ -OMPT_API_FUNCTION(void, ompt_mutex_wait, ( - void -)); - - - -/**************************************************************************** - * INITIALIZATION FUNCTIONS - ***************************************************************************/ - -OMPT_API_FUNCTION(void, ompt_initialize, ( - ompt_function_lookup_t ompt_fn_lookup, - const char *runtime_version, - unsigned int ompt_version -)); - - -/* initialization interface to be defined by tool */ -ompt_initialize_t ompt_tool(void); - -typedef enum opt_init_mode_e { - ompt_init_mode_never = 0, - ompt_init_mode_false = 1, - ompt_init_mode_true = 2, - ompt_init_mode_always = 3 -} ompt_init_mode_t; - -OMPT_API_FUNCTION(int, ompt_set_callback, ( - ompt_event_t event, - ompt_callback_t callback -)); - -typedef enum ompt_set_callback_rc_e { /* non-standard */ - ompt_set_callback_error = 0, - ompt_has_event_no_callback = 1, - ompt_no_event_no_callback = 2, - ompt_has_event_may_callback = 3, - ompt_has_event_must_callback = 4, -} ompt_set_callback_rc_t; - - -OMPT_API_FUNCTION(int, ompt_get_callback, ( - ompt_event_t event, - ompt_callback_t *callback -)); - - - -/**************************************************************************** - * MISCELLANEOUS FUNCTIONS - ***************************************************************************/ - -/* control */ -#if defined(_OPENMP) && (_OPENMP >= 201307) -#pragma omp declare target -#endif -void ompt_control( - uint64_t command, - uint64_t modifier -); -#if defined(_OPENMP) && (_OPENMP >= 201307) -#pragma omp end declare target -#endif - -/* state enumeration */ -OMPT_API_FUNCTION(int, ompt_enumerate_state, ( - int current_state, - int *next_state, - const char **next_state_name -)); - -#ifdef __cplusplus -}; -#endif - -#endif - diff --git a/contrib/libs/cxxsupp/openmp/include/40/omp.h.var b/contrib/libs/cxxsupp/openmp/include/40/omp.h.var deleted file mode 100644 index 4c518e77bc..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/40/omp.h.var +++ /dev/null @@ -1,160 +0,0 @@ -/* - * include/40/omp.h.var - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#ifndef __OMP_H -# define __OMP_H - -# define KMP_VERSION_MAJOR @LIBOMP_VERSION_MAJOR@ -# define KMP_VERSION_MINOR @LIBOMP_VERSION_MINOR@ -# define KMP_VERSION_BUILD @LIBOMP_VERSION_BUILD@ -# define KMP_BUILD_DATE "@LIBOMP_BUILD_DATE@" - -# ifdef __cplusplus - extern "C" { -# endif - -# if defined(_WIN32) -# define __KAI_KMPC_CONVENTION __cdecl -# else -# define __KAI_KMPC_CONVENTION -# endif - - /* schedule kind constants */ - typedef enum omp_sched_t { - omp_sched_static = 1, - omp_sched_dynamic = 2, - omp_sched_guided = 3, - omp_sched_auto = 4 - } omp_sched_t; - - /* set API functions */ - extern void __KAI_KMPC_CONVENTION omp_set_num_threads (int); - extern void __KAI_KMPC_CONVENTION omp_set_dynamic (int); - extern void __KAI_KMPC_CONVENTION omp_set_nested (int); - extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels (int); - extern void __KAI_KMPC_CONVENTION omp_set_schedule (omp_sched_t, int); - - /* query API functions */ - extern int __KAI_KMPC_CONVENTION omp_get_num_threads (void); - extern int __KAI_KMPC_CONVENTION omp_get_dynamic (void); - extern int __KAI_KMPC_CONVENTION omp_get_nested (void); - extern int __KAI_KMPC_CONVENTION omp_get_max_threads (void); - extern int __KAI_KMPC_CONVENTION omp_get_thread_num (void); - extern int __KAI_KMPC_CONVENTION omp_get_num_procs (void); - extern int __KAI_KMPC_CONVENTION omp_in_parallel (void); - extern int __KAI_KMPC_CONVENTION omp_in_final (void); - extern int __KAI_KMPC_CONVENTION omp_get_active_level (void); - extern int __KAI_KMPC_CONVENTION omp_get_level (void); - extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num (int); - extern int __KAI_KMPC_CONVENTION omp_get_team_size (int); - extern int __KAI_KMPC_CONVENTION omp_get_thread_limit (void); - extern int __KAI_KMPC_CONVENTION omp_get_max_active_levels (void); - extern void __KAI_KMPC_CONVENTION omp_get_schedule (omp_sched_t *, int *); - - /* lock API functions */ - typedef struct omp_lock_t { - void * _lk; - } omp_lock_t; - - extern void __KAI_KMPC_CONVENTION omp_init_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_set_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_unset_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_destroy_lock (omp_lock_t *); - extern int __KAI_KMPC_CONVENTION omp_test_lock (omp_lock_t *); - - /* nested lock API functions */ - typedef struct omp_nest_lock_t { - void * _lk; - } omp_nest_lock_t; - - extern void __KAI_KMPC_CONVENTION omp_init_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_set_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_unset_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_destroy_nest_lock (omp_nest_lock_t *); - extern int __KAI_KMPC_CONVENTION omp_test_nest_lock (omp_nest_lock_t *); - - /* time API functions */ - extern double __KAI_KMPC_CONVENTION omp_get_wtime (void); - extern double __KAI_KMPC_CONVENTION omp_get_wtick (void); - - /* OpenMP 4.0 */ - extern int __KAI_KMPC_CONVENTION omp_get_default_device (void); - extern void __KAI_KMPC_CONVENTION omp_set_default_device (int); - extern int __KAI_KMPC_CONVENTION omp_is_initial_device (void); - extern int __KAI_KMPC_CONVENTION omp_get_num_devices (void); - extern int __KAI_KMPC_CONVENTION omp_get_num_teams (void); - extern int __KAI_KMPC_CONVENTION omp_get_team_num (void); - extern int __KAI_KMPC_CONVENTION omp_get_cancellation (void); - -# include <stdlib.h> - /* kmp API functions */ - extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void); - extern void __KAI_KMPC_CONVENTION kmp_set_stacksize (int); - extern size_t __KAI_KMPC_CONVENTION kmp_get_stacksize_s (void); - extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t); - extern int __KAI_KMPC_CONVENTION kmp_get_blocktime (void); - extern int __KAI_KMPC_CONVENTION kmp_get_library (void); - extern void __KAI_KMPC_CONVENTION kmp_set_blocktime (int); - extern void __KAI_KMPC_CONVENTION kmp_set_library (int); - extern void __KAI_KMPC_CONVENTION kmp_set_library_serial (void); - extern void __KAI_KMPC_CONVENTION kmp_set_library_turnaround (void); - extern void __KAI_KMPC_CONVENTION kmp_set_library_throughput (void); - extern void __KAI_KMPC_CONVENTION kmp_set_defaults (char const *); - - /* Intel affinity API */ - typedef void * kmp_affinity_mask_t; - - extern int __KAI_KMPC_CONVENTION kmp_set_affinity (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity_max_proc (void); - extern void __KAI_KMPC_CONVENTION kmp_create_affinity_mask (kmp_affinity_mask_t *); - extern void __KAI_KMPC_CONVENTION kmp_destroy_affinity_mask (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc (int, kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc (int, kmp_affinity_mask_t *); - - /* OpenMP 4.0 affinity API */ - typedef enum omp_proc_bind_t { - omp_proc_bind_false = 0, - omp_proc_bind_true = 1, - omp_proc_bind_master = 2, - omp_proc_bind_close = 3, - omp_proc_bind_spread = 4 - } omp_proc_bind_t; - - extern omp_proc_bind_t __KAI_KMPC_CONVENTION omp_get_proc_bind (void); - - extern void * __KAI_KMPC_CONVENTION kmp_malloc (size_t); - extern void * __KAI_KMPC_CONVENTION kmp_calloc (size_t, size_t); - extern void * __KAI_KMPC_CONVENTION kmp_realloc (void *, size_t); - extern void __KAI_KMPC_CONVENTION kmp_free (void *); - - extern void __KAI_KMPC_CONVENTION kmp_set_warnings_on(void); - extern void __KAI_KMPC_CONVENTION kmp_set_warnings_off(void); - -# undef __KAI_KMPC_CONVENTION - - /* Warning: - The following typedefs are not standard, deprecated and will be removed in a future release. - */ - typedef int omp_int_t; - typedef double omp_wtime_t; - -# ifdef __cplusplus - } -# endif - -#endif /* __OMP_H */ - diff --git a/contrib/libs/cxxsupp/openmp/include/40/omp_lib.f.var b/contrib/libs/cxxsupp/openmp/include/40/omp_lib.f.var deleted file mode 100644 index 3a59162b4b..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/40/omp_lib.f.var +++ /dev/null @@ -1,758 +0,0 @@ -! include/40/omp_lib.f.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - -!*** -!*** Some of the directives for the following routine extend past column 72, -!*** so process this file in 132-column mode. -!*** - -!dec$ fixedformlinesize:132 - - module omp_lib_kinds - - integer, parameter :: omp_integer_kind = 4 - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = 4 - integer, parameter :: omp_lock_kind = int_ptr_kind() - integer, parameter :: omp_nest_lock_kind = int_ptr_kind() - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: omp_proc_bind_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = int_ptr_kind() - integer, parameter :: kmp_size_t_kind = int_ptr_kind() - integer, parameter :: kmp_affinity_mask_kind = int_ptr_kind() - integer, parameter :: kmp_cancel_kind = omp_integer_kind - - end module omp_lib_kinds - - module omp_lib - - use omp_lib_kinds - - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*), parameter :: kmp_build_date = '@LIBOMP_BUILD_DATE@' - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4 - - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_parallel = 1 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_loop = 2 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_sections = 3 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_taskgroup = 4 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) - use omp_lib_kinds - integer (kind=omp_integer_kind) nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) - use omp_lib_kinds - logical (kind=omp_logical_kind) enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) - use omp_lib_kinds - logical (kind=omp_logical_kind) enable - end subroutine omp_set_nested - - function omp_get_num_threads() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_get_dynamic() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) - use omp_lib_kinds - integer (kind=omp_integer_kind) max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) - use omp_lib_kinds - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) - use omp_lib_kinds - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_team_size - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_proc_bind() - use omp_lib_kinds - integer (kind=omp_proc_bind_kind) omp_get_proc_bind - end function omp_get_proc_bind - - function omp_get_wtime() - double precision omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick () - double precision omp_get_wtick - end function omp_get_wtick - - function omp_get_default_device() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_default_device - end function omp_get_default_device - - subroutine omp_set_default_device(dflt_device) - use omp_lib_kinds - integer (kind=omp_integer_kind) dflt_device - end subroutine omp_set_default_device - - function omp_get_num_devices() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_devices - end function omp_get_num_devices - - function omp_get_num_teams() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_teams - end function omp_get_num_teams - - function omp_get_team_num() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_team_num - end function omp_get_team_num - - function omp_get_cancellation() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_cancellation - end function omp_get_cancellation - - function omp_is_initial_device() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_is_initial_device - end function omp_is_initial_device - - subroutine omp_init_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_lock -!DIR$ ENDIF - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) - use omp_lib_kinds - integer (kind=omp_integer_kind) size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) - use omp_lib_kinds - integer (kind=kmp_size_t_kind) size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) - use omp_lib_kinds - integer (kind=omp_integer_kind) msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) - use omp_lib_kinds - integer (kind=omp_integer_kind) libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) - character*(*) string - end subroutine kmp_set_defaults - - function kmp_get_stacksize() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() - use omp_lib_kinds - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind) size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind) nelem - integer (kind=kmp_size_t_kind) elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind) ptr - integer (kind=kmp_size_t_kind) size - end function kmp_realloc - - subroutine kmp_free(ptr) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() - end subroutine kmp_set_warnings_off - - function kmp_get_cancellation_status(cancelkind) - use omp_lib_kinds - integer (kind=kmp_cancel_kind) cancelkind - logical (kind=omp_logical_kind) kmp_get_cancellation_status - end function kmp_get_cancellation_status - - end interface - -!dec$ if defined(_WIN32) -!dec$ if defined(_WIN64) .or. defined(_M_AMD64) - -!*** -!*** The Fortran entry points must be in uppercase, even if the /Qlowercase -!*** option is specified. The alias attribute ensures that the specified -!*** string is used as the entry point. -!*** -!*** On the Windows* OS IA-32 architecture, the Fortran entry points have an -!*** underscore prepended. On the Windows* OS Intel(R) 64 -!*** architecture, no underscore is prepended. -!*** - -!dec$ attributes alias:'OMP_SET_NUM_THREADS' :: omp_set_num_threads -!dec$ attributes alias:'OMP_SET_DYNAMIC' :: omp_set_dynamic -!dec$ attributes alias:'OMP_SET_NESTED' :: omp_set_nested -!dec$ attributes alias:'OMP_GET_NUM_THREADS' :: omp_get_num_threads -!dec$ attributes alias:'OMP_GET_MAX_THREADS' :: omp_get_max_threads -!dec$ attributes alias:'OMP_GET_THREAD_NUM' :: omp_get_thread_num -!dec$ attributes alias:'OMP_GET_NUM_PROCS' :: omp_get_num_procs -!dec$ attributes alias:'OMP_IN_PARALLEL' :: omp_in_parallel -!dec$ attributes alias:'OMP_GET_DYNAMIC' :: omp_get_dynamic -!dec$ attributes alias:'OMP_GET_NESTED' :: omp_get_nested -!dec$ attributes alias:'OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit -!dec$ attributes alias:'OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels -!dec$ attributes alias:'OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels -!dec$ attributes alias:'OMP_GET_LEVEL' :: omp_get_level -!dec$ attributes alias:'OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level -!dec$ attributes alias:'OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num -!dec$ attributes alias:'OMP_GET_TEAM_SIZE' :: omp_get_team_size -!dec$ attributes alias:'OMP_SET_SCHEDULE' :: omp_set_schedule -!dec$ attributes alias:'OMP_GET_SCHEDULE' :: omp_get_schedule -!dec$ attributes alias:'OMP_GET_PROC_BIND' :: omp_get_proc_bind -!dec$ attributes alias:'OMP_GET_WTIME' :: omp_get_wtime -!dec$ attributes alias:'OMP_GET_WTICK' :: omp_get_wtick -!dec$ attributes alias:'OMP_GET_DEFAULT_DEVICE' :: omp_get_default_device -!dec$ attributes alias:'OMP_SET_DEFAULT_DEVICE' :: omp_set_default_device -!dec$ attributes alias:'OMP_GET_NUM_DEVICES' :: omp_get_num_devices -!dec$ attributes alias:'OMP_GET_NUM_TEAMS' :: omp_get_num_teams -!dec$ attributes alias:'OMP_GET_TEAM_NUM' :: omp_get_team_num -!dec$ attributes alias:'OMP_GET_CANCELLATION' :: omp_get_cancellation -!dec$ attributes alias:'OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device - -!dec$ attributes alias:'omp_init_lock' :: omp_init_lock -!dec$ attributes alias:'omp_destroy_lock' :: omp_destroy_lock -!dec$ attributes alias:'omp_set_lock' :: omp_set_lock -!dec$ attributes alias:'omp_unset_lock' :: omp_unset_lock -!dec$ attributes alias:'omp_test_lock' :: omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock' :: omp_init_nest_lock -!dec$ attributes alias:'omp_destroy_nest_lock' :: omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock' :: omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock' :: omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock' :: omp_test_nest_lock - -!dec$ attributes alias:'KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'KMP_FREE'::kmp_free - -!dec$ attributes alias:'KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ attributes alias:'KMP_GET_CANCELLATION_STATUS' :: kmp_get_cancellation_status - -!dec$ else - -!*** -!*** On Windows* OS IA-32 architecture, the Fortran entry points have an underscore prepended. -!*** - -!dec$ attributes alias:'_OMP_SET_NUM_THREADS' :: omp_set_num_threads -!dec$ attributes alias:'_OMP_SET_DYNAMIC' :: omp_set_dynamic -!dec$ attributes alias:'_OMP_SET_NESTED' :: omp_set_nested -!dec$ attributes alias:'_OMP_GET_NUM_THREADS' :: omp_get_num_threads -!dec$ attributes alias:'_OMP_GET_MAX_THREADS' :: omp_get_max_threads -!dec$ attributes alias:'_OMP_GET_THREAD_NUM' :: omp_get_thread_num -!dec$ attributes alias:'_OMP_GET_NUM_PROCS' :: omp_get_num_procs -!dec$ attributes alias:'_OMP_IN_PARALLEL' :: omp_in_parallel -!dec$ attributes alias:'_OMP_GET_DYNAMIC' :: omp_get_dynamic -!dec$ attributes alias:'_OMP_GET_NESTED' :: omp_get_nested -!dec$ attributes alias:'_OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit -!dec$ attributes alias:'_OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels -!dec$ attributes alias:'_OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels -!dec$ attributes alias:'_OMP_GET_LEVEL' :: omp_get_level -!dec$ attributes alias:'_OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level -!dec$ attributes alias:'_OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num -!dec$ attributes alias:'_OMP_GET_TEAM_SIZE' :: omp_get_team_size -!dec$ attributes alias:'_OMP_SET_SCHEDULE' :: omp_set_schedule -!dec$ attributes alias:'_OMP_GET_SCHEDULE' :: omp_get_schedule -!dec$ attributes alias:'_OMP_GET_PROC_BIND' :: omp_get_proc_bind -!dec$ attributes alias:'_OMP_GET_WTIME' :: omp_get_wtime -!dec$ attributes alias:'_OMP_GET_WTICK' :: omp_get_wtick -!dec$ attributes alias:'_OMP_GET_DEFAULT_DEVICE' :: omp_get_default_device -!dec$ attributes alias:'_OMP_SET_DEFAULT_DEVICE' :: omp_set_default_device -!dec$ attributes alias:'_OMP_GET_NUM_DEVICES' :: omp_get_num_devices -!dec$ attributes alias:'_OMP_GET_NUM_TEAMS' :: omp_get_num_teams -!dec$ attributes alias:'_OMP_GET_TEAM_NUM' :: omp_get_team_num -!dec$ attributes alias:'_OMP_GET_CANCELLATION' :: omp_get_cancellation -!dec$ attributes alias:'_OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device - -!dec$ attributes alias:'_omp_init_lock' :: omp_init_lock -!dec$ attributes alias:'_omp_destroy_lock' :: omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock' :: omp_set_lock -!dec$ attributes alias:'_omp_unset_lock' :: omp_unset_lock -!dec$ attributes alias:'_omp_test_lock' :: omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock' :: omp_init_nest_lock -!dec$ attributes alias:'_omp_destroy_nest_lock' :: omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock' :: omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock' :: omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock' :: omp_test_nest_lock - -!dec$ attributes alias:'_KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'_KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'_KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'_KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'_KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'_KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'_KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'_KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'_KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'_KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'_KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'_KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'_KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'_KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'_KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'_KMP_FREE'::kmp_free - -!dec$ attributes alias:'_KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'_KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ attributes alias:'_KMP_GET_CANCELLATION_STATUS' :: kmp_get_cancellation_status - -!dec$ endif -!dec$ endif - -!dec$ if defined(__linux) - -!*** -!*** The Linux* OS entry points are in lowercase, with an underscore appended. -!*** - -!dec$ attributes alias:'omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'omp_get_level_'::omp_get_level -!dec$ attributes alias:'omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'omp_get_proc_bind_' :: omp_get_proc_bind -!dec$ attributes alias:'omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'omp_get_wtick_'::omp_get_wtick -!dec$ attributes alias:'omp_get_default_device_'::omp_get_default_device -!dec$ attributes alias:'omp_set_default_device_'::omp_set_default_device -!dec$ attributes alias:'omp_get_num_devices_'::omp_get_num_devices -!dec$ attributes alias:'omp_get_num_teams_'::omp_get_num_teams -!dec$ attributes alias:'omp_get_team_num_'::omp_get_team_num -!dec$ attributes alias:'omp_get_cancellation_'::omp_get_cancellation -!dec$ attributes alias:'omp_is_initial_device_'::omp_is_initial_device - -!dec$ attributes alias:'omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'kmp_free_'::kmp_free - -!dec$ attributes alias:'kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'kmp_set_warnings_off_'::kmp_set_warnings_off -!dec$ attributes alias:'kmp_get_cancellation_status_'::kmp_get_cancellation_status - -!dec$ endif - -!dec$ if defined(__APPLE__) - -!*** -!*** The Mac entry points are in lowercase, with an both an underscore -!*** appended and an underscore prepended. -!*** - -!dec$ attributes alias:'_omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'_omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'_omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'_omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'_omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'_omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'_omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'_omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'_omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'_omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'_omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'_omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'_omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'_omp_get_level_'::omp_get_level -!dec$ attributes alias:'_omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'_omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'_omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'_omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'_omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'_omp_get_proc_bind_' :: omp_get_proc_bind -!dec$ attributes alias:'_omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'_omp_get_wtick_'::omp_get_wtick -!dec$ attributes alias:'_omp_get_num_teams_'::omp_get_num_teams -!dec$ attributes alias:'_omp_get_team_num_'::omp_get_team_num -!dec$ attributes alias:'_omp_get_cancellation_'::omp_get_cancellation -!dec$ attributes alias:'_omp_is_initial_device_'::omp_is_initial_device - -!dec$ attributes alias:'_omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'_omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'_omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'_omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'_omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'_kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'_kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'_kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'_kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'_kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'_kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'_kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'_kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'_kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'_kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'_kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'_kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'_kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'_kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'_kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'_kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'_kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'_kmp_free_'::kmp_free - -!dec$ attributes alias:'_kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'_kmp_set_warnings_off_'::kmp_set_warnings_off - -!dec$ attributes alias:'_kmp_get_cancellation_status_'::kmp_get_cancellation_status - -!dec$ endif - - end module omp_lib - diff --git a/contrib/libs/cxxsupp/openmp/include/40/omp_lib.f90.var b/contrib/libs/cxxsupp/openmp/include/40/omp_lib.f90.var deleted file mode 100644 index 5be8026603..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/40/omp_lib.f90.var +++ /dev/null @@ -1,448 +0,0 @@ -! include/40/omp_lib.f90.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - - module omp_lib_kinds - - use, intrinsic :: iso_c_binding - - integer, parameter :: omp_integer_kind = c_int - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = c_float - integer, parameter :: kmp_double_kind = c_double - integer, parameter :: omp_lock_kind = c_intptr_t - integer, parameter :: omp_nest_lock_kind = c_intptr_t - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: omp_proc_bind_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = c_intptr_t - integer, parameter :: kmp_size_t_kind = c_size_t - integer, parameter :: kmp_affinity_mask_kind = c_intptr_t - integer, parameter :: kmp_cancel_kind = omp_integer_kind - - end module omp_lib_kinds - - module omp_lib - - use omp_lib_kinds - - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*) kmp_build_date - parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' ) - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4 - - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_parallel = 1 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_loop = 2 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_sections = 3 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_taskgroup = 4 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_nested - - function omp_get_num_threads() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_in_final() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_final - end function omp_in_final - - function omp_get_dynamic() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - integer (kind=omp_integer_kind), value :: level - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_team_size - integer (kind=omp_integer_kind), value :: level - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) bind(c) - use omp_lib_kinds - integer (kind=omp_sched_kind), value :: kind - integer (kind=omp_integer_kind), value :: modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) bind(c) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_proc_bind() bind(c) - use omp_lib_kinds - integer (kind=omp_proc_bind_kind) omp_get_proc_bind - end function omp_get_proc_bind - - function omp_get_wtime() bind(c) - use omp_lib_kinds - real (kind=kmp_double_kind) omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick() bind(c) - use omp_lib_kinds - real (kind=kmp_double_kind) omp_get_wtick - end function omp_get_wtick - - function omp_get_default_device() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_default_device - end function omp_get_default_device - - subroutine omp_set_default_device(dflt_device) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: dflt_device - end subroutine omp_set_default_device - - function omp_get_num_devices() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_devices - end function omp_get_num_devices - - function omp_get_num_teams() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_teams - end function omp_get_num_teams - - function omp_get_team_num() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_team_num - end function omp_get_team_num - - function omp_get_cancellation() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_cancellation - end function omp_get_cancellation - - function omp_is_initial_device() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_is_initial_device - end function omp_is_initial_device - - subroutine omp_init_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_lock -!DIR$ ENDIF - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) bind(c) - use omp_lib_kinds - integer (kind=kmp_size_t_kind), value :: size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() bind(c) - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() bind(c) - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() bind(c) - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) bind(c) - use, intrinsic :: iso_c_binding - character (kind=c_char) :: string(*) - end subroutine kmp_set_defaults - - function kmp_get_stacksize() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() bind(c) - use omp_lib_kinds - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) bind(c) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) bind(c) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind), value :: size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind), value :: nelem - integer (kind=kmp_size_t_kind), value :: elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind), value :: ptr - integer (kind=kmp_size_t_kind), value :: size - end function kmp_realloc - - subroutine kmp_free(ptr) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind), value :: ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() bind(c) - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() bind(c) - end subroutine kmp_set_warnings_off - - function kmp_get_cancellation_status(cancelkind) bind(c) - use omp_lib_kinds - integer (kind=kmp_cancel_kind), value :: cancelkind - logical (kind=omp_logical_kind) kmp_get_cancellation_status - end function kmp_get_cancellation_status - - end interface - - end module omp_lib diff --git a/contrib/libs/cxxsupp/openmp/include/40/omp_lib.h.var b/contrib/libs/cxxsupp/openmp/include/40/omp_lib.h.var deleted file mode 100644 index cc134fd352..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/40/omp_lib.h.var +++ /dev/null @@ -1,558 +0,0 @@ -! include/40/omp_lib.h.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - -!*** -!*** Some of the directives for the following routine extend past column 72, -!*** so process this file in 132-column mode. -!*** - -!DIR$ fixedformlinesize:132 - - integer, parameter :: omp_integer_kind = 4 - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = 4 - integer, parameter :: omp_lock_kind = int_ptr_kind() - integer, parameter :: omp_nest_lock_kind = int_ptr_kind() - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: omp_proc_bind_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = int_ptr_kind() - integer, parameter :: kmp_size_t_kind = int_ptr_kind() - integer, parameter :: kmp_affinity_mask_kind = int_ptr_kind() - - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*) kmp_build_date - parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' ) - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) bind(c) - import - integer (kind=omp_integer_kind), value :: nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) bind(c) - import - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) bind(c) - import - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_nested - - function omp_get_num_threads() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() bind(c) - import - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() bind(c) - import - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() bind(c) - import - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_in_final() bind(c) - import - logical (kind=omp_logical_kind) omp_in_final - end function omp_in_final - - function omp_get_dynamic() bind(c) - import - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() bind(c) - import - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() bind(c) - import - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) bind(c) - import - integer (kind=omp_integer_kind), value :: max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() bind(c) - import - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() bind(c) - import - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() bind(c) - import - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) bind(c) - import - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - integer (kind=omp_integer_kind), value :: level - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) bind(c) - import - integer (kind=omp_integer_kind) omp_get_team_size - integer (kind=omp_integer_kind), value :: level - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) bind(c) - import - integer (kind=omp_sched_kind), value :: kind - integer (kind=omp_integer_kind), value :: modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) bind(c) - import - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_proc_bind() bind(c) - import - integer (kind=omp_proc_bind_kind) omp_get_proc_bind - end function omp_get_proc_bind - - function omp_get_wtime() bind(c) - double precision omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick() bind(c) - double precision omp_get_wtick - end function omp_get_wtick - - function omp_get_default_device() bind(c) - import - integer (kind=omp_integer_kind) omp_get_default_device - end function omp_get_default_device - - subroutine omp_set_default_device(dflt_device) bind(c) - import - integer (kind=omp_integer_kind), value :: dflt_device - end subroutine omp_set_default_device - - function omp_get_num_devices() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_devices - end function omp_get_num_devices - - function omp_get_num_teams() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_teams - end function omp_get_num_teams - - function omp_get_team_num() bind(c) - import - integer (kind=omp_integer_kind) omp_get_team_num - end function omp_get_team_num - - function omp_is_initial_device() bind(c) - import - logical (kind=omp_logical_kind) omp_is_initial_device - end function omp_is_initial_device - - subroutine omp_init_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_lock -!DIR$ ENDIF - import - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) bind(c) - import - integer (kind=omp_integer_kind), value :: size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) bind(c) - import - integer (kind=kmp_size_t_kind), value :: size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) bind(c) - import - integer (kind=omp_integer_kind), value :: msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() bind(c) - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() bind(c) - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() bind(c) - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) bind(c) - import - integer (kind=omp_integer_kind), value :: libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) bind(c) - character string(*) - end subroutine kmp_set_defaults - - function kmp_get_stacksize() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() bind(c) - import - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) bind(c) - import - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) bind(c) - import - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) bind(c) - import - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind), value :: size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) bind(c) - import - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind), value :: nelem - integer (kind=kmp_size_t_kind), value :: elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) bind(c) - import - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind), value :: ptr - integer (kind=kmp_size_t_kind), value :: size - end function kmp_realloc - - subroutine kmp_free(ptr) bind(c) - import - integer (kind=kmp_pointer_kind), value :: ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() bind(c) - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() bind(c) - end subroutine kmp_set_warnings_off - - end interface - -!DIR$ IF DEFINED (__INTEL_OFFLOAD) -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_num_threads -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_dynamic -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nested -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_threads -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_threads -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_num -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_procs -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_parallel -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_final -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_dynamic -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_nested -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_limit -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_max_active_levels -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_active_levels -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_level -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_active_level -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_ancestor_thread_num -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_size -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_schedule -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_schedule -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_proc_bind -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtime -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtick -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_default_device -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_default_device -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_is_initial_device -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_devices -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_teams -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_num -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize_s -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_blocktime -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_serial -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_turnaround -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_throughput -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_defaults -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize_s -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_blocktime -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_library -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_max_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_create_affinity_mask -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_destroy_affinity_mask -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity_mask_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_unset_affinity_mask_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_mask_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_malloc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_calloc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_realloc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_free -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_on -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_off - -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!$omp declare target(omp_set_num_threads ) -!$omp declare target(omp_set_dynamic ) -!$omp declare target(omp_set_nested ) -!$omp declare target(omp_get_num_threads ) -!$omp declare target(omp_get_max_threads ) -!$omp declare target(omp_get_thread_num ) -!$omp declare target(omp_get_num_procs ) -!$omp declare target(omp_in_parallel ) -!$omp declare target(omp_in_final ) -!$omp declare target(omp_get_dynamic ) -!$omp declare target(omp_get_nested ) -!$omp declare target(omp_get_thread_limit ) -!$omp declare target(omp_set_max_active_levels ) -!$omp declare target(omp_get_max_active_levels ) -!$omp declare target(omp_get_level ) -!$omp declare target(omp_get_active_level ) -!$omp declare target(omp_get_ancestor_thread_num ) -!$omp declare target(omp_get_team_size ) -!$omp declare target(omp_set_schedule ) -!$omp declare target(omp_get_schedule ) -!$omp declare target(omp_get_proc_bind ) -!$omp declare target(omp_get_wtime ) -!$omp declare target(omp_get_wtick ) -!$omp declare target(omp_get_default_device ) -!$omp declare target(omp_set_default_device ) -!$omp declare target(omp_is_initial_device ) -!$omp declare target(omp_get_num_devices ) -!$omp declare target(omp_get_num_teams ) -!$omp declare target(omp_get_team_num ) -!$omp declare target(omp_init_lock ) -!$omp declare target(omp_destroy_lock ) -!$omp declare target(omp_set_lock ) -!$omp declare target(omp_unset_lock ) -!$omp declare target(omp_test_lock ) -!$omp declare target(omp_init_nest_lock ) -!$omp declare target(omp_destroy_nest_lock ) -!$omp declare target(omp_set_nest_lock ) -!$omp declare target(omp_unset_nest_lock ) -!$omp declare target(omp_test_nest_lock ) -!$omp declare target(kmp_set_stacksize ) -!$omp declare target(kmp_set_stacksize_s ) -!$omp declare target(kmp_set_blocktime ) -!$omp declare target(kmp_set_library_serial ) -!$omp declare target(kmp_set_library_turnaround ) -!$omp declare target(kmp_set_library_throughput ) -!$omp declare target(kmp_set_library ) -!$omp declare target(kmp_set_defaults ) -!$omp declare target(kmp_get_stacksize ) -!$omp declare target(kmp_get_stacksize_s ) -!$omp declare target(kmp_get_blocktime ) -!$omp declare target(kmp_get_library ) -!$omp declare target(kmp_set_affinity ) -!$omp declare target(kmp_get_affinity ) -!$omp declare target(kmp_get_affinity_max_proc ) -!$omp declare target(kmp_create_affinity_mask ) -!$omp declare target(kmp_destroy_affinity_mask ) -!$omp declare target(kmp_set_affinity_mask_proc ) -!$omp declare target(kmp_unset_affinity_mask_proc ) -!$omp declare target(kmp_get_affinity_mask_proc ) -!$omp declare target(kmp_malloc ) -!$omp declare target(kmp_calloc ) -!$omp declare target(kmp_realloc ) -!$omp declare target(kmp_free ) -!$omp declare target(kmp_set_warnings_on ) -!$omp declare target(kmp_set_warnings_off ) -!DIR$ ENDIF -!DIR$ ENDIF - diff --git a/contrib/libs/cxxsupp/openmp/include/40/ompt.h.var b/contrib/libs/cxxsupp/openmp/include/40/ompt.h.var deleted file mode 100644 index 3a8c30c165..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/40/ompt.h.var +++ /dev/null @@ -1,487 +0,0 @@ -/* - * include/40/ompt.h.var - */ - -#ifndef __OMPT__ -#define __OMPT__ - -/***************************************************************************** - * system include files - *****************************************************************************/ - -#include <stdint.h> - - - -/***************************************************************************** - * iteration macros - *****************************************************************************/ - -#define FOREACH_OMPT_INQUIRY_FN(macro) \ - macro (ompt_enumerate_state) \ - \ - macro (ompt_set_callback) \ - macro (ompt_get_callback) \ - \ - macro (ompt_get_idle_frame) \ - macro (ompt_get_task_frame) \ - \ - macro (ompt_get_state) \ - \ - macro (ompt_get_parallel_id) \ - macro (ompt_get_parallel_team_size) \ - macro (ompt_get_task_id) \ - macro (ompt_get_thread_id) - -#define FOREACH_OMPT_PLACEHOLDER_FN(macro) \ - macro (ompt_idle) \ - macro (ompt_overhead) \ - macro (ompt_barrier_wait) \ - macro (ompt_task_wait) \ - macro (ompt_mutex_wait) - -#define FOREACH_OMPT_STATE(macro) \ - \ - /* first */ \ - macro (ompt_state_first, 0x71) /* initial enumeration state */ \ - \ - /* work states (0..15) */ \ - macro (ompt_state_work_serial, 0x00) /* working outside parallel */ \ - macro (ompt_state_work_parallel, 0x01) /* working within parallel */ \ - macro (ompt_state_work_reduction, 0x02) /* performing a reduction */ \ - \ - /* idle (16..31) */ \ - macro (ompt_state_idle, 0x10) /* waiting for work */ \ - \ - /* overhead states (32..63) */ \ - macro (ompt_state_overhead, 0x20) /* overhead excluding wait states */ \ - \ - /* barrier wait states (64..79) */ \ - macro (ompt_state_wait_barrier, 0x40) /* waiting at a barrier */ \ - macro (ompt_state_wait_barrier_implicit, 0x41) /* implicit barrier */ \ - macro (ompt_state_wait_barrier_explicit, 0x42) /* explicit barrier */ \ - \ - /* task wait states (80..95) */ \ - macro (ompt_state_wait_taskwait, 0x50) /* waiting at a taskwait */ \ - macro (ompt_state_wait_taskgroup, 0x51) /* waiting at a taskgroup */ \ - \ - /* mutex wait states (96..111) */ \ - macro (ompt_state_wait_lock, 0x60) /* waiting for lock */ \ - macro (ompt_state_wait_nest_lock, 0x61) /* waiting for nest lock */ \ - macro (ompt_state_wait_critical, 0x62) /* waiting for critical */ \ - macro (ompt_state_wait_atomic, 0x63) /* waiting for atomic */ \ - macro (ompt_state_wait_ordered, 0x64) /* waiting for ordered */ \ - macro (ompt_state_wait_single, 0x6F) /* waiting for single region (non-standard!) */ \ - \ - /* misc (112..127) */ \ - macro (ompt_state_undefined, 0x70) /* undefined thread state */ - - -#define FOREACH_OMPT_EVENT(macro) \ - \ - /*--- Mandatory Events ---*/ \ - macro (ompt_event_parallel_begin, ompt_new_parallel_callback_t, 1) /* parallel begin */ \ - macro (ompt_event_parallel_end, ompt_end_parallel_callback_t, 2) /* parallel end */ \ - \ - macro (ompt_event_task_begin, ompt_new_task_callback_t, 3) /* task begin */ \ - macro (ompt_event_task_end, ompt_task_callback_t, 4) /* task destroy */ \ - \ - macro (ompt_event_thread_begin, ompt_thread_type_callback_t, 5) /* thread begin */ \ - macro (ompt_event_thread_end, ompt_thread_type_callback_t, 6) /* thread end */ \ - \ - macro (ompt_event_control, ompt_control_callback_t, 7) /* support control calls */ \ - \ - macro (ompt_event_runtime_shutdown, ompt_callback_t, 8) /* runtime shutdown */ \ - \ - /*--- Optional Events (blame shifting, ompt_event_unimplemented) ---*/ \ - macro (ompt_event_idle_begin, ompt_thread_callback_t, 9) /* begin idle state */ \ - macro (ompt_event_idle_end, ompt_thread_callback_t, 10) /* end idle state */ \ - \ - macro (ompt_event_wait_barrier_begin, ompt_parallel_callback_t, 11) /* begin wait at barrier */ \ - macro (ompt_event_wait_barrier_end, ompt_parallel_callback_t, 12) /* end wait at barrier */ \ - \ - macro (ompt_event_wait_taskwait_begin, ompt_parallel_callback_t, 13) /* begin wait at taskwait */ \ - macro (ompt_event_wait_taskwait_end, ompt_parallel_callback_t, 14) /* end wait at taskwait */ \ - \ - macro (ompt_event_wait_taskgroup_begin, ompt_parallel_callback_t, 15) /* begin wait at taskgroup */\ - macro (ompt_event_wait_taskgroup_end, ompt_parallel_callback_t, 16) /* end wait at taskgroup */ \ - \ - macro (ompt_event_release_lock, ompt_wait_callback_t, 17) /* lock release */ \ - macro (ompt_event_release_nest_lock_last, ompt_wait_callback_t, 18) /* last nest lock release */ \ - macro (ompt_event_release_critical, ompt_wait_callback_t, 19) /* critical release */ \ - \ - macro (ompt_event_release_atomic, ompt_wait_callback_t, 20) /* atomic release */ \ - \ - macro (ompt_event_release_ordered, ompt_wait_callback_t, 21) /* ordered release */ \ - \ - /*--- Optional Events (synchronous events, ompt_event_unimplemented) --- */ \ - macro (ompt_event_implicit_task_begin, ompt_parallel_callback_t, 22) /* implicit task begin */ \ - macro (ompt_event_implicit_task_end, ompt_parallel_callback_t, 23) /* implicit task end */ \ - \ - macro (ompt_event_initial_task_begin, ompt_parallel_callback_t, 24) /* initial task begin */ \ - macro (ompt_event_initial_task_end, ompt_parallel_callback_t, 25) /* initial task end */ \ - \ - macro (ompt_event_task_switch, ompt_task_pair_callback_t, 26) /* task switch */ \ - \ - macro (ompt_event_loop_begin, ompt_new_workshare_callback_t, 27) /* task at loop begin */ \ - macro (ompt_event_loop_end, ompt_parallel_callback_t, 28) /* task at loop end */ \ - \ - macro (ompt_event_sections_begin, ompt_new_workshare_callback_t, 29) /* task at sections begin */\ - macro (ompt_event_sections_end, ompt_parallel_callback_t, 30) /* task at sections end */ \ - \ - macro (ompt_event_single_in_block_begin, ompt_new_workshare_callback_t, 31) /* task at single begin*/ \ - macro (ompt_event_single_in_block_end, ompt_parallel_callback_t, 32) /* task at single end */ \ - \ - macro (ompt_event_single_others_begin, ompt_parallel_callback_t, 33) /* task at single begin */ \ - macro (ompt_event_single_others_end, ompt_parallel_callback_t, 34) /* task at single end */ \ - \ - macro (ompt_event_workshare_begin, ompt_new_workshare_callback_t, 35) /* task at workshare begin */\ - macro (ompt_event_workshare_end, ompt_parallel_callback_t, 36) /* task at workshare end */ \ - \ - macro (ompt_event_master_begin, ompt_parallel_callback_t, 37) /* task at master begin */ \ - macro (ompt_event_master_end, ompt_parallel_callback_t, 38) /* task at master end */ \ - \ - macro (ompt_event_barrier_begin, ompt_parallel_callback_t, 39) /* task at barrier begin */ \ - macro (ompt_event_barrier_end, ompt_parallel_callback_t, 40) /* task at barrier end */ \ - \ - macro (ompt_event_taskwait_begin, ompt_parallel_callback_t, 41) /* task at taskwait begin */ \ - macro (ompt_event_taskwait_end, ompt_parallel_callback_t, 42) /* task at task wait end */ \ - \ - macro (ompt_event_taskgroup_begin, ompt_parallel_callback_t, 43) /* task at taskgroup begin */\ - macro (ompt_event_taskgroup_end, ompt_parallel_callback_t, 44) /* task at taskgroup end */ \ - \ - macro (ompt_event_release_nest_lock_prev, ompt_wait_callback_t, 45) /* prev nest lock release */ \ - \ - macro (ompt_event_wait_lock, ompt_wait_callback_t, 46) /* lock wait */ \ - macro (ompt_event_wait_nest_lock, ompt_wait_callback_t, 47) /* nest lock wait */ \ - macro (ompt_event_wait_critical, ompt_wait_callback_t, 48) /* critical wait */ \ - macro (ompt_event_wait_atomic, ompt_wait_callback_t, 49) /* atomic wait */ \ - macro (ompt_event_wait_ordered, ompt_wait_callback_t, 50) /* ordered wait */ \ - \ - macro (ompt_event_acquired_lock, ompt_wait_callback_t, 51) /* lock acquired */ \ - macro (ompt_event_acquired_nest_lock_first, ompt_wait_callback_t, 52) /* 1st nest lock acquired */ \ - macro (ompt_event_acquired_nest_lock_next, ompt_wait_callback_t, 53) /* next nest lock acquired*/ \ - macro (ompt_event_acquired_critical, ompt_wait_callback_t, 54) /* critical acquired */ \ - macro (ompt_event_acquired_atomic, ompt_wait_callback_t, 55) /* atomic acquired */ \ - macro (ompt_event_acquired_ordered, ompt_wait_callback_t, 56) /* ordered acquired */ \ - \ - macro (ompt_event_init_lock, ompt_wait_callback_t, 57) /* lock init */ \ - macro (ompt_event_init_nest_lock, ompt_wait_callback_t, 58) /* nest lock init */ \ - \ - macro (ompt_event_destroy_lock, ompt_wait_callback_t, 59) /* lock destruction */ \ - macro (ompt_event_destroy_nest_lock, ompt_wait_callback_t, 60) /* nest lock destruction */ \ - \ - macro (ompt_event_flush, ompt_callback_t, 61) /* after executing flush */ - - - -/***************************************************************************** - * data types - *****************************************************************************/ - -/*--------------------- - * identifiers - *---------------------*/ - -typedef uint64_t ompt_thread_id_t; -#define ompt_thread_id_none ((ompt_thread_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_task_id_t; -#define ompt_task_id_none ((ompt_task_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_parallel_id_t; -#define ompt_parallel_id_none ((ompt_parallel_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_wait_id_t; -#define ompt_wait_id_none ((ompt_wait_id_t) 0) /* non-standard */ - - -/*--------------------- - * ompt_frame_t - *---------------------*/ - -typedef struct ompt_frame_s { - void *exit_runtime_frame; /* next frame is user code */ - void *reenter_runtime_frame; /* previous frame is user code */ -} ompt_frame_t; - - -/***************************************************************************** - * enumerations for thread states and runtime events - *****************************************************************************/ - -/*--------------------- - * runtime states - *---------------------*/ - -typedef enum { -#define ompt_state_macro(state, code) state = code, - FOREACH_OMPT_STATE(ompt_state_macro) -#undef ompt_state_macro -} ompt_state_t; - - -/*--------------------- - * runtime events - *---------------------*/ - -typedef enum { -#define ompt_event_macro(event, callback, eventid) event = eventid, - FOREACH_OMPT_EVENT(ompt_event_macro) -#undef ompt_event_macro -} ompt_event_t; - - -/*--------------------- - * set callback results - *---------------------*/ -typedef enum { - ompt_set_result_registration_error = 0, - ompt_set_result_event_may_occur_no_callback = 1, - ompt_set_result_event_never_occurs = 2, - ompt_set_result_event_may_occur_callback_some = 3, - ompt_set_result_event_may_occur_callback_always = 4, -} ompt_set_result_t; - - - -/***************************************************************************** - * callback signatures - *****************************************************************************/ - -/* initialization */ -typedef void (*ompt_interface_fn_t)(void); - -typedef ompt_interface_fn_t (*ompt_function_lookup_t)( - const char * /* entry point to look up */ -); - -/* threads */ -typedef void (*ompt_thread_callback_t) ( - ompt_thread_id_t thread_id /* ID of thread */ -); - -typedef enum { - ompt_thread_initial = 1, // start the enumeration at 1 - ompt_thread_worker = 2, - ompt_thread_other = 3 -} ompt_thread_type_t; - -typedef enum { - ompt_invoker_program = 0, /* program invokes master task */ - ompt_invoker_runtime = 1 /* runtime invokes master task */ -} ompt_invoker_t; - -typedef void (*ompt_thread_type_callback_t) ( - ompt_thread_type_t thread_type, /* type of thread */ - ompt_thread_id_t thread_id /* ID of thread */ -); - -typedef void (*ompt_wait_callback_t) ( - ompt_wait_id_t wait_id /* wait id */ -); - -/* parallel and workshares */ -typedef void (*ompt_parallel_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t task_id /* id of task */ -); - -typedef void (*ompt_new_workshare_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t parent_task_id, /* id of parent task */ - void *workshare_function /* pointer to outlined function */ -); - -typedef void (*ompt_new_parallel_callback_t) ( - ompt_task_id_t parent_task_id, /* id of parent task */ - ompt_frame_t *parent_task_frame, /* frame data of parent task */ - ompt_parallel_id_t parallel_id, /* id of parallel region */ - uint32_t requested_team_size, /* number of threads in team */ - void *parallel_function, /* pointer to outlined function */ - ompt_invoker_t invoker /* who invokes master task? */ -); - -typedef void (*ompt_end_parallel_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t task_id, /* id of task */ - ompt_invoker_t invoker /* who invokes master task? */ -); - -/* tasks */ -typedef void (*ompt_task_callback_t) ( - ompt_task_id_t task_id /* id of task */ -); - -typedef void (*ompt_task_pair_callback_t) ( - ompt_task_id_t first_task_id, - ompt_task_id_t second_task_id -); - -typedef void (*ompt_new_task_callback_t) ( - ompt_task_id_t parent_task_id, /* id of parent task */ - ompt_frame_t *parent_task_frame, /* frame data for parent task */ - ompt_task_id_t new_task_id, /* id of created task */ - void *task_function /* pointer to outlined function */ -); - -/* program */ -typedef void (*ompt_control_callback_t) ( - uint64_t command, /* command of control call */ - uint64_t modifier /* modifier of control call */ -); - -typedef void (*ompt_callback_t)(void); - - -/**************************************************************************** - * ompt API - ***************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#define OMPT_API_FNTYPE(fn) fn##_t - -#define OMPT_API_FUNCTION(return_type, fn, args) \ - typedef return_type (*OMPT_API_FNTYPE(fn)) args - - - -/**************************************************************************** - * INQUIRY FUNCTIONS - ***************************************************************************/ - -/* state */ -OMPT_API_FUNCTION(ompt_state_t, ompt_get_state, ( - ompt_wait_id_t *ompt_wait_id -)); - -/* thread */ -OMPT_API_FUNCTION(ompt_thread_id_t, ompt_get_thread_id, (void)); - -OMPT_API_FUNCTION(void *, ompt_get_idle_frame, (void)); - -/* parallel region */ -OMPT_API_FUNCTION(ompt_parallel_id_t, ompt_get_parallel_id, ( - int ancestor_level -)); - -OMPT_API_FUNCTION(int, ompt_get_parallel_team_size, ( - int ancestor_level -)); - -/* task */ -OMPT_API_FUNCTION(ompt_task_id_t, ompt_get_task_id, ( - int depth -)); - -OMPT_API_FUNCTION(ompt_frame_t *, ompt_get_task_frame, ( - int depth -)); - - - -/**************************************************************************** - * PLACEHOLDERS FOR PERFORMANCE REPORTING - ***************************************************************************/ - -/* idle */ -OMPT_API_FUNCTION(void, ompt_idle, ( - void -)); - -/* overhead */ -OMPT_API_FUNCTION(void, ompt_overhead, ( - void -)); - -/* barrier wait */ -OMPT_API_FUNCTION(void, ompt_barrier_wait, ( - void -)); - -/* task wait */ -OMPT_API_FUNCTION(void, ompt_task_wait, ( - void -)); - -/* mutex wait */ -OMPT_API_FUNCTION(void, ompt_mutex_wait, ( - void -)); - - - -/**************************************************************************** - * INITIALIZATION FUNCTIONS - ***************************************************************************/ - -OMPT_API_FUNCTION(void, ompt_initialize, ( - ompt_function_lookup_t ompt_fn_lookup, - const char *runtime_version, - unsigned int ompt_version -)); - - -/* initialization interface to be defined by tool */ -ompt_initialize_t ompt_tool(void); - -typedef enum opt_init_mode_e { - ompt_init_mode_never = 0, - ompt_init_mode_false = 1, - ompt_init_mode_true = 2, - ompt_init_mode_always = 3 -} ompt_init_mode_t; - -OMPT_API_FUNCTION(int, ompt_set_callback, ( - ompt_event_t event, - ompt_callback_t callback -)); - -typedef enum ompt_set_callback_rc_e { /* non-standard */ - ompt_set_callback_error = 0, - ompt_has_event_no_callback = 1, - ompt_no_event_no_callback = 2, - ompt_has_event_may_callback = 3, - ompt_has_event_must_callback = 4, -} ompt_set_callback_rc_t; - - -OMPT_API_FUNCTION(int, ompt_get_callback, ( - ompt_event_t event, - ompt_callback_t *callback -)); - - - -/**************************************************************************** - * MISCELLANEOUS FUNCTIONS - ***************************************************************************/ - -/* control */ -#if defined(_OPENMP) && (_OPENMP >= 201307) -#pragma omp declare target -#endif -void ompt_control( - uint64_t command, - uint64_t modifier -); -#if defined(_OPENMP) && (_OPENMP >= 201307) -#pragma omp end declare target -#endif - -/* state enumeration */ -OMPT_API_FUNCTION(int, ompt_enumerate_state, ( - int current_state, - int *next_state, - const char **next_state_name -)); - -#ifdef __cplusplus -}; -#endif - -#endif - diff --git a/contrib/libs/cxxsupp/openmp/include/41/omp.h.var b/contrib/libs/cxxsupp/openmp/include/41/omp.h.var deleted file mode 100644 index 6d9fa43810..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/41/omp.h.var +++ /dev/null @@ -1,176 +0,0 @@ -/* - * include/41/omp.h.var - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#ifndef __OMP_H -# define __OMP_H - -# define KMP_VERSION_MAJOR @LIBOMP_VERSION_MAJOR@ -# define KMP_VERSION_MINOR @LIBOMP_VERSION_MINOR@ -# define KMP_VERSION_BUILD @LIBOMP_VERSION_BUILD@ -# define KMP_BUILD_DATE "@LIBOMP_BUILD_DATE@" - -# ifdef __cplusplus - extern "C" { -# endif - -# if defined(_WIN32) -# define __KAI_KMPC_CONVENTION __cdecl -# else -# define __KAI_KMPC_CONVENTION -# endif - - /* schedule kind constants */ - typedef enum omp_sched_t { - omp_sched_static = 1, - omp_sched_dynamic = 2, - omp_sched_guided = 3, - omp_sched_auto = 4 - } omp_sched_t; - - /* set API functions */ - extern void __KAI_KMPC_CONVENTION omp_set_num_threads (int); - extern void __KAI_KMPC_CONVENTION omp_set_dynamic (int); - extern void __KAI_KMPC_CONVENTION omp_set_nested (int); - extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels (int); - extern void __KAI_KMPC_CONVENTION omp_set_schedule (omp_sched_t, int); - - /* query API functions */ - extern int __KAI_KMPC_CONVENTION omp_get_num_threads (void); - extern int __KAI_KMPC_CONVENTION omp_get_dynamic (void); - extern int __KAI_KMPC_CONVENTION omp_get_nested (void); - extern int __KAI_KMPC_CONVENTION omp_get_max_threads (void); - extern int __KAI_KMPC_CONVENTION omp_get_thread_num (void); - extern int __KAI_KMPC_CONVENTION omp_get_num_procs (void); - extern int __KAI_KMPC_CONVENTION omp_in_parallel (void); - extern int __KAI_KMPC_CONVENTION omp_in_final (void); - extern int __KAI_KMPC_CONVENTION omp_get_active_level (void); - extern int __KAI_KMPC_CONVENTION omp_get_level (void); - extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num (int); - extern int __KAI_KMPC_CONVENTION omp_get_team_size (int); - extern int __KAI_KMPC_CONVENTION omp_get_thread_limit (void); - extern int __KAI_KMPC_CONVENTION omp_get_max_active_levels (void); - extern void __KAI_KMPC_CONVENTION omp_get_schedule (omp_sched_t *, int *); - - /* lock API functions */ - typedef struct omp_lock_t { - void * _lk; - } omp_lock_t; - - extern void __KAI_KMPC_CONVENTION omp_init_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_set_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_unset_lock (omp_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_destroy_lock (omp_lock_t *); - extern int __KAI_KMPC_CONVENTION omp_test_lock (omp_lock_t *); - - /* nested lock API functions */ - typedef struct omp_nest_lock_t { - void * _lk; - } omp_nest_lock_t; - - extern void __KAI_KMPC_CONVENTION omp_init_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_set_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_unset_nest_lock (omp_nest_lock_t *); - extern void __KAI_KMPC_CONVENTION omp_destroy_nest_lock (omp_nest_lock_t *); - extern int __KAI_KMPC_CONVENTION omp_test_nest_lock (omp_nest_lock_t *); - - /* lock hint type for dynamic user lock */ - typedef enum omp_lock_hint_t { - omp_lock_hint_none = 0, - omp_lock_hint_uncontended = 1, - omp_lock_hint_contended = (1<<1 ), - omp_lock_hint_nonspeculative = (1<<2 ), - omp_lock_hint_speculative = (1<<3 ), - kmp_lock_hint_hle = (1<<16), - kmp_lock_hint_rtm = (1<<17), - kmp_lock_hint_adaptive = (1<<18) - } omp_lock_hint_t; - - /* hinted lock initializers */ - extern void __KAI_KMPC_CONVENTION omp_init_lock_with_hint(omp_lock_t *, omp_lock_hint_t); - extern void __KAI_KMPC_CONVENTION omp_init_nest_lock_with_hint(omp_nest_lock_t *, omp_lock_hint_t); - - /* time API functions */ - extern double __KAI_KMPC_CONVENTION omp_get_wtime (void); - extern double __KAI_KMPC_CONVENTION omp_get_wtick (void); - - /* OpenMP 4.0 */ - extern int __KAI_KMPC_CONVENTION omp_get_default_device (void); - extern void __KAI_KMPC_CONVENTION omp_set_default_device (int); - extern int __KAI_KMPC_CONVENTION omp_is_initial_device (void); - extern int __KAI_KMPC_CONVENTION omp_get_num_devices (void); - extern int __KAI_KMPC_CONVENTION omp_get_num_teams (void); - extern int __KAI_KMPC_CONVENTION omp_get_team_num (void); - extern int __KAI_KMPC_CONVENTION omp_get_cancellation (void); - -# include <stdlib.h> - /* kmp API functions */ - extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void); - extern void __KAI_KMPC_CONVENTION kmp_set_stacksize (int); - extern size_t __KAI_KMPC_CONVENTION kmp_get_stacksize_s (void); - extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t); - extern int __KAI_KMPC_CONVENTION kmp_get_blocktime (void); - extern int __KAI_KMPC_CONVENTION kmp_get_library (void); - extern void __KAI_KMPC_CONVENTION kmp_set_blocktime (int); - extern void __KAI_KMPC_CONVENTION kmp_set_library (int); - extern void __KAI_KMPC_CONVENTION kmp_set_library_serial (void); - extern void __KAI_KMPC_CONVENTION kmp_set_library_turnaround (void); - extern void __KAI_KMPC_CONVENTION kmp_set_library_throughput (void); - extern void __KAI_KMPC_CONVENTION kmp_set_defaults (char const *); - - /* Intel affinity API */ - typedef void * kmp_affinity_mask_t; - - extern int __KAI_KMPC_CONVENTION kmp_set_affinity (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity_max_proc (void); - extern void __KAI_KMPC_CONVENTION kmp_create_affinity_mask (kmp_affinity_mask_t *); - extern void __KAI_KMPC_CONVENTION kmp_destroy_affinity_mask (kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc (int, kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *); - extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc (int, kmp_affinity_mask_t *); - - /* OpenMP 4.0 affinity API */ - typedef enum omp_proc_bind_t { - omp_proc_bind_false = 0, - omp_proc_bind_true = 1, - omp_proc_bind_master = 2, - omp_proc_bind_close = 3, - omp_proc_bind_spread = 4 - } omp_proc_bind_t; - - extern omp_proc_bind_t __KAI_KMPC_CONVENTION omp_get_proc_bind (void); - - extern void * __KAI_KMPC_CONVENTION kmp_malloc (size_t); - extern void * __KAI_KMPC_CONVENTION kmp_calloc (size_t, size_t); - extern void * __KAI_KMPC_CONVENTION kmp_realloc (void *, size_t); - extern void __KAI_KMPC_CONVENTION kmp_free (void *); - - extern void __KAI_KMPC_CONVENTION kmp_set_warnings_on(void); - extern void __KAI_KMPC_CONVENTION kmp_set_warnings_off(void); - -# undef __KAI_KMPC_CONVENTION - - /* Warning: - The following typedefs are not standard, deprecated and will be removed in a future release. - */ - typedef int omp_int_t; - typedef double omp_wtime_t; - -# ifdef __cplusplus - } -# endif - -#endif /* __OMP_H */ - diff --git a/contrib/libs/cxxsupp/openmp/include/41/omp_lib.f.var b/contrib/libs/cxxsupp/openmp/include/41/omp_lib.f.var deleted file mode 100644 index c801908cd4..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/41/omp_lib.f.var +++ /dev/null @@ -1,788 +0,0 @@ -! include/41/omp_lib.f.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - -!*** -!*** Some of the directives for the following routine extend past column 72, -!*** so process this file in 132-column mode. -!*** - -!dec$ fixedformlinesize:132 - - module omp_lib_kinds - - integer, parameter :: omp_integer_kind = 4 - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = 4 - integer, parameter :: omp_lock_kind = int_ptr_kind() - integer, parameter :: omp_nest_lock_kind = int_ptr_kind() - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: omp_proc_bind_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = int_ptr_kind() - integer, parameter :: kmp_size_t_kind = int_ptr_kind() - integer, parameter :: kmp_affinity_mask_kind = int_ptr_kind() - integer, parameter :: kmp_cancel_kind = omp_integer_kind - integer, parameter :: omp_lock_hint_kind = omp_integer_kind - - end module omp_lib_kinds - - module omp_lib - - use omp_lib_kinds - - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*), parameter :: kmp_build_date = '@LIBOMP_BUILD_DATE@' - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4 - - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_parallel = 1 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_loop = 2 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_sections = 3 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_taskgroup = 4 - - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_none = 0 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_uncontended = 1 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_contended = 2 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_nonspeculative = 4 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_speculative = 8 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_hle = 65536 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_rtm = 131072 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_adaptive = 262144 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) - use omp_lib_kinds - integer (kind=omp_integer_kind) nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) - use omp_lib_kinds - logical (kind=omp_logical_kind) enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) - use omp_lib_kinds - logical (kind=omp_logical_kind) enable - end subroutine omp_set_nested - - function omp_get_num_threads() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_get_dynamic() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) - use omp_lib_kinds - integer (kind=omp_integer_kind) max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) - use omp_lib_kinds - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) - use omp_lib_kinds - integer (kind=omp_integer_kind) level - integer (kind=omp_integer_kind) omp_get_team_size - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_proc_bind() - use omp_lib_kinds - integer (kind=omp_proc_bind_kind) omp_get_proc_bind - end function omp_get_proc_bind - - function omp_get_wtime() - double precision omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick () - double precision omp_get_wtick - end function omp_get_wtick - - function omp_get_default_device() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_default_device - end function omp_get_default_device - - subroutine omp_set_default_device(dflt_device) - use omp_lib_kinds - integer (kind=omp_integer_kind) dflt_device - end subroutine omp_set_default_device - - function omp_get_num_devices() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_devices - end function omp_get_num_devices - - function omp_get_num_teams() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_teams - end function omp_get_num_teams - - function omp_get_team_num() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_team_num - end function omp_get_team_num - - function omp_get_cancellation() - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_cancellation - end function omp_get_cancellation - - function omp_is_initial_device() - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_is_initial_device - end function omp_is_initial_device - - subroutine omp_init_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_lock -!DIR$ ENDIF - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) - use omp_lib_kinds - integer (kind=omp_integer_kind) size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) - use omp_lib_kinds - integer (kind=kmp_size_t_kind) size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) - use omp_lib_kinds - integer (kind=omp_integer_kind) msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) - use omp_lib_kinds - integer (kind=omp_integer_kind) libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) - character*(*) string - end subroutine kmp_set_defaults - - function kmp_get_stacksize() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() - use omp_lib_kinds - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind) proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind) size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind) nelem - integer (kind=kmp_size_t_kind) elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind) ptr - integer (kind=kmp_size_t_kind) size - end function kmp_realloc - - subroutine kmp_free(ptr) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() - end subroutine kmp_set_warnings_off - - function kmp_get_cancellation_status(cancelkind) - use omp_lib_kinds - integer (kind=kmp_cancel_kind) cancelkind - logical (kind=omp_logical_kind) kmp_get_cancellation_status - end function kmp_get_cancellation_status - - subroutine kmp_init_lock_with_hint(lockvar, lockhint) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - integer (kind=omp_lock_hint_kind) lockhint - end subroutine kmp_init_lock_with_hint - - subroutine kmp_init_nest_lock_with_hint(lockvar, lockhint) - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - integer (kind=omp_lock_hint_kind) lockhint - end subroutine kmp_init_nest_lock_with_hint - - end interface - -!dec$ if defined(_WIN32) -!dec$ if defined(_WIN64) .or. defined(_M_AMD64) - -!*** -!*** The Fortran entry points must be in uppercase, even if the /Qlowercase -!*** option is specified. The alias attribute ensures that the specified -!*** string is used as the entry point. -!*** -!*** On the Windows* OS IA-32 architecture, the Fortran entry points have an -!*** underscore prepended. On the Windows* OS Intel(R) 64 -!*** architecture, no underscore is prepended. -!*** - -!dec$ attributes alias:'OMP_SET_NUM_THREADS' :: omp_set_num_threads -!dec$ attributes alias:'OMP_SET_DYNAMIC' :: omp_set_dynamic -!dec$ attributes alias:'OMP_SET_NESTED' :: omp_set_nested -!dec$ attributes alias:'OMP_GET_NUM_THREADS' :: omp_get_num_threads -!dec$ attributes alias:'OMP_GET_MAX_THREADS' :: omp_get_max_threads -!dec$ attributes alias:'OMP_GET_THREAD_NUM' :: omp_get_thread_num -!dec$ attributes alias:'OMP_GET_NUM_PROCS' :: omp_get_num_procs -!dec$ attributes alias:'OMP_IN_PARALLEL' :: omp_in_parallel -!dec$ attributes alias:'OMP_GET_DYNAMIC' :: omp_get_dynamic -!dec$ attributes alias:'OMP_GET_NESTED' :: omp_get_nested -!dec$ attributes alias:'OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit -!dec$ attributes alias:'OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels -!dec$ attributes alias:'OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels -!dec$ attributes alias:'OMP_GET_LEVEL' :: omp_get_level -!dec$ attributes alias:'OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level -!dec$ attributes alias:'OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num -!dec$ attributes alias:'OMP_GET_TEAM_SIZE' :: omp_get_team_size -!dec$ attributes alias:'OMP_SET_SCHEDULE' :: omp_set_schedule -!dec$ attributes alias:'OMP_GET_SCHEDULE' :: omp_get_schedule -!dec$ attributes alias:'OMP_GET_PROC_BIND' :: omp_get_proc_bind -!dec$ attributes alias:'OMP_GET_WTIME' :: omp_get_wtime -!dec$ attributes alias:'OMP_GET_WTICK' :: omp_get_wtick -!dec$ attributes alias:'OMP_GET_DEFAULT_DEVICE' :: omp_get_default_device -!dec$ attributes alias:'OMP_SET_DEFAULT_DEVICE' :: omp_set_default_device -!dec$ attributes alias:'OMP_GET_NUM_DEVICES' :: omp_get_num_devices -!dec$ attributes alias:'OMP_GET_NUM_TEAMS' :: omp_get_num_teams -!dec$ attributes alias:'OMP_GET_TEAM_NUM' :: omp_get_team_num -!dec$ attributes alias:'OMP_GET_CANCELLATION' :: omp_get_cancellation -!dec$ attributes alias:'OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device - -!dec$ attributes alias:'omp_init_lock' :: omp_init_lock -!dec$ attributes alias:'omp_init_lock_with_hint' :: omp_init_lock_with_hint -!dec$ attributes alias:'omp_destroy_lock' :: omp_destroy_lock -!dec$ attributes alias:'omp_set_lock' :: omp_set_lock -!dec$ attributes alias:'omp_unset_lock' :: omp_unset_lock -!dec$ attributes alias:'omp_test_lock' :: omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock' :: omp_init_nest_lock -!dec$ attributes alias:'omp_init_nest_lock_with_hint' :: omp_init_nest_lock_with_hint -!dec$ attributes alias:'omp_destroy_nest_lock' :: omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock' :: omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock' :: omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock' :: omp_test_nest_lock - -!dec$ attributes alias:'KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'KMP_FREE'::kmp_free - -!dec$ attributes alias:'KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ attributes alias:'KMP_GET_CANCELLATION_STATUS' :: kmp_get_cancellation_status - -!dec$ else - -!*** -!*** On Windows* OS IA-32 architecture, the Fortran entry points have an underscore prepended. -!*** - -!dec$ attributes alias:'_OMP_SET_NUM_THREADS' :: omp_set_num_threads -!dec$ attributes alias:'_OMP_SET_DYNAMIC' :: omp_set_dynamic -!dec$ attributes alias:'_OMP_SET_NESTED' :: omp_set_nested -!dec$ attributes alias:'_OMP_GET_NUM_THREADS' :: omp_get_num_threads -!dec$ attributes alias:'_OMP_GET_MAX_THREADS' :: omp_get_max_threads -!dec$ attributes alias:'_OMP_GET_THREAD_NUM' :: omp_get_thread_num -!dec$ attributes alias:'_OMP_GET_NUM_PROCS' :: omp_get_num_procs -!dec$ attributes alias:'_OMP_IN_PARALLEL' :: omp_in_parallel -!dec$ attributes alias:'_OMP_GET_DYNAMIC' :: omp_get_dynamic -!dec$ attributes alias:'_OMP_GET_NESTED' :: omp_get_nested -!dec$ attributes alias:'_OMP_GET_THREAD_LIMIT' :: omp_get_thread_limit -!dec$ attributes alias:'_OMP_SET_MAX_ACTIVE_LEVELS' :: omp_set_max_active_levels -!dec$ attributes alias:'_OMP_GET_MAX_ACTIVE_LEVELS' :: omp_get_max_active_levels -!dec$ attributes alias:'_OMP_GET_LEVEL' :: omp_get_level -!dec$ attributes alias:'_OMP_GET_ACTIVE_LEVEL' :: omp_get_active_level -!dec$ attributes alias:'_OMP_GET_ANCESTOR_THREAD_NUM' :: omp_get_ancestor_thread_num -!dec$ attributes alias:'_OMP_GET_TEAM_SIZE' :: omp_get_team_size -!dec$ attributes alias:'_OMP_SET_SCHEDULE' :: omp_set_schedule -!dec$ attributes alias:'_OMP_GET_SCHEDULE' :: omp_get_schedule -!dec$ attributes alias:'_OMP_GET_PROC_BIND' :: omp_get_proc_bind -!dec$ attributes alias:'_OMP_GET_WTIME' :: omp_get_wtime -!dec$ attributes alias:'_OMP_GET_WTICK' :: omp_get_wtick -!dec$ attributes alias:'_OMP_GET_DEFAULT_DEVICE' :: omp_get_default_device -!dec$ attributes alias:'_OMP_SET_DEFAULT_DEVICE' :: omp_set_default_device -!dec$ attributes alias:'_OMP_GET_NUM_DEVICES' :: omp_get_num_devices -!dec$ attributes alias:'_OMP_GET_NUM_TEAMS' :: omp_get_num_teams -!dec$ attributes alias:'_OMP_GET_TEAM_NUM' :: omp_get_team_num -!dec$ attributes alias:'_OMP_GET_CANCELLATION' :: omp_get_cancellation -!dec$ attributes alias:'_OMP_IS_INITIAL_DEVICE' :: omp_is_initial_device - -!dec$ attributes alias:'_omp_init_lock' :: omp_init_lock -!dec$ attributes alias:'_omp_init_lock_with_hint' :: omp_init_lock_with_hint -!dec$ attributes alias:'_omp_destroy_lock' :: omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock' :: omp_set_lock -!dec$ attributes alias:'_omp_unset_lock' :: omp_unset_lock -!dec$ attributes alias:'_omp_test_lock' :: omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock' :: omp_init_nest_lock -!dec$ attributes alias:'_omp_init_nest_lock_with_hint' :: omp_init_nest_lock_with_hint -!dec$ attributes alias:'_omp_destroy_nest_lock' :: omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock' :: omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock' :: omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock' :: omp_test_nest_lock - -!dec$ attributes alias:'_KMP_SET_STACKSIZE'::kmp_set_stacksize -!dec$ attributes alias:'_KMP_SET_STACKSIZE_S'::kmp_set_stacksize_s -!dec$ attributes alias:'_KMP_SET_BLOCKTIME'::kmp_set_blocktime -!dec$ attributes alias:'_KMP_SET_LIBRARY_SERIAL'::kmp_set_library_serial -!dec$ attributes alias:'_KMP_SET_LIBRARY_TURNAROUND'::kmp_set_library_turnaround -!dec$ attributes alias:'_KMP_SET_LIBRARY_THROUGHPUT'::kmp_set_library_throughput -!dec$ attributes alias:'_KMP_SET_LIBRARY'::kmp_set_library -!dec$ attributes alias:'_KMP_GET_STACKSIZE'::kmp_get_stacksize -!dec$ attributes alias:'_KMP_GET_STACKSIZE_S'::kmp_get_stacksize_s -!dec$ attributes alias:'_KMP_GET_BLOCKTIME'::kmp_get_blocktime -!dec$ attributes alias:'_KMP_GET_LIBRARY'::kmp_get_library -!dec$ attributes alias:'_KMP_SET_AFFINITY'::kmp_set_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY'::kmp_get_affinity -!dec$ attributes alias:'_KMP_GET_AFFINITY_MAX_PROC'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_KMP_CREATE_AFFINITY_MASK'::kmp_create_affinity_mask -!dec$ attributes alias:'_KMP_DESTROY_AFFINITY_MASK'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_KMP_SET_AFFINITY_MASK_PROC'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_KMP_UNSET_AFFINITY_MASK_PROC'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_KMP_GET_AFFINITY_MASK_PROC'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_KMP_MALLOC'::kmp_malloc -!dec$ attributes alias:'_KMP_CALLOC'::kmp_calloc -!dec$ attributes alias:'_KMP_REALLOC'::kmp_realloc -!dec$ attributes alias:'_KMP_FREE'::kmp_free - -!dec$ attributes alias:'_KMP_SET_WARNINGS_ON'::kmp_set_warnings_on -!dec$ attributes alias:'_KMP_SET_WARNINGS_OFF'::kmp_set_warnings_off - -!dec$ attributes alias:'_KMP_GET_CANCELLATION_STATUS' :: kmp_get_cancellation_status - -!dec$ endif -!dec$ endif - -!dec$ if defined(__linux) - -!*** -!*** The Linux* OS entry points are in lowercase, with an underscore appended. -!*** - -!dec$ attributes alias:'omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'omp_get_level_'::omp_get_level -!dec$ attributes alias:'omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'omp_get_proc_bind_' :: omp_get_proc_bind -!dec$ attributes alias:'omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'omp_get_wtick_'::omp_get_wtick -!dec$ attributes alias:'omp_get_default_device_'::omp_get_default_device -!dec$ attributes alias:'omp_set_default_device_'::omp_set_default_device -!dec$ attributes alias:'omp_get_num_devices_'::omp_get_num_devices -!dec$ attributes alias:'omp_get_num_teams_'::omp_get_num_teams -!dec$ attributes alias:'omp_get_team_num_'::omp_get_team_num -!dec$ attributes alias:'omp_get_cancellation_'::omp_get_cancellation -!dec$ attributes alias:'omp_is_initial_device_'::omp_is_initial_device - -!dec$ attributes alias:'omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'omp_init_lock_with_hint_'::omp_init_lock_with_hint -!dec$ attributes alias:'omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'omp_init_nest_lock_with_hint_'::omp_init_nest_lock_with_hint -!dec$ attributes alias:'omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'kmp_free_'::kmp_free - -!dec$ attributes alias:'kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'kmp_set_warnings_off_'::kmp_set_warnings_off -!dec$ attributes alias:'kmp_get_cancellation_status_'::kmp_get_cancellation_status - -!dec$ endif - -!dec$ if defined(__APPLE__) - -!*** -!*** The Mac entry points are in lowercase, with an both an underscore -!*** appended and an underscore prepended. -!*** - -!dec$ attributes alias:'_omp_set_num_threads_'::omp_set_num_threads -!dec$ attributes alias:'_omp_set_dynamic_'::omp_set_dynamic -!dec$ attributes alias:'_omp_set_nested_'::omp_set_nested -!dec$ attributes alias:'_omp_get_num_threads_'::omp_get_num_threads -!dec$ attributes alias:'_omp_get_max_threads_'::omp_get_max_threads -!dec$ attributes alias:'_omp_get_thread_num_'::omp_get_thread_num -!dec$ attributes alias:'_omp_get_num_procs_'::omp_get_num_procs -!dec$ attributes alias:'_omp_in_parallel_'::omp_in_parallel -!dec$ attributes alias:'_omp_get_dynamic_'::omp_get_dynamic -!dec$ attributes alias:'_omp_get_nested_'::omp_get_nested -!dec$ attributes alias:'_omp_get_thread_limit_'::omp_get_thread_limit -!dec$ attributes alias:'_omp_set_max_active_levels_'::omp_set_max_active_levels -!dec$ attributes alias:'_omp_get_max_active_levels_'::omp_get_max_active_levels -!dec$ attributes alias:'_omp_get_level_'::omp_get_level -!dec$ attributes alias:'_omp_get_active_level_'::omp_get_active_level -!dec$ attributes alias:'_omp_get_ancestor_thread_num_'::omp_get_ancestor_thread_num -!dec$ attributes alias:'_omp_get_team_size_'::omp_get_team_size -!dec$ attributes alias:'_omp_set_schedule_'::omp_set_schedule -!dec$ attributes alias:'_omp_get_schedule_'::omp_get_schedule -!dec$ attributes alias:'_omp_get_proc_bind_' :: omp_get_proc_bind -!dec$ attributes alias:'_omp_get_wtime_'::omp_get_wtime -!dec$ attributes alias:'_omp_get_wtick_'::omp_get_wtick -!dec$ attributes alias:'_omp_get_num_teams_'::omp_get_num_teams -!dec$ attributes alias:'_omp_get_team_num_'::omp_get_team_num -!dec$ attributes alias:'_omp_get_cancellation_'::omp_get_cancellation -!dec$ attributes alias:'_omp_is_initial_device_'::omp_is_initial_device - -!dec$ attributes alias:'_omp_init_lock_'::omp_init_lock -!dec$ attributes alias:'_omp_init_lock_with_hint_'::omp_init_lock_with_hint -!dec$ attributes alias:'_omp_destroy_lock_'::omp_destroy_lock -!dec$ attributes alias:'_omp_set_lock_'::omp_set_lock -!dec$ attributes alias:'_omp_unset_lock_'::omp_unset_lock -!dec$ attributes alias:'_omp_test_lock_'::omp_test_lock -!dec$ attributes alias:'_omp_init_nest_lock_'::omp_init_nest_lock -!dec$ attributes alias:'_omp_init_nest_lock_with_hint_'::omp_init_nest_lock_with_hint -!dec$ attributes alias:'_omp_destroy_nest_lock_'::omp_destroy_nest_lock -!dec$ attributes alias:'_omp_set_nest_lock_'::omp_set_nest_lock -!dec$ attributes alias:'_omp_unset_nest_lock_'::omp_unset_nest_lock -!dec$ attributes alias:'_omp_test_nest_lock_'::omp_test_nest_lock - -!dec$ attributes alias:'_kmp_set_stacksize_'::kmp_set_stacksize -!dec$ attributes alias:'_kmp_set_stacksize_s_'::kmp_set_stacksize_s -!dec$ attributes alias:'_kmp_set_blocktime_'::kmp_set_blocktime -!dec$ attributes alias:'_kmp_set_library_serial_'::kmp_set_library_serial -!dec$ attributes alias:'_kmp_set_library_turnaround_'::kmp_set_library_turnaround -!dec$ attributes alias:'_kmp_set_library_throughput_'::kmp_set_library_throughput -!dec$ attributes alias:'_kmp_set_library_'::kmp_set_library -!dec$ attributes alias:'_kmp_get_stacksize_'::kmp_get_stacksize -!dec$ attributes alias:'_kmp_get_stacksize_s_'::kmp_get_stacksize_s -!dec$ attributes alias:'_kmp_get_blocktime_'::kmp_get_blocktime -!dec$ attributes alias:'_kmp_get_library_'::kmp_get_library -!dec$ attributes alias:'_kmp_set_affinity_'::kmp_set_affinity -!dec$ attributes alias:'_kmp_get_affinity_'::kmp_get_affinity -!dec$ attributes alias:'_kmp_get_affinity_max_proc_'::kmp_get_affinity_max_proc -!dec$ attributes alias:'_kmp_create_affinity_mask_'::kmp_create_affinity_mask -!dec$ attributes alias:'_kmp_destroy_affinity_mask_'::kmp_destroy_affinity_mask -!dec$ attributes alias:'_kmp_set_affinity_mask_proc_'::kmp_set_affinity_mask_proc -!dec$ attributes alias:'_kmp_unset_affinity_mask_proc_'::kmp_unset_affinity_mask_proc -!dec$ attributes alias:'_kmp_get_affinity_mask_proc_'::kmp_get_affinity_mask_proc -!dec$ attributes alias:'_kmp_malloc_'::kmp_malloc -!dec$ attributes alias:'_kmp_calloc_'::kmp_calloc -!dec$ attributes alias:'_kmp_realloc_'::kmp_realloc -!dec$ attributes alias:'_kmp_free_'::kmp_free - -!dec$ attributes alias:'_kmp_set_warnings_on_'::kmp_set_warnings_on -!dec$ attributes alias:'_kmp_set_warnings_off_'::kmp_set_warnings_off - -!dec$ attributes alias:'_kmp_get_cancellation_status_'::kmp_get_cancellation_status - -!dec$ endif - - end module omp_lib - diff --git a/contrib/libs/cxxsupp/openmp/include/41/omp_lib.f90.var b/contrib/libs/cxxsupp/openmp/include/41/omp_lib.f90.var deleted file mode 100644 index 2d23667b10..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/41/omp_lib.f90.var +++ /dev/null @@ -1,470 +0,0 @@ -! include/41/omp_lib.f90.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - - module omp_lib_kinds - - use, intrinsic :: iso_c_binding - - integer, parameter :: omp_integer_kind = c_int - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = c_float - integer, parameter :: kmp_double_kind = c_double - integer, parameter :: omp_lock_kind = c_intptr_t - integer, parameter :: omp_nest_lock_kind = c_intptr_t - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: omp_proc_bind_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = c_intptr_t - integer, parameter :: kmp_size_t_kind = c_size_t - integer, parameter :: kmp_affinity_mask_kind = c_intptr_t - integer, parameter :: kmp_cancel_kind = omp_integer_kind - integer, parameter :: omp_lock_hint_kind = omp_integer_kind - - end module omp_lib_kinds - - module omp_lib - - use omp_lib_kinds - - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*) kmp_build_date - parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' ) - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4 - - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_parallel = 1 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_loop = 2 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_sections = 3 - integer (kind=kmp_cancel_kind), parameter :: kmp_cancel_taskgroup = 4 - - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_none = 0 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_uncontended = 1 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_contended = 2 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_nonspeculative = 4 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_speculative = 8 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_hle = 65536 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_rtm = 131072 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_adaptive = 262144 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_nested - - function omp_get_num_threads() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_in_final() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_in_final - end function omp_in_final - - function omp_get_dynamic() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - integer (kind=omp_integer_kind), value :: level - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_team_size - integer (kind=omp_integer_kind), value :: level - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) bind(c) - use omp_lib_kinds - integer (kind=omp_sched_kind), value :: kind - integer (kind=omp_integer_kind), value :: modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) bind(c) - use omp_lib_kinds - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_proc_bind() bind(c) - use omp_lib_kinds - integer (kind=omp_proc_bind_kind) omp_get_proc_bind - end function omp_get_proc_bind - - function omp_get_wtime() bind(c) - use omp_lib_kinds - real (kind=kmp_double_kind) omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick() bind(c) - use omp_lib_kinds - real (kind=kmp_double_kind) omp_get_wtick - end function omp_get_wtick - - function omp_get_default_device() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_default_device - end function omp_get_default_device - - subroutine omp_set_default_device(dflt_device) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: dflt_device - end subroutine omp_set_default_device - - function omp_get_num_devices() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_devices - end function omp_get_num_devices - - function omp_get_num_teams() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_num_teams - end function omp_get_num_teams - - function omp_get_team_num() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_team_num - end function omp_get_team_num - - function omp_get_cancellation() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_get_cancellation - end function omp_get_cancellation - - function omp_is_initial_device() bind(c) - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_is_initial_device - end function omp_is_initial_device - - subroutine omp_init_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_lock -!DIR$ ENDIF - use omp_lib_kinds - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_nest_lock -!DIR$ ENDIF - use omp_lib_kinds - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) bind(c) - use omp_lib_kinds - integer (kind=kmp_size_t_kind), value :: size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() bind(c) - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() bind(c) - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() bind(c) - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind), value :: libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) bind(c) - use, intrinsic :: iso_c_binding - character (kind=c_char) :: string(*) - end subroutine kmp_set_defaults - - function kmp_get_stacksize() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() bind(c) - use omp_lib_kinds - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) bind(c) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) bind(c) - use omp_lib_kinds - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) bind(c) - use omp_lib_kinds - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind), value :: size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind), value :: nelem - integer (kind=kmp_size_t_kind), value :: elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind), value :: ptr - integer (kind=kmp_size_t_kind), value :: size - end function kmp_realloc - - subroutine kmp_free(ptr) bind(c) - use omp_lib_kinds - integer (kind=kmp_pointer_kind), value :: ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() bind(c) - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() bind(c) - end subroutine kmp_set_warnings_off - - function kmp_get_cancellation_status(cancelkind) bind(c) - use omp_lib_kinds - integer (kind=kmp_cancel_kind), value :: cancelkind - logical (kind=omp_logical_kind) kmp_get_cancellation_status - end function kmp_get_cancellation_status - - subroutine omp_init_lock_with_hint(lockvar, lockhint) bind(c) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - integer (kind=omp_lock_hint_kind), value :: lockhint - end subroutine omp_init_lock_with_hint - - subroutine omp_init_nest_lock_with_hint(lockvar, lockhint) bind(c) - use omp_lib_kinds - integer (kind=omp_lock_kind) lockvar - integer (kind=omp_lock_hint_kind), value :: lockhint - end subroutine omp_init_nest_lock_with_hint - - end interface - - end module omp_lib diff --git a/contrib/libs/cxxsupp/openmp/include/41/omp_lib.h.var b/contrib/libs/cxxsupp/openmp/include/41/omp_lib.h.var deleted file mode 100644 index 867bcd97b0..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/41/omp_lib.h.var +++ /dev/null @@ -1,584 +0,0 @@ -! include/41/omp_lib.h.var - -! -!//===----------------------------------------------------------------------===// -!// -!// The LLVM Compiler Infrastructure -!// -!// This file is dual licensed under the MIT and the University of Illinois Open -!// Source Licenses. See LICENSE.txt for details. -!// -!//===----------------------------------------------------------------------===// -! - -!*** -!*** Some of the directives for the following routine extend past column 72, -!*** so process this file in 132-column mode. -!*** - -!DIR$ fixedformlinesize:132 - - integer, parameter :: omp_integer_kind = 4 - integer, parameter :: omp_logical_kind = 4 - integer, parameter :: omp_real_kind = 4 - integer, parameter :: omp_lock_kind = int_ptr_kind() - integer, parameter :: omp_nest_lock_kind = int_ptr_kind() - integer, parameter :: omp_sched_kind = omp_integer_kind - integer, parameter :: omp_proc_bind_kind = omp_integer_kind - integer, parameter :: kmp_pointer_kind = int_ptr_kind() - integer, parameter :: kmp_size_t_kind = int_ptr_kind() - integer, parameter :: kmp_affinity_mask_kind = int_ptr_kind() - integer, parameter :: omp_lock_hint_kind = omp_integer_kind - - integer (kind=omp_integer_kind), parameter :: openmp_version = @LIBOMP_OMP_YEAR_MONTH@ - integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@ - integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@ - character(*) kmp_build_date - parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' ) - - integer(kind=omp_sched_kind), parameter :: omp_sched_static = 1 - integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2 - integer(kind=omp_sched_kind), parameter :: omp_sched_guided = 3 - integer(kind=omp_sched_kind), parameter :: omp_sched_auto = 4 - - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_false = 0 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_true = 1 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_master = 2 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_close = 3 - integer (kind=omp_proc_bind_kind), parameter :: omp_proc_bind_spread = 4 - - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_none = 0 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_uncontended = 1 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_contended = 2 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_nonspeculative = 4 - integer (kind=omp_lock_hint_kind), parameter :: omp_lock_hint_speculative = 8 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_hle = 65536 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_rtm = 131072 - integer (kind=omp_lock_hint_kind), parameter :: kmp_lock_hint_adaptive = 262144 - - interface - -! *** -! *** omp_* entry points -! *** - - subroutine omp_set_num_threads(nthreads) bind(c) - import - integer (kind=omp_integer_kind), value :: nthreads - end subroutine omp_set_num_threads - - subroutine omp_set_dynamic(enable) bind(c) - import - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_dynamic - - subroutine omp_set_nested(enable) bind(c) - import - logical (kind=omp_logical_kind), value :: enable - end subroutine omp_set_nested - - function omp_get_num_threads() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_threads - end function omp_get_num_threads - - function omp_get_max_threads() bind(c) - import - integer (kind=omp_integer_kind) omp_get_max_threads - end function omp_get_max_threads - - function omp_get_thread_num() bind(c) - import - integer (kind=omp_integer_kind) omp_get_thread_num - end function omp_get_thread_num - - function omp_get_num_procs() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_procs - end function omp_get_num_procs - - function omp_in_parallel() bind(c) - import - logical (kind=omp_logical_kind) omp_in_parallel - end function omp_in_parallel - - function omp_in_final() bind(c) - import - logical (kind=omp_logical_kind) omp_in_final - end function omp_in_final - - function omp_get_dynamic() bind(c) - import - logical (kind=omp_logical_kind) omp_get_dynamic - end function omp_get_dynamic - - function omp_get_nested() bind(c) - import - logical (kind=omp_logical_kind) omp_get_nested - end function omp_get_nested - - function omp_get_thread_limit() bind(c) - import - integer (kind=omp_integer_kind) omp_get_thread_limit - end function omp_get_thread_limit - - subroutine omp_set_max_active_levels(max_levels) bind(c) - import - integer (kind=omp_integer_kind), value :: max_levels - end subroutine omp_set_max_active_levels - - function omp_get_max_active_levels() bind(c) - import - integer (kind=omp_integer_kind) omp_get_max_active_levels - end function omp_get_max_active_levels - - function omp_get_level() bind(c) - import - integer (kind=omp_integer_kind) omp_get_level - end function omp_get_level - - function omp_get_active_level() bind(c) - import - integer (kind=omp_integer_kind) omp_get_active_level - end function omp_get_active_level - - function omp_get_ancestor_thread_num(level) bind(c) - import - integer (kind=omp_integer_kind) omp_get_ancestor_thread_num - integer (kind=omp_integer_kind), value :: level - end function omp_get_ancestor_thread_num - - function omp_get_team_size(level) bind(c) - import - integer (kind=omp_integer_kind) omp_get_team_size - integer (kind=omp_integer_kind), value :: level - end function omp_get_team_size - - subroutine omp_set_schedule(kind, modifier) bind(c) - import - integer (kind=omp_sched_kind), value :: kind - integer (kind=omp_integer_kind), value :: modifier - end subroutine omp_set_schedule - - subroutine omp_get_schedule(kind, modifier) bind(c) - import - integer (kind=omp_sched_kind) kind - integer (kind=omp_integer_kind) modifier - end subroutine omp_get_schedule - - function omp_get_proc_bind() bind(c) - import - integer (kind=omp_proc_bind_kind) omp_get_proc_bind - end function omp_get_proc_bind - - function omp_get_wtime() bind(c) - double precision omp_get_wtime - end function omp_get_wtime - - function omp_get_wtick() bind(c) - double precision omp_get_wtick - end function omp_get_wtick - - function omp_get_default_device() bind(c) - import - integer (kind=omp_integer_kind) omp_get_default_device - end function omp_get_default_device - - subroutine omp_set_default_device(dflt_device) bind(c) - import - integer (kind=omp_integer_kind), value :: dflt_device - end subroutine omp_set_default_device - - function omp_get_num_devices() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_devices - end function omp_get_num_devices - - function omp_get_num_teams() bind(c) - import - integer (kind=omp_integer_kind) omp_get_num_teams - end function omp_get_num_teams - - function omp_get_team_num() bind(c) - import - integer (kind=omp_integer_kind) omp_get_team_num - end function omp_get_team_num - - function omp_is_initial_device() bind(c) - import - logical (kind=omp_logical_kind) omp_is_initial_device - end function omp_is_initial_device - - subroutine omp_init_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_init_lock - - subroutine omp_destroy_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_destroy_lock - - subroutine omp_set_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_set_lock - - subroutine omp_unset_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_lock -!DIR$ ENDIF - import - integer (kind=omp_lock_kind) lockvar - end subroutine omp_unset_lock - - function omp_test_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_lock -!DIR$ ENDIF - import - logical (kind=omp_logical_kind) omp_test_lock - integer (kind=omp_lock_kind) lockvar - end function omp_test_lock - - subroutine omp_init_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_init_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_init_nest_lock - - subroutine omp_destroy_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_destroy_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_destroy_nest_lock - - subroutine omp_set_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_set_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_set_nest_lock - - subroutine omp_unset_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_unset_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_nest_lock_kind) lockvar - end subroutine omp_unset_nest_lock - - function omp_test_nest_lock(lockvar) bind(c) -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!DIR$ attributes known_intrinsic :: omp_test_nest_lock -!DIR$ ENDIF - import - integer (kind=omp_integer_kind) omp_test_nest_lock - integer (kind=omp_nest_lock_kind) lockvar - end function omp_test_nest_lock - -! *** -! *** kmp_* entry points -! *** - - subroutine kmp_set_stacksize(size) bind(c) - import - integer (kind=omp_integer_kind), value :: size - end subroutine kmp_set_stacksize - - subroutine kmp_set_stacksize_s(size) bind(c) - import - integer (kind=kmp_size_t_kind), value :: size - end subroutine kmp_set_stacksize_s - - subroutine kmp_set_blocktime(msec) bind(c) - import - integer (kind=omp_integer_kind), value :: msec - end subroutine kmp_set_blocktime - - subroutine kmp_set_library_serial() bind(c) - end subroutine kmp_set_library_serial - - subroutine kmp_set_library_turnaround() bind(c) - end subroutine kmp_set_library_turnaround - - subroutine kmp_set_library_throughput() bind(c) - end subroutine kmp_set_library_throughput - - subroutine kmp_set_library(libnum) bind(c) - import - integer (kind=omp_integer_kind), value :: libnum - end subroutine kmp_set_library - - subroutine kmp_set_defaults(string) bind(c) - character string(*) - end subroutine kmp_set_defaults - - function kmp_get_stacksize() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_stacksize - end function kmp_get_stacksize - - function kmp_get_stacksize_s() bind(c) - import - integer (kind=kmp_size_t_kind) kmp_get_stacksize_s - end function kmp_get_stacksize_s - - function kmp_get_blocktime() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_blocktime - end function kmp_get_blocktime - - function kmp_get_library() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_library - end function kmp_get_library - - function kmp_set_affinity(mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_set_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity - - function kmp_get_affinity(mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_get_affinity - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity - - function kmp_get_affinity_max_proc() bind(c) - import - integer (kind=omp_integer_kind) kmp_get_affinity_max_proc - end function kmp_get_affinity_max_proc - - subroutine kmp_create_affinity_mask(mask) bind(c) - import - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_create_affinity_mask - - subroutine kmp_destroy_affinity_mask(mask) bind(c) - import - integer (kind=kmp_affinity_mask_kind) mask - end subroutine kmp_destroy_affinity_mask - - function kmp_set_affinity_mask_proc(proc, mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_set_affinity_mask_proc - - function kmp_unset_affinity_mask_proc(proc, mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_unset_affinity_mask_proc - - function kmp_get_affinity_mask_proc(proc, mask) bind(c) - import - integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc - integer (kind=omp_integer_kind), value :: proc - integer (kind=kmp_affinity_mask_kind) mask - end function kmp_get_affinity_mask_proc - - function kmp_malloc(size) bind(c) - import - integer (kind=kmp_pointer_kind) kmp_malloc - integer (kind=kmp_size_t_kind), value :: size - end function kmp_malloc - - function kmp_calloc(nelem, elsize) bind(c) - import - integer (kind=kmp_pointer_kind) kmp_calloc - integer (kind=kmp_size_t_kind), value :: nelem - integer (kind=kmp_size_t_kind), value :: elsize - end function kmp_calloc - - function kmp_realloc(ptr, size) bind(c) - import - integer (kind=kmp_pointer_kind) kmp_realloc - integer (kind=kmp_pointer_kind), value :: ptr - integer (kind=kmp_size_t_kind), value :: size - end function kmp_realloc - - subroutine kmp_free(ptr) bind(c) - import - integer (kind=kmp_pointer_kind), value :: ptr - end subroutine kmp_free - - subroutine kmp_set_warnings_on() bind(c) - end subroutine kmp_set_warnings_on - - subroutine kmp_set_warnings_off() bind(c) - end subroutine kmp_set_warnings_off - - subroutine omp_init_lock_with_hint(lockvar, lockhint) bind(c) - import - integer (kind=omp_lock_kind) lockvar - integer (kind=omp_lock_hint_kind), value :: lockhint - end subroutine omp_init_lock_with_hint - - subroutine omp_init_nest_lock_with_hint(lockvar, lockhint) bind(c) - import - integer (kind=omp_lock_kind) lockvar - integer (kind=omp_lock_hint_kind), value :: lockhint - end subroutine omp_init_nest_lock_with_hint - - end interface - -!DIR$ IF DEFINED (__INTEL_OFFLOAD) -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_num_threads -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_dynamic -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nested -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_threads -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_threads -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_num -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_procs -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_parallel -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_in_final -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_dynamic -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_nested -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_thread_limit -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_max_active_levels -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_max_active_levels -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_level -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_active_level -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_ancestor_thread_num -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_size -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_schedule -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_schedule -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_proc_bind -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtime -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_wtick -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_default_device -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_default_device -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_is_initial_device -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_devices -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_num_teams -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_get_team_num -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_destroy_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_set_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_unset_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_test_nest_lock -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_stacksize_s -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_blocktime -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_serial -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_turnaround -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library_throughput -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_library -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_defaults -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_stacksize_s -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_blocktime -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_library -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_max_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_create_affinity_mask -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_destroy_affinity_mask -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_affinity_mask_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_unset_affinity_mask_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_get_affinity_mask_proc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_malloc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_calloc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_realloc -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_free -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_on -!DIR$ ATTRIBUTES OFFLOAD:MIC :: kmp_set_warnings_off -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_lock_with_hint -!DIR$ ATTRIBUTES OFFLOAD:MIC :: omp_init_nest_lock_with_hint - -!DIR$ IF(__INTEL_COMPILER.GE.1400) -!$omp declare target(omp_set_num_threads ) -!$omp declare target(omp_set_dynamic ) -!$omp declare target(omp_set_nested ) -!$omp declare target(omp_get_num_threads ) -!$omp declare target(omp_get_max_threads ) -!$omp declare target(omp_get_thread_num ) -!$omp declare target(omp_get_num_procs ) -!$omp declare target(omp_in_parallel ) -!$omp declare target(omp_in_final ) -!$omp declare target(omp_get_dynamic ) -!$omp declare target(omp_get_nested ) -!$omp declare target(omp_get_thread_limit ) -!$omp declare target(omp_set_max_active_levels ) -!$omp declare target(omp_get_max_active_levels ) -!$omp declare target(omp_get_level ) -!$omp declare target(omp_get_active_level ) -!$omp declare target(omp_get_ancestor_thread_num ) -!$omp declare target(omp_get_team_size ) -!$omp declare target(omp_set_schedule ) -!$omp declare target(omp_get_schedule ) -!$omp declare target(omp_get_proc_bind ) -!$omp declare target(omp_get_wtime ) -!$omp declare target(omp_get_wtick ) -!$omp declare target(omp_get_default_device ) -!$omp declare target(omp_set_default_device ) -!$omp declare target(omp_is_initial_device ) -!$omp declare target(omp_get_num_devices ) -!$omp declare target(omp_get_num_teams ) -!$omp declare target(omp_get_team_num ) -!$omp declare target(omp_init_lock ) -!$omp declare target(omp_destroy_lock ) -!$omp declare target(omp_set_lock ) -!$omp declare target(omp_unset_lock ) -!$omp declare target(omp_test_lock ) -!$omp declare target(omp_init_nest_lock ) -!$omp declare target(omp_destroy_nest_lock ) -!$omp declare target(omp_set_nest_lock ) -!$omp declare target(omp_unset_nest_lock ) -!$omp declare target(omp_test_nest_lock ) -!$omp declare target(kmp_set_stacksize ) -!$omp declare target(kmp_set_stacksize_s ) -!$omp declare target(kmp_set_blocktime ) -!$omp declare target(kmp_set_library_serial ) -!$omp declare target(kmp_set_library_turnaround ) -!$omp declare target(kmp_set_library_throughput ) -!$omp declare target(kmp_set_library ) -!$omp declare target(kmp_set_defaults ) -!$omp declare target(kmp_get_stacksize ) -!$omp declare target(kmp_get_stacksize_s ) -!$omp declare target(kmp_get_blocktime ) -!$omp declare target(kmp_get_library ) -!$omp declare target(kmp_set_affinity ) -!$omp declare target(kmp_get_affinity ) -!$omp declare target(kmp_get_affinity_max_proc ) -!$omp declare target(kmp_create_affinity_mask ) -!$omp declare target(kmp_destroy_affinity_mask ) -!$omp declare target(kmp_set_affinity_mask_proc ) -!$omp declare target(kmp_unset_affinity_mask_proc ) -!$omp declare target(kmp_get_affinity_mask_proc ) -!$omp declare target(kmp_malloc ) -!$omp declare target(kmp_calloc ) -!$omp declare target(kmp_realloc ) -!$omp declare target(kmp_free ) -!$omp declare target(kmp_set_warnings_on ) -!$omp declare target(kmp_set_warnings_off ) -!$omp declare target(omp_init_lock_with_hint ) -!$omp declare target(omp_init_nest_lock_with_hint ) -!DIR$ ENDIF -!DIR$ ENDIF - diff --git a/contrib/libs/cxxsupp/openmp/include/41/ompt.h.var b/contrib/libs/cxxsupp/openmp/include/41/ompt.h.var deleted file mode 100644 index fbd95e858b..0000000000 --- a/contrib/libs/cxxsupp/openmp/include/41/ompt.h.var +++ /dev/null @@ -1,487 +0,0 @@ -/* - * include/41/ompt.h.var - */ - -#ifndef __OMPT__ -#define __OMPT__ - -/***************************************************************************** - * system include files - *****************************************************************************/ - -#include <stdint.h> - - - -/***************************************************************************** - * iteration macros - *****************************************************************************/ - -#define FOREACH_OMPT_INQUIRY_FN(macro) \ - macro (ompt_enumerate_state) \ - \ - macro (ompt_set_callback) \ - macro (ompt_get_callback) \ - \ - macro (ompt_get_idle_frame) \ - macro (ompt_get_task_frame) \ - \ - macro (ompt_get_state) \ - \ - macro (ompt_get_parallel_id) \ - macro (ompt_get_parallel_team_size) \ - macro (ompt_get_task_id) \ - macro (ompt_get_thread_id) - -#define FOREACH_OMPT_PLACEHOLDER_FN(macro) \ - macro (ompt_idle) \ - macro (ompt_overhead) \ - macro (ompt_barrier_wait) \ - macro (ompt_task_wait) \ - macro (ompt_mutex_wait) - -#define FOREACH_OMPT_STATE(macro) \ - \ - /* first */ \ - macro (ompt_state_first, 0x71) /* initial enumeration state */ \ - \ - /* work states (0..15) */ \ - macro (ompt_state_work_serial, 0x00) /* working outside parallel */ \ - macro (ompt_state_work_parallel, 0x01) /* working within parallel */ \ - macro (ompt_state_work_reduction, 0x02) /* performing a reduction */ \ - \ - /* idle (16..31) */ \ - macro (ompt_state_idle, 0x10) /* waiting for work */ \ - \ - /* overhead states (32..63) */ \ - macro (ompt_state_overhead, 0x20) /* overhead excluding wait states */ \ - \ - /* barrier wait states (64..79) */ \ - macro (ompt_state_wait_barrier, 0x40) /* waiting at a barrier */ \ - macro (ompt_state_wait_barrier_implicit, 0x41) /* implicit barrier */ \ - macro (ompt_state_wait_barrier_explicit, 0x42) /* explicit barrier */ \ - \ - /* task wait states (80..95) */ \ - macro (ompt_state_wait_taskwait, 0x50) /* waiting at a taskwait */ \ - macro (ompt_state_wait_taskgroup, 0x51) /* waiting at a taskgroup */ \ - \ - /* mutex wait states (96..111) */ \ - macro (ompt_state_wait_lock, 0x60) /* waiting for lock */ \ - macro (ompt_state_wait_nest_lock, 0x61) /* waiting for nest lock */ \ - macro (ompt_state_wait_critical, 0x62) /* waiting for critical */ \ - macro (ompt_state_wait_atomic, 0x63) /* waiting for atomic */ \ - macro (ompt_state_wait_ordered, 0x64) /* waiting for ordered */ \ - macro (ompt_state_wait_single, 0x6F) /* waiting for single region (non-standard!) */ \ - \ - /* misc (112..127) */ \ - macro (ompt_state_undefined, 0x70) /* undefined thread state */ - - -#define FOREACH_OMPT_EVENT(macro) \ - \ - /*--- Mandatory Events ---*/ \ - macro (ompt_event_parallel_begin, ompt_new_parallel_callback_t, 1) /* parallel begin */ \ - macro (ompt_event_parallel_end, ompt_end_parallel_callback_t, 2) /* parallel end */ \ - \ - macro (ompt_event_task_begin, ompt_new_task_callback_t, 3) /* task begin */ \ - macro (ompt_event_task_end, ompt_task_callback_t, 4) /* task destroy */ \ - \ - macro (ompt_event_thread_begin, ompt_thread_type_callback_t, 5) /* thread begin */ \ - macro (ompt_event_thread_end, ompt_thread_type_callback_t, 6) /* thread end */ \ - \ - macro (ompt_event_control, ompt_control_callback_t, 7) /* support control calls */ \ - \ - macro (ompt_event_runtime_shutdown, ompt_callback_t, 8) /* runtime shutdown */ \ - \ - /*--- Optional Events (blame shifting, ompt_event_unimplemented) ---*/ \ - macro (ompt_event_idle_begin, ompt_thread_callback_t, 9) /* begin idle state */ \ - macro (ompt_event_idle_end, ompt_thread_callback_t, 10) /* end idle state */ \ - \ - macro (ompt_event_wait_barrier_begin, ompt_parallel_callback_t, 11) /* begin wait at barrier */ \ - macro (ompt_event_wait_barrier_end, ompt_parallel_callback_t, 12) /* end wait at barrier */ \ - \ - macro (ompt_event_wait_taskwait_begin, ompt_parallel_callback_t, 13) /* begin wait at taskwait */ \ - macro (ompt_event_wait_taskwait_end, ompt_parallel_callback_t, 14) /* end wait at taskwait */ \ - \ - macro (ompt_event_wait_taskgroup_begin, ompt_parallel_callback_t, 15) /* begin wait at taskgroup */\ - macro (ompt_event_wait_taskgroup_end, ompt_parallel_callback_t, 16) /* end wait at taskgroup */ \ - \ - macro (ompt_event_release_lock, ompt_wait_callback_t, 17) /* lock release */ \ - macro (ompt_event_release_nest_lock_last, ompt_wait_callback_t, 18) /* last nest lock release */ \ - macro (ompt_event_release_critical, ompt_wait_callback_t, 19) /* critical release */ \ - \ - macro (ompt_event_release_atomic, ompt_wait_callback_t, 20) /* atomic release */ \ - \ - macro (ompt_event_release_ordered, ompt_wait_callback_t, 21) /* ordered release */ \ - \ - /*--- Optional Events (synchronous events, ompt_event_unimplemented) --- */ \ - macro (ompt_event_implicit_task_begin, ompt_parallel_callback_t, 22) /* implicit task begin */ \ - macro (ompt_event_implicit_task_end, ompt_parallel_callback_t, 23) /* implicit task end */ \ - \ - macro (ompt_event_initial_task_begin, ompt_parallel_callback_t, 24) /* initial task begin */ \ - macro (ompt_event_initial_task_end, ompt_parallel_callback_t, 25) /* initial task end */ \ - \ - macro (ompt_event_task_switch, ompt_task_pair_callback_t, 26) /* task switch */ \ - \ - macro (ompt_event_loop_begin, ompt_new_workshare_callback_t, 27) /* task at loop begin */ \ - macro (ompt_event_loop_end, ompt_parallel_callback_t, 28) /* task at loop end */ \ - \ - macro (ompt_event_sections_begin, ompt_new_workshare_callback_t, 29) /* task at sections begin */\ - macro (ompt_event_sections_end, ompt_parallel_callback_t, 30) /* task at sections end */ \ - \ - macro (ompt_event_single_in_block_begin, ompt_new_workshare_callback_t, 31) /* task at single begin*/ \ - macro (ompt_event_single_in_block_end, ompt_parallel_callback_t, 32) /* task at single end */ \ - \ - macro (ompt_event_single_others_begin, ompt_parallel_callback_t, 33) /* task at single begin */ \ - macro (ompt_event_single_others_end, ompt_parallel_callback_t, 34) /* task at single end */ \ - \ - macro (ompt_event_workshare_begin, ompt_new_workshare_callback_t, 35) /* task at workshare begin */\ - macro (ompt_event_workshare_end, ompt_parallel_callback_t, 36) /* task at workshare end */ \ - \ - macro (ompt_event_master_begin, ompt_parallel_callback_t, 37) /* task at master begin */ \ - macro (ompt_event_master_end, ompt_parallel_callback_t, 38) /* task at master end */ \ - \ - macro (ompt_event_barrier_begin, ompt_parallel_callback_t, 39) /* task at barrier begin */ \ - macro (ompt_event_barrier_end, ompt_parallel_callback_t, 40) /* task at barrier end */ \ - \ - macro (ompt_event_taskwait_begin, ompt_parallel_callback_t, 41) /* task at taskwait begin */ \ - macro (ompt_event_taskwait_end, ompt_parallel_callback_t, 42) /* task at task wait end */ \ - \ - macro (ompt_event_taskgroup_begin, ompt_parallel_callback_t, 43) /* task at taskgroup begin */\ - macro (ompt_event_taskgroup_end, ompt_parallel_callback_t, 44) /* task at taskgroup end */ \ - \ - macro (ompt_event_release_nest_lock_prev, ompt_wait_callback_t, 45) /* prev nest lock release */ \ - \ - macro (ompt_event_wait_lock, ompt_wait_callback_t, 46) /* lock wait */ \ - macro (ompt_event_wait_nest_lock, ompt_wait_callback_t, 47) /* nest lock wait */ \ - macro (ompt_event_wait_critical, ompt_wait_callback_t, 48) /* critical wait */ \ - macro (ompt_event_wait_atomic, ompt_wait_callback_t, 49) /* atomic wait */ \ - macro (ompt_event_wait_ordered, ompt_wait_callback_t, 50) /* ordered wait */ \ - \ - macro (ompt_event_acquired_lock, ompt_wait_callback_t, 51) /* lock acquired */ \ - macro (ompt_event_acquired_nest_lock_first, ompt_wait_callback_t, 52) /* 1st nest lock acquired */ \ - macro (ompt_event_acquired_nest_lock_next, ompt_wait_callback_t, 53) /* next nest lock acquired*/ \ - macro (ompt_event_acquired_critical, ompt_wait_callback_t, 54) /* critical acquired */ \ - macro (ompt_event_acquired_atomic, ompt_wait_callback_t, 55) /* atomic acquired */ \ - macro (ompt_event_acquired_ordered, ompt_wait_callback_t, 56) /* ordered acquired */ \ - \ - macro (ompt_event_init_lock, ompt_wait_callback_t, 57) /* lock init */ \ - macro (ompt_event_init_nest_lock, ompt_wait_callback_t, 58) /* nest lock init */ \ - \ - macro (ompt_event_destroy_lock, ompt_wait_callback_t, 59) /* lock destruction */ \ - macro (ompt_event_destroy_nest_lock, ompt_wait_callback_t, 60) /* nest lock destruction */ \ - \ - macro (ompt_event_flush, ompt_callback_t, 61) /* after executing flush */ - - - -/***************************************************************************** - * data types - *****************************************************************************/ - -/*--------------------- - * identifiers - *---------------------*/ - -typedef uint64_t ompt_thread_id_t; -#define ompt_thread_id_none ((ompt_thread_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_task_id_t; -#define ompt_task_id_none ((ompt_task_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_parallel_id_t; -#define ompt_parallel_id_none ((ompt_parallel_id_t) 0) /* non-standard */ - -typedef uint64_t ompt_wait_id_t; -#define ompt_wait_id_none ((ompt_wait_id_t) 0) /* non-standard */ - - -/*--------------------- - * ompt_frame_t - *---------------------*/ - -typedef struct ompt_frame_s { - void *exit_runtime_frame; /* next frame is user code */ - void *reenter_runtime_frame; /* previous frame is user code */ -} ompt_frame_t; - - -/***************************************************************************** - * enumerations for thread states and runtime events - *****************************************************************************/ - -/*--------------------- - * runtime states - *---------------------*/ - -typedef enum { -#define ompt_state_macro(state, code) state = code, - FOREACH_OMPT_STATE(ompt_state_macro) -#undef ompt_state_macro -} ompt_state_t; - - -/*--------------------- - * runtime events - *---------------------*/ - -typedef enum { -#define ompt_event_macro(event, callback, eventid) event = eventid, - FOREACH_OMPT_EVENT(ompt_event_macro) -#undef ompt_event_macro -} ompt_event_t; - - -/*--------------------- - * set callback results - *---------------------*/ -typedef enum { - ompt_set_result_registration_error = 0, - ompt_set_result_event_may_occur_no_callback = 1, - ompt_set_result_event_never_occurs = 2, - ompt_set_result_event_may_occur_callback_some = 3, - ompt_set_result_event_may_occur_callback_always = 4, -} ompt_set_result_t; - - - -/***************************************************************************** - * callback signatures - *****************************************************************************/ - -/* initialization */ -typedef void (*ompt_interface_fn_t)(void); - -typedef ompt_interface_fn_t (*ompt_function_lookup_t)( - const char * /* entry point to look up */ -); - -/* threads */ -typedef void (*ompt_thread_callback_t) ( - ompt_thread_id_t thread_id /* ID of thread */ -); - -typedef enum { - ompt_thread_initial = 1, // start the enumeration at 1 - ompt_thread_worker = 2, - ompt_thread_other = 3 -} ompt_thread_type_t; - -typedef enum { - ompt_invoker_program = 0, /* program invokes master task */ - ompt_invoker_runtime = 1 /* runtime invokes master task */ -} ompt_invoker_t; - -typedef void (*ompt_thread_type_callback_t) ( - ompt_thread_type_t thread_type, /* type of thread */ - ompt_thread_id_t thread_id /* ID of thread */ -); - -typedef void (*ompt_wait_callback_t) ( - ompt_wait_id_t wait_id /* wait id */ -); - -/* parallel and workshares */ -typedef void (*ompt_parallel_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t task_id /* id of task */ -); - -typedef void (*ompt_new_workshare_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t parent_task_id, /* id of parent task */ - void *workshare_function /* pointer to outlined function */ -); - -typedef void (*ompt_new_parallel_callback_t) ( - ompt_task_id_t parent_task_id, /* id of parent task */ - ompt_frame_t *parent_task_frame, /* frame data of parent task */ - ompt_parallel_id_t parallel_id, /* id of parallel region */ - uint32_t requested_team_size, /* number of threads in team */ - void *parallel_function, /* pointer to outlined function */ - ompt_invoker_t invoker /* who invokes master task? */ -); - -typedef void (*ompt_end_parallel_callback_t) ( - ompt_parallel_id_t parallel_id, /* id of parallel region */ - ompt_task_id_t task_id, /* id of task */ - ompt_invoker_t invoker /* who invokes master task? */ -); - -/* tasks */ -typedef void (*ompt_task_callback_t) ( - ompt_task_id_t task_id /* id of task */ -); - -typedef void (*ompt_task_pair_callback_t) ( - ompt_task_id_t first_task_id, - ompt_task_id_t second_task_id -); - -typedef void (*ompt_new_task_callback_t) ( - ompt_task_id_t parent_task_id, /* id of parent task */ - ompt_frame_t *parent_task_frame, /* frame data for parent task */ - ompt_task_id_t new_task_id, /* id of created task */ - void *task_function /* pointer to outlined function */ -); - -/* program */ -typedef void (*ompt_control_callback_t) ( - uint64_t command, /* command of control call */ - uint64_t modifier /* modifier of control call */ -); - -typedef void (*ompt_callback_t)(void); - - -/**************************************************************************** - * ompt API - ***************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#define OMPT_API_FNTYPE(fn) fn##_t - -#define OMPT_API_FUNCTION(return_type, fn, args) \ - typedef return_type (*OMPT_API_FNTYPE(fn)) args - - - -/**************************************************************************** - * INQUIRY FUNCTIONS - ***************************************************************************/ - -/* state */ -OMPT_API_FUNCTION(ompt_state_t, ompt_get_state, ( - ompt_wait_id_t *ompt_wait_id -)); - -/* thread */ -OMPT_API_FUNCTION(ompt_thread_id_t, ompt_get_thread_id, (void)); - -OMPT_API_FUNCTION(void *, ompt_get_idle_frame, (void)); - -/* parallel region */ -OMPT_API_FUNCTION(ompt_parallel_id_t, ompt_get_parallel_id, ( - int ancestor_level -)); - -OMPT_API_FUNCTION(int, ompt_get_parallel_team_size, ( - int ancestor_level -)); - -/* task */ -OMPT_API_FUNCTION(ompt_task_id_t, ompt_get_task_id, ( - int depth -)); - -OMPT_API_FUNCTION(ompt_frame_t *, ompt_get_task_frame, ( - int depth -)); - - - -/**************************************************************************** - * PLACEHOLDERS FOR PERFORMANCE REPORTING - ***************************************************************************/ - -/* idle */ -OMPT_API_FUNCTION(void, ompt_idle, ( - void -)); - -/* overhead */ -OMPT_API_FUNCTION(void, ompt_overhead, ( - void -)); - -/* barrier wait */ -OMPT_API_FUNCTION(void, ompt_barrier_wait, ( - void -)); - -/* task wait */ -OMPT_API_FUNCTION(void, ompt_task_wait, ( - void -)); - -/* mutex wait */ -OMPT_API_FUNCTION(void, ompt_mutex_wait, ( - void -)); - - - -/**************************************************************************** - * INITIALIZATION FUNCTIONS - ***************************************************************************/ - -OMPT_API_FUNCTION(void, ompt_initialize, ( - ompt_function_lookup_t ompt_fn_lookup, - const char *runtime_version, - unsigned int ompt_version -)); - - -/* initialization interface to be defined by tool */ -ompt_initialize_t ompt_tool(void); - -typedef enum opt_init_mode_e { - ompt_init_mode_never = 0, - ompt_init_mode_false = 1, - ompt_init_mode_true = 2, - ompt_init_mode_always = 3 -} ompt_init_mode_t; - -OMPT_API_FUNCTION(int, ompt_set_callback, ( - ompt_event_t event, - ompt_callback_t callback -)); - -typedef enum ompt_set_callback_rc_e { /* non-standard */ - ompt_set_callback_error = 0, - ompt_has_event_no_callback = 1, - ompt_no_event_no_callback = 2, - ompt_has_event_may_callback = 3, - ompt_has_event_must_callback = 4, -} ompt_set_callback_rc_t; - - -OMPT_API_FUNCTION(int, ompt_get_callback, ( - ompt_event_t event, - ompt_callback_t *callback -)); - - - -/**************************************************************************** - * MISCELLANEOUS FUNCTIONS - ***************************************************************************/ - -/* control */ -#if defined(_OPENMP) && (_OPENMP >= 201307) -#pragma omp declare target -#endif -void ompt_control( - uint64_t command, - uint64_t modifier -); -#if defined(_OPENMP) && (_OPENMP >= 201307) -#pragma omp end declare target -#endif - -/* state enumeration */ -OMPT_API_FUNCTION(int, ompt_enumerate_state, ( - int current_state, - int *next_state, - const char **next_state_name -)); - -#ifdef __cplusplus -}; -#endif - -#endif - diff --git a/contrib/libs/cxxsupp/openmp/kmp.h b/contrib/libs/cxxsupp/openmp/kmp.h index 66ebf6cbdb..b122a6184b 100644 --- a/contrib/libs/cxxsupp/openmp/kmp.h +++ b/contrib/libs/cxxsupp/openmp/kmp.h @@ -97,7 +97,7 @@ extern int __kmp_hwloc_error; #include "kmp_debug.h" #include "kmp_lock.h" #if USE_DEBUGGER -#include "kmp_debugger.h" +#error #include "kmp_debugger.h" #endif #include "kmp_i18n.h" @@ -116,7 +116,7 @@ extern int __kmp_hwloc_error; #endif #if OMPT_SUPPORT -#include "ompt-internal.h" +#error #include "ompt-internal.h" #endif /*Select data placement in NUMA memory */ diff --git a/contrib/libs/cxxsupp/openmp/kmp_atomic.h b/contrib/libs/cxxsupp/openmp/kmp_atomic.h index 33feae2189..eb27c10821 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_atomic.h +++ b/contrib/libs/cxxsupp/openmp/kmp_atomic.h @@ -20,7 +20,7 @@ #include "kmp_lock.h" #if OMPT_SUPPORT -#include "ompt-specific.h" +#error #include "ompt-specific.h" #endif // C++ build port. diff --git a/contrib/libs/cxxsupp/openmp/kmp_csupport.c b/contrib/libs/cxxsupp/openmp/kmp_csupport.c index e44886facd..c3a21287d4 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_csupport.c +++ b/contrib/libs/cxxsupp/openmp/kmp_csupport.c @@ -21,8 +21,8 @@ #include "kmp_stats.h" #if OMPT_SUPPORT -#include "ompt-internal.h" -#include "ompt-specific.h" +#error #include "ompt-internal.h" +#error #include "ompt-specific.h" #endif #define MAX_MESSAGE 512 diff --git a/contrib/libs/cxxsupp/openmp/kmp_debugger.c b/contrib/libs/cxxsupp/openmp/kmp_debugger.c deleted file mode 100644 index b3c1acb49b..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_debugger.c +++ /dev/null @@ -1,314 +0,0 @@ -#if USE_DEBUGGER -/* - * kmp_debugger.c -- debugger support. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#include "kmp.h" -#include "kmp_lock.h" -#include "kmp_omp.h" -#include "kmp_str.h" - -/* - NOTE: All variable names are known to the debugger, do not change! -*/ - -#ifdef __cplusplus - extern "C" { - extern kmp_omp_struct_info_t __kmp_omp_debug_struct_info; - } // extern "C" -#endif // __cplusplus - -int __kmp_debugging = FALSE; // Boolean whether currently debugging OpenMP RTL. - -#define offset_and_size_of( structure, field ) \ - { \ - offsetof( structure, field ), \ - sizeof( ( (structure *) NULL)->field ) \ - } - -#define offset_and_size_not_available \ - { -1, -1 } - -#define addr_and_size_of( var ) \ - { \ - (kmp_uint64)( & var ), \ - sizeof( var ) \ - } - -#define nthr_buffer_size 1024 -static kmp_int32 -kmp_omp_nthr_info_buffer[ nthr_buffer_size ] = - { nthr_buffer_size * sizeof( kmp_int32 ) }; - -/* TODO: Check punctuation for various platforms here */ -static char func_microtask[] = "__kmp_invoke_microtask"; -static char func_fork[] = "__kmpc_fork_call"; -static char func_fork_teams[] = "__kmpc_fork_teams"; - - -// Various info about runtime structures: addresses, field offsets, sizes, etc. -kmp_omp_struct_info_t -__kmp_omp_debug_struct_info = { - - /* Change this only if you make a fundamental data structure change here */ - KMP_OMP_VERSION, - - /* sanity check. Only should be checked if versions are identical - * This is also used for backward compatibility to get the runtime - * structure size if it the runtime is older than the interface */ - sizeof( kmp_omp_struct_info_t ), - - /* OpenMP RTL version info. */ - addr_and_size_of( __kmp_version_major ), - addr_and_size_of( __kmp_version_minor ), - addr_and_size_of( __kmp_version_build ), - addr_and_size_of( __kmp_openmp_version ), - { (kmp_uint64)( __kmp_copyright ) + KMP_VERSION_MAGIC_LEN, 0 }, // Skip magic prefix. - - /* Various globals. */ - addr_and_size_of( __kmp_threads ), - addr_and_size_of( __kmp_root ), - addr_and_size_of( __kmp_threads_capacity ), - addr_and_size_of( __kmp_monitor ), -#if ! KMP_USE_DYNAMIC_LOCK - addr_and_size_of( __kmp_user_lock_table ), -#endif - addr_and_size_of( func_microtask ), - addr_and_size_of( func_fork ), - addr_and_size_of( func_fork_teams ), - addr_and_size_of( __kmp_team_counter ), - addr_and_size_of( __kmp_task_counter ), - addr_and_size_of( kmp_omp_nthr_info_buffer ), - sizeof( void * ), - OMP_LOCK_T_SIZE < sizeof(void *), - bs_last_barrier, - TASK_DEQUE_SIZE, - - // thread structure information - sizeof( kmp_base_info_t ), - offset_and_size_of( kmp_base_info_t, th_info ), - offset_and_size_of( kmp_base_info_t, th_team ), - offset_and_size_of( kmp_base_info_t, th_root ), - offset_and_size_of( kmp_base_info_t, th_serial_team ), - offset_and_size_of( kmp_base_info_t, th_ident ), - offset_and_size_of( kmp_base_info_t, th_spin_here ), - offset_and_size_of( kmp_base_info_t, th_next_waiting ), - offset_and_size_of( kmp_base_info_t, th_task_team ), - offset_and_size_of( kmp_base_info_t, th_current_task ), - offset_and_size_of( kmp_base_info_t, th_task_state ), - offset_and_size_of( kmp_base_info_t, th_bar ), - offset_and_size_of( kmp_bstate_t, b_worker_arrived ), - -#if OMP_40_ENABLED - // teams information - offset_and_size_of( kmp_base_info_t, th_teams_microtask), - offset_and_size_of( kmp_base_info_t, th_teams_level), - offset_and_size_of( kmp_teams_size_t, nteams ), - offset_and_size_of( kmp_teams_size_t, nth ), -#endif - - // kmp_desc structure (for info field above) - sizeof( kmp_desc_base_t ), - offset_and_size_of( kmp_desc_base_t, ds_tid ), - offset_and_size_of( kmp_desc_base_t, ds_gtid ), - // On Windows* OS, ds_thread contains a thread /handle/, which is not usable, while thread /id/ - // is in ds_thread_id. - #if KMP_OS_WINDOWS - offset_and_size_of( kmp_desc_base_t, ds_thread_id), - #else - offset_and_size_of( kmp_desc_base_t, ds_thread), - #endif - - // team structure information - sizeof( kmp_base_team_t ), - offset_and_size_of( kmp_base_team_t, t_master_tid ), - offset_and_size_of( kmp_base_team_t, t_ident ), - offset_and_size_of( kmp_base_team_t, t_parent ), - offset_and_size_of( kmp_base_team_t, t_nproc ), - offset_and_size_of( kmp_base_team_t, t_threads ), - offset_and_size_of( kmp_base_team_t, t_serialized ), - offset_and_size_of( kmp_base_team_t, t_id ), - offset_and_size_of( kmp_base_team_t, t_pkfn ), - offset_and_size_of( kmp_base_team_t, t_task_team ), - offset_and_size_of( kmp_base_team_t, t_implicit_task_taskdata ), -#if OMP_40_ENABLED - offset_and_size_of( kmp_base_team_t, t_cancel_request ), -#endif - offset_and_size_of( kmp_base_team_t, t_bar ), - offset_and_size_of( kmp_balign_team_t, b_master_arrived ), - offset_and_size_of( kmp_balign_team_t, b_team_arrived ), - - // root structure information - sizeof( kmp_base_root_t ), - offset_and_size_of( kmp_base_root_t, r_root_team ), - offset_and_size_of( kmp_base_root_t, r_hot_team ), - offset_and_size_of( kmp_base_root_t, r_uber_thread ), - offset_and_size_not_available, - - // ident structure information - sizeof( ident_t ), - offset_and_size_of( ident_t, psource ), - offset_and_size_of( ident_t, flags ), - - // lock structure information - sizeof( kmp_base_queuing_lock_t ), - offset_and_size_of( kmp_base_queuing_lock_t, initialized ), - offset_and_size_of( kmp_base_queuing_lock_t, location ), - offset_and_size_of( kmp_base_queuing_lock_t, tail_id ), - offset_and_size_of( kmp_base_queuing_lock_t, head_id ), - offset_and_size_of( kmp_base_queuing_lock_t, next_ticket ), - offset_and_size_of( kmp_base_queuing_lock_t, now_serving ), - offset_and_size_of( kmp_base_queuing_lock_t, owner_id ), - offset_and_size_of( kmp_base_queuing_lock_t, depth_locked ), - offset_and_size_of( kmp_base_queuing_lock_t, flags ), - -#if ! KMP_USE_DYNAMIC_LOCK - /* Lock table. */ - sizeof( kmp_lock_table_t ), - offset_and_size_of( kmp_lock_table_t, used ), - offset_and_size_of( kmp_lock_table_t, allocated ), - offset_and_size_of( kmp_lock_table_t, table ), -#endif - - // Task team structure information. - sizeof( kmp_base_task_team_t ), - offset_and_size_of( kmp_base_task_team_t, tt_threads_data ), - offset_and_size_of( kmp_base_task_team_t, tt_found_tasks ), - offset_and_size_of( kmp_base_task_team_t, tt_nproc ), - offset_and_size_of( kmp_base_task_team_t, tt_unfinished_threads ), - offset_and_size_of( kmp_base_task_team_t, tt_active ), - - // task_data_t. - sizeof( kmp_taskdata_t ), - offset_and_size_of( kmp_taskdata_t, td_task_id ), - offset_and_size_of( kmp_taskdata_t, td_flags ), - offset_and_size_of( kmp_taskdata_t, td_team ), - offset_and_size_of( kmp_taskdata_t, td_parent ), - offset_and_size_of( kmp_taskdata_t, td_level ), - offset_and_size_of( kmp_taskdata_t, td_ident ), - offset_and_size_of( kmp_taskdata_t, td_allocated_child_tasks ), - offset_and_size_of( kmp_taskdata_t, td_incomplete_child_tasks ), - - offset_and_size_of( kmp_taskdata_t, td_taskwait_ident ), - offset_and_size_of( kmp_taskdata_t, td_taskwait_counter ), - offset_and_size_of( kmp_taskdata_t, td_taskwait_thread ), - -#if OMP_40_ENABLED - offset_and_size_of( kmp_taskdata_t, td_taskgroup ), - offset_and_size_of( kmp_taskgroup_t, count ), - offset_and_size_of( kmp_taskgroup_t, cancel_request ), - - offset_and_size_of( kmp_taskdata_t, td_depnode ), - offset_and_size_of( kmp_depnode_list_t, node ), - offset_and_size_of( kmp_depnode_list_t, next ), - offset_and_size_of( kmp_base_depnode_t, successors ), - offset_and_size_of( kmp_base_depnode_t, task ), - offset_and_size_of( kmp_base_depnode_t, npredecessors ), - offset_and_size_of( kmp_base_depnode_t, nrefs ), -#endif - offset_and_size_of( kmp_task_t, routine ), - - // thread_data_t. - sizeof( kmp_thread_data_t ), - offset_and_size_of( kmp_base_thread_data_t, td_deque ), - offset_and_size_of( kmp_base_thread_data_t, td_deque_head ), - offset_and_size_of( kmp_base_thread_data_t, td_deque_tail ), - offset_and_size_of( kmp_base_thread_data_t, td_deque_ntasks ), - offset_and_size_of( kmp_base_thread_data_t, td_deque_last_stolen ), - - // The last field. - KMP_OMP_VERSION, - -}; // __kmp_omp_debug_struct_info - -#undef offset_and_size_of -#undef addr_and_size_of - -/* - Intel compiler on IA-32 architecture issues a warning "conversion - from "unsigned long long" to "char *" may lose significant bits" - when 64-bit value is assigned to 32-bit pointer. Use this function - to suppress the warning. -*/ -static inline -void * -__kmp_convert_to_ptr( - kmp_uint64 addr -) { - #if KMP_COMPILER_ICC - #pragma warning( push ) - #pragma warning( disable: 810 ) // conversion from "unsigned long long" to "char *" may lose significant bits - #pragma warning( disable: 1195 ) // conversion from integer to smaller pointer - #endif // KMP_COMPILER_ICC - return (void *) addr; - #if KMP_COMPILER_ICC - #pragma warning( pop ) - #endif // KMP_COMPILER_ICC -} // __kmp_convert_to_ptr - - -static int -kmp_location_match( - kmp_str_loc_t * loc, - kmp_omp_nthr_item_t * item -) { - - int file_match = 0; - int func_match = 0; - int line_match = 0; - - char * file = (char *) __kmp_convert_to_ptr( item->file ); - char * func = (char *) __kmp_convert_to_ptr( item->func ); - file_match = __kmp_str_fname_match( & loc->fname, file ); - func_match = - item->func == 0 // If item->func is NULL, it allows any func name. - || - strcmp( func, "*" ) == 0 - || - ( loc->func != NULL && strcmp( loc->func, func ) == 0 ); - line_match = - item->begin <= loc->line - && - ( item->end <= 0 || loc->line <= item->end ); // if item->end <= 0, it means "end of file". - - return ( file_match && func_match && line_match ); - -} // kmp_location_match - - -int -__kmp_omp_num_threads( - ident_t const * ident -) { - - int num_threads = 0; - - kmp_omp_nthr_info_t * info = - (kmp_omp_nthr_info_t *) __kmp_convert_to_ptr( __kmp_omp_debug_struct_info.nthr_info.addr ); - if ( info->num > 0 && info->array != 0 ) { - kmp_omp_nthr_item_t * items = (kmp_omp_nthr_item_t *) __kmp_convert_to_ptr( info->array ); - kmp_str_loc_t loc = __kmp_str_loc_init( ident->psource, 1 ); - int i; - for ( i = 0; i < info->num; ++ i ) { - if ( kmp_location_match( & loc, & items[ i ] ) ) { - num_threads = items[ i ].num_threads; - }; // if - }; // for - __kmp_str_loc_free( & loc ); - }; // if - - return num_threads;; - -} // __kmp_omp_num_threads -#endif /* USE_DEBUGGER */ diff --git a/contrib/libs/cxxsupp/openmp/kmp_debugger.h b/contrib/libs/cxxsupp/openmp/kmp_debugger.h deleted file mode 100644 index 29f41340dd..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_debugger.h +++ /dev/null @@ -1,51 +0,0 @@ -#if USE_DEBUGGER -/* - * kmp_debugger.h -- debugger support. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#ifndef KMP_DEBUGGER_H -#define KMP_DEBUGGER_H - -#ifdef __cplusplus - extern "C" { -#endif // __cplusplus - -/* * This external variable can be set by any debugger to flag to the runtime that we - are currently executing inside a debugger. This will allow the debugger to override - the number of threads spawned in a parallel region by using __kmp_omp_num_threads() (below). - * When __kmp_debugging is TRUE, each team and each task gets a unique integer identifier - that can be used by debugger to conveniently identify teams and tasks. - * The debugger has access to __kmp_omp_debug_struct_info which contains information - about the OpenMP library's important internal structures. This access will allow the debugger - to read detailed information from the typical OpenMP constructs (teams, threads, tasking, etc. ) - during a debugging session and offer detailed and useful information which the user can probe - about the OpenMP portion of their code. - */ -extern int __kmp_debugging; /* Boolean whether currently debugging OpenMP RTL */ -// Return number of threads specified by the debugger for given parallel region. -/* The ident field, which represents a source file location, is used to check if the - debugger has changed the number of threads for the parallel region at source file - location ident. This way, specific parallel regions' number of threads can be changed - at the debugger's request. - */ -int __kmp_omp_num_threads( ident_t const * ident ); - -#ifdef __cplusplus - } // extern "C" -#endif // __cplusplus - - -#endif // KMP_DEBUGGER_H - -#endif // USE_DEBUGGER diff --git a/contrib/libs/cxxsupp/openmp/kmp_dispatch.cpp b/contrib/libs/cxxsupp/openmp/kmp_dispatch.cpp index c91bb8da3c..c19448efc2 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_dispatch.cpp +++ b/contrib/libs/cxxsupp/openmp/kmp_dispatch.cpp @@ -36,8 +36,8 @@ #endif #if OMPT_SUPPORT -#include "ompt-internal.h" -#include "ompt-specific.h" +#error #include "ompt-internal.h" +#error #include "ompt-specific.h" #endif /* ------------------------------------------------------------------------ */ diff --git a/contrib/libs/cxxsupp/openmp/kmp_ftn_entry.h b/contrib/libs/cxxsupp/openmp/kmp_ftn_entry.h index fcbaacbffa..5b5c792b81 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_ftn_entry.h +++ b/contrib/libs/cxxsupp/openmp/kmp_ftn_entry.h @@ -18,7 +18,7 @@ #endif #ifdef KMP_STUB - #include "kmp_stub.h" + #error #include "kmp_stub.h" #endif #include "kmp_i18n.h" diff --git a/contrib/libs/cxxsupp/openmp/kmp_ftn_stdcall.c b/contrib/libs/cxxsupp/openmp/kmp_ftn_stdcall.c deleted file mode 100644 index cf70d74af5..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_ftn_stdcall.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * kmp_ftn_stdcall.c -- Fortran __stdcall linkage support for OpenMP. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#include "kmp.h" - -// Note: This string is not printed when KMP_VERSION=1. -char const __kmp_version_ftnstdcall[] = KMP_VERSION_PREFIX "Fortran __stdcall OMP support: " -#ifdef USE_FTN_STDCALL - "yes"; -#else - "no"; -#endif - -#ifdef USE_FTN_STDCALL - -#define FTN_STDCALL KMP_STDCALL -#define KMP_FTN_ENTRIES USE_FTN_STDCALL - -#include "kmp_ftn_os.h" -#include "kmp_ftn_entry.h" - -#endif /* USE_FTN_STDCALL */ - diff --git a/contrib/libs/cxxsupp/openmp/kmp_gsupport.c b/contrib/libs/cxxsupp/openmp/kmp_gsupport.c index 2a89aa2f94..8da9cde524 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_gsupport.c +++ b/contrib/libs/cxxsupp/openmp/kmp_gsupport.c @@ -20,7 +20,7 @@ #include "kmp_atomic.h" #if OMPT_SUPPORT -#include "ompt-specific.h" +#error #include "ompt-specific.h" #endif #ifdef __cplusplus diff --git a/contrib/libs/cxxsupp/openmp/kmp_import.c b/contrib/libs/cxxsupp/openmp/kmp_import.c deleted file mode 100644 index 42fba412c1..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_import.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * kmp_import.c - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -/* - ------------------------------------------------------------------------------------------------ - Object generated from this source file is linked to Windows* OS DLL import library (libompmd.lib) - only! It is not a part of regular static or dynamic OpenMP RTL. Any code that just needs to go - in the libompmd.lib (but not in libompmt.lib and libompmd.dll) should be placed in this - file. - ------------------------------------------------------------------------------------------------ -*/ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - These symbols are required for mutual exclusion with Microsoft OpenMP RTL (and compatibility - with MS Compiler). -*/ - -int _You_must_link_with_exactly_one_OpenMP_library = 1; -int _You_must_link_with_Intel_OpenMP_library = 1; -int _You_must_link_with_Microsoft_OpenMP_library = 1; - -#ifdef __cplusplus -} -#endif - -// end of file // diff --git a/contrib/libs/cxxsupp/openmp/kmp_runtime.c b/contrib/libs/cxxsupp/openmp/kmp_runtime.c index 4749934808..c5247d80cf 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_runtime.c +++ b/contrib/libs/cxxsupp/openmp/kmp_runtime.c @@ -27,7 +27,7 @@ #include "kmp_wait_release.h" #if OMPT_SUPPORT -#include "ompt-specific.h" +#error #include "ompt-specific.h" #endif /* these are temporary issues to be dealt with */ diff --git a/contrib/libs/cxxsupp/openmp/kmp_sched.cpp b/contrib/libs/cxxsupp/openmp/kmp_sched.cpp index 80ad960a8d..9c0c0f42d5 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_sched.cpp +++ b/contrib/libs/cxxsupp/openmp/kmp_sched.cpp @@ -30,7 +30,7 @@ #include "kmp_itt.h" #if OMPT_SUPPORT -#include "ompt-specific.h" +#error #include "ompt-specific.h" #endif // template for type limits diff --git a/contrib/libs/cxxsupp/openmp/kmp_stats.cpp b/contrib/libs/cxxsupp/openmp/kmp_stats.cpp deleted file mode 100644 index d1f43afe4a..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_stats.cpp +++ /dev/null @@ -1,609 +0,0 @@ -/** @file kmp_stats.cpp - * Statistics gathering and processing. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - -#include "kmp.h" -#include "kmp_str.h" -#include "kmp_lock.h" -#include "kmp_stats.h" - -#include <algorithm> -#include <sstream> -#include <iomanip> -#include <stdlib.h> // for atexit - -#define STRINGIZE2(x) #x -#define STRINGIZE(x) STRINGIZE2(x) - -#define expandName(name,flags,ignore) {STRINGIZE(name),flags}, -statInfo timeStat::timerInfo[] = { - KMP_FOREACH_TIMER(expandName,0) - {0,0} -}; -const statInfo counter::counterInfo[] = { - KMP_FOREACH_COUNTER(expandName,0) - {0,0} -}; -#undef expandName - -#define expandName(ignore1,ignore2,ignore3) {0.0,0.0,0.0}, -kmp_stats_output_module::rgb_color kmp_stats_output_module::timerColorInfo[] = { - KMP_FOREACH_TIMER(expandName,0) - {0.0,0.0,0.0} -}; -#undef expandName - -const kmp_stats_output_module::rgb_color kmp_stats_output_module::globalColorArray[] = { - {1.0, 0.0, 0.0}, // red - {1.0, 0.6, 0.0}, // orange - {1.0, 1.0, 0.0}, // yellow - {0.0, 1.0, 0.0}, // green - {0.0, 0.0, 1.0}, // blue - {0.6, 0.2, 0.8}, // purple - {1.0, 0.0, 1.0}, // magenta - {0.0, 0.4, 0.2}, // dark green - {1.0, 1.0, 0.6}, // light yellow - {0.6, 0.4, 0.6}, // dirty purple - {0.0, 1.0, 1.0}, // cyan - {1.0, 0.4, 0.8}, // pink - {0.5, 0.5, 0.5}, // grey - {0.8, 0.7, 0.5}, // brown - {0.6, 0.6, 1.0}, // light blue - {1.0, 0.7, 0.5}, // peach - {0.8, 0.5, 1.0}, // lavender - {0.6, 0.0, 0.0}, // dark red - {0.7, 0.6, 0.0}, // gold - {0.0, 0.0, 0.0} // black -}; - -// Ensure that the atexit handler only runs once. -static uint32_t statsPrinted = 0; - -// output interface -static kmp_stats_output_module __kmp_stats_global_output; - -/* ****************************************************** */ -/* ************* statistic member functions ************* */ - -void statistic::addSample(double sample) -{ - double delta = sample - meanVal; - - sampleCount = sampleCount + 1; - meanVal = meanVal + delta/sampleCount; - m2 = m2 + delta*(sample - meanVal); - - minVal = std::min(minVal, sample); - maxVal = std::max(maxVal, sample); -} - -statistic & statistic::operator+= (const statistic & other) -{ - if (sampleCount == 0) - { - *this = other; - return *this; - } - - uint64_t newSampleCount = sampleCount + other.sampleCount; - double dnsc = double(newSampleCount); - double dsc = double(sampleCount); - double dscBydnsc = dsc/dnsc; - double dosc = double(other.sampleCount); - double delta = other.meanVal - meanVal; - - // Try to order these calculations to avoid overflows. - // If this were Fortran, then the compiler would not be able to re-order over brackets. - // In C++ it may be legal to do that (we certainly hope it doesn't, and CC+ Programming Language 2nd edition - // suggests it shouldn't, since it says that exploitation of associativity can only be made if the operation - // really is associative (which floating addition isn't...)). - meanVal = meanVal*dscBydnsc + other.meanVal*(1-dscBydnsc); - m2 = m2 + other.m2 + dscBydnsc*dosc*delta*delta; - minVal = std::min (minVal, other.minVal); - maxVal = std::max (maxVal, other.maxVal); - sampleCount = newSampleCount; - - - return *this; -} - -void statistic::scale(double factor) -{ - minVal = minVal*factor; - maxVal = maxVal*factor; - meanVal= meanVal*factor; - m2 = m2*factor*factor; - return; -} - -std::string statistic::format(char unit, bool total) const -{ - std::string result = formatSI(sampleCount,9,' '); - - result = result + std::string(", ") + formatSI(minVal, 9, unit); - result = result + std::string(", ") + formatSI(meanVal, 9, unit); - result = result + std::string(", ") + formatSI(maxVal, 9, unit); - if (total) - result = result + std::string(", ") + formatSI(meanVal*sampleCount, 9, unit); - result = result + std::string(", ") + formatSI(getSD(), 9, unit); - - return result; -} - -/* ********************************************************** */ -/* ************* explicitTimer member functions ************* */ - -void explicitTimer::start(timer_e timerEnumValue) { - startTime = tsc_tick_count::now(); - if(timeStat::logEvent(timerEnumValue)) { - __kmp_stats_thread_ptr->incrementNestValue(); - } - return; -} - -void explicitTimer::stop(timer_e timerEnumValue) { - if (startTime.getValue() == 0) - return; - - tsc_tick_count finishTime = tsc_tick_count::now(); - - //stat->addSample ((tsc_tick_count::now() - startTime).ticks()); - stat->addSample ((finishTime - startTime).ticks()); - - if(timeStat::logEvent(timerEnumValue)) { - __kmp_stats_thread_ptr->push_event(startTime.getValue() - __kmp_stats_start_time.getValue(), finishTime.getValue() - __kmp_stats_start_time.getValue(), __kmp_stats_thread_ptr->getNestValue(), timerEnumValue); - __kmp_stats_thread_ptr->decrementNestValue(); - } - - /* We accept the risk that we drop a sample because it really did start at t==0. */ - startTime = 0; - return; -} - -/* ******************************************************************* */ -/* ************* kmp_stats_event_vector member functions ************* */ - -void kmp_stats_event_vector::deallocate() { - __kmp_free(events); - internal_size = 0; - allocated_size = 0; - events = NULL; -} - -// This function is for qsort() which requires the compare function to return -// either a negative number if event1 < event2, a positive number if event1 > event2 -// or zero if event1 == event2. -// This sorts by start time (lowest to highest). -int compare_two_events(const void* event1, const void* event2) { - kmp_stats_event* ev1 = (kmp_stats_event*)event1; - kmp_stats_event* ev2 = (kmp_stats_event*)event2; - - if(ev1->getStart() < ev2->getStart()) return -1; - else if(ev1->getStart() > ev2->getStart()) return 1; - else return 0; -} - -void kmp_stats_event_vector::sort() { - qsort(events, internal_size, sizeof(kmp_stats_event), compare_two_events); -} - -/* *********************************************************** */ -/* ************* kmp_stats_list member functions ************* */ - -// returns a pointer to newly created stats node -kmp_stats_list* kmp_stats_list::push_back(int gtid) { - kmp_stats_list* newnode = (kmp_stats_list*)__kmp_allocate(sizeof(kmp_stats_list)); - // placement new, only requires space and pointer and initializes (so __kmp_allocate instead of C++ new[] is used) - new (newnode) kmp_stats_list(); - newnode->setGtid(gtid); - newnode->prev = this->prev; - newnode->next = this; - newnode->prev->next = newnode; - newnode->next->prev = newnode; - return newnode; -} -void kmp_stats_list::deallocate() { - kmp_stats_list* ptr = this->next; - kmp_stats_list* delptr = this->next; - while(ptr != this) { - delptr = ptr; - ptr=ptr->next; - // placement new means we have to explicitly call destructor. - delptr->_event_vector.deallocate(); - delptr->~kmp_stats_list(); - __kmp_free(delptr); - } -} -kmp_stats_list::iterator kmp_stats_list::begin() { - kmp_stats_list::iterator it; - it.ptr = this->next; - return it; -} -kmp_stats_list::iterator kmp_stats_list::end() { - kmp_stats_list::iterator it; - it.ptr = this; - return it; -} -int kmp_stats_list::size() { - int retval; - kmp_stats_list::iterator it; - for(retval=0, it=begin(); it!=end(); it++, retval++) {} - return retval; -} - -/* ********************************************************************* */ -/* ************* kmp_stats_list::iterator member functions ************* */ - -kmp_stats_list::iterator::iterator() : ptr(NULL) {} -kmp_stats_list::iterator::~iterator() {} -kmp_stats_list::iterator kmp_stats_list::iterator::operator++() { - this->ptr = this->ptr->next; - return *this; -} -kmp_stats_list::iterator kmp_stats_list::iterator::operator++(int dummy) { - this->ptr = this->ptr->next; - return *this; -} -kmp_stats_list::iterator kmp_stats_list::iterator::operator--() { - this->ptr = this->ptr->prev; - return *this; -} -kmp_stats_list::iterator kmp_stats_list::iterator::operator--(int dummy) { - this->ptr = this->ptr->prev; - return *this; -} -bool kmp_stats_list::iterator::operator!=(const kmp_stats_list::iterator & rhs) { - return this->ptr!=rhs.ptr; -} -bool kmp_stats_list::iterator::operator==(const kmp_stats_list::iterator & rhs) { - return this->ptr==rhs.ptr; -} -kmp_stats_list* kmp_stats_list::iterator::operator*() const { - return this->ptr; -} - -/* *************************************************************** */ -/* ************* kmp_stats_output_module functions ************** */ - -const char* kmp_stats_output_module::outputFileName = NULL; -const char* kmp_stats_output_module::eventsFileName = NULL; -const char* kmp_stats_output_module::plotFileName = NULL; -int kmp_stats_output_module::printPerThreadFlag = 0; -int kmp_stats_output_module::printPerThreadEventsFlag = 0; - -// init() is called very near the beginning of execution time in the constructor of __kmp_stats_global_output -void kmp_stats_output_module::init() -{ - char * statsFileName = getenv("KMP_STATS_FILE"); - eventsFileName = getenv("KMP_STATS_EVENTS_FILE"); - plotFileName = getenv("KMP_STATS_PLOT_FILE"); - char * threadStats = getenv("KMP_STATS_THREADS"); - char * threadEvents = getenv("KMP_STATS_EVENTS"); - - // set the stats output filenames based on environment variables and defaults - outputFileName = statsFileName; - eventsFileName = eventsFileName ? eventsFileName : "events.dat"; - plotFileName = plotFileName ? plotFileName : "events.plt"; - - // set the flags based on environment variables matching: true, on, 1, .true. , .t. , yes - printPerThreadFlag = __kmp_str_match_true(threadStats); - printPerThreadEventsFlag = __kmp_str_match_true(threadEvents); - - if(printPerThreadEventsFlag) { - // assigns a color to each timer for printing - setupEventColors(); - } else { - // will clear flag so that no event will be logged - timeStat::clearEventFlags(); - } - - return; -} - -void kmp_stats_output_module::setupEventColors() { - int i; - int globalColorIndex = 0; - int numGlobalColors = sizeof(globalColorArray) / sizeof(rgb_color); - for(i=0;i<TIMER_LAST;i++) { - if(timeStat::logEvent((timer_e)i)) { - timerColorInfo[i] = globalColorArray[globalColorIndex]; - globalColorIndex = (globalColorIndex+1)%numGlobalColors; - } - } - return; -} - -void kmp_stats_output_module::printStats(FILE *statsOut, statistic const * theStats, bool areTimers) -{ - if (areTimers) - { - // Check if we have useful timers, since we don't print zero value timers we need to avoid - // printing a header and then no data. - bool haveTimers = false; - for (int s = 0; s<TIMER_LAST; s++) - { - if (theStats[s].getCount() != 0) - { - haveTimers = true; - break; - } - } - if (!haveTimers) - return; - } - - // Print - const char * title = areTimers ? "Timer, SampleCount," : "Counter, ThreadCount,"; - fprintf (statsOut, "%s Min, Mean, Max, Total, SD\n", title); - if (areTimers) { - for (int s = 0; s<TIMER_LAST; s++) { - statistic const * stat = &theStats[s]; - if (stat->getCount() != 0) { - char tag = timeStat::noUnits(timer_e(s)) ? ' ' : 'T'; - fprintf (statsOut, "%-25s, %s\n", timeStat::name(timer_e(s)), stat->format(tag, true).c_str()); - } - } - } else { // Counters - for (int s = 0; s<COUNTER_LAST; s++) { - statistic const * stat = &theStats[s]; - fprintf (statsOut, "%-25s, %s\n", counter::name(counter_e(s)), stat->format(' ', true).c_str()); - } - } -} - -void kmp_stats_output_module::printCounters(FILE * statsOut, counter const * theCounters) -{ - // We print all the counters even if they are zero. - // That makes it easier to slice them into a spreadsheet if you need to. - fprintf (statsOut, "\nCounter, Count\n"); - for (int c = 0; c<COUNTER_LAST; c++) { - counter const * stat = &theCounters[c]; - fprintf (statsOut, "%-25s, %s\n", counter::name(counter_e(c)), formatSI(stat->getValue(), 9, ' ').c_str()); - } -} - -void kmp_stats_output_module::printEvents(FILE* eventsOut, kmp_stats_event_vector* theEvents, int gtid) { - // sort by start time before printing - theEvents->sort(); - for (int i = 0; i < theEvents->size(); i++) { - kmp_stats_event ev = theEvents->at(i); - rgb_color color = getEventColor(ev.getTimerName()); - fprintf(eventsOut, "%d %lu %lu %1.1f rgb(%1.1f,%1.1f,%1.1f) %s\n", - gtid, - ev.getStart(), - ev.getStop(), - 1.2 - (ev.getNestLevel() * 0.2), - color.r, color.g, color.b, - timeStat::name(ev.getTimerName()) - ); - } - return; -} - -void kmp_stats_output_module::windupExplicitTimers() -{ - // Wind up any explicit timers. We assume that it's fair at this point to just walk all the explcit timers in all threads - // and say "it's over". - // If the timer wasn't running, this won't record anything anyway. - kmp_stats_list::iterator it; - for(it = __kmp_stats_list.begin(); it != __kmp_stats_list.end(); it++) { - for (int timer=0; timer<EXPLICIT_TIMER_LAST; timer++) { - (*it)->getExplicitTimer(explicit_timer_e(timer))->stop((timer_e)timer); - } - } -} - -void kmp_stats_output_module::printPloticusFile() { - int i; - int size = __kmp_stats_list.size(); - FILE* plotOut = fopen(plotFileName, "w+"); - - fprintf(plotOut, "#proc page\n" - " pagesize: 15 10\n" - " scale: 1.0\n\n"); - - fprintf(plotOut, "#proc getdata\n" - " file: %s\n\n", - eventsFileName); - - fprintf(plotOut, "#proc areadef\n" - " title: OpenMP Sampling Timeline\n" - " titledetails: align=center size=16\n" - " rectangle: 1 1 13 9\n" - " xautorange: datafield=2,3\n" - " yautorange: -1 %d\n\n", - size); - - fprintf(plotOut, "#proc xaxis\n" - " stubs: inc\n" - " stubdetails: size=12\n" - " label: Time (ticks)\n" - " labeldetails: size=14\n\n"); - - fprintf(plotOut, "#proc yaxis\n" - " stubs: inc 1\n" - " stubrange: 0 %d\n" - " stubdetails: size=12\n" - " label: Thread #\n" - " labeldetails: size=14\n\n", - size-1); - - fprintf(plotOut, "#proc bars\n" - " exactcolorfield: 5\n" - " axis: x\n" - " locfield: 1\n" - " segmentfields: 2 3\n" - " barwidthfield: 4\n\n"); - - // create legend entries corresponding to the timer color - for(i=0;i<TIMER_LAST;i++) { - if(timeStat::logEvent((timer_e)i)) { - rgb_color c = getEventColor((timer_e)i); - fprintf(plotOut, "#proc legendentry\n" - " sampletype: color\n" - " label: %s\n" - " details: rgb(%1.1f,%1.1f,%1.1f)\n\n", - timeStat::name((timer_e)i), - c.r, c.g, c.b); - - } - } - - fprintf(plotOut, "#proc legend\n" - " format: down\n" - " location: max max\n\n"); - fclose(plotOut); - return; -} - -void kmp_stats_output_module::outputStats(const char* heading) -{ - statistic allStats[TIMER_LAST]; - statistic allCounters[COUNTER_LAST]; - - // stop all the explicit timers for all threads - windupExplicitTimers(); - - FILE * eventsOut; - FILE * statsOut = outputFileName ? fopen (outputFileName, "a+") : stderr; - - if (eventPrintingEnabled()) { - eventsOut = fopen(eventsFileName, "w+"); - } - - if (!statsOut) - statsOut = stderr; - - fprintf(statsOut, "%s\n",heading); - // Accumulate across threads. - kmp_stats_list::iterator it; - for (it = __kmp_stats_list.begin(); it != __kmp_stats_list.end(); it++) { - int t = (*it)->getGtid(); - // Output per thread stats if requested. - if (perThreadPrintingEnabled()) { - fprintf (statsOut, "Thread %d\n", t); - printStats(statsOut, (*it)->getTimers(), true); - printCounters(statsOut, (*it)->getCounters()); - fprintf(statsOut,"\n"); - } - // Output per thread events if requested. - if (eventPrintingEnabled()) { - kmp_stats_event_vector events = (*it)->getEventVector(); - printEvents(eventsOut, &events, t); - } - - for (int s = 0; s<TIMER_LAST; s++) { - // See if we should ignore this timer when aggregating - if ((timeStat::masterOnly(timer_e(s)) && (t != 0)) || // Timer is only valid on the master and this thread is a worker - (timeStat::workerOnly(timer_e(s)) && (t == 0)) || // Timer is only valid on a worker and this thread is the master - timeStat::synthesized(timer_e(s)) // It's a synthesized stat, so there's no raw data for it. - ) - { - continue; - } - - statistic * threadStat = (*it)->getTimer(timer_e(s)); - allStats[s] += *threadStat; - } - - // Special handling for synthesized statistics. - // These just have to be coded specially here for now. - // At present we only have a few: - // The total parallel work done in each thread. - // The variance here makes it easy to see load imbalance over the whole program (though, of course, - // it's possible to have a code with awful load balance in every parallel region but perfect load - // balance oever the whole program.) - // The time spent in barriers in each thread. - allStats[TIMER_Total_work].addSample ((*it)->getTimer(TIMER_OMP_work)->getTotal()); - - // Time in explicit barriers. - allStats[TIMER_Total_barrier].addSample ((*it)->getTimer(TIMER_OMP_barrier)->getTotal()); - - for (int c = 0; c<COUNTER_LAST; c++) { - if (counter::masterOnly(counter_e(c)) && t != 0) - continue; - allCounters[c].addSample ((*it)->getCounter(counter_e(c))->getValue()); - } - } - - if (eventPrintingEnabled()) { - printPloticusFile(); - fclose(eventsOut); - } - - fprintf (statsOut, "Aggregate for all threads\n"); - printStats (statsOut, &allStats[0], true); - fprintf (statsOut, "\n"); - printStats (statsOut, &allCounters[0], false); - - if (statsOut != stderr) - fclose(statsOut); - -} - -/* ************************************************** */ -/* ************* exported C functions ************** */ - -// no name mangling for these functions, we want the c files to be able to get at these functions -extern "C" { - -void __kmp_reset_stats() -{ - kmp_stats_list::iterator it; - for(it = __kmp_stats_list.begin(); it != __kmp_stats_list.end(); it++) { - timeStat * timers = (*it)->getTimers(); - counter * counters = (*it)->getCounters(); - explicitTimer * eTimers = (*it)->getExplicitTimers(); - - for (int t = 0; t<TIMER_LAST; t++) - timers[t].reset(); - - for (int c = 0; c<COUNTER_LAST; c++) - counters[c].reset(); - - for (int t=0; t<EXPLICIT_TIMER_LAST; t++) - eTimers[t].reset(); - - // reset the event vector so all previous events are "erased" - (*it)->resetEventVector(); - - // May need to restart the explicit timers in thread zero? - } - KMP_START_EXPLICIT_TIMER(OMP_serial); - KMP_START_EXPLICIT_TIMER(OMP_start_end); -} - -// This function will reset all stats and stop all threads' explicit timers if they haven't been stopped already. -void __kmp_output_stats(const char * heading) -{ - __kmp_stats_global_output.outputStats(heading); - __kmp_reset_stats(); -} - -void __kmp_accumulate_stats_at_exit(void) -{ - // Only do this once. - if (KMP_XCHG_FIXED32(&statsPrinted, 1) != 0) - return; - - __kmp_output_stats("Statistics on exit"); - return; -} - -void __kmp_stats_init(void) -{ - return; -} - -} // extern "C" - diff --git a/contrib/libs/cxxsupp/openmp/kmp_stats.h b/contrib/libs/cxxsupp/openmp/kmp_stats.h index 20cec3efcc..5f5bb5a18a 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_stats.h +++ b/contrib/libs/cxxsupp/openmp/kmp_stats.h @@ -30,7 +30,7 @@ #include <string> #include <stdint.h> #include <new> // placement new -#include "kmp_stats_timing.h" +#error #include "kmp_stats_timing.h" /* * Enable developer statistics here if you want them. They are more detailed than is useful for application characterisation and diff --git a/contrib/libs/cxxsupp/openmp/kmp_stats_timing.cpp b/contrib/libs/cxxsupp/openmp/kmp_stats_timing.cpp deleted file mode 100644 index 40e29eb0d8..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_stats_timing.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/** @file kmp_stats_timing.cpp - * Timing functions - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#include <stdlib.h> -#include <unistd.h> - -#include <iostream> -#include <iomanip> -#include <sstream> - -#include "kmp.h" -#include "kmp_stats_timing.h" - -using namespace std; - -#if KMP_HAVE_TICK_TIME -# if KMP_MIC -double tsc_tick_count::tick_time() -{ - // pretty bad assumption of 1GHz clock for MIC - return 1/((double)1000*1.e6); -} -# elif KMP_ARCH_X86 || KMP_ARCH_X86_64 -# include <string.h> -// Extract the value from the CPUID information -double tsc_tick_count::tick_time() -{ - static double result = 0.0; - - if (result == 0.0) - { - kmp_cpuid_t cpuinfo; - char brand[256]; - - __kmp_x86_cpuid(0x80000000, 0, &cpuinfo); - memset(brand, 0, sizeof(brand)); - int ids = cpuinfo.eax; - - for (unsigned int i=2; i<(ids^0x80000000)+2; i++) - __kmp_x86_cpuid(i | 0x80000000, 0, (kmp_cpuid_t*)(brand+(i-2)*sizeof(kmp_cpuid_t))); - - char * start = &brand[0]; - for (;*start == ' '; start++) - ; - - char * end = brand + KMP_STRLEN(brand) - 3; - uint64_t multiplier; - - if (*end == 'M') multiplier = 1000LL*1000LL; - else if (*end == 'G') multiplier = 1000LL*1000LL*1000LL; - else if (*end == 'T') multiplier = 1000LL*1000LL*1000LL*1000LL; - else - { - cout << "Error determining multiplier '" << *end << "'\n"; - exit (-1); - } - *end = 0; - while (*end != ' ') end--; - end++; - - double freq = strtod(end, &start); - if (freq == 0.0) - { - cout << "Error calculating frequency " << end << "\n"; - exit (-1); - } - - result = ((double)1.0)/(freq * multiplier); - } - return result; -} -# endif -#endif - -static bool useSI = true; - -// Return a formatted string after normalising the value into -// engineering style and using a suitable unit prefix (e.g. ms, us, ns). -std::string formatSI(double interval, int width, char unit) -{ - std::stringstream os; - - if (useSI) - { - // Preserve accuracy for small numbers, since we only multiply and the positive powers - // of ten are precisely representable. - static struct { double scale; char prefix; } ranges[] = { - {1.e12,'f'}, - {1.e9, 'p'}, - {1.e6, 'n'}, - {1.e3, 'u'}, - {1.0, 'm'}, - {1.e-3,' '}, - {1.e-6,'k'}, - {1.e-9,'M'}, - {1.e-12,'G'}, - {1.e-15,'T'}, - {1.e-18,'P'}, - {1.e-21,'E'}, - {1.e-24,'Z'}, - {1.e-27,'Y'} - }; - - if (interval == 0.0) - { - os << std::setw(width-3) << std::right << "0.00" << std::setw(3) << unit; - return os.str(); - } - - bool negative = false; - if (interval < 0.0) - { - negative = true; - interval = -interval; - } - - for (int i=0; i<(int)(sizeof(ranges)/sizeof(ranges[0])); i++) - { - if (interval*ranges[i].scale < 1.e0) - { - interval = interval * 1000.e0 * ranges[i].scale; - os << std::fixed << std::setprecision(2) << std::setw(width-3) << std::right << - (negative ? -interval : interval) << std::setw(2) << ranges[i].prefix << std::setw(1) << unit; - - return os.str(); - } - } - } - os << std::setprecision(2) << std::fixed << std::right << std::setw(width-3) << interval << std::setw(3) << unit; - - return os.str(); -} - -tsc_tick_count::tsc_interval_t computeLastInLastOutInterval(timePair * times, int nTimes) -{ - timePair lastTimes = times[0]; - tsc_tick_count * startp = lastTimes.get_startp(); - tsc_tick_count * endp = lastTimes.get_endp(); - - for (int i=1; i<nTimes; i++) - { - (*startp) = startp->later(times[i].get_start()); - (*endp) = endp->later (times[i].get_end()); - } - - return lastTimes.duration(); -} - -std::string timePair::format() const -{ - std::ostringstream oss; - - oss << start.getValue() << ":" << end.getValue() << " = " << (end-start).getValue(); - - return oss.str(); -} diff --git a/contrib/libs/cxxsupp/openmp/kmp_stats_timing.h b/contrib/libs/cxxsupp/openmp/kmp_stats_timing.h deleted file mode 100644 index 83fb85bea3..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_stats_timing.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef KMP_STATS_TIMING_H -#define KMP_STATS_TIMING_H - -/** @file kmp_stats_timing.h - * Access to real time clock and timers. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - - -#include <stdint.h> -#include <string> -#include <limits> -#include "kmp_os.h" - -class tsc_tick_count { - private: - int64_t my_count; - - public: - class tsc_interval_t { - int64_t value; - explicit tsc_interval_t(int64_t _value) : value(_value) {} - public: - tsc_interval_t() : value(0) {}; // Construct 0 time duration -#if KMP_HAVE_TICK_TIME - double seconds() const; // Return the length of a time interval in seconds -#endif - double ticks() const { return double(value); } - int64_t getValue() const { return value; } - - friend class tsc_tick_count; - - friend tsc_interval_t operator-( - const tsc_tick_count t1, const tsc_tick_count t0); - }; - - tsc_tick_count() : my_count(static_cast<int64_t>(__rdtsc())) {}; - tsc_tick_count(int64_t value) : my_count(value) {}; - int64_t getValue() const { return my_count; } - tsc_tick_count later (tsc_tick_count const other) const { - return my_count > other.my_count ? (*this) : other; - } - tsc_tick_count earlier(tsc_tick_count const other) const { - return my_count < other.my_count ? (*this) : other; - } -#if KMP_HAVE_TICK_TIME - static double tick_time(); // returns seconds per cycle (period) of clock -#endif - static tsc_tick_count now() { return tsc_tick_count(); } // returns the rdtsc register value - friend tsc_tick_count::tsc_interval_t operator-(const tsc_tick_count t1, const tsc_tick_count t0); -}; - -inline tsc_tick_count::tsc_interval_t operator-(const tsc_tick_count t1, const tsc_tick_count t0) -{ - return tsc_tick_count::tsc_interval_t( t1.my_count-t0.my_count ); -} - -#if KMP_HAVE_TICK_TIME -inline double tsc_tick_count::tsc_interval_t::seconds() const -{ - return value*tick_time(); -} -#endif - -extern std::string formatSI(double interval, int width, char unit); - -inline std::string formatSeconds(double interval, int width) -{ - return formatSI(interval, width, 'S'); -} - -inline std::string formatTicks(double interval, int width) -{ - return formatSI(interval, width, 'T'); -} - -class timePair -{ - tsc_tick_count KMP_ALIGN_CACHE start; - tsc_tick_count end; - -public: - timePair() : start(-std::numeric_limits<int64_t>::max()), end(-std::numeric_limits<int64_t>::max()) {} - tsc_tick_count get_start() const { return start; } - tsc_tick_count get_end() const { return end; } - tsc_tick_count * get_startp() { return &start; } - tsc_tick_count * get_endp() { return &end; } - - void markStart() { start = tsc_tick_count::now(); } - void markEnd() { end = tsc_tick_count::now(); } - void set_start(tsc_tick_count s) { start = s; } - void set_end (tsc_tick_count e) { end = e; } - - tsc_tick_count::tsc_interval_t duration() const { return end-start; } - std::string format() const; - -}; - -extern tsc_tick_count::tsc_interval_t computeLastInLastOutInterval(timePair * times, int nTimes); -#endif // KMP_STATS_TIMING_H diff --git a/contrib/libs/cxxsupp/openmp/kmp_stub.c b/contrib/libs/cxxsupp/openmp/kmp_stub.c deleted file mode 100644 index 1e0953a0fc..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_stub.c +++ /dev/null @@ -1,252 +0,0 @@ -/* - * kmp_stub.c -- stub versions of user-callable OpenMP RT functions. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#include <stdlib.h> -#include <limits.h> -#include <errno.h> - -#include "omp.h" // Function renamings. -#include "kmp.h" // KMP_DEFAULT_STKSIZE -#include "kmp_stub.h" - -#if KMP_OS_WINDOWS - #include <windows.h> -#else - #include <sys/time.h> -#endif - -// Moved from omp.h -#define omp_set_max_active_levels ompc_set_max_active_levels -#define omp_set_schedule ompc_set_schedule -#define omp_get_ancestor_thread_num ompc_get_ancestor_thread_num -#define omp_get_team_size ompc_get_team_size - -#define omp_set_num_threads ompc_set_num_threads -#define omp_set_dynamic ompc_set_dynamic -#define omp_set_nested ompc_set_nested -#define kmp_set_stacksize kmpc_set_stacksize -#define kmp_set_stacksize_s kmpc_set_stacksize_s -#define kmp_set_blocktime kmpc_set_blocktime -#define kmp_set_library kmpc_set_library -#define kmp_set_defaults kmpc_set_defaults -#define kmp_malloc kmpc_malloc -#define kmp_calloc kmpc_calloc -#define kmp_realloc kmpc_realloc -#define kmp_free kmpc_free - -static double frequency = 0.0; - -// Helper functions. -static size_t __kmps_init() { - static int initialized = 0; - static size_t dummy = 0; - if ( ! initialized ) { - - // TODO: Analyze KMP_VERSION environment variable, print __kmp_version_copyright and - // __kmp_version_build_time. - // WARNING: Do not use "fprintf( stderr, ... )" because it will cause unresolved "__iob" - // symbol (see C70080). We need to extract __kmp_printf() stuff from kmp_runtime.c and use - // it. - - // Trick with dummy variable forces linker to keep __kmp_version_copyright and - // __kmp_version_build_time strings in executable file (in case of static linkage). - // When KMP_VERSION analyze is implemented, dummy variable should be deleted, function - // should return void. - dummy = __kmp_version_copyright - __kmp_version_build_time; - - #if KMP_OS_WINDOWS - LARGE_INTEGER freq; - BOOL status = QueryPerformanceFrequency( & freq ); - if ( status ) { - frequency = double( freq.QuadPart ); - }; // if - #endif - - initialized = 1; - }; // if - return dummy; -}; // __kmps_init - -#define i __kmps_init(); - -/* set API functions */ -void omp_set_num_threads( omp_int_t num_threads ) { i; } -void omp_set_dynamic( omp_int_t dynamic ) { i; __kmps_set_dynamic( dynamic ); } -void omp_set_nested( omp_int_t nested ) { i; __kmps_set_nested( nested ); } -void omp_set_max_active_levels( omp_int_t max_active_levels ) { i; } -void omp_set_schedule( omp_sched_t kind, omp_int_t modifier ) { i; __kmps_set_schedule( (kmp_sched_t)kind, modifier ); } -int omp_get_ancestor_thread_num( omp_int_t level ) { i; return ( level ) ? ( -1 ) : ( 0 ); } -int omp_get_team_size( omp_int_t level ) { i; return ( level ) ? ( -1 ) : ( 1 ); } -int kmpc_set_affinity_mask_proc( int proc, void **mask ) { i; return -1; } -int kmpc_unset_affinity_mask_proc( int proc, void **mask ) { i; return -1; } -int kmpc_get_affinity_mask_proc( int proc, void **mask ) { i; return -1; } - -/* kmp API functions */ -void kmp_set_stacksize( omp_int_t arg ) { i; __kmps_set_stacksize( arg ); } -void kmp_set_stacksize_s( size_t arg ) { i; __kmps_set_stacksize( arg ); } -void kmp_set_blocktime( omp_int_t arg ) { i; __kmps_set_blocktime( arg ); } -void kmp_set_library( omp_int_t arg ) { i; __kmps_set_library( arg ); } -void kmp_set_defaults( char const * str ) { i; } - -/* KMP memory management functions. */ -void * kmp_malloc( size_t size ) { i; return malloc( size ); } -void * kmp_calloc( size_t nelem, size_t elsize ) { i; return calloc( nelem, elsize ); } -void * kmp_realloc( void *ptr, size_t size ) { i; return realloc( ptr, size ); } -void kmp_free( void * ptr ) { i; free( ptr ); } - -static int __kmps_blocktime = INT_MAX; - -void __kmps_set_blocktime( int arg ) { - i; - __kmps_blocktime = arg; -} // __kmps_set_blocktime - -int __kmps_get_blocktime( void ) { - i; - return __kmps_blocktime; -} // __kmps_get_blocktime - -static int __kmps_dynamic = 0; - -void __kmps_set_dynamic( int arg ) { - i; - __kmps_dynamic = arg; -} // __kmps_set_dynamic - -int __kmps_get_dynamic( void ) { - i; - return __kmps_dynamic; -} // __kmps_get_dynamic - -static int __kmps_library = 1000; - -void __kmps_set_library( int arg ) { - i; - __kmps_library = arg; -} // __kmps_set_library - -int __kmps_get_library( void ) { - i; - return __kmps_library; -} // __kmps_get_library - -static int __kmps_nested = 0; - -void __kmps_set_nested( int arg ) { - i; - __kmps_nested = arg; -} // __kmps_set_nested - -int __kmps_get_nested( void ) { - i; - return __kmps_nested; -} // __kmps_get_nested - -static size_t __kmps_stacksize = KMP_DEFAULT_STKSIZE; - -void __kmps_set_stacksize( int arg ) { - i; - __kmps_stacksize = arg; -} // __kmps_set_stacksize - -int __kmps_get_stacksize( void ) { - i; - return __kmps_stacksize; -} // __kmps_get_stacksize - -static kmp_sched_t __kmps_sched_kind = kmp_sched_default; -static int __kmps_sched_modifier = 0; - - void __kmps_set_schedule( kmp_sched_t kind, int modifier ) { - i; - __kmps_sched_kind = kind; - __kmps_sched_modifier = modifier; - } // __kmps_set_schedule - - void __kmps_get_schedule( kmp_sched_t *kind, int *modifier ) { - i; - *kind = __kmps_sched_kind; - *modifier = __kmps_sched_modifier; - } // __kmps_get_schedule - -#if OMP_40_ENABLED - -static kmp_proc_bind_t __kmps_proc_bind = proc_bind_false; - -void __kmps_set_proc_bind( kmp_proc_bind_t arg ) { - i; - __kmps_proc_bind = arg; -} // __kmps_set_proc_bind - -kmp_proc_bind_t __kmps_get_proc_bind( void ) { - i; - return __kmps_proc_bind; -} // __kmps_get_proc_bind - -#endif /* OMP_40_ENABLED */ - -double __kmps_get_wtime( void ) { - // Elapsed wall clock time (in second) from "sometime in the past". - double wtime = 0.0; - i; - #if KMP_OS_WINDOWS - if ( frequency > 0.0 ) { - LARGE_INTEGER now; - BOOL status = QueryPerformanceCounter( & now ); - if ( status ) { - wtime = double( now.QuadPart ) / frequency; - }; // if - }; // if - #else - // gettimeofday() returns seconds and microseconds since the Epoch. - struct timeval tval; - int rc; - rc = gettimeofday( & tval, NULL ); - if ( rc == 0 ) { - wtime = (double)( tval.tv_sec ) + 1.0E-06 * (double)( tval.tv_usec ); - } else { - // TODO: Assert or abort here. - }; // if - #endif - return wtime; -}; // __kmps_get_wtime - -double __kmps_get_wtick( void ) { - // Number of seconds between successive clock ticks. - double wtick = 0.0; - i; - #if KMP_OS_WINDOWS - { - DWORD increment; - DWORD adjustment; - BOOL disabled; - BOOL rc; - rc = GetSystemTimeAdjustment( & adjustment, & increment, & disabled ); - if ( rc ) { - wtick = 1.0E-07 * (double)( disabled ? increment : adjustment ); - } else { - // TODO: Assert or abort here. - wtick = 1.0E-03; - }; // if - } - #else - // TODO: gettimeofday() returns in microseconds, but what the precision? - wtick = 1.0E-06; - #endif - return wtick; -}; // __kmps_get_wtick - -// end of file // - diff --git a/contrib/libs/cxxsupp/openmp/kmp_stub.h b/contrib/libs/cxxsupp/openmp/kmp_stub.h deleted file mode 100644 index cdcffa3d8c..0000000000 --- a/contrib/libs/cxxsupp/openmp/kmp_stub.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * kmp_stub.h - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#ifndef KMP_STUB_H -#define KMP_STUB_H - -#ifdef __cplusplus - extern "C" { -#endif // __cplusplus - -void __kmps_set_blocktime( int arg ); -int __kmps_get_blocktime( void ); -void __kmps_set_dynamic( int arg ); -int __kmps_get_dynamic( void ); -void __kmps_set_library( int arg ); -int __kmps_get_library( void ); -void __kmps_set_nested( int arg ); -int __kmps_get_nested( void ); -void __kmps_set_stacksize( int arg ); -int __kmps_get_stacksize(); - -#ifndef KMP_SCHED_TYPE_DEFINED -#define KMP_SCHED_TYPE_DEFINED -typedef enum kmp_sched { - kmp_sched_static = 1, // mapped to kmp_sch_static_chunked (33) - kmp_sched_dynamic = 2, // mapped to kmp_sch_dynamic_chunked (35) - kmp_sched_guided = 3, // mapped to kmp_sch_guided_chunked (36) - kmp_sched_auto = 4, // mapped to kmp_sch_auto (38) - kmp_sched_default = kmp_sched_static // default scheduling -} kmp_sched_t; -#endif -void __kmps_set_schedule( kmp_sched_t kind, int modifier ); -void __kmps_get_schedule( kmp_sched_t *kind, int *modifier ); - -#if OMP_40_ENABLED -void __kmps_set_proc_bind( kmp_proc_bind_t arg ); -kmp_proc_bind_t __kmps_get_proc_bind( void ); -#endif /* OMP_40_ENABLED */ - -double __kmps_get_wtime(); -double __kmps_get_wtick(); - -#ifdef __cplusplus - } // extern "C" -#endif // __cplusplus - -#endif // KMP_STUB_H - -// end of file // diff --git a/contrib/libs/cxxsupp/openmp/kmp_tasking.c b/contrib/libs/cxxsupp/openmp/kmp_tasking.c index 432f919231..47e989ff78 100644 --- a/contrib/libs/cxxsupp/openmp/kmp_tasking.c +++ b/contrib/libs/cxxsupp/openmp/kmp_tasking.c @@ -20,7 +20,7 @@ #include "kmp_stats.h" #if OMPT_SUPPORT -#include "ompt-specific.h" +#error #include "ompt-specific.h" #endif diff --git a/contrib/libs/cxxsupp/openmp/libomp.rc.var b/contrib/libs/cxxsupp/openmp/libomp.rc.var deleted file mode 100644 index cf6a9c9efa..0000000000 --- a/contrib/libs/cxxsupp/openmp/libomp.rc.var +++ /dev/null @@ -1,70 +0,0 @@ -// libomp.rc.var - -// -////===----------------------------------------------------------------------===// -//// -//// The LLVM Compiler Infrastructure -//// -//// This file is dual licensed under the MIT and the University of Illinois Open -//// Source Licenses. See LICENSE.txt for details. -//// -////===----------------------------------------------------------------------===// -// - -#include "winres.h" -#include "kmp_config.h" - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // English (U.S.) resources -#pragma code_page(1252) - -VS_VERSION_INFO VERSIONINFO - // Parts of FILEVERSION and PRODUCTVERSION are 16-bit fields, entire build date yyyymmdd - // does not fit into one version part, so we need to split it into yyyy and mmdd: - FILEVERSION @LIBOMP_VERSION_MAJOR@,@LIBOMP_VERSION_MINOR@,@LIBOMP_VERSION_BUILD_YEAR@,@LIBOMP_VERSION_BUILD_MONTH_DAY@ - PRODUCTVERSION @LIBOMP_VERSION_MAJOR@,@LIBOMP_VERSION_MINOR@,@LIBOMP_VERSION_BUILD_YEAR@,@LIBOMP_VERSION_BUILD_MONTH_DAY@ - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK - FILEFLAGS 0 -#if KMP_DEBUG - | VS_FF_DEBUG -#endif -#if @LIBOMP_VERSION_BUILD@ == 0 - | VS_FF_PRIVATEBUILD | VS_FF_PRERELEASE -#endif - FILEOS VOS_NT_WINDOWS32 // Windows* Server* 2003, XP*, 2000, or NT* - FILETYPE VFT_DLL - BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" // U.S. English, Unicode (0x04b0 == 1200) - BEGIN - - // FileDescription and LegalCopyright should be short. - VALUE "FileDescription", "LLVM* OpenMP* Runtime Library\0" - // Following values may be relatively long. - VALUE "CompanyName", "LLVM\0" - // VALUE "LegalTrademarks", "\0" // Not used for now. - VALUE "ProductName", "LLVM* OpenMP* Runtime Library\0" - VALUE "ProductVersion", "@LIBOMP_VERSION_MAJOR@.@LIBOMP_VERSION_MINOR@\0" - VALUE "FileVersion", "@LIBOMP_VERSION_BUILD@\0" - VALUE "InternalName", "@LIBOMP_LIB_FILE@\0" - VALUE "OriginalFilename", "@LIBOMP_LIB_FILE@\0" - VALUE "Comments", - "LLVM* OpenMP* @LIBOMP_LEGAL_TYPE@ Library " - "version @LIBOMP_VERSION_MAJOR@.@LIBOMP_VERSION_MINOR@.@LIBOMP_VERSION_BUILD@ " - "for @LIBOMP_LEGAL_ARCH@ architecture built on @LIBOMP_BUILD_DATE@.\0" -#if @LIBOMP_VERSION_BUILD@ == 0 - VALUE "PrivateBuild", - "This is a development build.\0" -#endif - // VALUE "SpecialBuild", "\0" // Not used for now. - - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 1033, 1200 - // 1033 -- U.S. English, 1200 -- Unicode - END - END - -// end of file // diff --git a/contrib/libs/cxxsupp/openmp/ompt-event-specific.h b/contrib/libs/cxxsupp/openmp/ompt-event-specific.h deleted file mode 100644 index 28c1512ac2..0000000000 --- a/contrib/libs/cxxsupp/openmp/ompt-event-specific.h +++ /dev/null @@ -1,144 +0,0 @@ -#ifndef __OMPT_EVENT_SPECIFIC_H__ -#define __OMPT_EVENT_SPECIFIC_H__ - -/****************************************************************************** - * File: ompt-event-specific.h - * - * Description: - * - * specify which of the OMPT events are implemented by this runtime system - * and the level of their implementation by a runtime system. - *****************************************************************************/ - -#define _ompt_tokenpaste_helper(x,y) x ## y -#define _ompt_tokenpaste(x,y) _ompt_tokenpaste_helper(x,y) -#define ompt_event_implementation_status(e) _ompt_tokenpaste(e,_implemented) - - -/*---------------------------------------------------------------------------- - | Specify whether an event may occur or not, and whether event callbacks - | never, sometimes, or always occur. - | - | The values for these constants are defined in section 6.1.2 of - | the OMPT TR. They are exposed to tools through ompt_set_callback. - +--------------------------------------------------------------------------*/ - -#define ompt_event_NEVER ompt_set_result_event_never_occurs -#define ompt_event_UNIMPLEMENTED ompt_set_result_event_may_occur_no_callback -#define ompt_event_MAY_CONVENIENT ompt_set_result_event_may_occur_callback_some -#define ompt_event_MAY_ALWAYS ompt_set_result_event_may_occur_callback_always - -#if OMPT_TRACE -#define ompt_event_MAY_ALWAYS_TRACE ompt_event_MAY_ALWAYS -#else -#define ompt_event_MAY_ALWAYS_TRACE ompt_event_UNIMPLEMENTED -#endif - -#if OMPT_BLAME -#define ompt_event_MAY_ALWAYS_BLAME ompt_event_MAY_ALWAYS -#else -#define ompt_event_MAY_ALWAYS_BLAME ompt_event_UNIMPLEMENTED -#endif - -/*---------------------------------------------------------------------------- - | Mandatory Events - +--------------------------------------------------------------------------*/ - -#define ompt_event_parallel_begin_implemented ompt_event_MAY_ALWAYS -#define ompt_event_parallel_end_implemented ompt_event_MAY_ALWAYS - -#define ompt_event_task_begin_implemented ompt_event_MAY_ALWAYS -#define ompt_event_task_end_implemented ompt_event_MAY_ALWAYS - -#define ompt_event_thread_begin_implemented ompt_event_MAY_ALWAYS -#define ompt_event_thread_end_implemented ompt_event_MAY_ALWAYS - -#define ompt_event_control_implemented ompt_event_MAY_ALWAYS - -#define ompt_event_runtime_shutdown_implemented ompt_event_MAY_ALWAYS - - -/*---------------------------------------------------------------------------- - | Optional Events (blame shifting) - +--------------------------------------------------------------------------*/ - -#define ompt_event_idle_begin_implemented ompt_event_MAY_ALWAYS_BLAME -#define ompt_event_idle_end_implemented ompt_event_MAY_ALWAYS_BLAME - -#define ompt_event_wait_barrier_begin_implemented ompt_event_MAY_ALWAYS_BLAME -#define ompt_event_wait_barrier_end_implemented ompt_event_MAY_ALWAYS_BLAME - -#define ompt_event_wait_taskwait_begin_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_wait_taskwait_end_implemented ompt_event_UNIMPLEMENTED - -#define ompt_event_wait_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_wait_taskgroup_end_implemented ompt_event_UNIMPLEMENTED - -#define ompt_event_release_lock_implemented ompt_event_MAY_ALWAYS_BLAME -#define ompt_event_release_nest_lock_last_implemented ompt_event_MAY_ALWAYS_BLAME -#define ompt_event_release_critical_implemented ompt_event_MAY_ALWAYS_BLAME -#define ompt_event_release_atomic_implemented ompt_event_MAY_ALWAYS_BLAME -#define ompt_event_release_ordered_implemented ompt_event_MAY_ALWAYS_BLAME - - -/*---------------------------------------------------------------------------- - | Optional Events (synchronous events) - +--------------------------------------------------------------------------*/ - -#define ompt_event_implicit_task_begin_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_implicit_task_end_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_initial_task_begin_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_initial_task_end_implemented ompt_event_UNIMPLEMENTED - -#define ompt_event_task_switch_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_loop_begin_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_loop_end_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_sections_begin_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_sections_end_implemented ompt_event_UNIMPLEMENTED - -#define ompt_event_single_in_block_begin_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_single_in_block_end_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_single_others_begin_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_single_others_end_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_workshare_begin_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_workshare_end_implemented ompt_event_UNIMPLEMENTED - -#define ompt_event_master_begin_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_master_end_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_barrier_begin_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_barrier_end_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_taskwait_begin_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_taskwait_end_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_taskgroup_begin_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_taskgroup_end_implemented ompt_event_UNIMPLEMENTED - -#define ompt_event_release_nest_lock_prev_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_wait_lock_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_wait_nest_lock_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_wait_critical_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_wait_atomic_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_wait_ordered_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_acquired_lock_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_acquired_nest_lock_first_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_acquired_nest_lock_next_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_acquired_critical_implemented ompt_event_UNIMPLEMENTED -#define ompt_event_acquired_atomic_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_acquired_ordered_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_init_lock_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_init_nest_lock_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_destroy_lock_implemented ompt_event_MAY_ALWAYS_TRACE -#define ompt_event_destroy_nest_lock_implemented ompt_event_MAY_ALWAYS_TRACE - -#define ompt_event_flush_implemented ompt_event_UNIMPLEMENTED - -#endif diff --git a/contrib/libs/cxxsupp/openmp/ompt-general.c b/contrib/libs/cxxsupp/openmp/ompt-general.c deleted file mode 100644 index 4daae81917..0000000000 --- a/contrib/libs/cxxsupp/openmp/ompt-general.c +++ /dev/null @@ -1,535 +0,0 @@ -/***************************************************************************** - * system include files - ****************************************************************************/ - -#include <assert.h> - -#include <stdint.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - - - -/***************************************************************************** - * ompt include files - ****************************************************************************/ - -#include "ompt-specific.c" - - - -/***************************************************************************** - * macros - ****************************************************************************/ - -#define ompt_get_callback_success 1 -#define ompt_get_callback_failure 0 - -#define no_tool_present 0 - -#define OMPT_API_ROUTINE static - -#ifndef OMPT_STR_MATCH -#define OMPT_STR_MATCH(haystack, needle) (!strcasecmp(haystack, needle)) -#endif - - -/***************************************************************************** - * types - ****************************************************************************/ - -typedef struct { - const char *state_name; - ompt_state_t state_id; -} ompt_state_info_t; - - -enum tool_setting_e { - omp_tool_error, - omp_tool_unset, - omp_tool_disabled, - omp_tool_enabled -}; - - -typedef void (*ompt_initialize_t) ( - ompt_function_lookup_t ompt_fn_lookup, - const char *version, - unsigned int ompt_version -); - - - -/***************************************************************************** - * global variables - ****************************************************************************/ - -int ompt_enabled = 0; - -ompt_state_info_t ompt_state_info[] = { -#define ompt_state_macro(state, code) { # state, state }, - FOREACH_OMPT_STATE(ompt_state_macro) -#undef ompt_state_macro -}; - -ompt_callbacks_t ompt_callbacks; - -static ompt_initialize_t ompt_initialize_fn = NULL; - - - -/***************************************************************************** - * forward declarations - ****************************************************************************/ - -static ompt_interface_fn_t ompt_fn_lookup(const char *s); - -OMPT_API_ROUTINE ompt_thread_id_t ompt_get_thread_id(void); - - -/***************************************************************************** - * initialization and finalization (private operations) - ****************************************************************************/ - -/* On Unix-like systems that support weak symbols the following implementation - * of ompt_tool() will be used in case no tool-supplied implementation of - * this function is present in the address space of a process. - * - * On Windows, the ompt_tool_windows function is used to find the - * ompt_tool symbol across all modules loaded by a process. If ompt_tool is - * found, ompt_tool's return value is used to initialize the tool. Otherwise, - * NULL is returned and OMPT won't be enabled */ -#if OMPT_HAVE_WEAK_ATTRIBUTE -_OMP_EXTERN -__attribute__ (( weak )) -ompt_initialize_t ompt_tool() -{ -#if OMPT_DEBUG - printf("ompt_tool() is called from the RTL\n"); -#endif - return NULL; -} - -#elif OMPT_HAVE_PSAPI - -#include <psapi.h> -#pragma comment(lib, "psapi.lib") -#define ompt_tool ompt_tool_windows - -// The number of loaded modules to start enumeration with EnumProcessModules() -#define NUM_MODULES 128 - -static -ompt_initialize_t ompt_tool_windows() -{ - int i; - DWORD needed, new_size; - HMODULE *modules; - HANDLE process = GetCurrentProcess(); - modules = (HMODULE*)malloc( NUM_MODULES * sizeof(HMODULE) ); - ompt_initialize_t (*ompt_tool_p)() = NULL; - -#if OMPT_DEBUG - printf("ompt_tool_windows(): looking for ompt_tool\n"); -#endif - if (!EnumProcessModules( process, modules, NUM_MODULES * sizeof(HMODULE), - &needed)) { - // Regardless of the error reason use the stub initialization function - free(modules); - return NULL; - } - // Check if NUM_MODULES is enough to list all modules - new_size = needed / sizeof(HMODULE); - if (new_size > NUM_MODULES) { -#if OMPT_DEBUG - printf("ompt_tool_windows(): resize buffer to %d bytes\n", needed); -#endif - modules = (HMODULE*)realloc( modules, needed ); - // If resizing failed use the stub function. - if (!EnumProcessModules(process, modules, needed, &needed)) { - free(modules); - return NULL; - } - } - for (i = 0; i < new_size; ++i) { - (FARPROC &)ompt_tool_p = GetProcAddress(modules[i], "ompt_tool"); - if (ompt_tool_p) { -#if OMPT_DEBUG - TCHAR modName[MAX_PATH]; - if (GetModuleFileName(modules[i], modName, MAX_PATH)) - printf("ompt_tool_windows(): ompt_tool found in module %s\n", - modName); -#endif - free(modules); - return ompt_tool_p(); - } -#if OMPT_DEBUG - else { - TCHAR modName[MAX_PATH]; - if (GetModuleFileName(modules[i], modName, MAX_PATH)) - printf("ompt_tool_windows(): ompt_tool not found in module %s\n", - modName); - } -#endif - } - free(modules); - return NULL; -} -#else -# error Either __attribute__((weak)) or psapi.dll are required for OMPT support -#endif // OMPT_HAVE_WEAK_ATTRIBUTE - -void ompt_pre_init() -{ - //-------------------------------------------------- - // Execute the pre-initialization logic only once. - //-------------------------------------------------- - static int ompt_pre_initialized = 0; - - if (ompt_pre_initialized) return; - - ompt_pre_initialized = 1; - - //-------------------------------------------------- - // Use a tool iff a tool is enabled and available. - //-------------------------------------------------- - const char *ompt_env_var = getenv("OMP_TOOL"); - tool_setting_e tool_setting = omp_tool_error; - - if (!ompt_env_var || !strcmp(ompt_env_var, "")) - tool_setting = omp_tool_unset; - else if (OMPT_STR_MATCH(ompt_env_var, "disabled")) - tool_setting = omp_tool_disabled; - else if (OMPT_STR_MATCH(ompt_env_var, "enabled")) - tool_setting = omp_tool_enabled; - -#if OMPT_DEBUG - printf("ompt_pre_init(): tool_setting = %d\n", tool_setting); -#endif - switch(tool_setting) { - case omp_tool_disabled: - break; - - case omp_tool_unset: - case omp_tool_enabled: - ompt_initialize_fn = ompt_tool(); - if (ompt_initialize_fn) { - ompt_enabled = 1; - } - break; - - case omp_tool_error: - fprintf(stderr, - "Warning: OMP_TOOL has invalid value \"%s\".\n" - " legal values are (NULL,\"\",\"disabled\"," - "\"enabled\").\n", ompt_env_var); - break; - } -#if OMPT_DEBUG - printf("ompt_pre_init(): ompt_enabled = %d\n", ompt_enabled); -#endif -} - - -void ompt_post_init() -{ - //-------------------------------------------------- - // Execute the post-initialization logic only once. - //-------------------------------------------------- - static int ompt_post_initialized = 0; - - if (ompt_post_initialized) return; - - ompt_post_initialized = 1; - - //-------------------------------------------------- - // Initialize the tool if so indicated. - //-------------------------------------------------- - if (ompt_enabled) { - ompt_initialize_fn(ompt_fn_lookup, ompt_get_runtime_version(), - OMPT_VERSION); - - ompt_thread_t *root_thread = ompt_get_thread(); - - ompt_set_thread_state(root_thread, ompt_state_overhead); - - if (ompt_callbacks.ompt_callback(ompt_event_thread_begin)) { - ompt_callbacks.ompt_callback(ompt_event_thread_begin) - (ompt_thread_initial, ompt_get_thread_id()); - } - - ompt_set_thread_state(root_thread, ompt_state_work_serial); - } -} - - -void ompt_fini() -{ - if (ompt_enabled) { - if (ompt_callbacks.ompt_callback(ompt_event_runtime_shutdown)) { - ompt_callbacks.ompt_callback(ompt_event_runtime_shutdown)(); - } - } - - ompt_enabled = 0; -} - - -/***************************************************************************** - * interface operations - ****************************************************************************/ - -/***************************************************************************** - * state - ****************************************************************************/ - -OMPT_API_ROUTINE int ompt_enumerate_state(int current_state, int *next_state, - const char **next_state_name) -{ - const static int len = sizeof(ompt_state_info) / sizeof(ompt_state_info_t); - int i = 0; - - for (i = 0; i < len - 1; i++) { - if (ompt_state_info[i].state_id == current_state) { - *next_state = ompt_state_info[i+1].state_id; - *next_state_name = ompt_state_info[i+1].state_name; - return 1; - } - } - - return 0; -} - - - -/***************************************************************************** - * callbacks - ****************************************************************************/ - -OMPT_API_ROUTINE int ompt_set_callback(ompt_event_t evid, ompt_callback_t cb) -{ - switch (evid) { - -#define ompt_event_macro(event_name, callback_type, event_id) \ - case event_name: \ - if (ompt_event_implementation_status(event_name)) { \ - ompt_callbacks.ompt_callback(event_name) = (callback_type) cb; \ - } \ - return ompt_event_implementation_status(event_name); - - FOREACH_OMPT_EVENT(ompt_event_macro) - -#undef ompt_event_macro - - default: return ompt_set_result_registration_error; - } -} - - -OMPT_API_ROUTINE int ompt_get_callback(ompt_event_t evid, ompt_callback_t *cb) -{ - switch (evid) { - -#define ompt_event_macro(event_name, callback_type, event_id) \ - case event_name: \ - if (ompt_event_implementation_status(event_name)) { \ - ompt_callback_t mycb = \ - (ompt_callback_t) ompt_callbacks.ompt_callback(event_name); \ - if (mycb) { \ - *cb = mycb; \ - return ompt_get_callback_success; \ - } \ - } \ - return ompt_get_callback_failure; - - FOREACH_OMPT_EVENT(ompt_event_macro) - -#undef ompt_event_macro - - default: return ompt_get_callback_failure; - } -} - - -/***************************************************************************** - * parallel regions - ****************************************************************************/ - -OMPT_API_ROUTINE ompt_parallel_id_t ompt_get_parallel_id(int ancestor_level) -{ - return __ompt_get_parallel_id_internal(ancestor_level); -} - - -OMPT_API_ROUTINE int ompt_get_parallel_team_size(int ancestor_level) -{ - return __ompt_get_parallel_team_size_internal(ancestor_level); -} - - -OMPT_API_ROUTINE void *ompt_get_parallel_function(int ancestor_level) -{ - return __ompt_get_parallel_function_internal(ancestor_level); -} - - -OMPT_API_ROUTINE ompt_state_t ompt_get_state(ompt_wait_id_t *ompt_wait_id) -{ - ompt_state_t thread_state = __ompt_get_state_internal(ompt_wait_id); - - if (thread_state == ompt_state_undefined) { - thread_state = ompt_state_work_serial; - } - - return thread_state; -} - - - -/***************************************************************************** - * threads - ****************************************************************************/ - - -OMPT_API_ROUTINE void *ompt_get_idle_frame() -{ - return __ompt_get_idle_frame_internal(); -} - - - -/***************************************************************************** - * tasks - ****************************************************************************/ - - -OMPT_API_ROUTINE ompt_thread_id_t ompt_get_thread_id(void) -{ - return __ompt_get_thread_id_internal(); -} - -OMPT_API_ROUTINE ompt_task_id_t ompt_get_task_id(int depth) -{ - return __ompt_get_task_id_internal(depth); -} - - -OMPT_API_ROUTINE ompt_frame_t *ompt_get_task_frame(int depth) -{ - return __ompt_get_task_frame_internal(depth); -} - - -OMPT_API_ROUTINE void *ompt_get_task_function(int depth) -{ - return __ompt_get_task_function_internal(depth); -} - - -/***************************************************************************** - * placeholders - ****************************************************************************/ - -// Don't define this as static. The loader may choose to eliminate the symbol -// even though it is needed by tools. -#define OMPT_API_PLACEHOLDER - -// Ensure that placeholders don't have mangled names in the symbol table. -#ifdef __cplusplus -extern "C" { -#endif - - -OMPT_API_PLACEHOLDER void ompt_idle(void) -{ - // This function is a placeholder used to represent the calling context of - // idle OpenMP worker threads. It is not meant to be invoked. - assert(0); -} - - -OMPT_API_PLACEHOLDER void ompt_overhead(void) -{ - // This function is a placeholder used to represent the OpenMP context of - // threads working in the OpenMP runtime. It is not meant to be invoked. - assert(0); -} - - -OMPT_API_PLACEHOLDER void ompt_barrier_wait(void) -{ - // This function is a placeholder used to represent the OpenMP context of - // threads waiting for a barrier in the OpenMP runtime. It is not meant - // to be invoked. - assert(0); -} - - -OMPT_API_PLACEHOLDER void ompt_task_wait(void) -{ - // This function is a placeholder used to represent the OpenMP context of - // threads waiting for a task in the OpenMP runtime. It is not meant - // to be invoked. - assert(0); -} - - -OMPT_API_PLACEHOLDER void ompt_mutex_wait(void) -{ - // This function is a placeholder used to represent the OpenMP context of - // threads waiting for a mutex in the OpenMP runtime. It is not meant - // to be invoked. - assert(0); -} - -#ifdef __cplusplus -}; -#endif - - -/***************************************************************************** - * compatability - ****************************************************************************/ - -OMPT_API_ROUTINE int ompt_get_ompt_version() -{ - return OMPT_VERSION; -} - - - -/***************************************************************************** - * application-facing API - ****************************************************************************/ - - -/*---------------------------------------------------------------------------- - | control - ---------------------------------------------------------------------------*/ - -_OMP_EXTERN void ompt_control(uint64_t command, uint64_t modifier) -{ - if (ompt_enabled && ompt_callbacks.ompt_callback(ompt_event_control)) { - ompt_callbacks.ompt_callback(ompt_event_control)(command, modifier); - } -} - - - -/***************************************************************************** - * API inquiry for tool - ****************************************************************************/ - -static ompt_interface_fn_t ompt_fn_lookup(const char *s) -{ - -#define ompt_interface_fn(fn) \ - if (strcmp(s, #fn) == 0) return (ompt_interface_fn_t) fn; - - FOREACH_OMPT_INQUIRY_FN(ompt_interface_fn) - - FOREACH_OMPT_PLACEHOLDER_FN(ompt_interface_fn) - - return (ompt_interface_fn_t) 0; -} diff --git a/contrib/libs/cxxsupp/openmp/ompt-internal.h b/contrib/libs/cxxsupp/openmp/ompt-internal.h deleted file mode 100644 index 64e8d2e8fd..0000000000 --- a/contrib/libs/cxxsupp/openmp/ompt-internal.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef __OMPT_INTERNAL_H__ -#define __OMPT_INTERNAL_H__ - -#include "ompt.h" -#include "ompt-event-specific.h" - -#define OMPT_VERSION 1 - -#define _OMP_EXTERN extern "C" - -#define OMPT_INVOKER(x) \ - ((x == fork_context_gnu) ? ompt_invoker_program : ompt_invoker_runtime) - - -#define ompt_callback(e) e ## _callback - - -typedef struct ompt_callbacks_s { -#define ompt_event_macro(event, callback, eventid) callback ompt_callback(event); - - FOREACH_OMPT_EVENT(ompt_event_macro) - -#undef ompt_event_macro -} ompt_callbacks_t; - - - -typedef struct { - ompt_frame_t frame; - void* function; - ompt_task_id_t task_id; -} ompt_task_info_t; - - -typedef struct { - ompt_parallel_id_t parallel_id; - void *microtask; -} ompt_team_info_t; - - -typedef struct ompt_lw_taskteam_s { - ompt_team_info_t ompt_team_info; - ompt_task_info_t ompt_task_info; - struct ompt_lw_taskteam_s *parent; -} ompt_lw_taskteam_t; - - -typedef struct ompt_parallel_info_s { - ompt_task_id_t parent_task_id; /* id of parent task */ - ompt_parallel_id_t parallel_id; /* id of parallel region */ - ompt_frame_t *parent_task_frame; /* frame data of parent task */ - void *parallel_function; /* pointer to outlined function */ -} ompt_parallel_info_t; - - -typedef struct { - ompt_state_t state; - ompt_wait_id_t wait_id; - void *idle_frame; -} ompt_thread_info_t; - - -extern ompt_callbacks_t ompt_callbacks; - -#ifdef __cplusplus -extern "C" { -#endif - -void ompt_pre_init(void); -void ompt_post_init(void); -void ompt_fini(void); - -extern int ompt_enabled; - -#ifdef __cplusplus -}; -#endif - -#endif diff --git a/contrib/libs/cxxsupp/openmp/ompt-specific.c b/contrib/libs/cxxsupp/openmp/ompt-specific.c deleted file mode 100644 index 49f668af10..0000000000 --- a/contrib/libs/cxxsupp/openmp/ompt-specific.c +++ /dev/null @@ -1,332 +0,0 @@ -//****************************************************************************** -// include files -//****************************************************************************** - -#include "kmp.h" -#include "ompt-internal.h" -#include "ompt-specific.h" - -//****************************************************************************** -// macros -//****************************************************************************** - -#define GTID_TO_OMPT_THREAD_ID(id) ((ompt_thread_id_t) (id >=0) ? id + 1: 0) - -#define LWT_FROM_TEAM(team) (team)->t.ompt_serialized_team_info; - -#define OMPT_THREAD_ID_BITS 16 - -// 2013 08 24 - John Mellor-Crummey -// ideally, a thread should assign its own ids based on thread private data. -// however, the way the intel runtime reinitializes thread data structures -// when it creates teams makes it difficult to maintain persistent thread -// data. using a shared variable instead is simple. I leave it to intel to -// sort out how to implement a higher performance version in their runtime. - -// when using fetch_and_add to generate the IDs, there isn't any reason to waste -// bits for thread id. -#if 0 -#define NEXT_ID(id_ptr,tid) \ - ((KMP_TEST_THEN_INC64(id_ptr) << OMPT_THREAD_ID_BITS) | (tid)) -#else -#define NEXT_ID(id_ptr,tid) (KMP_TEST_THEN_INC64((volatile kmp_int64 *)id_ptr)) -#endif - -//****************************************************************************** -// private operations -//****************************************************************************** - -//---------------------------------------------------------- -// traverse the team and task hierarchy -// note: __ompt_get_teaminfo and __ompt_get_taskinfo -// traverse the hierarchy similarly and need to be -// kept consistent -//---------------------------------------------------------- - -ompt_team_info_t * -__ompt_get_teaminfo(int depth, int *size) -{ - kmp_info_t *thr = ompt_get_thread(); - - if (thr) { - kmp_team *team = thr->th.th_team; - if (team == NULL) return NULL; - - ompt_lw_taskteam_t *lwt = LWT_FROM_TEAM(team); - - while(depth > 0) { - // next lightweight team (if any) - if (lwt) lwt = lwt->parent; - - // next heavyweight team (if any) after - // lightweight teams are exhausted - if (!lwt && team) team=team->t.t_parent; - - depth--; - } - - if (lwt) { - // lightweight teams have one task - if (size) *size = 1; - - // return team info for lightweight team - return &lwt->ompt_team_info; - } else if (team) { - // extract size from heavyweight team - if (size) *size = team->t.t_nproc; - - // return team info for heavyweight team - return &team->t.ompt_team_info; - } - } - - return NULL; -} - - -ompt_task_info_t * -__ompt_get_taskinfo(int depth) -{ - ompt_task_info_t *info = NULL; - kmp_info_t *thr = ompt_get_thread(); - - if (thr) { - kmp_taskdata_t *taskdata = thr->th.th_current_task; - ompt_lw_taskteam_t *lwt = LWT_FROM_TEAM(taskdata->td_team); - - while (depth > 0) { - // next lightweight team (if any) - if (lwt) lwt = lwt->parent; - - // next heavyweight team (if any) after - // lightweight teams are exhausted - if (!lwt && taskdata) { - taskdata = taskdata->td_parent; - if (taskdata) { - lwt = LWT_FROM_TEAM(taskdata->td_team); - } - } - depth--; - } - - if (lwt) { - info = &lwt->ompt_task_info; - } else if (taskdata) { - info = &taskdata->ompt_task_info; - } - } - - return info; -} - - - -//****************************************************************************** -// interface operations -//****************************************************************************** - -//---------------------------------------------------------- -// thread support -//---------------------------------------------------------- - -ompt_parallel_id_t -__ompt_thread_id_new() -{ - static uint64_t ompt_thread_id = 1; - return NEXT_ID(&ompt_thread_id, 0); -} - -void -__ompt_thread_begin(ompt_thread_type_t thread_type, int gtid) -{ - ompt_callbacks.ompt_callback(ompt_event_thread_begin)( - thread_type, GTID_TO_OMPT_THREAD_ID(gtid)); -} - - -void -__ompt_thread_end(ompt_thread_type_t thread_type, int gtid) -{ - ompt_callbacks.ompt_callback(ompt_event_thread_end)( - thread_type, GTID_TO_OMPT_THREAD_ID(gtid)); -} - - -ompt_thread_id_t -__ompt_get_thread_id_internal() -{ - // FIXME - // until we have a better way of assigning ids, use __kmp_get_gtid - // since the return value might be negative, we need to test that before - // assigning it to an ompt_thread_id_t, which is unsigned. - int id = __kmp_get_gtid(); - assert(id >= 0); - - return GTID_TO_OMPT_THREAD_ID(id); -} - -//---------------------------------------------------------- -// state support -//---------------------------------------------------------- - -void -__ompt_thread_assign_wait_id(void *variable) -{ - int gtid = __kmp_gtid_get_specific(); - kmp_info_t *ti = ompt_get_thread_gtid(gtid); - - ti->th.ompt_thread_info.wait_id = (ompt_wait_id_t) variable; -} - -ompt_state_t -__ompt_get_state_internal(ompt_wait_id_t *ompt_wait_id) -{ - kmp_info_t *ti = ompt_get_thread(); - - if (ti) { - if (ompt_wait_id) - *ompt_wait_id = ti->th.ompt_thread_info.wait_id; - return ti->th.ompt_thread_info.state; - } - return ompt_state_undefined; -} - -//---------------------------------------------------------- -// idle frame support -//---------------------------------------------------------- - -void * -__ompt_get_idle_frame_internal(void) -{ - kmp_info_t *ti = ompt_get_thread(); - return ti ? ti->th.ompt_thread_info.idle_frame : NULL; -} - - -//---------------------------------------------------------- -// parallel region support -//---------------------------------------------------------- - -ompt_parallel_id_t -__ompt_parallel_id_new(int gtid) -{ - static uint64_t ompt_parallel_id = 1; - return gtid >= 0 ? NEXT_ID(&ompt_parallel_id, gtid) : 0; -} - - -void * -__ompt_get_parallel_function_internal(int depth) -{ - ompt_team_info_t *info = __ompt_get_teaminfo(depth, NULL); - void *function = info ? info->microtask : NULL; - return function; -} - - -ompt_parallel_id_t -__ompt_get_parallel_id_internal(int depth) -{ - ompt_team_info_t *info = __ompt_get_teaminfo(depth, NULL); - ompt_parallel_id_t id = info ? info->parallel_id : 0; - return id; -} - - -int -__ompt_get_parallel_team_size_internal(int depth) -{ - // initialize the return value with the error value. - // if there is a team at the specified depth, the default - // value will be overwritten the size of that team. - int size = -1; - (void) __ompt_get_teaminfo(depth, &size); - return size; -} - - -//---------------------------------------------------------- -// lightweight task team support -//---------------------------------------------------------- - -void -__ompt_lw_taskteam_init(ompt_lw_taskteam_t *lwt, kmp_info_t *thr, - int gtid, void *microtask, - ompt_parallel_id_t ompt_pid) -{ - lwt->ompt_team_info.parallel_id = ompt_pid; - lwt->ompt_team_info.microtask = microtask; - lwt->ompt_task_info.task_id = 0; - lwt->ompt_task_info.frame.reenter_runtime_frame = 0; - lwt->ompt_task_info.frame.exit_runtime_frame = 0; - lwt->ompt_task_info.function = NULL; - lwt->parent = 0; -} - - -void -__ompt_lw_taskteam_link(ompt_lw_taskteam_t *lwt, kmp_info_t *thr) -{ - ompt_lw_taskteam_t *my_parent = thr->th.th_team->t.ompt_serialized_team_info; - lwt->parent = my_parent; - thr->th.th_team->t.ompt_serialized_team_info = lwt; -} - - -ompt_lw_taskteam_t * -__ompt_lw_taskteam_unlink(kmp_info_t *thr) -{ - ompt_lw_taskteam_t *lwtask = thr->th.th_team->t.ompt_serialized_team_info; - if (lwtask) thr->th.th_team->t.ompt_serialized_team_info = lwtask->parent; - return lwtask; -} - - -//---------------------------------------------------------- -// task support -//---------------------------------------------------------- - -ompt_task_id_t -__ompt_task_id_new(int gtid) -{ - static uint64_t ompt_task_id = 1; - return NEXT_ID(&ompt_task_id, gtid); -} - - -ompt_task_id_t -__ompt_get_task_id_internal(int depth) -{ - ompt_task_info_t *info = __ompt_get_taskinfo(depth); - ompt_task_id_t task_id = info ? info->task_id : 0; - return task_id; -} - - -void * -__ompt_get_task_function_internal(int depth) -{ - ompt_task_info_t *info = __ompt_get_taskinfo(depth); - void *function = info ? info->function : NULL; - return function; -} - - -ompt_frame_t * -__ompt_get_task_frame_internal(int depth) -{ - ompt_task_info_t *info = __ompt_get_taskinfo(depth); - ompt_frame_t *frame = info ? frame = &info->frame : NULL; - return frame; -} - - -//---------------------------------------------------------- -// team support -//---------------------------------------------------------- - -void -__ompt_team_assign_id(kmp_team_t *team, ompt_parallel_id_t ompt_pid) -{ - team->t.ompt_team_info.parallel_id = ompt_pid; -} diff --git a/contrib/libs/cxxsupp/openmp/ompt-specific.h b/contrib/libs/cxxsupp/openmp/ompt-specific.h deleted file mode 100644 index e8f84a9a58..0000000000 --- a/contrib/libs/cxxsupp/openmp/ompt-specific.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef OMPT_SPECIFIC_H -#define OMPT_SPECIFIC_H - -#include "kmp.h" - -/***************************************************************************** - * types - ****************************************************************************/ - -typedef kmp_info_t ompt_thread_t; - - - -/***************************************************************************** - * forward declarations - ****************************************************************************/ - -void __ompt_team_assign_id(kmp_team_t *team, ompt_parallel_id_t ompt_pid); -void __ompt_thread_assign_wait_id(void *variable); - -void __ompt_lw_taskteam_init(ompt_lw_taskteam_t *lwt, ompt_thread_t *thr, - int gtid, void *microtask, - ompt_parallel_id_t ompt_pid); - -void __ompt_lw_taskteam_link(ompt_lw_taskteam_t *lwt, ompt_thread_t *thr); - -ompt_lw_taskteam_t * __ompt_lw_taskteam_unlink(ompt_thread_t *thr); - -ompt_parallel_id_t __ompt_parallel_id_new(int gtid); -ompt_task_id_t __ompt_task_id_new(int gtid); - -ompt_team_info_t *__ompt_get_teaminfo(int depth, int *size); - -ompt_task_info_t *__ompt_get_taskinfo(int depth); - -void __ompt_thread_begin(ompt_thread_type_t thread_type, int gtid); - -void __ompt_thread_end(ompt_thread_type_t thread_type, int gtid); - -int __ompt_get_parallel_team_size_internal(int ancestor_level); - -ompt_task_id_t __ompt_get_task_id_internal(int depth); - -ompt_frame_t *__ompt_get_task_frame_internal(int depth); - - - -/***************************************************************************** - * macros - ****************************************************************************/ - -#define OMPT_HAVE_WEAK_ATTRIBUTE KMP_HAVE_WEAK_ATTRIBUTE -#define OMPT_HAVE_PSAPI KMP_HAVE_PSAPI -#define OMPT_STR_MATCH(haystack, needle) __kmp_str_match(haystack, 0, needle) - - - -//****************************************************************************** -// inline functions -//****************************************************************************** - -inline ompt_thread_t * -ompt_get_thread_gtid(int gtid) -{ - return (gtid >= 0) ? __kmp_thread_from_gtid(gtid) : NULL; -} - - -inline ompt_thread_t * -ompt_get_thread() -{ - int gtid = __kmp_gtid_get_specific(); - return ompt_get_thread_gtid(gtid); -} - - -inline void -ompt_set_thread_state(ompt_thread_t *thread, ompt_state_t state) -{ - thread->th.ompt_thread_info.state = state; -} - - -inline const char * -ompt_get_runtime_version() -{ - return &__kmp_version_lib_ver[KMP_VERSION_MAGIC_LEN]; -} - -#endif diff --git a/contrib/libs/cxxsupp/openmp/test-touch.c b/contrib/libs/cxxsupp/openmp/test-touch.c deleted file mode 100644 index 6ce529ae23..0000000000 --- a/contrib/libs/cxxsupp/openmp/test-touch.c +++ /dev/null @@ -1,31 +0,0 @@ -// test-touch.c // - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#ifdef __cplusplus -extern "C" { -#endif -extern double omp_get_wtime(); -extern int omp_get_num_threads(); -extern int omp_get_max_threads(); -#ifdef __cplusplus -} -#endif - -int main() { - omp_get_wtime(); - omp_get_num_threads(); - omp_get_max_threads(); - return 0; -} - -// end of file // diff --git a/contrib/libs/cxxsupp/openmp/ya.make b/contrib/libs/cxxsupp/openmp/ya.make index 185201cce7..c4f2170d75 100644 --- a/contrib/libs/cxxsupp/openmp/ya.make +++ b/contrib/libs/cxxsupp/openmp/ya.make @@ -46,8 +46,6 @@ ADDINCL( ) ADDINCL( - contrib/libs/cxxsupp/openmp/i18n - contrib/libs/cxxsupp/openmp/include/41 contrib/libs/cxxsupp/openmp/thirdparty/ittnotify ) diff --git a/contrib/libs/cxxsupp/openmp/z_Windows_NT-586_asm.asm b/contrib/libs/cxxsupp/openmp/z_Windows_NT-586_asm.asm deleted file mode 100644 index a4f9a38ae7..0000000000 --- a/contrib/libs/cxxsupp/openmp/z_Windows_NT-586_asm.asm +++ /dev/null @@ -1,1402 +0,0 @@ -; z_Windows_NT-586_asm.asm: - microtasking routines specifically -; written for IA-32 architecture and Intel(R) 64 running Windows* OS - -; -;//===----------------------------------------------------------------------===// -;// -;// The LLVM Compiler Infrastructure -;// -;// This file is dual licensed under the MIT and the University of Illinois Open -;// Source Licenses. See LICENSE.txt for details. -;// -;//===----------------------------------------------------------------------===// -; - - TITLE z_Windows_NT-586_asm.asm - -; ============================= IA-32 architecture ========================== -ifdef _M_IA32 - - .586P - -if @Version gt 510 - .model HUGE -else -_TEXT SEGMENT PARA USE32 PUBLIC 'CODE' -_TEXT ENDS -_DATA SEGMENT DWORD USE32 PUBLIC 'DATA' -_DATA ENDS -CONST SEGMENT DWORD USE32 PUBLIC 'CONST' -CONST ENDS -_BSS SEGMENT DWORD USE32 PUBLIC 'BSS' -_BSS ENDS -$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM' -$$SYMBOLS ENDS -$$TYPES SEGMENT BYTE USE32 'DEBTYP' -$$TYPES ENDS -_TLS SEGMENT DWORD USE32 PUBLIC 'TLS' -_TLS ENDS -FLAT GROUP _DATA, CONST, _BSS - ASSUME CS: FLAT, DS: FLAT, SS: FLAT -endif - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_x86_pause -; -; void -; __kmp_x86_pause( void ) -; - -PUBLIC ___kmp_x86_pause -_p$ = 4 -_d$ = 8 -_TEXT SEGMENT - ALIGN 16 -___kmp_x86_pause PROC NEAR - - db 0f3H - db 090H ;; pause - ret - -___kmp_x86_pause ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_x86_cpuid -; -; void -; __kmp_x86_cpuid( int mode, int mode2, struct kmp_cpuid *p ); -; - -PUBLIC ___kmp_x86_cpuid -_TEXT SEGMENT - ALIGN 16 -_mode$ = 8 -_mode2$ = 12 -_p$ = 16 -_eax$ = 0 -_ebx$ = 4 -_ecx$ = 8 -_edx$ = 12 - -___kmp_x86_cpuid PROC NEAR - - push ebp - mov ebp, esp - - push edi - push ebx - push ecx - push edx - - mov eax, DWORD PTR _mode$[ebp] - mov ecx, DWORD PTR _mode2$[ebp] - cpuid ; Query the CPUID for the current processor - - mov edi, DWORD PTR _p$[ebp] - mov DWORD PTR _eax$[ edi ], eax - mov DWORD PTR _ebx$[ edi ], ebx - mov DWORD PTR _ecx$[ edi ], ecx - mov DWORD PTR _edx$[ edi ], edx - - pop edx - pop ecx - pop ebx - pop edi - - mov esp, ebp - pop ebp - ret - -___kmp_x86_cpuid ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_test_then_add32 -; -; kmp_int32 -; __kmp_test_then_add32( volatile kmp_int32 *p, kmp_int32 d ); -; - -PUBLIC ___kmp_test_then_add32 -_p$ = 4 -_d$ = 8 -_TEXT SEGMENT - ALIGN 16 -___kmp_test_then_add32 PROC NEAR - - mov eax, DWORD PTR _d$[esp] - mov ecx, DWORD PTR _p$[esp] -lock xadd DWORD PTR [ecx], eax - ret - -___kmp_test_then_add32 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store8 -; -; kmp_int8 -; __kmp_compare_and_store8( volatile kmp_int8 *p, kmp_int8 cv, kmp_int8 sv ); -; - -PUBLIC ___kmp_compare_and_store8 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_cv$ = 8 -_sv$ = 12 - -___kmp_compare_and_store8 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov al, BYTE PTR _cv$[esp] - mov dl, BYTE PTR _sv$[esp] -lock cmpxchg BYTE PTR [ecx], dl - sete al ; if al == [ecx] set al = 1 else set al = 0 - and eax, 1 ; sign extend previous instruction - ret - -___kmp_compare_and_store8 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store16 -; -; kmp_int16 -; __kmp_compare_and_store16( volatile kmp_int16 *p, kmp_int16 cv, kmp_int16 sv ); -; - -PUBLIC ___kmp_compare_and_store16 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_cv$ = 8 -_sv$ = 12 - -___kmp_compare_and_store16 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov ax, WORD PTR _cv$[esp] - mov dx, WORD PTR _sv$[esp] -lock cmpxchg WORD PTR [ecx], dx - sete al ; if ax == [ecx] set al = 1 else set al = 0 - and eax, 1 ; sign extend previous instruction - ret - -___kmp_compare_and_store16 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store32 -; -; kmp_int32 -; __kmp_compare_and_store32( volatile kmp_int32 *p, kmp_int32 cv, kmp_int32 sv ); -; - -PUBLIC ___kmp_compare_and_store32 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_cv$ = 8 -_sv$ = 12 - -___kmp_compare_and_store32 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov eax, DWORD PTR _cv$[esp] - mov edx, DWORD PTR _sv$[esp] -lock cmpxchg DWORD PTR [ecx], edx - sete al ; if eax == [ecx] set al = 1 else set al = 0 - and eax, 1 ; sign extend previous instruction - ret - -___kmp_compare_and_store32 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store64 -; -; kmp_int32 -; __kmp_compare_and_store64( volatile kmp_int64 *p, kmp_int64 cv, kmp_int64 sv ); -; - -PUBLIC ___kmp_compare_and_store64 -_TEXT SEGMENT - ALIGN 16 -_p$ = 8 -_cv_low$ = 12 -_cv_high$ = 16 -_sv_low$ = 20 -_sv_high$ = 24 - -___kmp_compare_and_store64 PROC NEAR - - push ebp - mov ebp, esp - push ebx - push edi - mov edi, DWORD PTR _p$[ebp] - mov eax, DWORD PTR _cv_low$[ebp] - mov edx, DWORD PTR _cv_high$[ebp] - mov ebx, DWORD PTR _sv_low$[ebp] - mov ecx, DWORD PTR _sv_high$[ebp] -lock cmpxchg8b QWORD PTR [edi] - sete al ; if edx:eax == [edi] set al = 1 else set al = 0 - and eax, 1 ; sign extend previous instruction - pop edi - pop ebx - mov esp, ebp - pop ebp - ret - -___kmp_compare_and_store64 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_fixed8 -; -; kmp_int8 -; __kmp_xchg_fixed8( volatile kmp_int8 *p, kmp_int8 d ); -; - -PUBLIC ___kmp_xchg_fixed8 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_d$ = 8 - -___kmp_xchg_fixed8 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov al, BYTE PTR _d$[esp] -lock xchg BYTE PTR [ecx], al - ret - -___kmp_xchg_fixed8 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_fixed16 -; -; kmp_int16 -; __kmp_xchg_fixed16( volatile kmp_int16 *p, kmp_int16 d ); -; - -PUBLIC ___kmp_xchg_fixed16 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_d$ = 8 - -___kmp_xchg_fixed16 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov ax, WORD PTR _d$[esp] -lock xchg WORD PTR [ecx], ax - ret - -___kmp_xchg_fixed16 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_fixed32 -; -; kmp_int32 -; __kmp_xchg_fixed32( volatile kmp_int32 *p, kmp_int32 d ); -; - -PUBLIC ___kmp_xchg_fixed32 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_d$ = 8 - -___kmp_xchg_fixed32 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov eax, DWORD PTR _d$[esp] -lock xchg DWORD PTR [ecx], eax - ret - -___kmp_xchg_fixed32 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_real32 -; -; kmp_real32 -; __kmp_xchg_real32( volatile kmp_real32 *p, kmp_real32 d ); -; - -PUBLIC ___kmp_xchg_real32 -_TEXT SEGMENT - ALIGN 16 -_p$ = 8 -_d$ = 12 -_old_value$ = -4 - -___kmp_xchg_real32 PROC NEAR - - push ebp - mov ebp, esp - sub esp, 4 - push esi - mov esi, DWORD PTR _p$[ebp] - - fld DWORD PTR [esi] - ;; load <addr> - fst DWORD PTR _old_value$[ebp] - ;; store into old_value - - mov eax, DWORD PTR _d$[ebp] - -lock xchg DWORD PTR [esi], eax - - fld DWORD PTR _old_value$[ebp] - ;; return old_value - pop esi - mov esp, ebp - pop ebp - ret - -___kmp_xchg_real32 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store_ret8 -; -; kmp_int8 -; __kmp_compare_and_store_ret8( volatile kmp_int8 *p, kmp_int8 cv, kmp_int8 sv ); -; - -PUBLIC ___kmp_compare_and_store_ret8 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_cv$ = 8 -_sv$ = 12 - -___kmp_compare_and_store_ret8 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov al, BYTE PTR _cv$[esp] - mov dl, BYTE PTR _sv$[esp] -lock cmpxchg BYTE PTR [ecx], dl - ret - -___kmp_compare_and_store_ret8 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store_ret16 -; -; kmp_int16 -; __kmp_compare_and_store_ret16( volatile kmp_int16 *p, kmp_int16 cv, kmp_int16 sv ); -; - -PUBLIC ___kmp_compare_and_store_ret16 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_cv$ = 8 -_sv$ = 12 - -___kmp_compare_and_store_ret16 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov ax, WORD PTR _cv$[esp] - mov dx, WORD PTR _sv$[esp] -lock cmpxchg WORD PTR [ecx], dx - ret - -___kmp_compare_and_store_ret16 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store_ret32 -; -; kmp_int32 -; __kmp_compare_and_store_ret32( volatile kmp_int32 *p, kmp_int32 cv, kmp_int32 sv ); -; - -PUBLIC ___kmp_compare_and_store_ret32 -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 -_cv$ = 8 -_sv$ = 12 - -___kmp_compare_and_store_ret32 PROC NEAR - - mov ecx, DWORD PTR _p$[esp] - mov eax, DWORD PTR _cv$[esp] - mov edx, DWORD PTR _sv$[esp] -lock cmpxchg DWORD PTR [ecx], edx - ret - -___kmp_compare_and_store_ret32 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_compare_and_store_ret64 -; -; kmp_int64 -; __kmp_compare_and_store_ret64( volatile kmp_int64 *p, kmp_int64 cv, kmp_int64 sv ); -; - -PUBLIC ___kmp_compare_and_store_ret64 -_TEXT SEGMENT - ALIGN 16 -_p$ = 8 -_cv_low$ = 12 -_cv_high$ = 16 -_sv_low$ = 20 -_sv_high$ = 24 - -___kmp_compare_and_store_ret64 PROC NEAR - - push ebp - mov ebp, esp - push ebx - push edi - mov edi, DWORD PTR _p$[ebp] - mov eax, DWORD PTR _cv_low$[ebp] - mov edx, DWORD PTR _cv_high$[ebp] - mov ebx, DWORD PTR _sv_low$[ebp] - mov ecx, DWORD PTR _sv_high$[ebp] -lock cmpxchg8b QWORD PTR [edi] - pop edi - pop ebx - mov esp, ebp - pop ebp - ret - -___kmp_compare_and_store_ret64 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_load_x87_fpu_control_word -; -; void -; __kmp_load_x87_fpu_control_word( kmp_int16 *p ); -; -; parameters: -; p: 4(%esp) - -PUBLIC ___kmp_load_x87_fpu_control_word -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 - -___kmp_load_x87_fpu_control_word PROC NEAR - - mov eax, DWORD PTR _p$[esp] - fldcw WORD PTR [eax] - ret - -___kmp_load_x87_fpu_control_word ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_store_x87_fpu_control_word -; -; void -; __kmp_store_x87_fpu_control_word( kmp_int16 *p ); -; -; parameters: -; p: 4(%esp) - -PUBLIC ___kmp_store_x87_fpu_control_word -_TEXT SEGMENT - ALIGN 16 -_p$ = 4 - -___kmp_store_x87_fpu_control_word PROC NEAR - - mov eax, DWORD PTR _p$[esp] - fstcw WORD PTR [eax] - ret - -___kmp_store_x87_fpu_control_word ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_clear_x87_fpu_status_word -; -; void -; __kmp_clear_x87_fpu_status_word(); -; - -PUBLIC ___kmp_clear_x87_fpu_status_word -_TEXT SEGMENT - ALIGN 16 - -___kmp_clear_x87_fpu_status_word PROC NEAR - - fnclex - ret - -___kmp_clear_x87_fpu_status_word ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_invoke_microtask -; -; typedef void (*microtask_t)( int *gtid, int *tid, ... ); -; -; int -; __kmp_invoke_microtask( microtask_t pkfn, -; int gtid, int tid, -; int argc, void *p_argv[] ) -; - -PUBLIC ___kmp_invoke_microtask -_TEXT SEGMENT - ALIGN 16 -_pkfn$ = 8 -_gtid$ = 12 -_tid$ = 16 -_argc$ = 20 -_argv$ = 24 -if OMPT_SUPPORT -_exit_frame$ = 28 -endif -_i$ = -8 -_stk_adj$ = -16 -_vptr$ = -12 -_qptr$ = -4 - -___kmp_invoke_microtask PROC NEAR -; Line 102 - push ebp - mov ebp, esp - sub esp, 16 ; 00000010H - push ebx - push esi - push edi -if OMPT_SUPPORT - mov eax, DWORD PTR _exit_frame$[ebp] - mov DWORD PTR [eax], ebp -endif -; Line 114 - mov eax, DWORD PTR _argc$[ebp] - mov DWORD PTR _i$[ebp], eax - -;; ------------------------------------------------------------ - lea edx, DWORD PTR [eax*4+8] - mov ecx, esp ; Save current SP into ECX - mov eax,edx ; Save the size of the args in eax - sub ecx,edx ; esp-((#args+2)*4) -> ecx -- without mods, stack ptr would be this - mov edx,ecx ; Save to edx - and ecx,-128 ; Mask off 7 bits - sub edx,ecx ; Amount to subtract from esp - sub esp,edx ; Prepare stack ptr-- Now it will be aligned on 128-byte boundary at the call - - add edx,eax ; Calculate total size of the stack decrement. - mov DWORD PTR _stk_adj$[ebp], edx -;; ------------------------------------------------------------ - - jmp SHORT $L22237 -$L22238: - mov ecx, DWORD PTR _i$[ebp] - sub ecx, 1 - mov DWORD PTR _i$[ebp], ecx -$L22237: - cmp DWORD PTR _i$[ebp], 0 - jle SHORT $L22239 -; Line 116 - mov edx, DWORD PTR _i$[ebp] - mov eax, DWORD PTR _argv$[ebp] - mov ecx, DWORD PTR [eax+edx*4-4] - mov DWORD PTR _vptr$[ebp], ecx -; Line 123 - mov eax, DWORD PTR _vptr$[ebp] -; Line 124 - push eax -; Line 127 - jmp SHORT $L22238 -$L22239: -; Line 129 - lea edx, DWORD PTR _tid$[ebp] - mov DWORD PTR _vptr$[ebp], edx -; Line 130 - lea eax, DWORD PTR _gtid$[ebp] - mov DWORD PTR _qptr$[ebp], eax -; Line 143 - mov eax, DWORD PTR _vptr$[ebp] -; Line 144 - push eax -; Line 145 - mov eax, DWORD PTR _qptr$[ebp] -; Line 146 - push eax -; Line 147 - call DWORD PTR _pkfn$[ebp] -; Line 148 - add esp, DWORD PTR _stk_adj$[ebp] -; Line 152 - mov eax, 1 -; Line 153 - pop edi - pop esi - pop ebx - mov esp, ebp - pop ebp - ret 0 -___kmp_invoke_microtask ENDP -_TEXT ENDS - -endif - -; ==================================== Intel(R) 64 =================================== - -ifdef _M_AMD64 - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_x86_cpuid -; -; void -; __kmp_x86_cpuid( int mode, int mode2, struct kmp_cpuid *p ); -; -; parameters: -; mode: ecx -; mode2: edx -; cpuid_buffer: r8 - -PUBLIC __kmp_x86_cpuid -_TEXT SEGMENT - ALIGN 16 - -__kmp_x86_cpuid PROC FRAME ;NEAR - - push rbp - .pushreg rbp - mov rbp, rsp - .setframe rbp, 0 - push rbx ; callee-save register - .pushreg rbx - .ENDPROLOG - - mov r10, r8 ; p parameter - mov eax, ecx ; mode parameter - mov ecx, edx ; mode2 parameter - cpuid ; Query the CPUID for the current processor - - mov DWORD PTR 0[ r10 ], eax ; store results into buffer - mov DWORD PTR 4[ r10 ], ebx - mov DWORD PTR 8[ r10 ], ecx - mov DWORD PTR 12[ r10 ], edx - - pop rbx ; callee-save register - mov rsp, rbp - pop rbp - ret - -__kmp_x86_cpuid ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_test_then_add32 -; -; kmp_int32 -; __kmp_test_then_add32( volatile kmp_int32 *p, kmp_int32 d ); -; -; parameters: -; p: rcx -; d: edx -; -; return: eax - -PUBLIC __kmp_test_then_add32 -_TEXT SEGMENT - ALIGN 16 -__kmp_test_then_add32 PROC ;NEAR - - mov eax, edx -lock xadd DWORD PTR [rcx], eax - ret - -__kmp_test_then_add32 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_test_then_add64 -; -; kmp_int32 -; __kmp_test_then_add64( volatile kmp_int64 *p, kmp_int64 d ); -; -; parameters: -; p: rcx -; d: rdx -; -; return: rax - -PUBLIC __kmp_test_then_add64 -_TEXT SEGMENT - ALIGN 16 -__kmp_test_then_add64 PROC ;NEAR - - mov rax, rdx -lock xadd QWORD PTR [rcx], rax - ret - -__kmp_test_then_add64 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store8 -; -; kmp_int8 -; __kmp_compare_and_store8( volatile kmp_int8 *p, kmp_int8 cv, kmp_int8 sv ); -; parameters: -; p: rcx -; cv: edx -; sv: r8d -; -; return: eax - -PUBLIC __kmp_compare_and_store8 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store8 PROC ;NEAR - - mov al, dl ; "cv" - mov edx, r8d ; "sv" -lock cmpxchg BYTE PTR [rcx], dl - sete al ; if al == [rcx] set al = 1 else set al = 0 - and rax, 1 ; sign extend previous instruction - ret - -__kmp_compare_and_store8 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store16 -; -; kmp_int16 -; __kmp_compare_and_store16( volatile kmp_int16 *p, kmp_int16 cv, kmp_int16 sv ); -; parameters: -; p: rcx -; cv: edx -; sv: r8d -; -; return: eax - -PUBLIC __kmp_compare_and_store16 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store16 PROC ;NEAR - - mov ax, dx ; "cv" - mov edx, r8d ; "sv" -lock cmpxchg WORD PTR [rcx], dx - sete al ; if ax == [rcx] set al = 1 else set al = 0 - and rax, 1 ; sign extend previous instruction - ret - -__kmp_compare_and_store16 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store32 -; -; kmp_int32 -; __kmp_compare_and_store32( volatile kmp_int32 *p, kmp_int32 cv, kmp_int32 sv ); -; parameters: -; p: rcx -; cv: edx -; sv: r8d -; -; return: eax - -PUBLIC __kmp_compare_and_store32 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store32 PROC ;NEAR - - mov eax, edx ; "cv" - mov edx, r8d ; "sv" -lock cmpxchg DWORD PTR [rcx], edx - sete al ; if eax == [rcx] set al = 1 else set al = 0 - and rax, 1 ; sign extend previous instruction - ret - -__kmp_compare_and_store32 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store64 -; -; kmp_int32 -; __kmp_compare_and_store64( volatile kmp_int64 *p, kmp_int64 cv, kmp_int64 sv ); -; parameters: -; p: rcx -; cv: rdx -; sv: r8 -; -; return: eax - -PUBLIC __kmp_compare_and_store64 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store64 PROC ;NEAR - - mov rax, rdx ; "cv" - mov rdx, r8 ; "sv" -lock cmpxchg QWORD PTR [rcx], rdx - sete al ; if rax == [rcx] set al = 1 else set al = 0 - and rax, 1 ; sign extend previous instruction - ret - -__kmp_compare_and_store64 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_fixed8 -; -; kmp_int8 -; __kmp_xchg_fixed8( volatile kmp_int8 *p, kmp_int8 d ); -; -; parameters: -; p: rcx -; d: dl -; -; return: al - -PUBLIC __kmp_xchg_fixed8 -_TEXT SEGMENT - ALIGN 16 - -__kmp_xchg_fixed8 PROC ;NEAR - - mov al, dl -lock xchg BYTE PTR [rcx], al - ret - -__kmp_xchg_fixed8 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_fixed16 -; -; kmp_int16 -; __kmp_xchg_fixed16( volatile kmp_int16 *p, kmp_int16 d ); -; -; parameters: -; p: rcx -; d: dx -; -; return: ax - -PUBLIC __kmp_xchg_fixed16 -_TEXT SEGMENT - ALIGN 16 - -__kmp_xchg_fixed16 PROC ;NEAR - - mov ax, dx -lock xchg WORD PTR [rcx], ax - ret - -__kmp_xchg_fixed16 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_fixed32 -; -; kmp_int32 -; __kmp_xchg_fixed32( volatile kmp_int32 *p, kmp_int32 d ); -; -; parameters: -; p: rcx -; d: edx -; -; return: eax - -PUBLIC __kmp_xchg_fixed32 -_TEXT SEGMENT - ALIGN 16 -__kmp_xchg_fixed32 PROC ;NEAR - - mov eax, edx -lock xchg DWORD PTR [rcx], eax - ret - -__kmp_xchg_fixed32 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION ___kmp_xchg_fixed64 -; -; kmp_int64 -; __kmp_xchg_fixed64( volatile kmp_int64 *p, kmp_int64 d ); -; -; parameters: -; p: rcx -; d: rdx -; -; return: rax - -PUBLIC __kmp_xchg_fixed64 -_TEXT SEGMENT - ALIGN 16 -__kmp_xchg_fixed64 PROC ;NEAR - - mov rax, rdx -lock xchg QWORD PTR [rcx], rax - ret - -__kmp_xchg_fixed64 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store_ret8 -; -; kmp_int8 -; __kmp_compare_and_store_ret8( volatile kmp_int8 *p, kmp_int8 cv, kmp_int8 sv ); -; parameters: -; p: rcx -; cv: edx -; sv: r8d -; -; return: eax - -PUBLIC __kmp_compare_and_store_ret8 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store_ret8 PROC ;NEAR - mov al, dl ; "cv" - mov edx, r8d ; "sv" -lock cmpxchg BYTE PTR [rcx], dl - ; Compare AL with [rcx]. If equal set - ; ZF and exchange DL with [rcx]. Else, clear - ; ZF and load [rcx] into AL. - ret - -__kmp_compare_and_store_ret8 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store_ret16 -; -; kmp_int16 -; __kmp_compare_and_store_ret16( volatile kmp_int16 *p, kmp_int16 cv, kmp_int16 sv ); -; parameters: -; p: rcx -; cv: edx -; sv: r8d -; -; return: eax - -PUBLIC __kmp_compare_and_store_ret16 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store_ret16 PROC ;NEAR - - mov ax, dx ; "cv" - mov edx, r8d ; "sv" -lock cmpxchg WORD PTR [rcx], dx - ret - -__kmp_compare_and_store_ret16 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store_ret32 -; -; kmp_int32 -; __kmp_compare_and_store_ret32( volatile kmp_int32 *p, kmp_int32 cv, kmp_int32 sv ); -; parameters: -; p: rcx -; cv: edx -; sv: r8d -; -; return: eax - -PUBLIC __kmp_compare_and_store_ret32 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store_ret32 PROC ;NEAR - - mov eax, edx ; "cv" - mov edx, r8d ; "sv" -lock cmpxchg DWORD PTR [rcx], edx - ret - -__kmp_compare_and_store_ret32 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store_ret64 -; -; kmp_int64 -; __kmp_compare_and_store_ret64( volatile kmp_int64 *p, kmp_int64 cv, kmp_int64 sv ); -; parameters: -; p: rcx -; cv: rdx -; sv: r8 -; -; return: rax - -PUBLIC __kmp_compare_and_store_ret64 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store_ret64 PROC ;NEAR - - mov rax, rdx ; "cv" - mov rdx, r8 ; "sv" -lock cmpxchg QWORD PTR [rcx], rdx - ret - -__kmp_compare_and_store_ret64 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_compare_and_store_loop8 -; -; kmp_int8 -; __kmp_compare_and_store_loop8( volatile kmp_int8 *p, kmp_int8 cv, kmp_int8 sv ); -; parameters: -; p: rcx -; cv: edx -; sv: r8d -; -; return: al - -PUBLIC __kmp_compare_and_store_loop8 -_TEXT SEGMENT - ALIGN 16 - -__kmp_compare_and_store_loop8 PROC ;NEAR -$__kmp_loop: - mov al, dl ; "cv" - mov edx, r8d ; "sv" -lock cmpxchg BYTE PTR [rcx], dl - ; Compare AL with [rcx]. If equal set - ; ZF and exchange DL with [rcx]. Else, clear - ; ZF and load [rcx] into AL. - jz SHORT $__kmp_success - - db 0f3H - db 090H ; pause - - jmp SHORT $__kmp_loop - -$__kmp_success: - ret - -__kmp_compare_and_store_loop8 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_xchg_real32 -; -; kmp_real32 -; __kmp_xchg_real32( volatile kmp_real32 *p, kmp_real32 d ); -; -; parameters: -; p: rcx -; d: xmm1 (lower 4 bytes) -; -; return: xmm0 (lower 4 bytes) - -PUBLIC __kmp_xchg_real32 -_TEXT SEGMENT - ALIGN 16 -__kmp_xchg_real32 PROC ;NEAR - - movd eax, xmm1 ; load d - -lock xchg DWORD PTR [rcx], eax - - movd xmm0, eax ; load old value into return register - ret - -__kmp_xchg_real32 ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_xchg_real64 -; -; kmp_real64 -; __kmp_xchg_real64( volatile kmp_real64 *p, kmp_real64 d ); -; -; parameters: -; p: rcx -; d: xmm1 (lower 8 bytes) -; -; return: xmm0 (lower 8 bytes) - -PUBLIC __kmp_xchg_real64 -_TEXT SEGMENT - ALIGN 16 -__kmp_xchg_real64 PROC ;NEAR - - movd rax, xmm1 ; load "d" - -lock xchg QWORD PTR [rcx], rax - - movd xmm0, rax ; load old value into return register - ret - -__kmp_xchg_real64 ENDP -_TEXT ENDS - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_load_x87_fpu_control_word -; -; void -; __kmp_load_x87_fpu_control_word( kmp_int16 *p ); -; -; parameters: -; p: rcx -; - -PUBLIC __kmp_load_x87_fpu_control_word -_TEXT SEGMENT - ALIGN 16 -__kmp_load_x87_fpu_control_word PROC ;NEAR - - fldcw WORD PTR [rcx] - ret - -__kmp_load_x87_fpu_control_word ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_store_x87_fpu_control_word -; -; void -; __kmp_store_x87_fpu_control_word( kmp_int16 *p ); -; -; parameters: -; p: rcx -; - -PUBLIC __kmp_store_x87_fpu_control_word -_TEXT SEGMENT - ALIGN 16 -__kmp_store_x87_fpu_control_word PROC ;NEAR - - fstcw WORD PTR [rcx] - ret - -__kmp_store_x87_fpu_control_word ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_clear_x87_fpu_status_word -; -; void -; __kmp_clear_x87_fpu_status_word() -; - -PUBLIC __kmp_clear_x87_fpu_status_word -_TEXT SEGMENT - ALIGN 16 -__kmp_clear_x87_fpu_status_word PROC ;NEAR - - fnclex - ret - -__kmp_clear_x87_fpu_status_word ENDP -_TEXT ENDS - - -;------------------------------------------------------------------------ -; -; FUNCTION __kmp_invoke_microtask -; -; typedef void (*microtask_t)( int *gtid, int *tid, ... ); -; -; int -; __kmp_invoke_microtask( microtask_t pkfn, -; int gtid, int tid, -; int argc, void *p_argv[] ) { -; -; (*pkfn) ( >id, &tid, argv[0], ... ); -; return 1; -; } -; -; note: -; just before call to pkfn must have rsp 128-byte aligned for compiler -; -; parameters: -; rcx: pkfn 16[rbp] -; edx: gtid 24[rbp] -; r8d: tid 32[rbp] -; r9d: argc 40[rbp] -; [st]: p_argv 48[rbp] -; -; reg temps: -; rax: used all over the place -; rdx: used all over the place -; rcx: used as argument counter for push parms loop -; r10: used to hold pkfn function pointer argument -; -; return: eax (always 1/TRUE) -; - -$_pkfn = 16 -$_gtid = 24 -$_tid = 32 -$_argc = 40 -$_p_argv = 48 -if OMPT_SUPPORT -$_exit_frame = 56 -endif - -PUBLIC __kmp_invoke_microtask -_TEXT SEGMENT - ALIGN 16 - -__kmp_invoke_microtask PROC FRAME ;NEAR - mov QWORD PTR 16[rsp], rdx ; home gtid parameter - mov QWORD PTR 24[rsp], r8 ; home tid parameter - push rbp ; save base pointer - .pushreg rbp - sub rsp, 0 ; no fixed allocation necessary - end prolog - - lea rbp, QWORD PTR [rsp] ; establish the base pointer - .setframe rbp, 0 - .ENDPROLOG -if OMPT_SUPPORT - mov rax, QWORD PTR $_exit_frame[rbp] - mov QWORD PTR [rax], rbp -endif - mov r10, rcx ; save pkfn pointer for later - -;; ------------------------------------------------------------ - mov rax, r9 ; rax <= argc - cmp rax, 2 - jge SHORT $_kmp_invoke_stack_align - mov rax, 2 ; set 4 homes if less than 2 parms -$_kmp_invoke_stack_align: - lea rdx, QWORD PTR [rax*8+16] ; rax <= (argc + 2) * 8 - mov rax, rsp ; Save current SP into rax - sub rax, rdx ; rsp - ((argc+2)*8) -> rax - ; without align, rsp would be this - and rax, -128 ; Mask off 7 bits (128-byte align) - add rax, rdx ; add space for push's in a loop below - mov rsp, rax ; Prepare the stack ptr - ; Now it will align to 128-byte at the call -;; ------------------------------------------------------------ - ; setup pkfn parameter stack - mov rax, r9 ; rax <= argc - shl rax, 3 ; rax <= argc*8 - mov rdx, QWORD PTR $_p_argv[rbp] ; rdx <= p_argv - add rdx, rax ; rdx <= &p_argv[argc] - mov rcx, r9 ; rcx <= argc - jecxz SHORT $_kmp_invoke_pass_parms ; nothing to push if argc=0 - cmp ecx, 1 ; if argc=1 branch ahead - je SHORT $_kmp_invoke_one_parm - sub ecx, 2 ; if argc=2 branch ahead, subtract two from - je SHORT $_kmp_invoke_two_parms - -$_kmp_invoke_push_parms: ; push last - 5th parms to pkfn on stack - sub rdx, 8 ; decrement p_argv pointer to previous parm - mov r8, QWORD PTR [rdx] ; r8 <= p_argv[rcx-1] - push r8 ; push p_argv[rcx-1] onto stack (reverse order) - sub ecx, 1 - jecxz SHORT $_kmp_invoke_two_parms - jmp SHORT $_kmp_invoke_push_parms - -$_kmp_invoke_two_parms: - sub rdx, 8 ; put 4th parm to pkfn in r9 - mov r9, QWORD PTR [rdx] ; r9 <= p_argv[1] - -$_kmp_invoke_one_parm: - sub rdx, 8 ; put 3rd parm to pkfn in r8 - mov r8, QWORD PTR [rdx] ; r8 <= p_argv[0] - -$_kmp_invoke_pass_parms: ; put 1st & 2nd parms to pkfn in registers - lea rdx, QWORD PTR $_tid[rbp] ; rdx <= &tid (2nd parm to pkfn) - lea rcx, QWORD PTR $_gtid[rbp] ; rcx <= >id (1st parm to pkfn) - sub rsp, 32 ; add stack space for first four parms - mov rax, r10 ; rax <= pkfn - call rax ; call (*pkfn)() - mov rax, 1 ; move 1 into return register; - - lea rsp, QWORD PTR [rbp] ; restore stack pointer - -; add rsp, 0 ; no fixed allocation necessary - start epilog - pop rbp ; restore frame pointer - ret -__kmp_invoke_microtask ENDP -_TEXT ENDS - -endif - -END diff --git a/contrib/libs/cxxsupp/openmp/z_Windows_NT-586_util.c b/contrib/libs/cxxsupp/openmp/z_Windows_NT-586_util.c deleted file mode 100644 index 3aeafae910..0000000000 --- a/contrib/libs/cxxsupp/openmp/z_Windows_NT-586_util.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * z_Windows_NT-586_util.c -- platform specific routines. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#include "kmp.h" - -#if (KMP_ARCH_X86 || KMP_ARCH_X86_64) -/* Only 32-bit "add-exchange" instruction on IA-32 architecture causes us to - * use compare_and_store for these routines - */ - -kmp_int8 -__kmp_test_then_or8( volatile kmp_int8 *p, kmp_int8 d ) -{ - kmp_int8 old_value, new_value; - - old_value = TCR_1( *p ); - new_value = old_value | d; - - while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_1( *p ); - new_value = old_value | d; - } - return old_value; -} - -kmp_int8 -__kmp_test_then_and8( volatile kmp_int8 *p, kmp_int8 d ) -{ - kmp_int8 old_value, new_value; - - old_value = TCR_1( *p ); - new_value = old_value & d; - - while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_1( *p ); - new_value = old_value & d; - } - return old_value; -} - -kmp_int32 -__kmp_test_then_or32( volatile kmp_int32 *p, kmp_int32 d ) -{ - kmp_int32 old_value, new_value; - - old_value = TCR_4( *p ); - new_value = old_value | d; - - while ( ! __kmp_compare_and_store32 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_4( *p ); - new_value = old_value | d; - } - return old_value; -} - -kmp_int32 -__kmp_test_then_and32( volatile kmp_int32 *p, kmp_int32 d ) -{ - kmp_int32 old_value, new_value; - - old_value = TCR_4( *p ); - new_value = old_value & d; - - while ( ! __kmp_compare_and_store32 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_4( *p ); - new_value = old_value & d; - } - return old_value; -} - -kmp_int8 -__kmp_test_then_add8( volatile kmp_int8 *p, kmp_int8 d ) -{ - kmp_int64 old_value, new_value; - - old_value = TCR_1( *p ); - new_value = old_value + d; - while ( ! __kmp_compare_and_store8 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_1( *p ); - new_value = old_value + d; - } - return old_value; -} - -#if KMP_ARCH_X86 -kmp_int64 -__kmp_test_then_add64( volatile kmp_int64 *p, kmp_int64 d ) -{ - kmp_int64 old_value, new_value; - - old_value = TCR_8( *p ); - new_value = old_value + d; - while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_8( *p ); - new_value = old_value + d; - } - return old_value; -} -#endif /* KMP_ARCH_X86 */ - -kmp_int64 -__kmp_test_then_or64( volatile kmp_int64 *p, kmp_int64 d ) -{ - kmp_int64 old_value, new_value; - - old_value = TCR_8( *p ); - new_value = old_value | d; - while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_8( *p ); - new_value = old_value | d; - } - - return old_value; -} - -kmp_int64 -__kmp_test_then_and64( volatile kmp_int64 *p, kmp_int64 d ) -{ - kmp_int64 old_value, new_value; - - old_value = TCR_8( *p ); - new_value = old_value & d; - while ( ! __kmp_compare_and_store64 ( p, old_value, new_value ) ) - { - KMP_CPU_PAUSE(); - old_value = TCR_8( *p ); - new_value = old_value & d; - } - - return old_value; -} - -#endif /* KMP_ARCH_X86 || KMP_ARCH_X86_64 */ - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - diff --git a/contrib/libs/cxxsupp/openmp/z_Windows_NT_util.c b/contrib/libs/cxxsupp/openmp/z_Windows_NT_util.c deleted file mode 100644 index 03a4afe5e1..0000000000 --- a/contrib/libs/cxxsupp/openmp/z_Windows_NT_util.c +++ /dev/null @@ -1,1932 +0,0 @@ -/* - * z_Windows_NT_util.c -- platform specific routines. - */ - - -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.txt for details. -// -//===----------------------------------------------------------------------===// - - -#include "kmp.h" -#include "kmp_itt.h" -#include "kmp_i18n.h" -#include "kmp_io.h" -#include "kmp_wait_release.h" - - - -/* ----------------------------------------------------------------------------------- */ -/* ----------------------------------------------------------------------------------- */ - -/* This code is related to NtQuerySystemInformation() function. This function - is used in the Load balance algorithm for OMP_DYNAMIC=true to find the - number of running threads in the system. */ - -#include <ntstatus.h> -#include <ntsecapi.h> // UNICODE_STRING - -enum SYSTEM_INFORMATION_CLASS { - SystemProcessInformation = 5 -}; // SYSTEM_INFORMATION_CLASS - -struct CLIENT_ID { - HANDLE UniqueProcess; - HANDLE UniqueThread; -}; // struct CLIENT_ID - -enum THREAD_STATE { - StateInitialized, - StateReady, - StateRunning, - StateStandby, - StateTerminated, - StateWait, - StateTransition, - StateUnknown -}; // enum THREAD_STATE - -struct VM_COUNTERS { - SIZE_T PeakVirtualSize; - SIZE_T VirtualSize; - ULONG PageFaultCount; - SIZE_T PeakWorkingSetSize; - SIZE_T WorkingSetSize; - SIZE_T QuotaPeakPagedPoolUsage; - SIZE_T QuotaPagedPoolUsage; - SIZE_T QuotaPeakNonPagedPoolUsage; - SIZE_T QuotaNonPagedPoolUsage; - SIZE_T PagefileUsage; - SIZE_T PeakPagefileUsage; - SIZE_T PrivatePageCount; -}; // struct VM_COUNTERS - -struct SYSTEM_THREAD { - LARGE_INTEGER KernelTime; - LARGE_INTEGER UserTime; - LARGE_INTEGER CreateTime; - ULONG WaitTime; - LPVOID StartAddress; - CLIENT_ID ClientId; - DWORD Priority; - LONG BasePriority; - ULONG ContextSwitchCount; - THREAD_STATE State; - ULONG WaitReason; -}; // SYSTEM_THREAD - -KMP_BUILD_ASSERT( offsetof( SYSTEM_THREAD, KernelTime ) == 0 ); -#if KMP_ARCH_X86 - KMP_BUILD_ASSERT( offsetof( SYSTEM_THREAD, StartAddress ) == 28 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_THREAD, State ) == 52 ); -#else - KMP_BUILD_ASSERT( offsetof( SYSTEM_THREAD, StartAddress ) == 32 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_THREAD, State ) == 68 ); -#endif - -struct SYSTEM_PROCESS_INFORMATION { - ULONG NextEntryOffset; - ULONG NumberOfThreads; - LARGE_INTEGER Reserved[ 3 ]; - LARGE_INTEGER CreateTime; - LARGE_INTEGER UserTime; - LARGE_INTEGER KernelTime; - UNICODE_STRING ImageName; - DWORD BasePriority; - HANDLE ProcessId; - HANDLE ParentProcessId; - ULONG HandleCount; - ULONG Reserved2[ 2 ]; - VM_COUNTERS VMCounters; - IO_COUNTERS IOCounters; - SYSTEM_THREAD Threads[ 1 ]; -}; // SYSTEM_PROCESS_INFORMATION -typedef SYSTEM_PROCESS_INFORMATION * PSYSTEM_PROCESS_INFORMATION; - -KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, NextEntryOffset ) == 0 ); -KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, CreateTime ) == 32 ); -KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, ImageName ) == 56 ); -#if KMP_ARCH_X86 - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, ProcessId ) == 68 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, HandleCount ) == 76 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, VMCounters ) == 88 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, IOCounters ) == 136 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, Threads ) == 184 ); -#else - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, ProcessId ) == 80 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, HandleCount ) == 96 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, VMCounters ) == 112 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, IOCounters ) == 208 ); - KMP_BUILD_ASSERT( offsetof( SYSTEM_PROCESS_INFORMATION, Threads ) == 256 ); -#endif - -typedef NTSTATUS (NTAPI *NtQuerySystemInformation_t)( SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG ); -NtQuerySystemInformation_t NtQuerySystemInformation = NULL; - -HMODULE ntdll = NULL; - -/* End of NtQuerySystemInformation()-related code */ - -#if KMP_GROUP_AFFINITY -static HMODULE kernel32 = NULL; -#endif /* KMP_GROUP_AFFINITY */ - -/* ----------------------------------------------------------------------------------- */ -/* ----------------------------------------------------------------------------------- */ - -#if KMP_HANDLE_SIGNALS - typedef void (* sig_func_t )( int ); - static sig_func_t __kmp_sighldrs[ NSIG ]; - static int __kmp_siginstalled[ NSIG ]; -#endif - -static HANDLE __kmp_monitor_ev; -static kmp_int64 __kmp_win32_time; -double __kmp_win32_tick; - -int __kmp_init_runtime = FALSE; -CRITICAL_SECTION __kmp_win32_section; - -void -__kmp_win32_mutex_init( kmp_win32_mutex_t *mx ) -{ - InitializeCriticalSection( & mx->cs ); -#if USE_ITT_BUILD - __kmp_itt_system_object_created( & mx->cs, "Critical Section" ); -#endif /* USE_ITT_BUILD */ -} - -void -__kmp_win32_mutex_destroy( kmp_win32_mutex_t *mx ) -{ - DeleteCriticalSection( & mx->cs ); -} - -void -__kmp_win32_mutex_lock( kmp_win32_mutex_t *mx ) -{ - EnterCriticalSection( & mx->cs ); -} - -void -__kmp_win32_mutex_unlock( kmp_win32_mutex_t *mx ) -{ - LeaveCriticalSection( & mx->cs ); -} - -void -__kmp_win32_cond_init( kmp_win32_cond_t *cv ) -{ - cv->waiters_count_ = 0; - cv->wait_generation_count_ = 0; - cv->release_count_ = 0; - - /* Initialize the critical section */ - __kmp_win32_mutex_init( & cv->waiters_count_lock_ ); - - /* Create a manual-reset event. */ - cv->event_ = CreateEvent( NULL, // no security - TRUE, // manual-reset - FALSE, // non-signaled initially - NULL ); // unnamed -#if USE_ITT_BUILD - __kmp_itt_system_object_created( cv->event_, "Event" ); -#endif /* USE_ITT_BUILD */ -} - -void -__kmp_win32_cond_destroy( kmp_win32_cond_t *cv ) -{ - __kmp_win32_mutex_destroy( & cv->waiters_count_lock_ ); - __kmp_free_handle( cv->event_ ); - memset( cv, '\0', sizeof( *cv ) ); -} - -/* TODO associate cv with a team instead of a thread so as to optimize - * the case where we wake up a whole team */ - -void -__kmp_win32_cond_wait( kmp_win32_cond_t *cv, kmp_win32_mutex_t *mx, kmp_info_t *th, int need_decrease_load ) -{ - int my_generation; - int last_waiter; - - /* Avoid race conditions */ - __kmp_win32_mutex_lock( &cv->waiters_count_lock_ ); - - /* Increment count of waiters */ - cv->waiters_count_++; - - /* Store current generation in our activation record. */ - my_generation = cv->wait_generation_count_; - - __kmp_win32_mutex_unlock( &cv->waiters_count_lock_ ); - __kmp_win32_mutex_unlock( mx ); - - - for (;;) { - int wait_done; - - /* Wait until the event is signaled */ - WaitForSingleObject( cv->event_, INFINITE ); - - __kmp_win32_mutex_lock( &cv->waiters_count_lock_ ); - - /* Exit the loop when the <cv->event_> is signaled and - * there are still waiting threads from this <wait_generation> - * that haven't been released from this wait yet. */ - wait_done = ( cv->release_count_ > 0 ) && - ( cv->wait_generation_count_ != my_generation ); - - __kmp_win32_mutex_unlock( &cv->waiters_count_lock_); - - /* there used to be a semicolon after the if statement, - * it looked like a bug, so i removed it */ - if( wait_done ) - break; - } - - __kmp_win32_mutex_lock( mx ); - __kmp_win32_mutex_lock( &cv->waiters_count_lock_ ); - - cv->waiters_count_--; - cv->release_count_--; - - last_waiter = ( cv->release_count_ == 0 ); - - __kmp_win32_mutex_unlock( &cv->waiters_count_lock_ ); - - if( last_waiter ) { - /* We're the last waiter to be notified, so reset the manual event. */ - ResetEvent( cv->event_ ); - } -} - -void -__kmp_win32_cond_broadcast( kmp_win32_cond_t *cv ) -{ - __kmp_win32_mutex_lock( &cv->waiters_count_lock_ ); - - if( cv->waiters_count_ > 0 ) { - SetEvent( cv->event_ ); - /* Release all the threads in this generation. */ - - cv->release_count_ = cv->waiters_count_; - - /* Start a new generation. */ - cv->wait_generation_count_++; - } - - __kmp_win32_mutex_unlock( &cv->waiters_count_lock_ ); -} - -void -__kmp_win32_cond_signal( kmp_win32_cond_t *cv ) -{ - __kmp_win32_cond_broadcast( cv ); -} - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - -void -__kmp_enable( int new_state ) -{ - if (__kmp_init_runtime) - LeaveCriticalSection( & __kmp_win32_section ); -} - -void -__kmp_disable( int *old_state ) -{ - *old_state = 0; - - if (__kmp_init_runtime) - EnterCriticalSection( & __kmp_win32_section ); -} - -void -__kmp_suspend_initialize( void ) -{ - /* do nothing */ -} - -static void -__kmp_suspend_initialize_thread( kmp_info_t *th ) -{ - if ( ! TCR_4( th->th.th_suspend_init ) ) { - /* this means we haven't initialized the suspension pthread objects for this thread - in this instance of the process */ - __kmp_win32_cond_init( &th->th.th_suspend_cv ); - __kmp_win32_mutex_init( &th->th.th_suspend_mx ); - TCW_4( th->th.th_suspend_init, TRUE ); - } -} - -void -__kmp_suspend_uninitialize_thread( kmp_info_t *th ) -{ - if ( TCR_4( th->th.th_suspend_init ) ) { - /* this means we have initialize the suspension pthread objects for this thread - in this instance of the process */ - __kmp_win32_cond_destroy( & th->th.th_suspend_cv ); - __kmp_win32_mutex_destroy( & th->th.th_suspend_mx ); - TCW_4( th->th.th_suspend_init, FALSE ); - } -} - -/* This routine puts the calling thread to sleep after setting the - * sleep bit for the indicated flag variable to true. - */ -template <class C> -static inline void __kmp_suspend_template( int th_gtid, C *flag ) -{ - kmp_info_t *th = __kmp_threads[th_gtid]; - int status; - typename C::flag_t old_spin; - - KF_TRACE( 30, ("__kmp_suspend_template: T#%d enter for flag's loc(%p)\n", th_gtid, flag->get() ) ); - - __kmp_suspend_initialize_thread( th ); - __kmp_win32_mutex_lock( &th->th.th_suspend_mx ); - - KF_TRACE( 10, ( "__kmp_suspend_template: T#%d setting sleep bit for flag's loc(%p)\n", - th_gtid, flag->get() ) ); - - /* TODO: shouldn't this use release semantics to ensure that __kmp_suspend_initialize_thread - gets called first? - */ - old_spin = flag->set_sleeping(); - - KF_TRACE( 5, ( "__kmp_suspend_template: T#%d set sleep bit for flag's loc(%p)==%d\n", - th_gtid, flag->get(), *(flag->get()) ) ); - - if ( flag->done_check_val(old_spin) ) { - old_spin = flag->unset_sleeping(); - KF_TRACE( 5, ( "__kmp_suspend_template: T#%d false alarm, reset sleep bit for flag's loc(%p)\n", - th_gtid, flag->get()) ); - } else { -#ifdef DEBUG_SUSPEND - __kmp_suspend_count++; -#endif - /* Encapsulate in a loop as the documentation states that this may - * "with low probability" return when the condition variable has - * not been signaled or broadcast - */ - int deactivated = FALSE; - TCW_PTR(th->th.th_sleep_loc, (void *)flag); - while ( flag->is_sleeping() ) { - KF_TRACE( 15, ("__kmp_suspend_template: T#%d about to perform kmp_win32_cond_wait()\n", - th_gtid ) ); - // Mark the thread as no longer active (only in the first iteration of the loop). - if ( ! deactivated ) { - th->th.th_active = FALSE; - if ( th->th.th_active_in_pool ) { - th->th.th_active_in_pool = FALSE; - KMP_TEST_THEN_DEC32( - (kmp_int32 *) &__kmp_thread_pool_active_nth ); - KMP_DEBUG_ASSERT( TCR_4(__kmp_thread_pool_active_nth) >= 0 ); - } - deactivated = TRUE; - - - __kmp_win32_cond_wait( &th->th.th_suspend_cv, &th->th.th_suspend_mx, 0, 0 ); - } - else { - __kmp_win32_cond_wait( &th->th.th_suspend_cv, &th->th.th_suspend_mx, 0, 0 ); - } - -#ifdef KMP_DEBUG - if( flag->is_sleeping() ) { - KF_TRACE( 100, ("__kmp_suspend_template: T#%d spurious wakeup\n", th_gtid )); - } -#endif /* KMP_DEBUG */ - - } // while - - // Mark the thread as active again (if it was previous marked as inactive) - if ( deactivated ) { - th->th.th_active = TRUE; - if ( TCR_4(th->th.th_in_pool) ) { - KMP_TEST_THEN_INC32( - (kmp_int32 *) &__kmp_thread_pool_active_nth ); - th->th.th_active_in_pool = TRUE; - } - } - } - - - __kmp_win32_mutex_unlock( &th->th.th_suspend_mx ); - - KF_TRACE( 30, ("__kmp_suspend_template: T#%d exit\n", th_gtid ) ); -} - -void __kmp_suspend_32(int th_gtid, kmp_flag_32 *flag) { - __kmp_suspend_template(th_gtid, flag); -} -void __kmp_suspend_64(int th_gtid, kmp_flag_64 *flag) { - __kmp_suspend_template(th_gtid, flag); -} -void __kmp_suspend_oncore(int th_gtid, kmp_flag_oncore *flag) { - __kmp_suspend_template(th_gtid, flag); -} - - -/* This routine signals the thread specified by target_gtid to wake up - * after setting the sleep bit indicated by the flag argument to FALSE - */ -template <class C> -static inline void __kmp_resume_template( int target_gtid, C *flag ) -{ - kmp_info_t *th = __kmp_threads[target_gtid]; - int status; - -#ifdef KMP_DEBUG - int gtid = TCR_4(__kmp_init_gtid) ? __kmp_get_gtid() : -1; -#endif - - KF_TRACE( 30, ( "__kmp_resume_template: T#%d wants to wakeup T#%d enter\n", gtid, target_gtid ) ); - - __kmp_suspend_initialize_thread( th ); - __kmp_win32_mutex_lock( &th->th.th_suspend_mx ); - - if (!flag) { // coming from __kmp_null_resume_wrapper - flag = (C *)th->th.th_sleep_loc; - } - - // First, check if the flag is null or its type has changed. If so, someone else woke it up. - if (!flag || flag->get_type() != flag->get_ptr_type()) { // get_ptr_type simply shows what flag was cast to - KF_TRACE( 5, ( "__kmp_resume_template: T#%d exiting, thread T#%d already awake: flag's loc(%p)\n", - gtid, target_gtid, NULL ) ); - __kmp_win32_mutex_unlock( &th->th.th_suspend_mx ); - return; - } - else { - typename C::flag_t old_spin = flag->unset_sleeping(); - if ( !flag->is_sleeping_val(old_spin) ) { - KF_TRACE( 5, ( "__kmp_resume_template: T#%d exiting, thread T#%d already awake: flag's loc(%p): " - "%u => %u\n", - gtid, target_gtid, flag->get(), old_spin, *(flag->get()) ) ); - __kmp_win32_mutex_unlock( &th->th.th_suspend_mx ); - return; - } - } - TCW_PTR(th->th.th_sleep_loc, NULL); - - KF_TRACE( 5, ( "__kmp_resume_template: T#%d about to wakeup T#%d, reset sleep bit for flag's loc(%p)\n", - gtid, target_gtid, flag->get() ) ); - - - __kmp_win32_cond_signal( &th->th.th_suspend_cv ); - __kmp_win32_mutex_unlock( &th->th.th_suspend_mx ); - - KF_TRACE( 30, ( "__kmp_resume_template: T#%d exiting after signaling wake up for T#%d\n", - gtid, target_gtid ) ); -} - -void __kmp_resume_32(int target_gtid, kmp_flag_32 *flag) { - __kmp_resume_template(target_gtid, flag); -} -void __kmp_resume_64(int target_gtid, kmp_flag_64 *flag) { - __kmp_resume_template(target_gtid, flag); -} -void __kmp_resume_oncore(int target_gtid, kmp_flag_oncore *flag) { - __kmp_resume_template(target_gtid, flag); -} - - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - -void -__kmp_yield( int cond ) -{ - if (cond) - Sleep(0); -} - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - -void -__kmp_gtid_set_specific( int gtid ) -{ - KA_TRACE( 50, ("__kmp_gtid_set_specific: T#%d key:%d\n", - gtid, __kmp_gtid_threadprivate_key )); - KMP_ASSERT( __kmp_init_runtime ); - if( ! TlsSetValue( __kmp_gtid_threadprivate_key, (LPVOID)(gtid+1)) ) - KMP_FATAL( TLSSetValueFailed ); -} - -int -__kmp_gtid_get_specific() -{ - int gtid; - if( !__kmp_init_runtime ) { - KA_TRACE( 50, ("__kmp_get_specific: runtime shutdown, returning KMP_GTID_SHUTDOWN\n" ) ); - return KMP_GTID_SHUTDOWN; - } - gtid = (int)(kmp_intptr_t)TlsGetValue( __kmp_gtid_threadprivate_key ); - if ( gtid == 0 ) { - gtid = KMP_GTID_DNE; - } - else { - gtid--; - } - KA_TRACE( 50, ("__kmp_gtid_get_specific: key:%d gtid:%d\n", - __kmp_gtid_threadprivate_key, gtid )); - return gtid; -} - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - -#if KMP_GROUP_AFFINITY - -// -// Only 1 DWORD in the mask should have any procs set. -// Return the appropriate index, or -1 for an invalid mask. -// -int -__kmp_get_proc_group( kmp_affin_mask_t const *mask ) -{ - int i; - int group = -1; - for (i = 0; i < __kmp_num_proc_groups; i++) { - if (mask[i] == 0) { - continue; - } - if (group >= 0) { - return -1; - } - group = i; - } - return group; -} - -#endif /* KMP_GROUP_AFFINITY */ - -int -__kmp_set_system_affinity( kmp_affin_mask_t const *mask, int abort_on_error ) -{ - -#if KMP_GROUP_AFFINITY - - if (__kmp_num_proc_groups > 1) { - // - // Check for a valid mask. - // - GROUP_AFFINITY ga; - int group = __kmp_get_proc_group( mask ); - if (group < 0) { - if (abort_on_error) { - KMP_FATAL(AffinityInvalidMask, "kmp_set_affinity"); - } - return -1; - } - - // - // Transform the bit vector into a GROUP_AFFINITY struct - // and make the system call to set affinity. - // - ga.Group = group; - ga.Mask = mask[group]; - ga.Reserved[0] = ga.Reserved[1] = ga.Reserved[2] = 0; - - KMP_DEBUG_ASSERT(__kmp_SetThreadGroupAffinity != NULL); - if (__kmp_SetThreadGroupAffinity(GetCurrentThread(), &ga, NULL) == 0) { - DWORD error = GetLastError(); - if (abort_on_error) { - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantSetThreadAffMask ), - KMP_ERR( error ), - __kmp_msg_null - ); - } - return error; - } - } - else - -#endif /* KMP_GROUP_AFFINITY */ - - { - if (!SetThreadAffinityMask( GetCurrentThread(), *mask )) { - DWORD error = GetLastError(); - if (abort_on_error) { - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantSetThreadAffMask ), - KMP_ERR( error ), - __kmp_msg_null - ); - } - return error; - } - } - return 0; -} - -int -__kmp_get_system_affinity( kmp_affin_mask_t *mask, int abort_on_error ) -{ - -#if KMP_GROUP_AFFINITY - - if (__kmp_num_proc_groups > 1) { - KMP_CPU_ZERO(mask); - GROUP_AFFINITY ga; - KMP_DEBUG_ASSERT(__kmp_GetThreadGroupAffinity != NULL); - - if (__kmp_GetThreadGroupAffinity(GetCurrentThread(), &ga) == 0) { - DWORD error = GetLastError(); - if (abort_on_error) { - __kmp_msg( - kmp_ms_fatal, - KMP_MSG(FunctionError, "GetThreadGroupAffinity()"), - KMP_ERR(error), - __kmp_msg_null - ); - } - return error; - } - - if ((ga.Group < 0) || (ga.Group > __kmp_num_proc_groups) - || (ga.Mask == 0)) { - return -1; - } - - mask[ga.Group] = ga.Mask; - } - else - -#endif /* KMP_GROUP_AFFINITY */ - - { - kmp_affin_mask_t newMask, sysMask, retval; - - if (!GetProcessAffinityMask(GetCurrentProcess(), &newMask, &sysMask)) { - DWORD error = GetLastError(); - if (abort_on_error) { - __kmp_msg( - kmp_ms_fatal, - KMP_MSG(FunctionError, "GetProcessAffinityMask()"), - KMP_ERR(error), - __kmp_msg_null - ); - } - return error; - } - retval = SetThreadAffinityMask(GetCurrentThread(), newMask); - if (! retval) { - DWORD error = GetLastError(); - if (abort_on_error) { - __kmp_msg( - kmp_ms_fatal, - KMP_MSG(FunctionError, "SetThreadAffinityMask()"), - KMP_ERR(error), - __kmp_msg_null - ); - } - return error; - } - newMask = SetThreadAffinityMask(GetCurrentThread(), retval); - if (! newMask) { - DWORD error = GetLastError(); - if (abort_on_error) { - __kmp_msg( - kmp_ms_fatal, - KMP_MSG(FunctionError, "SetThreadAffinityMask()"), - KMP_ERR(error), - __kmp_msg_null - ); - } - } - *mask = retval; - } - return 0; -} - -void -__kmp_affinity_bind_thread( int proc ) -{ - -#if KMP_GROUP_AFFINITY - - if (__kmp_num_proc_groups > 1) { - // - // Form the GROUP_AFFINITY struct directly, rather than filling - // out a bit vector and calling __kmp_set_system_affinity(). - // - GROUP_AFFINITY ga; - KMP_DEBUG_ASSERT((proc >= 0) && (proc < (__kmp_num_proc_groups - * CHAR_BIT * sizeof(DWORD_PTR)))); - ga.Group = proc / (CHAR_BIT * sizeof(DWORD_PTR)); - ga.Mask = (unsigned long long)1 << (proc % (CHAR_BIT * sizeof(DWORD_PTR))); - ga.Reserved[0] = ga.Reserved[1] = ga.Reserved[2] = 0; - - KMP_DEBUG_ASSERT(__kmp_SetThreadGroupAffinity != NULL); - if (__kmp_SetThreadGroupAffinity(GetCurrentThread(), &ga, NULL) == 0) { - DWORD error = GetLastError(); - if (__kmp_affinity_verbose) { // AC: continue silently if not verbose - __kmp_msg( - kmp_ms_warning, - KMP_MSG( CantSetThreadAffMask ), - KMP_ERR( error ), - __kmp_msg_null - ); - } - } - } - else - -#endif /* KMP_GROUP_AFFINITY */ - - { - kmp_affin_mask_t mask; - KMP_CPU_ZERO(&mask); - KMP_CPU_SET(proc, &mask); - __kmp_set_system_affinity(&mask, TRUE); - } -} - -void -__kmp_affinity_determine_capable( const char *env_var ) -{ - // - // All versions of Windows* OS (since Win '95) support SetThreadAffinityMask(). - // - -#if KMP_GROUP_AFFINITY - KMP_AFFINITY_ENABLE(__kmp_num_proc_groups*sizeof(kmp_affin_mask_t)); -#else - KMP_AFFINITY_ENABLE(sizeof(kmp_affin_mask_t)); -#endif - - KA_TRACE( 10, ( - "__kmp_affinity_determine_capable: " - "Windows* OS affinity interface functional (mask size = %" KMP_SIZE_T_SPEC ").\n", - __kmp_affin_mask_size - ) ); -} - -double -__kmp_read_cpu_time( void ) -{ - FILETIME CreationTime, ExitTime, KernelTime, UserTime; - int status; - double cpu_time; - - cpu_time = 0; - - status = GetProcessTimes( GetCurrentProcess(), &CreationTime, - &ExitTime, &KernelTime, &UserTime ); - - if (status) { - double sec = 0; - - sec += KernelTime.dwHighDateTime; - sec += UserTime.dwHighDateTime; - - /* Shift left by 32 bits */ - sec *= (double) (1 << 16) * (double) (1 << 16); - - sec += KernelTime.dwLowDateTime; - sec += UserTime.dwLowDateTime; - - cpu_time += (sec * 100.0) / KMP_NSEC_PER_SEC; - } - - return cpu_time; -} - -int -__kmp_read_system_info( struct kmp_sys_info *info ) -{ - info->maxrss = 0; /* the maximum resident set size utilized (in kilobytes) */ - info->minflt = 0; /* the number of page faults serviced without any I/O */ - info->majflt = 0; /* the number of page faults serviced that required I/O */ - info->nswap = 0; /* the number of times a process was "swapped" out of memory */ - info->inblock = 0; /* the number of times the file system had to perform input */ - info->oublock = 0; /* the number of times the file system had to perform output */ - info->nvcsw = 0; /* the number of times a context switch was voluntarily */ - info->nivcsw = 0; /* the number of times a context switch was forced */ - - return 1; -} - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - - -void -__kmp_runtime_initialize( void ) -{ - SYSTEM_INFO info; - kmp_str_buf_t path; - UINT path_size; - - if ( __kmp_init_runtime ) { - return; - }; - -#if KMP_DYNAMIC_LIB - /* Pin dynamic library for the lifetime of application */ - { - // First, turn off error message boxes - UINT err_mode = SetErrorMode (SEM_FAILCRITICALERRORS); - HMODULE h; - BOOL ret = GetModuleHandleEx( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS - |GET_MODULE_HANDLE_EX_FLAG_PIN, - (LPCTSTR)&__kmp_serial_initialize, &h); - KMP_DEBUG_ASSERT2(h && ret, "OpenMP RTL cannot find itself loaded"); - SetErrorMode (err_mode); // Restore error mode - KA_TRACE( 10, ("__kmp_runtime_initialize: dynamic library pinned\n") ); - } -#endif - - InitializeCriticalSection( & __kmp_win32_section ); -#if USE_ITT_BUILD - __kmp_itt_system_object_created( & __kmp_win32_section, "Critical Section" ); -#endif /* USE_ITT_BUILD */ - __kmp_initialize_system_tick(); - - #if (KMP_ARCH_X86 || KMP_ARCH_X86_64) - if ( ! __kmp_cpuinfo.initialized ) { - __kmp_query_cpuid( & __kmp_cpuinfo ); - }; // if - #endif /* KMP_ARCH_X86 || KMP_ARCH_X86_64 */ - - /* Set up minimum number of threads to switch to TLS gtid */ - #if KMP_OS_WINDOWS && ! defined KMP_DYNAMIC_LIB - // Windows* OS, static library. - /* - New thread may use stack space previously used by another thread, currently terminated. - On Windows* OS, in case of static linking, we do not know the moment of thread termination, - and our structures (__kmp_threads and __kmp_root arrays) are still keep info about dead - threads. This leads to problem in __kmp_get_global_thread_id() function: it wrongly - finds gtid (by searching through stack addresses of all known threads) for unregistered - foreign tread. - - Setting __kmp_tls_gtid_min to 0 workarounds this problem: __kmp_get_global_thread_id() - does not search through stacks, but get gtid from TLS immediately. - - --ln - */ - __kmp_tls_gtid_min = 0; - #else - __kmp_tls_gtid_min = KMP_TLS_GTID_MIN; - #endif - - /* for the static library */ - if ( !__kmp_gtid_threadprivate_key ) { - __kmp_gtid_threadprivate_key = TlsAlloc(); - if( __kmp_gtid_threadprivate_key == TLS_OUT_OF_INDEXES ) { - KMP_FATAL( TLSOutOfIndexes ); - } - } - - - // - // Load ntdll.dll. - // - /* - Simple - GetModuleHandle( "ntdll.dl" ) - is not suitable due to security issue (see - http://www.microsoft.com/technet/security/advisory/2269637.mspx). We have to specify full - path to the library. - */ - __kmp_str_buf_init( & path ); - path_size = GetSystemDirectory( path.str, path.size ); - KMP_DEBUG_ASSERT( path_size > 0 ); - if ( path_size >= path.size ) { - // - // Buffer is too short. Expand the buffer and try again. - // - __kmp_str_buf_reserve( & path, path_size ); - path_size = GetSystemDirectory( path.str, path.size ); - KMP_DEBUG_ASSERT( path_size > 0 ); - }; // if - if ( path_size > 0 && path_size < path.size ) { - // - // Now we have system directory name in the buffer. - // Append backslash and name of dll to form full path, - // - path.used = path_size; - __kmp_str_buf_print( & path, "\\%s", "ntdll.dll" ); - - // - // Now load ntdll using full path. - // - ntdll = GetModuleHandle( path.str ); - } - - KMP_DEBUG_ASSERT( ntdll != NULL ); - if ( ntdll != NULL ) { - NtQuerySystemInformation = (NtQuerySystemInformation_t) GetProcAddress( ntdll, "NtQuerySystemInformation" ); - } - KMP_DEBUG_ASSERT( NtQuerySystemInformation != NULL ); - -#if KMP_GROUP_AFFINITY - // - // Load kernel32.dll. - // Same caveat - must use full system path name. - // - if ( path_size > 0 && path_size < path.size ) { - // - // Truncate the buffer back to just the system path length, - // discarding "\\ntdll.dll", and replacing it with "kernel32.dll". - // - path.used = path_size; - __kmp_str_buf_print( & path, "\\%s", "kernel32.dll" ); - - // - // Load kernel32.dll using full path. - // - kernel32 = GetModuleHandle( path.str ); - KA_TRACE( 10, ("__kmp_runtime_initialize: kernel32.dll = %s\n", path.str ) ); - - // - // Load the function pointers to kernel32.dll routines - // that may or may not exist on this system. - // - if ( kernel32 != NULL ) { - __kmp_GetActiveProcessorCount = (kmp_GetActiveProcessorCount_t) GetProcAddress( kernel32, "GetActiveProcessorCount" ); - __kmp_GetActiveProcessorGroupCount = (kmp_GetActiveProcessorGroupCount_t) GetProcAddress( kernel32, "GetActiveProcessorGroupCount" ); - __kmp_GetThreadGroupAffinity = (kmp_GetThreadGroupAffinity_t) GetProcAddress( kernel32, "GetThreadGroupAffinity" ); - __kmp_SetThreadGroupAffinity = (kmp_SetThreadGroupAffinity_t) GetProcAddress( kernel32, "SetThreadGroupAffinity" ); - - KA_TRACE( 10, ("__kmp_runtime_initialize: __kmp_GetActiveProcessorCount = %p\n", __kmp_GetActiveProcessorCount ) ); - KA_TRACE( 10, ("__kmp_runtime_initialize: __kmp_GetActiveProcessorGroupCount = %p\n", __kmp_GetActiveProcessorGroupCount ) ); - KA_TRACE( 10, ("__kmp_runtime_initialize:__kmp_GetThreadGroupAffinity = %p\n", __kmp_GetThreadGroupAffinity ) ); - KA_TRACE( 10, ("__kmp_runtime_initialize: __kmp_SetThreadGroupAffinity = %p\n", __kmp_SetThreadGroupAffinity ) ); - KA_TRACE( 10, ("__kmp_runtime_initialize: sizeof(kmp_affin_mask_t) = %d\n", sizeof(kmp_affin_mask_t) ) ); - - // - // See if group affinity is supported on this system. - // If so, calculate the #groups and #procs. - // - // Group affinity was introduced with Windows* 7 OS and - // Windows* Server 2008 R2 OS. - // - if ( ( __kmp_GetActiveProcessorCount != NULL ) - && ( __kmp_GetActiveProcessorGroupCount != NULL ) - && ( __kmp_GetThreadGroupAffinity != NULL ) - && ( __kmp_SetThreadGroupAffinity != NULL ) - && ( ( __kmp_num_proc_groups - = __kmp_GetActiveProcessorGroupCount() ) > 1 ) ) { - // - // Calculate the total number of active OS procs. - // - int i; - - KA_TRACE( 10, ("__kmp_runtime_initialize: %d processor groups detected\n", __kmp_num_proc_groups ) ); - - __kmp_xproc = 0; - - for ( i = 0; i < __kmp_num_proc_groups; i++ ) { - DWORD size = __kmp_GetActiveProcessorCount( i ); - __kmp_xproc += size; - KA_TRACE( 10, ("__kmp_runtime_initialize: proc group %d size = %d\n", i, size ) ); - } - } - else { - KA_TRACE( 10, ("__kmp_runtime_initialize: %d processor groups detected\n", __kmp_num_proc_groups ) ); - } - } - } - if ( __kmp_num_proc_groups <= 1 ) { - GetSystemInfo( & info ); - __kmp_xproc = info.dwNumberOfProcessors; - } -#else - GetSystemInfo( & info ); - __kmp_xproc = info.dwNumberOfProcessors; -#endif /* KMP_GROUP_AFFINITY */ - - // - // If the OS said there were 0 procs, take a guess and use a value of 2. - // This is done for Linux* OS, also. Do we need error / warning? - // - if ( __kmp_xproc <= 0 ) { - __kmp_xproc = 2; - } - - KA_TRACE( 5, ("__kmp_runtime_initialize: total processors = %d\n", __kmp_xproc) ); - - __kmp_str_buf_free( & path ); - -#if USE_ITT_BUILD - __kmp_itt_initialize(); -#endif /* USE_ITT_BUILD */ - - __kmp_init_runtime = TRUE; -} // __kmp_runtime_initialize - -void -__kmp_runtime_destroy( void ) -{ - if ( ! __kmp_init_runtime ) { - return; - } - -#if USE_ITT_BUILD - __kmp_itt_destroy(); -#endif /* USE_ITT_BUILD */ - - /* we can't DeleteCriticalsection( & __kmp_win32_section ); */ - /* due to the KX_TRACE() commands */ - KA_TRACE( 40, ("__kmp_runtime_destroy\n" )); - - if( __kmp_gtid_threadprivate_key ) { - TlsFree( __kmp_gtid_threadprivate_key ); - __kmp_gtid_threadprivate_key = 0; - } - - __kmp_affinity_uninitialize(); - DeleteCriticalSection( & __kmp_win32_section ); - - ntdll = NULL; - NtQuerySystemInformation = NULL; - -#if KMP_ARCH_X86_64 - kernel32 = NULL; - __kmp_GetActiveProcessorCount = NULL; - __kmp_GetActiveProcessorGroupCount = NULL; - __kmp_GetThreadGroupAffinity = NULL; - __kmp_SetThreadGroupAffinity = NULL; -#endif // KMP_ARCH_X86_64 - - __kmp_init_runtime = FALSE; -} - - -void -__kmp_terminate_thread( int gtid ) -{ - kmp_info_t *th = __kmp_threads[ gtid ]; - - if( !th ) return; - - KA_TRACE( 10, ("__kmp_terminate_thread: kill (%d)\n", gtid ) ); - - if (TerminateThread( th->th.th_info.ds.ds_thread, (DWORD) -1) == FALSE) { - /* It's OK, the thread may have exited already */ - } - __kmp_free_handle( th->th.th_info.ds.ds_thread ); -} - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - -void -__kmp_clear_system_time( void ) -{ - BOOL status; - LARGE_INTEGER time; - status = QueryPerformanceCounter( & time ); - __kmp_win32_time = (kmp_int64) time.QuadPart; -} - -void -__kmp_initialize_system_tick( void ) -{ - { - BOOL status; - LARGE_INTEGER freq; - - status = QueryPerformanceFrequency( & freq ); - if (! status) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( FunctionError, "QueryPerformanceFrequency()" ), - KMP_ERR( error ), - __kmp_msg_null - ); - - } - else { - __kmp_win32_tick = ((double) 1.0) / (double) freq.QuadPart; - } - } -} - -/* Calculate the elapsed wall clock time for the user */ - -void -__kmp_elapsed( double *t ) -{ - BOOL status; - LARGE_INTEGER now; - status = QueryPerformanceCounter( & now ); - *t = ((double) now.QuadPart) * __kmp_win32_tick; -} - -/* Calculate the elapsed wall clock tick for the user */ - -void -__kmp_elapsed_tick( double *t ) -{ - *t = __kmp_win32_tick; -} - -void -__kmp_read_system_time( double *delta ) -{ - - if (delta != NULL) { - BOOL status; - LARGE_INTEGER now; - - status = QueryPerformanceCounter( & now ); - - *delta = ((double) (((kmp_int64) now.QuadPart) - __kmp_win32_time)) - * __kmp_win32_tick; - } -} - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - -void * __stdcall -__kmp_launch_worker( void *arg ) -{ - volatile void *stack_data; - void *exit_val; - void *padding = 0; - kmp_info_t *this_thr = (kmp_info_t *) arg; - int gtid; - - gtid = this_thr->th.th_info.ds.ds_gtid; - __kmp_gtid_set_specific( gtid ); -#ifdef KMP_TDATA_GTID - #error "This define causes problems with LoadLibrary() + declspec(thread) " \ - "on Windows* OS. See CQ50564, tests kmp_load_library*.c and this MSDN " \ - "reference: http://support.microsoft.com/kb/118816" - //__kmp_gtid = gtid; -#endif - -#if USE_ITT_BUILD - __kmp_itt_thread_name( gtid ); -#endif /* USE_ITT_BUILD */ - - __kmp_affinity_set_init_mask( gtid, FALSE ); - -#if KMP_ARCH_X86 || KMP_ARCH_X86_64 - // - // Set the FP control regs to be a copy of - // the parallel initialization thread's. - // - __kmp_clear_x87_fpu_status_word(); - __kmp_load_x87_fpu_control_word( &__kmp_init_x87_fpu_control_word ); - __kmp_load_mxcsr( &__kmp_init_mxcsr ); -#endif /* KMP_ARCH_X86 || KMP_ARCH_X86_64 */ - - if ( __kmp_stkoffset > 0 && gtid > 0 ) { - padding = KMP_ALLOCA( gtid * __kmp_stkoffset ); - } - - KMP_FSYNC_RELEASING( &this_thr -> th.th_info.ds.ds_alive ); - this_thr -> th.th_info.ds.ds_thread_id = GetCurrentThreadId(); - TCW_4( this_thr -> th.th_info.ds.ds_alive, TRUE ); - - if ( TCR_4(__kmp_gtid_mode) < 2 ) { // check stack only if it is used to get gtid - TCW_PTR(this_thr->th.th_info.ds.ds_stackbase, &stack_data); - KMP_ASSERT( this_thr -> th.th_info.ds.ds_stackgrow == FALSE ); - __kmp_check_stack_overlap( this_thr ); - } - KMP_MB(); - exit_val = __kmp_launch_thread( this_thr ); - KMP_FSYNC_RELEASING( &this_thr -> th.th_info.ds.ds_alive ); - TCW_4( this_thr -> th.th_info.ds.ds_alive, FALSE ); - KMP_MB(); - return exit_val; -} - - -/* The monitor thread controls all of the threads in the complex */ - -void * __stdcall -__kmp_launch_monitor( void *arg ) -{ - DWORD wait_status; - kmp_thread_t monitor; - int status; - int interval; - kmp_info_t *this_thr = (kmp_info_t *) arg; - - KMP_DEBUG_ASSERT(__kmp_init_monitor); - TCW_4( __kmp_init_monitor, 2 ); // AC: Signal the library that monitor has started - // TODO: hide "2" in enum (like {true,false,started}) - this_thr -> th.th_info.ds.ds_thread_id = GetCurrentThreadId(); - TCW_4( this_thr -> th.th_info.ds.ds_alive, TRUE ); - - KMP_MB(); /* Flush all pending memory write invalidates. */ - KA_TRACE( 10, ("__kmp_launch_monitor: launched\n" ) ); - - monitor = GetCurrentThread(); - - /* set thread priority */ - status = SetThreadPriority( monitor, THREAD_PRIORITY_HIGHEST ); - if (! status) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantSetThreadPriority ), - KMP_ERR( error ), - __kmp_msg_null - ); - } - - /* register us as monitor */ - __kmp_gtid_set_specific( KMP_GTID_MONITOR ); -#ifdef KMP_TDATA_GTID - #error "This define causes problems with LoadLibrary() + declspec(thread) " \ - "on Windows* OS. See CQ50564, tests kmp_load_library*.c and this MSDN " \ - "reference: http://support.microsoft.com/kb/118816" - //__kmp_gtid = KMP_GTID_MONITOR; -#endif - -#if USE_ITT_BUILD - __kmp_itt_thread_ignore(); // Instruct Intel(R) Threading Tools to ignore monitor thread. -#endif /* USE_ITT_BUILD */ - - KMP_MB(); /* Flush all pending memory write invalidates. */ - - interval = ( 1000 / __kmp_monitor_wakeups ); /* in milliseconds */ - - while (! TCR_4(__kmp_global.g.g_done)) { - /* This thread monitors the state of the system */ - - KA_TRACE( 15, ( "__kmp_launch_monitor: update\n" ) ); - - wait_status = WaitForSingleObject( __kmp_monitor_ev, interval ); - - if (wait_status == WAIT_TIMEOUT) { - TCW_4( __kmp_global.g.g_time.dt.t_value, - TCR_4( __kmp_global.g.g_time.dt.t_value ) + 1 ); - } - - KMP_MB(); /* Flush all pending memory write invalidates. */ - } - - KA_TRACE( 10, ("__kmp_launch_monitor: finished\n" ) ); - - status = SetThreadPriority( monitor, THREAD_PRIORITY_NORMAL ); - if (! status) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantSetThreadPriority ), - KMP_ERR( error ), - __kmp_msg_null - ); - } - - if (__kmp_global.g.g_abort != 0) { - /* now we need to terminate the worker threads */ - /* the value of t_abort is the signal we caught */ - - int gtid; - - KA_TRACE( 10, ("__kmp_launch_monitor: terminate sig=%d\n", (__kmp_global.g.g_abort) ) ); - - /* terminate the OpenMP worker threads */ - /* TODO this is not valid for sibling threads!! - * the uber master might not be 0 anymore.. */ - for (gtid = 1; gtid < __kmp_threads_capacity; ++gtid) - __kmp_terminate_thread( gtid ); - - __kmp_cleanup(); - - Sleep( 0 ); - - KA_TRACE( 10, ("__kmp_launch_monitor: raise sig=%d\n", (__kmp_global.g.g_abort) ) ); - - if (__kmp_global.g.g_abort > 0) { - raise( __kmp_global.g.g_abort ); - } - } - - TCW_4( this_thr -> th.th_info.ds.ds_alive, FALSE ); - - KMP_MB(); - return arg; -} - -void -__kmp_create_worker( int gtid, kmp_info_t *th, size_t stack_size ) -{ - kmp_thread_t handle; - DWORD idThread; - - KA_TRACE( 10, ("__kmp_create_worker: try to create thread (%d)\n", gtid ) ); - - th->th.th_info.ds.ds_gtid = gtid; - - if ( KMP_UBER_GTID(gtid) ) { - int stack_data; - - /* TODO: GetCurrentThread() returns a pseudo-handle that is unsuitable for other threads to use. - Is it appropriate to just use GetCurrentThread? When should we close this handle? When - unregistering the root? - */ - { - BOOL rc; - rc = DuplicateHandle( - GetCurrentProcess(), - GetCurrentThread(), - GetCurrentProcess(), - &th->th.th_info.ds.ds_thread, - 0, - FALSE, - DUPLICATE_SAME_ACCESS - ); - KMP_ASSERT( rc ); - KA_TRACE( 10, (" __kmp_create_worker: ROOT Handle duplicated, th = %p, handle = %" KMP_UINTPTR_SPEC "\n", - (LPVOID)th, - th->th.th_info.ds.ds_thread ) ); - th->th.th_info.ds.ds_thread_id = GetCurrentThreadId(); - } - if ( TCR_4(__kmp_gtid_mode) < 2 ) { // check stack only if it is used to get gtid - /* we will dynamically update the stack range if gtid_mode == 1 */ - TCW_PTR(th->th.th_info.ds.ds_stackbase, &stack_data); - TCW_PTR(th->th.th_info.ds.ds_stacksize, 0); - TCW_4(th->th.th_info.ds.ds_stackgrow, TRUE); - __kmp_check_stack_overlap( th ); - } - } - else { - KMP_MB(); /* Flush all pending memory write invalidates. */ - - /* Set stack size for this thread now. */ - KA_TRACE( 10, ( "__kmp_create_worker: stack_size = %" KMP_SIZE_T_SPEC - " bytes\n", stack_size ) ); - - stack_size += gtid * __kmp_stkoffset; - - TCW_PTR(th->th.th_info.ds.ds_stacksize, stack_size); - TCW_4(th->th.th_info.ds.ds_stackgrow, FALSE); - - KA_TRACE( 10, ( "__kmp_create_worker: (before) stack_size = %" - KMP_SIZE_T_SPEC - " bytes, &__kmp_launch_worker = %p, th = %p, " - "&idThread = %p\n", - (SIZE_T) stack_size, - (LPTHREAD_START_ROUTINE) & __kmp_launch_worker, - (LPVOID) th, &idThread ) ); - - { - handle = CreateThread( NULL, (SIZE_T) stack_size, - (LPTHREAD_START_ROUTINE) __kmp_launch_worker, - (LPVOID) th, STACK_SIZE_PARAM_IS_A_RESERVATION, &idThread ); - } - - KA_TRACE( 10, ( "__kmp_create_worker: (after) stack_size = %" - KMP_SIZE_T_SPEC - " bytes, &__kmp_launch_worker = %p, th = %p, " - "idThread = %u, handle = %" KMP_UINTPTR_SPEC "\n", - (SIZE_T) stack_size, - (LPTHREAD_START_ROUTINE) & __kmp_launch_worker, - (LPVOID) th, idThread, handle ) ); - - { - if ( handle == 0 ) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantCreateThread ), - KMP_ERR( error ), - __kmp_msg_null - ); - } else { - th->th.th_info.ds.ds_thread = handle; - } - } - KMP_MB(); /* Flush all pending memory write invalidates. */ - } - - KA_TRACE( 10, ("__kmp_create_worker: done creating thread (%d)\n", gtid ) ); -} - -int -__kmp_still_running(kmp_info_t *th) { - return (WAIT_TIMEOUT == WaitForSingleObject( th->th.th_info.ds.ds_thread, 0)); -} - -void -__kmp_create_monitor( kmp_info_t *th ) -{ - kmp_thread_t handle; - DWORD idThread; - int ideal, new_ideal; - - KA_TRACE( 10, ("__kmp_create_monitor: try to create monitor\n" ) ); - - KMP_MB(); /* Flush all pending memory write invalidates. */ - - __kmp_monitor_ev = CreateEvent( NULL, TRUE, FALSE, NULL ); - if ( __kmp_monitor_ev == NULL ) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantCreateEvent ), - KMP_ERR( error ), - __kmp_msg_null - ); - }; // if -#if USE_ITT_BUILD - __kmp_itt_system_object_created( __kmp_monitor_ev, "Event" ); -#endif /* USE_ITT_BUILD */ - - th->th.th_info.ds.ds_tid = KMP_GTID_MONITOR; - th->th.th_info.ds.ds_gtid = KMP_GTID_MONITOR; - - // FIXME - on Windows* OS, if __kmp_monitor_stksize = 0, figure out how - // to automatically expand stacksize based on CreateThread error code. - if ( __kmp_monitor_stksize == 0 ) { - __kmp_monitor_stksize = KMP_DEFAULT_MONITOR_STKSIZE; - } - if ( __kmp_monitor_stksize < __kmp_sys_min_stksize ) { - __kmp_monitor_stksize = __kmp_sys_min_stksize; - } - - KA_TRACE( 10, ("__kmp_create_monitor: requested stacksize = %d bytes\n", - (int) __kmp_monitor_stksize ) ); - - TCW_4( __kmp_global.g.g_time.dt.t_value, 0 ); - - handle = CreateThread( NULL, (SIZE_T) __kmp_monitor_stksize, - (LPTHREAD_START_ROUTINE) __kmp_launch_monitor, - (LPVOID) th, STACK_SIZE_PARAM_IS_A_RESERVATION, &idThread ); - if (handle == 0) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantCreateThread ), - KMP_ERR( error ), - __kmp_msg_null - ); - } - else - th->th.th_info.ds.ds_thread = handle; - - KMP_MB(); /* Flush all pending memory write invalidates. */ - - KA_TRACE( 10, ("__kmp_create_monitor: monitor created %p\n", - (void *) th->th.th_info.ds.ds_thread ) ); -} - -/* - Check to see if thread is still alive. - - NOTE: The ExitProcess(code) system call causes all threads to Terminate - with a exit_val = code. Because of this we can not rely on - exit_val having any particular value. So this routine may - return STILL_ALIVE in exit_val even after the thread is dead. -*/ - -int -__kmp_is_thread_alive( kmp_info_t * th, DWORD *exit_val ) -{ - DWORD rc; - rc = GetExitCodeThread( th->th.th_info.ds.ds_thread, exit_val ); - if ( rc == 0 ) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( FunctionError, "GetExitCodeThread()" ), - KMP_ERR( error ), - __kmp_msg_null - ); - }; // if - return ( *exit_val == STILL_ACTIVE ); -} - - -void -__kmp_exit_thread( - int exit_status -) { - ExitThread( exit_status ); -} // __kmp_exit_thread - -/* - This is a common part for both __kmp_reap_worker() and __kmp_reap_monitor(). -*/ -static void -__kmp_reap_common( kmp_info_t * th ) -{ - DWORD exit_val; - - KMP_MB(); /* Flush all pending memory write invalidates. */ - - KA_TRACE( 10, ( "__kmp_reap_common: try to reap (%d)\n", th->th.th_info.ds.ds_gtid ) ); - - /* - 2006-10-19: - - There are two opposite situations: - - 1. Windows* OS keep thread alive after it resets ds_alive flag and exits from thread - function. (For example, see C70770/Q394281 "unloading of dll based on OMP is very - slow".) - 2. Windows* OS may kill thread before it resets ds_alive flag. - - Right solution seems to be waiting for *either* thread termination *or* ds_alive resetting. - - */ - - { - // TODO: This code is very similar to KMP_WAIT_YIELD. Need to generalize KMP_WAIT_YIELD to - // cover this usage also. - void * obj = NULL; - kmp_uint32 spins; -#if USE_ITT_BUILD - KMP_FSYNC_SPIN_INIT( obj, (void*) & th->th.th_info.ds.ds_alive ); -#endif /* USE_ITT_BUILD */ - KMP_INIT_YIELD( spins ); - do { -#if USE_ITT_BUILD - KMP_FSYNC_SPIN_PREPARE( obj ); -#endif /* USE_ITT_BUILD */ - __kmp_is_thread_alive( th, &exit_val ); - KMP_YIELD( TCR_4(__kmp_nth) > __kmp_avail_proc ); - KMP_YIELD_SPIN( spins ); - } while ( exit_val == STILL_ACTIVE && TCR_4( th->th.th_info.ds.ds_alive ) ); -#if USE_ITT_BUILD - if ( exit_val == STILL_ACTIVE ) { - KMP_FSYNC_CANCEL( obj ); - } else { - KMP_FSYNC_SPIN_ACQUIRED( obj ); - }; // if -#endif /* USE_ITT_BUILD */ - } - - __kmp_free_handle( th->th.th_info.ds.ds_thread ); - - /* - * NOTE: The ExitProcess(code) system call causes all threads to Terminate - * with a exit_val = code. Because of this we can not rely on - * exit_val having any particular value. - */ - if ( exit_val == STILL_ACTIVE ) { - KA_TRACE( 1, ( "__kmp_reap_common: thread still active.\n" ) ); - } else if ( (void *) exit_val != (void *) th) { - KA_TRACE( 1, ( "__kmp_reap_common: ExitProcess / TerminateThread used?\n" ) ); - }; // if - - KA_TRACE( 10, - ( - "__kmp_reap_common: done reaping (%d), handle = %" KMP_UINTPTR_SPEC "\n", - th->th.th_info.ds.ds_gtid, - th->th.th_info.ds.ds_thread - ) - ); - - th->th.th_info.ds.ds_thread = 0; - th->th.th_info.ds.ds_tid = KMP_GTID_DNE; - th->th.th_info.ds.ds_gtid = KMP_GTID_DNE; - th->th.th_info.ds.ds_thread_id = 0; - - KMP_MB(); /* Flush all pending memory write invalidates. */ -} - -void -__kmp_reap_monitor( kmp_info_t *th ) -{ - int status; - - KA_TRACE( 10, ("__kmp_reap_monitor: try to reap %p\n", - (void *) th->th.th_info.ds.ds_thread ) ); - - // If monitor has been created, its tid and gtid should be KMP_GTID_MONITOR. - // If both tid and gtid are 0, it means the monitor did not ever start. - // If both tid and gtid are KMP_GTID_DNE, the monitor has been shut down. - KMP_DEBUG_ASSERT( th->th.th_info.ds.ds_tid == th->th.th_info.ds.ds_gtid ); - if ( th->th.th_info.ds.ds_gtid != KMP_GTID_MONITOR ) { - return; - }; // if - - KMP_MB(); /* Flush all pending memory write invalidates. */ - - status = SetEvent( __kmp_monitor_ev ); - if ( status == FALSE ) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantSetEvent ), - KMP_ERR( error ), - __kmp_msg_null - ); - } - KA_TRACE( 10, ( "__kmp_reap_monitor: reaping thread (%d)\n", th->th.th_info.ds.ds_gtid ) ); - __kmp_reap_common( th ); - - __kmp_free_handle( __kmp_monitor_ev ); - - KMP_MB(); /* Flush all pending memory write invalidates. */ -} - -void -__kmp_reap_worker( kmp_info_t * th ) -{ - KA_TRACE( 10, ( "__kmp_reap_worker: reaping thread (%d)\n", th->th.th_info.ds.ds_gtid ) ); - __kmp_reap_common( th ); -} - -/* ------------------------------------------------------------------------ */ -/* ------------------------------------------------------------------------ */ - -#if KMP_HANDLE_SIGNALS - - -static void -__kmp_team_handler( int signo ) -{ - if ( __kmp_global.g.g_abort == 0 ) { - // Stage 1 signal handler, let's shut down all of the threads. - if ( __kmp_debug_buf ) { - __kmp_dump_debug_buffer(); - }; // if - KMP_MB(); // Flush all pending memory write invalidates. - TCW_4( __kmp_global.g.g_abort, signo ); - KMP_MB(); // Flush all pending memory write invalidates. - TCW_4( __kmp_global.g.g_done, TRUE ); - KMP_MB(); // Flush all pending memory write invalidates. - } -} // __kmp_team_handler - - - -static -sig_func_t __kmp_signal( int signum, sig_func_t handler ) { - sig_func_t old = signal( signum, handler ); - if ( old == SIG_ERR ) { - int error = errno; - __kmp_msg( kmp_ms_fatal, KMP_MSG( FunctionError, "signal" ), KMP_ERR( error ), __kmp_msg_null ); - }; // if - return old; -} - -static void -__kmp_install_one_handler( - int sig, - sig_func_t handler, - int parallel_init -) { - sig_func_t old; - KMP_MB(); /* Flush all pending memory write invalidates. */ - KB_TRACE( 60, ("__kmp_install_one_handler: called: sig=%d\n", sig ) ); - if ( parallel_init ) { - old = __kmp_signal( sig, handler ); - // SIG_DFL on Windows* OS in NULL or 0. - if ( old == __kmp_sighldrs[ sig ] ) { - __kmp_siginstalled[ sig ] = 1; - } else { - // Restore/keep user's handler if one previously installed. - old = __kmp_signal( sig, old ); - }; // if - } else { - // Save initial/system signal handlers to see if user handlers installed. - // 2009-09-23: It is a dead code. On Windows* OS __kmp_install_signals called once with - // parallel_init == TRUE. - old = __kmp_signal( sig, SIG_DFL ); - __kmp_sighldrs[ sig ] = old; - __kmp_signal( sig, old ); - }; // if - KMP_MB(); /* Flush all pending memory write invalidates. */ -} // __kmp_install_one_handler - -static void -__kmp_remove_one_handler( int sig ) { - if ( __kmp_siginstalled[ sig ] ) { - sig_func_t old; - KMP_MB(); // Flush all pending memory write invalidates. - KB_TRACE( 60, ( "__kmp_remove_one_handler: called: sig=%d\n", sig ) ); - old = __kmp_signal( sig, __kmp_sighldrs[ sig ] ); - if ( old != __kmp_team_handler ) { - KB_TRACE( 10, ( "__kmp_remove_one_handler: oops, not our handler, restoring: sig=%d\n", sig ) ); - old = __kmp_signal( sig, old ); - }; // if - __kmp_sighldrs[ sig ] = NULL; - __kmp_siginstalled[ sig ] = 0; - KMP_MB(); // Flush all pending memory write invalidates. - }; // if -} // __kmp_remove_one_handler - - -void -__kmp_install_signals( int parallel_init ) -{ - KB_TRACE( 10, ( "__kmp_install_signals: called\n" ) ); - if ( ! __kmp_handle_signals ) { - KB_TRACE( 10, ( "__kmp_install_signals: KMP_HANDLE_SIGNALS is false - handlers not installed\n" ) ); - return; - }; // if - __kmp_install_one_handler( SIGINT, __kmp_team_handler, parallel_init ); - __kmp_install_one_handler( SIGILL, __kmp_team_handler, parallel_init ); - __kmp_install_one_handler( SIGABRT, __kmp_team_handler, parallel_init ); - __kmp_install_one_handler( SIGFPE, __kmp_team_handler, parallel_init ); - __kmp_install_one_handler( SIGSEGV, __kmp_team_handler, parallel_init ); - __kmp_install_one_handler( SIGTERM, __kmp_team_handler, parallel_init ); -} // __kmp_install_signals - - -void -__kmp_remove_signals( void ) -{ - int sig; - KB_TRACE( 10, ("__kmp_remove_signals: called\n" ) ); - for ( sig = 1; sig < NSIG; ++ sig ) { - __kmp_remove_one_handler( sig ); - }; // for sig -} // __kmp_remove_signals - - -#endif // KMP_HANDLE_SIGNALS - -/* Put the thread to sleep for a time period */ -void -__kmp_thread_sleep( int millis ) -{ - DWORD status; - - status = SleepEx( (DWORD) millis, FALSE ); - if ( status ) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( FunctionError, "SleepEx()" ), - KMP_ERR( error ), - __kmp_msg_null - ); - } -} - -/* Determine whether the given address is mapped into the current address space. */ -int -__kmp_is_address_mapped( void * addr ) -{ - DWORD status; - MEMORY_BASIC_INFORMATION lpBuffer; - SIZE_T dwLength; - - dwLength = sizeof(MEMORY_BASIC_INFORMATION); - - status = VirtualQuery( addr, &lpBuffer, dwLength ); - - return !((( lpBuffer.State == MEM_RESERVE) || ( lpBuffer.State == MEM_FREE )) || - (( lpBuffer.Protect == PAGE_NOACCESS ) || ( lpBuffer.Protect == PAGE_EXECUTE ))); -} - -kmp_uint64 -__kmp_hardware_timestamp(void) -{ - kmp_uint64 r = 0; - - QueryPerformanceCounter((LARGE_INTEGER*) &r); - return r; -} - -/* Free handle and check the error code */ -void -__kmp_free_handle( kmp_thread_t tHandle ) -{ -/* called with parameter type HANDLE also, thus suppose kmp_thread_t defined as HANDLE */ - BOOL rc; - rc = CloseHandle( tHandle ); - if ( !rc ) { - DWORD error = GetLastError(); - __kmp_msg( - kmp_ms_fatal, - KMP_MSG( CantCloseHandle ), - KMP_ERR( error ), - __kmp_msg_null - ); - } -} - -int -__kmp_get_load_balance( int max ) { - - static ULONG glb_buff_size = 100 * 1024; - - static int glb_running_threads = 0; /* Saved count of the running threads for the thread balance algortihm */ - static double glb_call_time = 0; /* Thread balance algorithm call time */ - - int running_threads = 0; // Number of running threads in the system. - NTSTATUS status = 0; - ULONG buff_size = 0; - ULONG info_size = 0; - void * buffer = NULL; - PSYSTEM_PROCESS_INFORMATION spi = NULL; - int first_time = 1; - - double call_time = 0.0; //start, finish; - - __kmp_elapsed( & call_time ); - - if ( glb_call_time && - ( call_time - glb_call_time < __kmp_load_balance_interval ) ) { - running_threads = glb_running_threads; - goto finish; - } - glb_call_time = call_time; - - // Do not spend time on running algorithm if we have a permanent error. - if ( NtQuerySystemInformation == NULL ) { - running_threads = -1; - goto finish; - }; // if - - if ( max <= 0 ) { - max = INT_MAX; - }; // if - - do { - - if ( first_time ) { - buff_size = glb_buff_size; - } else { - buff_size = 2 * buff_size; - } - - buffer = KMP_INTERNAL_REALLOC( buffer, buff_size ); - if ( buffer == NULL ) { - running_threads = -1; - goto finish; - }; // if - status = NtQuerySystemInformation( SystemProcessInformation, buffer, buff_size, & info_size ); - first_time = 0; - - } while ( status == STATUS_INFO_LENGTH_MISMATCH ); - glb_buff_size = buff_size; - - #define CHECK( cond ) \ - { \ - KMP_DEBUG_ASSERT( cond ); \ - if ( ! ( cond ) ) { \ - running_threads = -1; \ - goto finish; \ - } \ - } - - CHECK( buff_size >= info_size ); - spi = PSYSTEM_PROCESS_INFORMATION( buffer ); - for ( ; ; ) { - ptrdiff_t offset = uintptr_t( spi ) - uintptr_t( buffer ); - CHECK( 0 <= offset && offset + sizeof( SYSTEM_PROCESS_INFORMATION ) < info_size ); - HANDLE pid = spi->ProcessId; - ULONG num = spi->NumberOfThreads; - CHECK( num >= 1 ); - size_t spi_size = sizeof( SYSTEM_PROCESS_INFORMATION ) + sizeof( SYSTEM_THREAD ) * ( num - 1 ); - CHECK( offset + spi_size < info_size ); // Make sure process info record fits the buffer. - if ( spi->NextEntryOffset != 0 ) { - CHECK( spi_size <= spi->NextEntryOffset ); // And do not overlap with the next record. - }; // if - // pid == 0 corresponds to the System Idle Process. It always has running threads - // on all cores. So, we don't consider the running threads of this process. - if ( pid != 0 ) { - for ( int i = 0; i < num; ++ i ) { - THREAD_STATE state = spi->Threads[ i ].State; - // Count threads that have Ready or Running state. - // !!! TODO: Why comment does not match the code??? - if ( state == StateRunning ) { - ++ running_threads; - // Stop counting running threads if the number is already greater than - // the number of available cores - if ( running_threads >= max ) { - goto finish; - } - } // if - }; // for i - } // if - if ( spi->NextEntryOffset == 0 ) { - break; - }; // if - spi = PSYSTEM_PROCESS_INFORMATION( uintptr_t( spi ) + spi->NextEntryOffset ); - }; // forever - - #undef CHECK - - finish: // Clean up and exit. - - if ( buffer != NULL ) { - KMP_INTERNAL_FREE( buffer ); - }; // if - - glb_running_threads = running_threads; - - return running_threads; - -} //__kmp_get_load_balance() - |