LLVM には、 のSelectInstような式を表すために使用される がありsomething = cond ? true-part : false-partます。
コンパイラによって?:常に a に下げられる可能性があるため、IR でのこの命令の利点は何ですか? BranchInstそのような命令をサポートする CPU はありますか? とにかくCodeGeneratorselectによってジャンプに下げられますか?
selectは暗黙の 2 つの「分岐」を保証するため、分析パスには利点があると思いますif。しかし一方で、コンパイラは命令をまったく使用する必要がないため、これらのパスはいずれにbrせよ s を処理できなければなりません。