22 #include "dtool_config.h" 25 #if defined(_WIN32) || defined(_WIN64) 42 #pragma warning (disable : 4231) 44 #pragma warning (disable : 4786) 46 #pragma warning (disable : 4251) 48 #pragma warning (disable : 4503) 50 #pragma warning (disable : 4305) 52 #pragma warning (disable : 4250) 54 #pragma warning (disable : 4355) 56 #pragma warning (disable : 4244) 58 #pragma warning (disable : 4267) 60 #pragma warning (disable : 4577) 72 #define __has_builtin(x) 0 75 #ifndef __has_attribute 76 #define __has_attribute(x) 0 83 #define NODEFAULT default: assert(0); break; 84 #elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) || __has_builtin(__builtin_unreachable) 85 #define NODEFAULT default: __builtin_unreachable(); 86 #elif defined(_MSC_VER) 87 #define NODEFAULT default: __assume(0); // special VC keyword 93 #if __has_builtin(__builtin_assume_aligned) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) 94 #define ASSUME_ALIGNED(x, y) (__builtin_assume_aligned(x, y)) 96 #define ASSUME_ALIGNED(x, y) (x) 99 #if __has_attribute(assume_aligned) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9) 100 #define RETURNS_ALIGNED(x) __attribute__((assume_aligned(x))) 102 #define RETURNS_ALIGNED(x) 106 #define LIKELY(x) __builtin_expect(!!(x), 1) 107 #define UNLIKELY(x) __builtin_expect(!!(x), 0) 109 #define LIKELY(x) (x) 110 #define UNLIKELY(x) (x) 121 #define _WIN32_WINNT 0x0502 124 #ifndef __STDC_LIMIT_MACROS 125 #define __STDC_LIMIT_MACROS 127 #ifndef __STDC_CONSTANT_MACROS 128 #define __STDC_CONSTANT_MACROS 134 #if defined(__clang__) && defined(__GLIBC__) 135 #include <sys/cdefs.h> 136 #ifndef __extern_always_inline 137 #define __extern_always_inline extern __always_inline 144 typedef struct _object PyObject;
159 #define _FILE_OFFSET_BITS 64 160 #define _LARGEFILE_SOURCE 1 167 #ifdef PHAVE_SYS_TYPES_H 168 #include <sys/types.h> 171 #ifdef PHAVE_MALLOC_H 175 #ifdef PHAVE_SYS_MALLOC_H 176 #include <sys/malloc.h> 179 #ifdef PHAVE_ALLOCA_H 183 #ifdef PHAVE_UNISTD_H 191 #ifdef PHAVE_LOCALE_H 195 #ifdef PHAVE_STRING_H 199 #ifdef PHAVE_STDLIB_H 203 #ifdef PHAVE_LIMITS_H 207 #ifdef PHAVE_SYS_TIME_H 208 #include <sys/time.h> 211 #ifdef PHAVE_STDINT_H 216 #include <stdtypedefs.h> 226 #include <Profile/Profiler.h> 231 #define TAU_TYPE_STRING(profileString, str) 232 #define TAU_PROFILE(name, type, group) 233 #define TAU_PROFILE_TIMER(var, name, type, group) 234 #define TAU_PROFILE_START(var) 235 #define TAU_PROFILE_STOP(var) 236 #define TAU_PROFILE_STMT(stmt) 237 #define TAU_PROFILE_EXIT(msg) 238 #define TAU_PROFILE_INIT(argc, argv) 239 #define TAU_PROFILE_SET_NODE(node) 240 #define TAU_PROFILE_SET_CONTEXT(context) 241 #define TAU_PROFILE_SET_GROUP_NAME(newname) 242 #define TAU_PROFILE_TIMER_SET_GROUP_NAME(t, newname) 243 #define TAU_PROFILE_CALLSTACK() 244 #define TAU_DB_DUMP() 245 #define TAU_DB_PURGE() 247 #define TAU_REGISTER_CONTEXT_EVENT(event, name) 248 #define TAU_CONTEXT_EVENT(event, data) 249 #define TAU_DISABLE_CONTEXT_EVENT(event) 250 #define TAU_ENABLE_CONTEXT_EVENT(event) 252 #define TAU_REGISTER_EVENT(event, name) 253 #define TAU_EVENT(event, data) 254 #define TAU_EVENT_DISABLE_MIN(event) 255 #define TAU_EVENT_DISABLE_MAX(event) 256 #define TAU_EVENT_DISABLE_MEAN(event) 257 #define TAU_EVENT_DISABLE_STDDEV(event) 258 #define TAU_REPORT_STATISTICS() 259 #define TAU_REPORT_THREAD_STATISTICS() 260 #define TAU_REGISTER_THREAD() 261 #define TAU_REGISTER_FORK(id, op) 262 #define TAU_ENABLE_INSTRUMENTATION() 263 #define TAU_DISABLE_INSTRUMENTATION() 264 #define TAU_ENABLE_GROUP(group) 265 #define TAU_DISABLE_GROUP(group) 266 #define TAU_ENABLE_GROUP_NAME(group) 267 #define TAU_DISABLE_GROUP_NAME(group) 268 #define TAU_ENABLE_ALL_GROUPS() 269 #define TAU_DISABLE_ALL_GROUPS() 270 #define TAU_TRACK_MEMORY() 271 #define TAU_TRACK_MEMORY_HERE() 272 #define TAU_ENABLE_TRACKING_MEMORY() 273 #define TAU_DISABLE_TRACKING_MEMORY() 274 #define TAU_ENABLE_TRACKING_MUSE_EVENTS() 275 #define TAU_DISABLE_TRACKING_MUSE_EVENTS() 276 #define TAU_TRACK_MUSE_EVENTS() 277 #define TAU_SET_INTERRUPT_INTERVAL(value) 279 #define TAU_TRACE_SENDMSG(type, destination, length) 280 #define TAU_TRACE_RECVMSG(type, source, length) 282 #define TAU_MAPPING(stmt, group) stmt 283 #define TAU_MAPPING_OBJECT(FuncInfoVar) 284 #define TAU_MAPPING_LINK(FuncInfoVar, Group) 285 #define TAU_MAPPING_PROFILE(FuncInfoVar) 286 #define TAU_MAPPING_CREATE(name, type, key, groupname, tid) 287 #define TAU_MAPPING_PROFILE_TIMER(Timer, FuncInfoVar, tid) 288 #define TAU_MAPPING_TIMER_CREATE(t, name, type, gr, group_name) 289 #define TAU_MAPPING_PROFILE_START(Timer, tid) 290 #define TAU_MAPPING_PROFILE_STOP(tid) 291 #define TAU_MAPPING_PROFILE_EXIT(msg, tid) 292 #define TAU_MAPPING_DB_DUMP(tid) 293 #define TAU_MAPPING_DB_PURGE(tid) 294 #define TAU_MAPPING_PROFILE_SET_NODE(node, tid) 295 #define TAU_MAPPING_PROFILE_SET_GROUP_NAME(timer, name) 296 #define TAU_PROFILE_TIMER_SET_NAME(t, newname) 297 #define TAU_PROFILE_TIMER_SET_TYPE(t, newname) 298 #define TAU_PROFILE_TIMER_SET_GROUP(t, id) 299 #define TAU_MAPPING_PROFILE_SET_NAME(timer, name) 300 #define TAU_MAPPING_PROFILE_SET_TYPE(timer, name) 301 #define TAU_MAPPING_PROFILE_SET_GROUP(timer, id) 302 #define TAU_MAPPING_PROFILE_GET_GROUP_NAME(timer) 303 #define TAU_MAPPING_PROFILE_GET_GROUP(timer) 304 #define TAU_MAPPING_PROFILE_GET_NAME(timer) 305 #define TAU_MAPPING_PROFILE_GET_TYPE(timer) 307 #define TAU_PHASE(name, type, group) 308 #define TAU_PHASE_CREATE_STATIC(var, name, type, group) 309 #define TAU_PHASE_CREATE_DYNAMIC(var, name, type, group) 310 #define TAU_PHASE_START(var) 311 #define TAU_PHASE_STOP(var) 312 #define TAU_GLOBAL_PHASE(timer, name, type, group) 313 #define TAU_GLOBAL_PHASE_START(timer) 314 #define TAU_GLOBAL_PHASE_STOP(timer) 315 #define TAU_GLOBAL_PHASE_EXTERNAL(timer) 316 #define TAU_GLOBAL_TIMER(timer, name, type, group) 317 #define TAU_GLOBAL_TIMER_EXTERNAL(timer) 318 #define TAU_GLOBAL_TIMER_START(timer) 319 #define TAU_GLOBAL_TIMER_STOP() 332 #if defined(__LITTLE_ENDIAN__) || defined(__i386__) 333 #undef WORDS_BIGENDIAN 335 #elif defined(__BIG_ENDIAN__) || defined(__ppc__) 336 #undef WORDS_BIGENDIAN 337 #define WORDS_BIGENDIAN 1 344 #define NATIVE_WORDSIZE __WORDSIZE 345 #elif defined(_LP64) || defined(_WIN64) 346 #define NATIVE_WORDSIZE 64 348 #define NATIVE_WORDSIZE 32 358 #elif defined(_MSC_VER) 359 #define ALIGN_4BYTE __declspec(align(4)) 360 #define ALIGN_8BYTE __declspec(align(8)) 361 #define ALIGN_16BYTE __declspec(align(16)) 362 #define ALIGN_32BYTE __declspec(align(32)) 363 #define ALIGN_64BYTE __declspec(align(64)) 364 #elif defined(__GNUC__) 365 #define ALIGN_4BYTE __attribute__ ((aligned (4))) 366 #define ALIGN_8BYTE __attribute__ ((aligned (8))) 367 #define ALIGN_16BYTE __attribute__ ((aligned (16))) 368 #define ALIGN_32BYTE __attribute__ ((aligned (32))) 369 #define ALIGN_64BYTE __attribute__ ((aligned (64))) 381 #if !defined(LINMATH_ALIGN) 384 #undef MEMORY_HOOK_DO_ALIGN 386 #elif defined(USE_MEMORY_DLMALLOC) 388 #undef MEMORY_HOOK_DO_ALIGN 390 #elif defined(USE_MEMORY_PTMALLOC2) 394 #define MEMORY_HOOK_DO_ALIGN 1 396 #elif (defined(IS_OSX) || defined(_WIN64)) && !defined(__AVX__) 398 #undef MEMORY_HOOK_DO_ALIGN 400 #elif defined(MEMORY_HOOK_DO_ALIGN) 407 #define USE_MEMORY_DLMALLOC 1 414 #if defined(HAVE_EIGEN) && defined(__AVX__) && defined(STDFLOAT_DOUBLE) 417 #define MEMORY_HOOK_ALIGNMENT 32 419 #define MEMORY_HOOK_ALIGNMENT 16 423 #elif defined(IS_OSX) || NATIVE_WORDSIZE >= 64 424 #define MEMORY_HOOK_ALIGNMENT 16 426 #define MEMORY_HOOK_ALIGNMENT 8 431 #define EIGEN_MAX_ALIGN_BYTES MEMORY_HOOK_ALIGNMENT 432 #ifndef EIGEN_MPL2_ONLY 433 #define EIGEN_MPL2_ONLY 1 435 #if !defined(_DEBUG) && !defined(EIGEN_NO_DEBUG) 436 #define EIGEN_NO_DEBUG 1 441 #if defined(USE_MEMORY_PTMALLOC2) || defined(USE_MEMORY_DLMALLOC) || defined(DO_MEMORY_USAGE) || defined(MEMORY_HOOK_DO_ALIGN) 447 #define USE_MEMORY_NOWRAPPERS 1 452 #define USE_STL_ALLOCATOR 1 462 #define BEGIN_PUBLISH __begin_publish 463 #define END_PUBLISH __end_publish 464 #define BLOCKING __blocking 465 #define MAKE_PROPERTY(property_name, ...) __make_property(property_name, __VA_ARGS__) 466 #define MAKE_PROPERTY2(property_name, ...) __make_property2(property_name, __VA_ARGS__) 467 #define MAKE_SEQ(seq_name, num_name, element_name) __make_seq(seq_name, num_name, element_name) 468 #define MAKE_SEQ_PROPERTY(property_name, ...) __make_seq_property(property_name, __VA_ARGS__) 469 #define MAKE_MAP_PROPERTY(property_name, ...) __make_map_property(property_name, __VA_ARGS__) 470 #define MAKE_MAP_KEYS_SEQ(property_name, ...) __make_map_keys_seq(property_name, __VA_ARGS__) 471 #define EXTENSION(x) __extension x 472 #define EXTEND __extension 474 #define BEGIN_PUBLISH 477 #define MAKE_PROPERTY(property_name, ...) 478 #define MAKE_PROPERTY2(property_name, ...) 479 #define MAKE_SEQ(seq_name, num_name, element_name) 480 #define MAKE_SEQ_PROPERTY(property_name, ...) 481 #define MAKE_MAP_PROPERTY(property_name, ...) 482 #define MAKE_MAP_KEYS_SEQ(property_name, ...) 488 #if defined(WIN32_VC) && !defined(CPPPARSER) && !defined(LINK_ALL_STATIC) 489 #define EXPORT_CLASS __declspec(dllexport) 490 #define IMPORT_CLASS __declspec(dllimport) 491 #elif __GNUC__ >= 4 && !defined(CPPPARSER) && !defined(LINK_ALL_STATIC) 492 #define EXPORT_CLASS __attribute__((visibility("default"))) 500 #if defined(CPPPARSER) || defined(LINK_ALL_STATIC) 503 #elif defined(_MSC_VER) 511 #define IMPORT_TEMPL extern 513 #define EXPORT_TEMPL extern 514 #define IMPORT_TEMPL extern