Есть у мя один большой файл, а в нём всего-то одна функция на 150000 строк. GCC 3.3.1 (MinGW) скомпилил примерно за час при отключенной оптимизации, код оставляет желать лучшего :-( С -fexpensive-optimizations -O1 он вот уже 7й час компилит, пока ещё не ясно, что получится... =) MSVC (cl /O1gs) после 2.5 часов раздумий выдал: Fatal Error C1053 The function is too large to compile. Без /Og за тоже время скомпилировать ему удалось, но код ещё хуже, чем после GCC Intel C++ отпадает, т.к. код после него ни в какие ворота по размеру не проходит. А очень хотелось бы приемлимый MS COFF получить. Да и С++ желательно. Про MSVC вычитал /Zm - попробую, как только возможность появится. Может кто сталкивался с подобным, что можно ещё попробовать?
g++ наконец-то докомпилял. код с -O1 лучше чем без, но явно не дотягивает до оптимального. надо будет пробовать -O3. _DEN_ > Не зверская, а математическая. > Что куда заинлайнить? Повторю: _BC_ > Да мне-то не до шуток, получается целую неделю занимался brainfuck Asterix > По части размера в данном конкретном случае - ПОЛНЫЙ отстой. Ещё на исходнике в 10 раз меньшем он выдавал 2 метра экзешник, в то время как GCC и MSVC с оптимизацией по размеру - порядка 200 колобайт. Попробовать, конечно надо, почитаю ещё про ключики... Пока результаты такие: MSVC без оптимизации ~5 метров GCC без оптимизации ~3 метра GCC -O1 ~1.5 метра щас опять мучаю MSVC...
Такс, теперь ясно, что MSVC 7.1 /Zm как мёртвому припарка. Где-то у мя был ещё и 8.0beta может лучше окажется Самым шустрым пока оказался Digital Marc C 8.4 - сразу же выдал out of memory =) А Borland C++ 5.6 for Win32 выдал 15447 штук warning (на вполне нормальном коде), очень быстро сгенерировал объектник и помер с сообщением: Assertion failed: Config, file C:\src\ilink\import.cpp, line 311 Abnormal program termination Intel 8.1 ведёт себя ни чем не лучше: compilation aborted (code -1073741819) :-(((( semen > нет, мне по башке настучат _DEN_ > Тем, что это НЕ компилятор
вопрос не по теме: а ты эту функцию не руками писал? (я все же надеюсь, что какая-нить хитрая тулзовина сгенерила код)
Интересно, а если ето машинно генерированной сорс - почему не ассемблер сразу. Ведь ето же просто функция... ФАСМ например скомпилит ети 7Mb на ура до MS COFF.
Очередной жертвой пал Vector C (ключи /small /max) - после 4х часов раздумий выдал: *** FATAL: INTERNAL ERROR: Stack overflow, at: 0006155D, 00026146, 0006155D, 0006161F, 00061607, 00061607, 0006161F. --- In File: myfile.c, at line: 42, column: 0 Asterix > Может и справится, но с С++ кодом у этого компилятора плохо. johnfound > Про fasm уже думали - это одно из возможных решений, но только для x86. А поскольку речь идёт о новейшей суперпрогрессивной технологии производства bloatware, то хочется видеть это и на других процессорах q_q > Комментариев практически нет. Да дело не в этом - выкинуть whitespace не проблема, и препроцессоры всех компиляторов отлично справляются. Умирают оптимизаторы. Видимо, остаётся пробовать разбить эту функцию на некоторое количество маленьких. Хорошо, если удастся все их держать в одном файле...
S_T_A_S_ А попробуй WPO c MSVS (/GL кажись) - теперь оптимизатор работать будет на этапе линковки - вдруг не слетит?