powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как я люблю gcc
16 сообщений из 66, страница 3 из 3
Как я люблю gcc
    #39405261
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пилять, рядом такой же файл обрабатывается.

В общем, если
Код: plaintext
1.
2.
3.
SOURCES = main.c	\
		fontlib.c    \
	  $(NULL)

то правило обнаруживается и работает.
А если
Код: plaintext
1.
2.
SOURCES = main.c	\
		fontlib.c    

то не работает =)

Еще можно убрать вообще зависимость от SOURCES в неявном правиле.
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39484256
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и всплыло. Как я изначально выставлял претензию на "качество и понятность генерируемого ассемблера", так оно и поплыло

Сгенерированный странным образом код gcc "ломает" работу Intel SkyLake Hyper-Threading
https://habrahabr.ru/post/332552/

TL:DR
gcc генерирует 64-битный код, заполняя иногда только часть регистра, т.е не rax, rbx,... а AH, BH,...
Это иногда ломает ноги HT с непредсказуемым поведением и глюками
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39484294
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl, используешь MSYS2 ? Попробуй его в связке с NetBeans IDE (хоть и тормознутая из-за применения Java, но очень грамотная IDE).
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39484303
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglСгенерированный странным образом код gcc "ломает" работу Intel SkyLake Hyper-Threading
ИМХО GCC не виноват что интел кривой проц выпустил.
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39515420
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще пару клевых моментов

1. tellg /seekg не работает для _одного и того же_ текстового файла (это еще объяснимо)

2. если мы какой то файл через ifstream открываем в бинарной моде, вывод cout наворачивается полностью (а вот это необъяснимо)

gcc 6.2
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39515556
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. тоже объяснимо - в строки попадает \r и ес-но вывод на консоль затирается
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39515679
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закодь пока на fopen/fread а с потоками потом разгребем.
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39515741
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSiemarglСгенерированный странным образом код gcc "ломает" работу Intel SkyLake Hyper-Threading
ИМХО GCC не виноват что интел кривой проц выпустил.
работа с частью регистра - сомнительная оптимизация тем не менее
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39543629
SiemarglГде кстати прописано поведение линкера ?Линкер или не линкер — это деталь реализации, а про нарушения условий определения одного и того же класса в разных единицах трансляции сказано
http://eel.is/c draft/basic.def.odr#6.sentence-4 If the definitions of D do not satisfy these requirements, then the behavior is undefined.undefined behavior не требует диагностических сообщений
http://eel.is/c draft/intro.compliance#def:diagnosable_rules The set of diagnosable rules consists of all syntactic and semantic rules in this document except for those rules containing an explicit notation that “no diagnostic is required” or which are described as resulting in “undefined behavior”.
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39543630
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSiemarglСгенерированный странным образом код gcc "ломает" работу Intel SkyLake Hyper-Threading
ИМХО GCC не виноват что интел кривой проц выпустил.
Да GCC вообще ни в чём не виноват. GCC — это такое произведение искусства на тему "как не нужно делать".
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39669883
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередное обновление.

gcc6.2/win64

Проблема - нестабильность кода, недетерминированная компиляция.

Вносим изменения в программу, например закомментируем неиспользуемые функции или вносим в них мелкие изменения.

Рабочий код - меняется случайным образом (перестановка использования регистров, стека, перестановка операций итп), наблюдалось замедление до 10%.
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39671172
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще +проблема

Бинарник, собранный gcc 6.2, не запускается под Win2008SBS (ядро от Vista).

Где то похерили совместимость.
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39671434
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl, что показывает таблица импорта этого бинарника?
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39671500
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devSiemargl, что показывает таблица импорта этого бинарника?ничего особенного, kernel32.dll и msvcrt.dll
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39671635
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl, попробуй положить рядом с исполняемым файлом библиотеку msvcrt.dll с той системы, на которой компилировалась прога.
...
Рейтинг: 0 / 0
Как я люблю gcc
    #39674328
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglОчередное обновление.

gcc6.2/win64

Проблема - нестабильность кода, недетерминированная компиляция.

Вносим изменения в программу, например закомментируем неиспользуемые функции или вносим в них мелкие изменения.

Рабочий код - меняется случайным образом (перестановка использования регистров, стека, перестановка операций итп), наблюдалось замедление до 10%.
Обновлю чуть уточнениями, пока не утонуло в памяти.
Один и тот же исходник (используется __m128, никакой системно-зависимой хрени).

Но результат компиляции работает в 3-4 раза! медленнее если собран gcc под Linux.
Опции одинаковы.
Платформа компилятор время сWin64 gcc 6.2 12FreeBSD64 Clang6 12Linux64(Ubuntu14) gcc6.? 38Linux64(Ubuntu18) gcc7.3 38Linux64(Ubuntu14) Clang6 11


rdb_devSiemargl, попробуй положить рядом с исполняемым файлом библиотеку msvcrt.dll с той системы, на которой компилировалась прога.Бесполезно, под Vista32 вылетает при запуске.
...
Рейтинг: 0 / 0
16 сообщений из 66, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как я люблю gcc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]