Няшная / Говнокод #25997 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
// https://godbolt.org/z/dMT7v3

unsigned div_eq(unsigned a, unsigned b)
{
  ALWAYS_TRUE(a == b);
  return a/b;
}

unsigned div(unsigned a, unsigned b)
{
  return a/b;
}


int test_array(unsigned char a[10])
{
  for (int i = 1; i < 10; i++)
  {
    ALWAYS_TRUE(a[i-1] <= a[i]);
  }
  return a[0] <= a[2];
}

Refinement type
Можно этой хуйней ассерты позаменять попробовать, и компилятор возможно что-то сможет за счет этого соптимизировать

Запостил: j123123 j123123, (Updated )

Комментарии (6) RSS

  • А, две верхние строчки забыл
    #define IMPOSSIBLE(a) if(a) __builtin_unreachable()
    #define ALWAYS_TRUE(a) IMPOSSIBLE(!(a))

    Clang кстати на основе этой хуйни оптимизировать не хочет, поэтому я за GCC
    Ответить
  • Интересно. С «-O2» div_eq() оптимизируется, а test_array() — нет.
    Ответить
      • А с -O9 программа работает настолько быстро, что вычисляет результат ещё до запуска и вызывает пространственно-временной парадокс, приводящий к уничтожению текущей вселенной и переходу в другую ветвь, в которой парадокс отсутствует. Именно поэтому в нашей вселенной -O9 синонимично -O3.
        Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8