Commit Graph

21 Commits

Author SHA1 Message Date
Stefan Brüns
85e8c09ff6 Fix GetTimeCounter for Aarch64 variants
Neither GCC nor Clang define an __arm64__ preprocessor macro, but use
__aarch64__ (MSVC uses _MARM_64). Add a "64" suffix to the define, i.e.
NETGEN_ARCH_ARM64 to make it more obvious in only refers to aarch64, and
to be in line with NETGEN_ARCH_AMD64.

Replace the (Clang specific) __builtin_readcyclecounter with inline
asm:
- The function return cycles (i.e. varies with CPU frequency), not time
- It may return 0, depending on the PMU settings
- It may cause an illegal instruction, in case it is not trapped by the
  kernel, e.g. on FreeBSD.

Reading the generic timer/counter CNTVCT_EL0 instead of PMCCNTR_EL0 avoids
these pitfalls. The inline asm works on GCC and Clang, instead of
Clang only for the builtin.
2021-03-03 17:30:33 +01:00
Matthias Hochsteger
dbe894fea3 Support for Apple M1 2020-12-15 10:43:11 +01:00
Christopher Lackner
9af476c353 template shouldn't have NGCORE_API 2020-04-20 10:26:17 +02:00
Christopher Lackner
27baa178d2 fix new clang warning and add helper function 2020-04-20 10:13:04 +02:00
Matthias Hochsteger
e99db57b03 Use rdtsc in Timers 2019-10-01 13:18:24 +02:00
Matthias Hochsteger
78693fb196 Add Table and HashTable from NGSolve 2019-08-29 16:13:18 +02:00
Christopher Lackner
b12ef20fb7 index type can only be deduced from class, else it is size_t 2019-08-21 11:24:37 +02:00
Christopher Lackner
22de6f2c56 fix typos 2019-08-21 11:06:00 +02:00
Christopher Lackner
3869392f0a workaround for windows in index_type typetrait 2019-08-21 11:03:27 +02:00
Christopher Lackner
6c71982951 Range(obj) does respect index type now. If obj has a function Range it
calls the function
2019-08-20 18:16:03 +02:00
Matthias Hochsteger
3ce00d1a0c Remove AlignedAlloc
Instead, use a global new (size_t, align_t) operator for MacOS versions
(pre 10.14 is lacking full C++17 support in the standard library).

On all other platforms/versions we expect full C++17 support.
2019-08-14 13:09:57 +02:00
Matthias Hochsteger
5b913ca7e6 Atomic utility functions 2019-08-08 14:08:09 +02:00
Christopher Lackner
4c69f45241 take strings as const& 2019-07-26 16:15:56 +02:00
Christopher Lackner
091494c6b3 cleanup python export, generate mesh functions not monkeypatched 2019-07-25 23:25:58 +02:00
Matthias Hochsteger
5fb91f26ed User AlignedAlloc for over-aligned types
MacOS < 10.13 doesn't support new with alignment>16 bytes
2019-07-10 13:36:31 +02:00
Matthias Hochsteger
e1d4cc0410 Add Array, TaskManager and concurrentqueue from NGSolve
Array and TaskManager was mainly developed by Joachim Schöberl.
For complete version history, check NGSolve:
https://github.com/NGSolve/ngsolve

The concurrentqueue is from
https://github.com/cameron314/concurrentqueue
revision dea078cf5b6e742cd67a0d725e36f872feca4de4
2019-07-09 12:28:21 +02:00
Christopher Lackner
f106404280 implement "needs version" functionality for archiver 2019-01-23 10:19:43 +01:00
Matthias Hochsteger
4aa7e76bd1 MPI-Parallel output of profiler 2019-01-14 13:04:27 +01:00
Matthias Hochsteger
90de81f96e Fix wrong header include on Windows 2019-01-07 13:18:27 +01:00
Matthias Hochsteger
3a1cea6cbf [ngcore] Profiler 2019-01-03 15:54:50 +01:00
Matthias Hochsteger
678b4497c2 Paje tracing 2019-01-02 18:38:03 +01:00