何かを最適化する方法や関数の呼び出しをコンパイラーにどのように伝えることができますか。malloc
つまり、割り当てメソッドを作成し、コンパイラーがorで最適化するように最適化しnew
ます。
または、コードのどこかで関数 X が呼び出され、その戻り値が使用されていない場合は、この呼び出しを削除します。(コンパイラがそれについて何も知らない.libの関数)
これにはオプションがありますか?
例えば:
auto val=X(); //Use the return value
X(); //Don't use
auto t=allocate<T>(); //Allocate on heap
t->Show(val); //Run single function and don't use it's pointer somewhere (Save it after the function is exit)
そして、次のように最適化します。
X(); //First line, just call it
T().Show(val); //Combines third and fourth lines, Allocate on stack and run the single function
「なぜこれが必要なのですか?」と尋ねる場合 独自の GC とヒープを使用してプログラミング言語を作成しています。(それもいろいろ)
それは C++ に変換されるので、変換中にコードを最適化したくありません。(面倒くさい) ところどころランダムに関数を呼べるから。(それらの値が使用されているかどうかはわかりません)