LINUX.ORG.RU

[гентушникам-экстемалам]Про -ftree-vectorize


0

2

Привет, ЛОР и особенно гентушники-экстемалы!
Вот думаю я мир собрать с -ftree-vectorize на ~x86 (gcc, соответственно, 4.5.2).

CFLAGS="-O2 -march=core2 -ftree-vectorize -mfpmath=sse -msse4.1 -fexcess-precision=fast --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -fomit-frame-pointer -pipe"
CXXFLAGS="${CFLAGS}"
Какие проблемы я могу словить и на каких конкретно пакетах? Собираюсь использовать KDE 4.6, в качестве браузера rekonq.
Отпишитесь, пожалуйста, об историях успеха с -ftree-vectorize.


Ответ на: комментарий от anon_666

началось...лор - такой лор :3
представь себе - включая монитор я сразу вижу ЧТО и ГДЕ я искал и ЧЕМ я занимался до того как*
смысл перезапускать?

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

Если у вас что-то течёт, значит, вы это что-то коряво собрали или используете корявое приложение, нэ?

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

что значит «течёт»?
ничего что im онлайн отражает историю флуда в нескольких конфах за несколько суток?
как ты думаешь - это скажется на потреблении памяти? ;)
и так с ЛЮБЫМ софтом

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

Мы же про браузер, не?
А про конфы... Я только в linux.org.ru@conference.jabber.ru и сижу.

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

>а теперь поработай с этим софтом сутки другие, балабол :3
Половина софта уже работает пару суток. Оставшая половина на 400 мегабайт не протечёт.

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

Чем спорить, ответь на вопрос, пожалуйста

какие флаги из перечисленных в первом сообщении треда по умолчанию включены в gcc 4.5.2 на amd64?

tmpusr
() автор топика
Ответ на: комментарий от tmpusr
[ megabaks@desktop ] ~ $ echo "int main() { return 0; }" | gcc -march=native -v -E - 2>&1 | grep param
 /usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=core2
[ megabaks@desktop ] ~ $ echo "int main() { return 0; }" | gcc -march=native -O2 -v -E - 2>&1 | grep param
 /usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=core2 -O2
[ megabaks@desktop ] ~ $ echo "int main() { return 0; }" | gcc -O2 -v -E - 2>&1 | grep param
[ megabaks@desktop ] ~ $ 
 

сам догадаешься?

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

точнее так

[ megabaks@desktop ] ~ $ echo "int main() { return 0; }" | gcc -O2 -v -E - 2>&1 
Используются внутренние спецификации.
COLLECT_GCC=/usr/i686-pc-linux-gnu/gcc-bin/4.5.2/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/lto-wrapper
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.5.2/work/gcc-4.5.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.5.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --without-ppl --without-cloog --disable-ppl-version-check --disable-lto --enable-nls --without-included-gettext --with-system-zlib --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.5.2/python --enable-checking=release --disable-libgcj --with-arch=i686 --enable-objc-gc --enable-languages=c,c++,objc,obj-c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.5.2 p1.0, pie-0.4.5'
Модель многопоточности: posix
gcc версия 4.5.2 (Gentoo 4.5.2 p1.0, pie-0.4.5) 
COLLECT_GCC_OPTIONS='-O2' '-v' '-E' '-mtune=generic' '-march=i686'
 /usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -mtune=generic -march=i686 -O2
несуществующий каталог "/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/include" проигнорирован
порядок поиска для #include "...":
порядок поиска для #include <...>:
 /usr/local/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include-fixed
 /usr/include
конец списка поиска
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
int main() { return 0; }
COMPILER_PATH=/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/
LIBRARY_PATH=/opt/intel/Compiler/11.1/072/lib/ia32/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-O2' '-v' '-E' '-mtune=generic' '-march=i686'
[ megabaks@desktop ] ~ $ 

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

что хенря это - ещё большая чем выше приведённая команда
оно ничего РЕАЛЬНОГО не показывает
и да - указывать реальный второй кэш в параметрах не айс

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

Она просто показывает, что передаётся gcc при определённых флагах. Или кэш в любом случае выставляется флагом, даже если не выставить его самостоятельно?

Так сколько я должен выставить для второго уровня?

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

>что хенря это - ещё большая чем выше приведённая команда

оно ничего РЕАЛЬНОГО не показывает


Так и не понял, с чего ты это взял.

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

Для, как я понял, всех флагов есть

echo "int main() { return 0; }" | gcc -march=native -v -Q -x c - 2>&1
Смотреть options passed и options enabled.

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

Поделись травой, что здесь не так?
$ echo «int main() { return 0; }» | gcc -O2 -v -E - 2>&1

...
/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -mtune=generic -march=i686 -O2
...
COLLECT_GCC_OPTIONS='-O2' '-v' '-E' '-mtune=generic' '-march=i686'

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

Ну нате все флаги, только вот зачем?
$ echo 'int main(){return 0;}' |gcc -march=native -### -c -xc - 2>&1 |grep param

 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/cc1" "-quiet" "-" "-march=k8-sse3" "-mcx16" "-msahf" "--param" "l1-cache-size=64" "--param" "l1-cache-line-size=64" "--param" "l2-cache-size=512" "-mtune=k8" "-quiet" "-dumpbase" "-" "-auxbase" "-" "-o" "/tmp/ccWEYKbo.s"

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

вот когда найдёшь здесь -falign-label, тогда и поговорим

