2017-05-11 21 views
0

無効にLLVM基本ブロック上のすべての最適化無効にLLVM基本ブロック上のすべての最適化

は、コードが生成されるように、LLVM基本ブロックのすべての最適化および/または修正を無効にする方法はあります基本ブロックの場合、アセンブリ/バイナリレベルでは、元の順序で基本ブロック内の命令に正確に対応しますか?

私はoptnone関数の属性を知っています。これは、関数レベルでの最適化を無効にします。しかし、ここではいくつかを除いてすべての基本ブロックを最適化したいと思います。

基本ブロックの最適化を無効にする目標をどのように達成できますか?

+2

「IR命令とアセンブリ命令の間に1対1対応」というようなことさえあるのでしょうか。 – arrowd

+0

基本ブロックの最適化はどうですか?彼らはすべて無効にすべきですか? –

+0

する必要はありません。私は、基本ブロックがエンティティとしてそのまま残っている必要があります。その内容は変更されません。 – Shuzheng

答えて

-1

デフォルトのgccの呼び出しを想定します。

gcc module.c -O0 -o module.o 
gcc myprogram.c module.o -o myprogram 

モジュールが最適化されていません。 Dash大文字Oは最適化レベル、0は無し、2または3がより一般的です。他のコメント、特にモジュール間の最適化をメモしてください。

+0

OPは、CコードではなくLLVMビットコードについて質問しています。 – fuz

関連する問題