- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
return instruction emitted twice with branch target inbetween
function
unsigned int fact( unsigned int n) { return n < 1 ? 1 : n*fact(n-1); }
produces
fact:
.LFB0:
.cfi_startproc
testl %edi, %edi
movl $1, %eax
je .L4
.p2align 4,,10
.p2align 3
.L3:
imull %edi, %eax
subl $1, %edi
jne .L3
rep ret # <-- this instruction can be removed
.L4:
rep ret
.cfi_endproc
.LFE0:
.size fact, .-fact
.section .text.unlikely
j123123 25.07.2016 20:12 # +31
bormand 25.07.2016 20:18 # +26
guestinho 25.07.2016 21:54 # −8
3_14dar 26.07.2016 02:27 # −26
XEP 11.10.2016 21:38 # −15
guestinho 29.09.2016 18:09 # −15
guesto 23.08.2016 08:07 # −11
SlavaBagru 23.08.2016 08:43 # −11
negr 03.05.2017 15:49 # 0
AnalPunisher 03.05.2017 15:50 # −8
negr 03.05.2017 15:51 # 0
Сейчас в шапке видны разделы Асма и Руби?
AnalPunisher 03.05.2017 15:53 # +8
Мне видна манящая необъятность твоих ягодиц.
j123123 25.07.2016 20:23 # +28
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66152 suboptimal load bytes to stack
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71343 missed optimization (can't "prove" shift and multiplication equivalence)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68027 conditional statement and unnecessary register assignment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66123 [4.8 Regression] Array of labels as values + ternary operator + pointer arithmetic = internal compiler error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66178 [4.9/5/6 Regression] Another label as values ICE in gen_reg_rtx, at emit-rtl.c:1059
Кстати вы не подумайте, что это только gcc, в clang тоже хватает хуйни, просто я туда не репорчу и их компилятор не юзаю. Хотя кое-какие баги оптимизаций я находил, и internal compiler error вызывал даже
bormand 25.07.2016 20:25 # +28
guestinho 25.07.2016 21:55 # −6
huesto 07.09.2016 21:24 # −16
j123123 25.07.2016 20:28 # +28
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66123 [4.8 Regression] Array of labels as values + ternary operator + pointer arithmetic = internal compiler error
был обнаружен в результате зверских экспериментов борманда http://govnokod.ru/13512#comment190010
потом я еще подумал, и еще обнаружил похожую хуйню:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66178 [4.9/5/6 Regression] Another label as values ICE in gen_reg_rtx, at emit-rtl.c:1059
Наверняка еще много чего можно найти
guestinho 25.07.2016 21:55 # −9
j123123 25.07.2016 22:29 # +26
Invalid_typecast 25.07.2016 22:36 # +25
CRITICAL_ERROR 25.07.2016 22:39 # +36
Dummy00001 25.07.2016 21:55 # +33
по моему ты фигней страдаешь. на 4.9/4.8 код выглядит нормально. а в продакшн пихать самую свежую версию компилера - тем более гцц - это ты просто напрашиваешься.
с другой стороны: спасибо за усилия по тестированию :D
3_dar 25.07.2016 22:33 # −7
Это как? А какую тогда версию пихать? Предпоследнюю?
Dummy00001 26.07.2016 01:01 # +23
с 5/6 версиями пока не приходилось работать - но это как по мне экспериментальные бранчи: народ инфраструктуру (в 5ке) и оптимайзер (в 6ке) перехуячивают.
кошмары мискомпайлов с 4.9.1 все еще свежи в памяти. а 4.9.2 & 4.9.3 вроде в порядке. в chroot'овой системе у нас с 4.9.1 только сам GCC и собрался - все остальное сыпалось. в 4.9.2 были какие-то грабли с хидерами и пара прикладух не собиралась. 4.9.3 вроде работает - но внедренее отложили - продакшн тулчейн все еще на 4.8.2 сидит.
Dummy00001 26.07.2016 01:08 # +23
kurwa 26.07.2016 01:31 # +11
Типа гцц неправильный машинный код сгенерил?
Dummy00001 26.07.2016 01:42 # +22
меня больше поразила реакция девелов на это - а именно спокойная и размереная: ну подумаешь что свеже выпущеный релиз из коробки не работает... фикс уже закомитили, просто нужно запустить апдейт - до которого добраться из-за этих багов не возможно - и все будет чики-пыки.
kurwa 26.07.2016 02:08 # +23
Dummy00001 26.07.2016 14:49 # +32
на самом деле если ты баги gcc от j123123 пролистывал, то ты бы заметил что он там реально очень сильно чем то страдает (то ли интерпретер, то ли генератор какой-то пишет). поэтому его баги достаточно уникальны.
у gcc достаточно большая коллекция тестов, и настоящие серьёзные баги встречаются крайне редко. (к примеру: clang в молодые году мог работающий софт компилировать (включая себя), но все равно обламывался на многих gcc тестах.) хотя у меня складывается впечатлнение что gcc-шники не так часто смотрятся в результаты "make test". смотрят может быть и да - но облом тестов не останавливает релиза.
kurwa-nextgen 26.07.2016 16:09 # +23
Для меня скорее повод поискать проезд по памяти в соседнем потоке))
Dummy00001 26.07.2016 16:18 # +21
kurwa-nextgen 26.07.2016 16:36 # +31
А почему мы говорим об однопоточном приложении?
Dummy00001 26.07.2016 17:38 # +22
bormand 26.07.2016 17:50 # +24
Если код так легко выносится - может стоит там его и оставить и получить юнит-тест?
Dummy00001 26.07.2016 17:52 # +22
kajikus 23.08.2016 13:49 # +10
SlavaBagru 23.08.2016 14:24 # −16
fajes_rown 31.08.2016 21:26 # 0
void_main 31.08.2016 23:22 # −64
void_main 01.09.2016 13:57 # −64
1024-- 08.09.2016 07:43 # 0
huesto 20.09.2016 20:43 # −15
1024-- 21.09.2016 05:26 # 0
Вот примерно в таком положении сидит: http://png.clipart.me/graphics/previews/106/the-outline-of-a-girl-sitting-near-a-tree_106617848.jpg
Guest_ 21.09.2016 19:15 # −65
guestinho 21.09.2016 20:58 # −16
CrashTesterAnusov 21.09.2016 21:31 # −64
guestinho 21.09.2016 21:36 # −15
XEP 28.09.2016 20:23 # −15
guest 04.10.2016 02:38 # −14
У того хуй перемоло блендер
XEP 11.10.2016 21:37 # −15
guestinho 18.10.2016 23:54 # −15
bar-u-xoloda 17.10.2016 18:36 # 0
pdro2 18.10.2016 18:09 # −1
CTEPTOP 18.10.2016 18:20 # +1
guestinho 18.10.2016 23:53 # −15
barop 20.10.2016 02:47 # −15
Этруски — “Это – Русские” — называли себя Туранцами. То, что они были голубоглазыми блондинами, никто не сомневается. А ШотландцЫ и Англо-Саксы в своих генеалогиях так и пишут своего первопредка как СКИФ. Тамара, изолганная как “Томирис” изображается на картине Итальянского художника Андреа дель Кастаньи (Andrea del Castagno) 1400 года, как Русская женщина с длинной русой косой и большими голубыми глазами. Итальянцы хорошо знали, кто есть кто, и Царя Соломона, например, они изображали, как негра.
В слове “Томирис”, “ис” – это Греческое окончание, а так как наши Праматери Сар-Матки / Царь Матери / Амазонки всегда били Греков, то, конечно же, её имя было Тамара, а не Томирис. Тамара буквально означает ТА-МА-РА = “та/то/эта Мать РА / Русского”.
А Кай-САКИ Киргиз-Стана и К