LINUX.ORG.RU
решено ФорумTalks

[ GCC4.4 +graphite] подтвердите багу если не сложно


0

0

preprocessed sources для x86:
http://gcc.gnu.org/bugzilla/attachment.cgi?id=19423&action=view

попробовать собрать (после распаковки gzip -d) это нужно с помощью

g++ -ftree-loop-linear -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -O2 -ftree-vectorize posix_proactor.ii -c

у меня выдает ошибку internal compiler
error: in prop_phis, at tree-loop-distribution.c:357
баг висит уже полгода в багзилле..

интересует именно GCC 4.4.x с Graphite, с 4.5-trunk все собирается
без графита тоже собирается

ps: если у кого есть регистрация на GCCшной багзилле и компилятор вывалится в ICE , поставьте CONFIRMED если не сложно http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40355

★★★★★

можно просто собрать с

g++ -ftree-loop-distribution -O2 posix_proactor.ii -c

этого хватит для ICE

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

А как определить - gcc собран с graphite или без него?

$ g++ -ftree-loop-distribution -O2 posix_proactor.ii -c
In file included from ../../../../dep/ACE_wrappers/ace/Global_Macros.h:911,
                 from ../../../../dep/ACE_wrappers/ace/OS_NS_Thread.h:29,
                 from ../../../../dep/ACE_wrappers/ace/Thread_Mutex.h:32,
                 from ../../../../dep/ACE_wrappers/ace/Asynch_IO.h:41,
                 from ../../../../dep/ACE_wrappers/ace/Proactor_Impl.h:26,
                 from ../../../../dep/ACE_wrappers/ace/POSIX_Proactor.h:31,
                 from ../../../../dep/ACE_wrappers/ace/POSIX_Proactor.cpp:4:
/usr/local/gcc-4.4/lib/gcc/i586-sylvia-linux/4.4.3/../../../../include/c++/4.4.3/new:91: ошибка: ‘operator new’ имеет ‘size_t’ (‘long unsigned int’) в качестве первого параметра
/usr/local/gcc-4.4/lib/gcc/i586-sylvia-linux/4.4.3/../../../../include/c++/4.4.3/new:92: ошибка: ‘operator new’ имеет ‘size_t’ (‘long unsigned int’) в качестве первого параметра
/usr/local/gcc-4.4/lib/gcc/i586-sylvia-linux/4.4.3/../../../../include/c++/4.4.3/new:95: ошибка: ‘operator new’ имеет ‘size_t’ (‘long unsigned int’) в качестве первого параметра
/usr/local/gcc-4.4/lib/gcc/i586-sylvia-linux/4.4.3/../../../../include/c++/4.4.3/new:96: ошибка: ‘operator new’ имеет ‘size_t’ (‘long unsigned int’) в качестве первого параметра
/usr/local/gcc-4.4/lib/gcc/i586-sylvia-linux/4.4.3/../../../../include/c++/4.4.3/new:101: ошибка: ‘operator new’ имеет ‘size_t’ (‘long unsigned int’) в качестве первого параметра
/usr/local/gcc-4.4/lib/gcc/i586-sylvia-linux/4.4.3/../../../../include/c++/4.4.3/new:102: ошибка: ‘operator new’ имеет ‘size_t’ (‘long unsigned int’) в качестве первого параметра
In file included from ../../../../dep/ACE_wrappers/ace/OS_NS_Thread.h:37,
                 from ../../../../dep/ACE_wrappers/ace/Thread_Mutex.h:32,
                 from ../../../../dep/ACE_wrappers/ace/Asynch_IO.h:41,
                 from ../../../../dep/ACE_wrappers/ace/Proactor_Impl.h:26,
                 from ../../../../dep/ACE_wrappers/ace/POSIX_Proactor.h:31,
                 from ../../../../dep/ACE_wrappers/ace/POSIX_Proactor.cpp:4:
../../../../dep/ACE_wrappers/ace/OS_Memory.h: In function ‘char* ACE_ptr_align_binary(const char*, uintptr_t)’:
../../../../dep/ACE_wrappers/ace/OS_Memory.h:321: ошибка: cast from ‘const char*’ to ‘uintptr_t’ loses precision

$ gcc -dumpversion
4.4.2

