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