LINUX.ORG.RU

где код __builtin_cos() или __builtin_fabs()?

 ,


0

2

Что-то у меня глаза уже на лбу, не могу в коде GCC найти реализации его builtin функций типа __builtin_cos, __builtin_fabs и других аналогов библиотечных math.h , перечисленных в https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html .

Цель - разобраться где код этих функций, в частности, для RISC-V архитектуры.

И нет, меня не интересует код math.h из glibc, musl, newlib. Именно __builtin_*

★★

Последнее исправление: zendrz (всего исправлений: 2)
Ответ на: комментарий от anonymous

Да это заметно по обилию косвенного кода GCC, связанного с этим. Не могу распутать.

zendrz ★★
() автор топика

Может быть так, что они на самом деле про те, что поставлялись с стдлибой на момент выполнения gcc, а так как результат считается на месте, то их как бы и нет для пользователя?

anonymous
()
/* Many parts of GCC use arrays that are indexed by machine mode and
   contain the insn codes for pattern in the MD file that perform a given
   operation on operands of that mode.

   These patterns are present in the MD file with names that contain
   the mode(s) used and the name of the operation.  This program
   writes a function `init_all_optabs' that initializes the optabs with
   all the insn codes of the relevant patterns present in the MD file.

И дальше простым поиском по файлам находишь эти MD под каждую архитектуру. Правда, это относится только к вычислительной математике — fabs захардкожено заменой на ABS_EXPR. которое еще сильнее прибито гвоздями к компилятору без каких-либо вызовов внешних функций.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Спасибо. Удивительно что приведенный комментарий-цитата удалена из кода в 2012 году, версии так эдак в 4й. Господи ну и лапша там…

zendrz ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.