megabaks@desktop ] ~ $ echo "int main() { return 0; }" | gcc -O2 -march=i686 -mtune=generic -v -E - 2>&1 Используются внутренние спецификации. COLLECT_GCC=/usr/i686-pc-linux-gnu/gcc-bin/4.5.2/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/lto-wrapper Целевая архитектура: i686-pc-linux-gnu Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.5.2/work/gcc-4.5.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.5.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --without-ppl --without-cloog --disable-ppl-version-check --disable-lto --enable-nls --without-included-gettext --with-system-zlib --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.5.2/python --enable-checking=release --disable-libgcj --with-arch=i686 --enable-objc-gc --enable-languages=c,c++,objc,obj-c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.5.2 p1.0, pie-0.4.5' Модель многопоточности: posix gcc версия 4.5.2 (Gentoo 4.5.2 p1.0, pie-0.4.5) COLLECT_GCC_OPTIONS='-O2' '-march=i686' '-mtune=generic' '-v' '-E' /usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -march=i686 -mtune=generic -O2 несуществующий каталог "/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/include" проигнорирован порядок поиска для #include "...": порядок поиска для #include <...>: /usr/local/include /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include-fixed /usr/include конец списка поиска # 1 "<stdin>" # 1 "<built-in>" # 1 "<command-line>" # 1 "<stdin>" int main() { return 0; } COMPILER_PATH=/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/ LIBRARY_PATH=/opt/intel/Compiler/11.1/072/lib/ia32/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-O2' '-march=i686' '-mtune=generic' '-v' '-E' [ megabaks@desktop ] ~ $ 

megabaks ★★★★
()
Ответ на: да ты упорот от anon_666

это тоже по-твоему нормально?

[ megabaks@desktop ] ~ $ echo "int main() { return 0; }" | gcc -march=core2 -v -E - 2>&1 
Используются внутренние спецификации.
COLLECT_GCC=/usr/i686-pc-linux-gnu/gcc-bin/4.5.2/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/lto-wrapper
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: /var/tmp/portage/sys-devel/gcc-4.5.2/work/gcc-4.5.2/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.5.2 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.5.2/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --disable-fixed-point --without-ppl --without-cloog --disable-ppl-version-check --disable-lto --enable-nls --without-included-gettext --with-system-zlib --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.5.2/python --enable-checking=release --disable-libgcj --with-arch=i686 --enable-objc-gc --enable-languages=c,c++,objc,obj-c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.5.2 p1.0, pie-0.4.5'
Модель многопоточности: posix
gcc версия 4.5.2 (Gentoo 4.5.2 p1.0, pie-0.4.5) 
COLLECT_GCC_OPTIONS='-march=core2' '-v' '-E'
 /usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -march=core2
несуществующий каталог "/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/include" проигнорирован
порядок поиска для #include "...":
порядок поиска для #include <...>:
 /usr/local/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include-fixed
 /usr/include
конец списка поиска
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
int main() { return 0; }
COMPILER_PATH=/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/libexec/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/lib/gcc/i686-pc-linux-gnu/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/bin/
LIBRARY_PATH=/opt/intel/Compiler/11.1/072/lib/ia32/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/lib/:/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-march=core2' '-v' '-E'
[ megabaks@desktop ] ~ $ 

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

я не нервничаю, просто сегодня день какой-то долбанутый

или, может, я

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

Потому, что, блджад,
paз:

-v Print (on standard error output) the commands executed to run the stages of compilation.

перевод: -v и -### печатают комстроку передаваемую конпелятору фронтендом;
два:
он входит в -O2, и передавть конпелятору его ещё раз нет необходимости.

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

А это чем отличается от предыдущего поста(и вообще можно выхлоп отфильтровать было)?

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

megabaks

вот когда найдёшь здесь -falign-label, тогда и поговорим

О, Боже!

sysresccd / # echo "int main() { return 0; }" | gcc -O2 -v -Q -x c - 2>&1 | grep falign
активные ключи:  -falign-labels -falign-loops

tmpusr
() автор топика
Ответ на: комментарий от tmpusr
[ megabaks@desktop ] ~ $ echo "int main() { return 0; }" | gcc -O2 -v -Q -x c - 2>&1 | tr " " "\n" | grep falign
-falign-labels
-falign-loops
[ megabaks@desktop ] ~ $ 

а теперь из мана

[ root@desktop ] megabaks # echo "-O2 turns on all optimization flags specified by -O.  It also turns on the following optimization flags: -fthread-jumps
           -falign-functions  -falign-jumps -falign-loops  -falign-labels -fcaller-saves -fcrossjumping -fcse-follow-jumps  -fcse-skip-blocks
           -fdelete-null-pointer-checks -fexpensive-optimizations -fgcse  -fgcse-lm -finline-small-functions -findirect-inlining -fipa-sra
           -foptimize-sibling-calls -fpeephole2 -fregmove -freorder-blocks  -freorder-functions -frerun-cse-after-loop -fsched-interblock
           -fsched-spec -fschedule-insns  -fschedule-insns2 -fstrict-aliasing -fstrict-overflow -ftree-switch-conversion -ftree-pre -ftree-vrp
" | tr " " "\n" | grep falign
-falign-functions
-falign-jumps
-falign-loops
-falign-labels
[ root@desktop ] megabaks #

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

ЕМНИП, он врёт в связке с --help
Энивей, оно показывает, какие флаги переданы компилятору и какие активны. Заметь, в отличие от связки с --help оно показывает -mmmx в активных.

tmpusr
() автор топика
Ответ на: комментарий от tmpusr
[ root@desktop ] megabaks # echo "int main() { return 0; }" | gcc -march=core2 -O2 -v -Q -x c - 2>&1 | tr " " "\n" | grep falign
-falign-labels
-falign-loops
[ root@desktop ] megabaks # 

так кому верить?
ману или тебе?

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

на практике профит дают -fno-align-functions -fno-align-labels
первое не показано активным в выхлопе по твоему методу, но таки разница есть
где истина?

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