compilerIntrinsics.h 724 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. //todo debug release configurations cmake
  3. //compiler
  4. //
  5. #ifdef _MSC_VER
  6. #define PIKA_MSVC
  7. #endif
  8. #ifdef __GNUC__
  9. #define PIKA_GCC
  10. #endif
  11. #ifdef __clang__
  12. #define PIKA_CLANG
  13. #endif
  14. //
  15. //assume
  16. #ifdef PIKA_MSVC
  17. #define PIKA_ASSUME(x) __assume((x))
  18. #else
  19. #define PIKA_ASSUME(x)
  20. #endif
  21. //assume unreachable //todo for other compilers
  22. #ifdef PIKA_MSVC
  23. #define PIKA_UNREACHABLE() __assume((0))
  24. #else
  25. #define PIKA_UNREACHABLE()
  26. #endif
  27. //optimize off
  28. #ifdef PIKA_MSVC
  29. #define PIKA_OPTIMIZE_OFF() __pragma(optimize( "", off ))
  30. #else
  31. #define PIKA_OPTIMIZE_OFF()
  32. #endif
  33. //optimize on
  34. #ifdef PIKA_MSVC
  35. #define PIKA_OPTIMIZE_ON() __pragma(optimize( "", on ))
  36. #else
  37. #define PIKA_OPTIMIZE_ON()
  38. #endif