1. C++ / Говнокод #16124

    +58

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Poor man' link time code generation:
    
    #include "main.cpp"
    #include "frame.cpp"
    #include "func.cpp"
    #include "account.cpp"
    #include "advancer.cpp"
    #include "audit.cpp"
    #include "cpio.cpp"
    
    g++ -whole-program -o my books.exe -O3 includeall.cpp

    http://blogs.msdn.com/b/oldnewthing/archive/2014/06/06/10531604.aspx

    Запостил: someone, 07 Июня 2014

    Комментарии (5) RSS

    • php-style, truly
      Ответить
    • а чё. главное что работает.

      я такое пару раз делал когда (1) make'а под рукой не было или (2) мэйкфайл был кривой. (виндозные проблемы.)

      для оптимизации имхо это кривовато. почти все компилеры уже могут и LTO и profile-based optimization. и gcc все равно нужно говорить что бы он больше инлайнил (-finline-limit), потому что по умолчанию он относительно консервативен.

      ЗЫ искал inline limit - случайно нашел -fmudflap . LOLное имя.
      Ответить
      • >LOLное имя.
        -lole32
        Ответить
      • >и gcc все равно нужно говорить что бы он больше инлайнил (-finline-limit)
        Думаю gcc не зря консервативен в инлайне и анроллинге, fprofile - вот критерий истины.

        Это доказательство почему гентушники жгут даром электричество. Ибо давно подмечено, что свои билды даже заточенные под конкретную машину зачастую сливают профайленным. А профайлить и делать lto всему софту - идиотия и преждевременная оптимизация.

        Кстати а какие еще опции кроме стандартных -O3 -flto -march= ... -mtune=... кто юзает?
        Ответить

    Добавить комментарий