История изменений
Исправление Manhunt, (текущая версия) :
Вот это
movabsq $10000000000, %rcx # imm = 0x2540BE400
.align 16, 0x90
.LBB0_1: # =>This Inner Loop Header: Depth=1
incq %rsi
decq %rcx
jne .LBB0_1
должно было быть распознано и вычислено на этапе компиляции. Если компилировать с -O3, то так и происходит. А с -O2 компилятор почему-то тупит для shared_ptr, но справляется для unique_ptr. Почему именно — я не разобрался, т.к. почти не пользуюсь шлангом. А с gcc разницы во времени работы нет.
Исходная версия Manhunt, :
Вот это
movabsq $10000000000, %rcx # imm = 0x2540BE400
.align 16, 0x90
.LBB0_1: # =>This Inner Loop Header: Depth=1
incq %rsi
decq %rcx
jne .LBB0_1
должно было быть распознано как dead loop и вычислено на этапе компиляции. Если компилировать с -O3, то так и происходит. А с -O2 компилятор почему-то тупит для shared_ptr, но справляется для unique_ptr. Почему именно — я не разобрался, т.к. почти не пользуюсь шлангом. А с gcc разницы во времени работы нет.