別のIRをllvmIRに変換する作業をしています。
私のIRは次のようなものです。
a = 1;
b = a;
a = a + 1;
今のところ、私はallocaを使用してIRに変数を作成しています(ここでは「a」と「b」)。
ただし、allocaはおそらく重すぎるため、多くのロードストア命令が導入されます。関数が巨大な場合、これは問題になります。実際、私の場合、ほとんどの変数はレジスタ幅です。だから私はそれらを名前の付いた仮想レジスタにしたいだけです。
メモリ変数の代わりに仮想レジスタ(変数)を作成する方法を知っている人はいますか?
「alloca」の使用を避ける方法を意味しますか?