https://llvm.org/docs/LangRef.html#opaque-structure-typesによると
不透明な構造型は、本体が指定されていない構造型を表すために使用されます。これは、(たとえば) 前方宣言された構造体の C の概念に対応します。名前付き (%X) または名前なし (%52) にすることができます。
簡単に思えますが、私が理解しようとしているのはこれです。2 つの不透明な型があるとします。
%X = type opaque
%Y = type opaque
LLVM は、これらが 2 つの異なるタイプであるという事実を気にしますか? X を Y に置き換えると別のコードが生成されるシナリオはありますか? 考えられるのは、型ベースの別名解析ですが、不透明型を逆参照することはできないので、違いを生む方法がないように見えます。何か不足していますか?