0

次の単純なcコードがあります。

int a[2] = {1,2};
int main(){
    return a[0];
}

この場合、clang が生成する IR は次のようになります。

%retval = alloca i32, align 4
store i32 0, i32* %retval, align 4
%0 = load i32, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @a, i64 0, i64 0), align 4
ret i32 %0

ご覧のとおり、getelementptr 命令は load 命令内にインライン化されています。clang でこのインライン化を無効にする方法はありますか? 私はclangバージョン3.8.0を使用しています。

4

0 に答える 0