MINGW用のGCC4.2.1に、DWARF2を例外ハンドリングに用いるようにコンパイルされたGCCが出ていたのはしばらく前に知っていました。それまでのMINGWでのC++例外はSjLj (Setjump/Longjump) 例外ハンドリングといって setjump/longjump を使って例外を実装している物で、try...catchがあるたび、あるいはスタック上にインスタンスをおいただけでもそこにsetjumpをするため、例外が発生もしないのに実行コストがかかる物でした。DWARF2はもともとデバッグ情報形式の一つですが、これを用いて例外のcatch先を探すのが DWARF2 Exception Handling (DW2 EH) ということになります。この方式は例外が発生しないかぎりは実行コストがかからないそうです。
で、とりあえずC言語版のTLG5デコーダを吉里吉里2から移植してみたら、吉里吉里2で使ってるアセンブリで書いた LZSS デコーダの方が2倍ほど速いのに幻滅したのでgccコンパイラを3.4.5からほぼ最新の4.2にあげてみよう、ついでに前から気になっていた DW2 例外ハンドリングを使ってみようということになりました。
とりあえずboostがコンパイルできない(というかgcc 4.2 DW2EH の吐いた bjam.exe が落ちる)ので原因を調査中 ...