$ rpm -qi gcc
Name        : gcc                          Relocations: (not relocatable)
Version     : 4.4.2                             Vendor: Fedora Project
Release     : 20.fc12                       Build Date: Втр 22 Дек 2009 20:17:19
Install Date: Срд 30 Дек 2009 08:51:40      Build Host: localhost
Group       : Development/Languages         Source RPM: gcc-4.4.2-20.fc12.src.rpm
Size        : 19335236                         License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
Signature   : RSA/8, Втр 22 Дек 2009 22:42:01, Key ID 9d1cc34857bbccba
Packager    : Fedora Project
URL         : http://gcc.gnu.org
Summary     : Various compilers (C, C++, Objective-C, Java, ...)
Description :
The gcc package contains the GNU Compiler Collection version 4.4.
You'll need this package in order to compile C code.
Deleted
()
Ответ на: комментарий от Deleted

на 64 бита этот .ii не соберется, уже на убунте-64 пробовали

можно конечно -m32 в флаги добавить, но все равно что-то не собралось


если GCC без графита, то он вывалится с сообщением об ошибке при употреблении любого из этих флагов
-ftree-loop-linear -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution

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

/tmp :$c++44 -O2 posix_proactor.ii -c

т.е. собралось, ничего не написало, на выходе обьектный файл .o


с графитом - ICE:
/tmp :$c++44 -O2 -ftree-loop-distribution posix_proactor.ii -c
../../../../dep/ACE_wrappers/ace/POSIX_Proactor.cpp: In member function 'int ACE_POSIX_AIOCB_Proactor::create_result_aiocb_list()':
../../../../dep/ACE_wrappers/ace/POSIX_Proactor.cpp:857: internal compiler error: in prop_phis, at tree-loop-distribution.c:357
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Preprocessed source stored into /tmp/ccFtV3yF.out file, please attach this to your bugreport.

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

ps: для 64 бит чуть попозже выложу, у меня просто там нет GCC 4.4
только 4.3, и собирать долго, т.к. Атом (

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

Отписался там, но CONFIRMED не могу поставить. Похоже право ставить статус CONFIRMED могут только разработчики...

Deleted
()
Ответ на: комментарий от Sylvia

Да не за что.

Кстати, раз уж баг висит так давно и на него не обращают внимания, может стоит потыкать разработчиков в списке рассылки? Правда в связи с новогодними праздниками и там вряд ли быстро отреагируют.

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

висит давно потому что не было preprocessed, cкачивать и собирать ACE всем лень )

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

нет.

если серьезно , то пока графит мало применяется в для сборок общего назначения, а игры гентушников с CFLAGS обычно приводят к глюкам в системе, хотя поначалу все довольны и вроде бы все работает, пока что-нибудь не сломается, причем найти что именно сломалось становится уже сложно )

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

зависит от кода, тестов нет (просто сложно подобрать синтетику где бы серьезно был виден прирост, а в коде общего назначения он сравнительно небольшой)

субьективно впечатления положительные, у меня собрана с этим glibc (eglibc, родная glibc такого издевательства не выдерживает) и сам gcc с его математическим ядром (gmp,mpfr,mpc,ppl,cloog)

cтатус пока экспериментальный, ошибок встречается много, в GCC 4.5 графит был переработан

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

еще напишу что graphite в основном предназначен для распаралелливания loops на несколько ядер процессора, без необходимости адаптировать код,
подобная распаралелливалка существует в Intel C/C++ compiler, распаралеллить на небольшой программе типа conky или mpg123 ей удается до 10 циклов, это очень мало чтобы дать существенный прирост

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

на х86 без ошибок на 64: ../../../../dep/ACE_wrappers/ace/OS_Memory.h: In function ‘char* ACE_ptr_align_binary(const char*, uintptr_t)’: ../../../../dep/ACE_wrappers/ace/OS_Memory.h:321: ошибка: cast from ‘const char*’ to ‘uintptr_t’ loses precision

Используются внутренние спецификации. Целевая архитектура: i686-pc-linux-gnu Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.4.2/work/gcc-4.4.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.4.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.4.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.4.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.4.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.4.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.4.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --enable-cld --with-python-dir=/share/gcc-data/i686-pc-linux-gnu/4.4.2/python --disable-libgcj --with-arch=i686 --enable-languages=c,c++ --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.4.2 p1.0' Модель многопоточности: posix gcc версия 4.4.2 (Gentoo 4.4.2 p1.0)

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

на х86 без ошибок

странно...

g++ -ftree-loop-distribution -O2 posix_proactor.ii -c

точно флажок -ftree-loop-distribution не забыли ?

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

а у меня весь десктоп собран с CFLAGS="-O3 -pipe -march=k8-sse3 -mtune=k8-sse3 -msahf -mcx16 -fomit-frame-pointer -ftree-vectorize -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -ftree-loop-linear -funroll-loops -ftree-loop-ivcanon"

всё отлично работает уже более полугода :)

