clang

FreeBSD 9 + clang

$ uname -a
FreeBSD home-gw.lexa.ru 9.0-RC2 FreeBSD 9.0-RC2 #14: Sun Nov 13 14:18:10 MSK 2011 lexa@home-gw.lexa.ru:/usr/obj/usr/src/sys/GENERIC amd64
$ cat /etc/make.conf

.if !defined(CC) || ${CC} == "cc"
CC=clang
.endif
.if !defined(CXX) || ${CXX} == "c++"
CXX=clang++
.endif
.if !defined(CPP) || ${CPP} == "cpp"
CPP=clang-cpp
.endif

Страшно - трындец как.

Но все собралось (не без warnings), перезагрузилось и загрузилось. Сейчас попробую то же самое, но под конкретную архитектуру (еще страшнее....)

А llvm/clang я всячески приветствую.

О векторных расширениях gcc/clang (2)

В комментариях к одному из предыдущих постов про оптимизацию матричного преобразования цвета нам предлагают немножко подумать над алгоритмом.

К сожалению, предложенное там решение (офигенно быстрое!) считает неправильно, но направление движение указано верно и мы приходим к такому варианту:

  1. транспонируем матрицу, на которую умножаем, дополним нулями правую колонку, чтобы вышло 4x4
  2. Каждое из (четырех) входных значений - размножим на вектор.
  3. Нужный нам результат - это SIMD-сумма SIMD-произведений вышеупомянутых векторов на строки вышеупомянутой транспонированной матрицы.
Короче, проще кодом:
Subscribe to clang