Trình biên dịch 03/09/2026 8 phút

Đoạn kiểm tra tràn của tôi báo 'an toàn' đúng lúc số đã âm — và nó chết ngay ở -O0

Kiểm tra tràn signed 'x+100 < x' bị trình dịch xóa thành return 0 — ngay ở -O0, không đợi -O2 như tôi tưởng. Còn unsigned thì quấn vòng đoán được, giữ nguyên phép so sánh. Đọc assembly thật để thấy vì sao bạn không được phát hiện tràn bằng chính phép tràn.

Trình biên dịch 03/09/2026 8 phút

Ép nội tuyến một hàm to: mã phình 14 lần, tốc độ tăng đúng 1% — ngưỡng của gcc là bạn, không phải thù

Hàm to gọi từ một chỗ vẫn được nội tuyến bất kể lớn; gọi từ nhiều chỗ thì gcc giữ lời gọi. Tôi ép always_inline vượt ngưỡng — đổi 14 lần kích thước mã lấy vỏn vẹn 1% tốc độ. Đo bằng objdump thật trong container.