yekm
()
Ответ на: комментарий от Sylvia
┌ yekm@yekmserver pts/0 Среда 18:39 2009-12-30 192.168.113.2 42987 1322
└ 0 ~/sandbox/silvy ▶ rm *.o
┌ yekm@yekmserver pts/0 Среда 18:39 2009-12-30 192.168.113.2 42987 1322
└ 0 ~/sandbox/silvy ▶ g++ -ftree-loop-linear -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -O2 -ftree-vectorize posix_proactor.ii -c
┌ yekm@yekmserver pts/0 Среда 18:39 2009-12-30 192.168.113.2 42987 1322
└ 0 ~/sandbox/silvy ▶ ls
posix_proactor.ii  posix_proactor.o
┌ yekm@yekmserver pts/0 Среда 18:39 2009-12-30 192.168.113.2 42987 1322
└ 0 ~/sandbox/silvy ▶ uname -a
Linux yekmserver 2.6.32-gentoo #2 Thu Dec 17 21:46:15 SAMT 2009 i686 Intel(R) Celeron(R) CPU 2.00GHz GenuineIntel GNU/Linux
┌ yekm@yekmserver pts/0 Среда 18:39 2009-12-30 192.168.113.2 42987 1322
└ 0 ~/sandbox/silvy ▶ gcc -v
Используются внутренние спецификации.
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.4.2/work/gcc-4.4.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.4.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.4.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.4.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.4.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.4.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.4.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --enable-cld --with-python-dir=/share/gcc-data/i686-pc-linux-gnu/4.4.2/python --disable-libgcj --with-arch=i686 --enable-languages=c,c++ --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.4.2 p1.0'
Модель многопоточности: posix
gcc версия 4.4.2 (Gentoo 4.4.2 p1.0)
┌ yekm@yekmserver pts/0 Среда 18:39 2009-12-30 192.168.113.2 42987 1322
└ 0 ~/sandbox/silvy ▶
yekm
()
Ответ на: комментарий от yekm

cпасибо, видимо особая гентушная магия тут как обычно )
у меня GCC с Redhat ветки, но раньше падало и с ванильным

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

могу добавить насчёт багов.

есть такая программулина - murmur (mumble). с недавних пор она требует библиотеку celt, 0.7.0-r2 версия которой при компиляции с моими флагами вываливается с интересной ошибкой :)

x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../libcelt    -O3 -pipe -march=k8-sse3 -mtune=k8-sse3 -mfpmath=sse,387 -msse3 -msahf -mcx16 -fomit-frame-pointer -ftree-vectorize -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -ftree-loop-linear -funroll-loops -ftree-loop-ivcanon -fvisibility=hidden -W -Wstrict-prototypes -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wno-parentheses -Wno-unused-parameter -Wno-sign-compare -MT tandem-test.o -MD -MP -MF .deps/tandem-test.Tpo -c -o tandem-test.o tandem-test.c                                                                                                                                                        
tandem-test.c: В функции ‘async_tandem’:                                                                                                                                                                                                     
tandem-test.c:51: внутренняя ошибка компилятора: в scan_tree_for_params, в graphite.c:2819                                                                                                                                                   
Отправьте подробное сообщение об ошибке                                                                                                                                                                                                      
с препроцессированным исходным кодом.                                                                                                                                                                                                        
Смотрите инструкции в <http://bugs.gentoo.org/>.
make[2]: *** [tandem-test.o] Ошибка 1

у меня всё никак руки не дойдут посмотреть по внимательнее на это чудо, да сделать багрепорт

yekm
()

~/test > g++ -ftree-loop-linear -floop-interchange -floop-block -floop-strip-mine -ftree-loop-distribution -O2 -ftree-vectorize posix_proactor.ii -c
../../../../dep/ACE_wrappers/ace/POSIX_Proactor.cpp: In member function ‘int ACE_POSIX_AIOCB_Proactor::create_result_aiocb_list()’:
../../../../dep/ACE_wrappers/ace/POSIX_Proactor.cpp:857: внутренняя ошибка компилятора: в prop_phis, в tree-loop-distribution.c:357
Отправьте подробное сообщение об ошибке
с препроцессированным исходным кодом.
Смотрите инструкции в <http://gcc.gnu.org/bugs.html>.
~/test > g++ -v
Используются внутренние спецификации.
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: ../configure --enable-languages=c,c++ --with-ppl --with-cloog
Модель многопоточности: posix
gcc версия 4.4.3 20091230 (prerelease) (GCC)

ICE =)

ssk85
()

64 бит версии не будет

Ошибка с 64 бит версией не проявляется, только с 32

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