[llvm-dev] Which way to lower selects on architectures without conditional moves&

s.ignatov via llvm-dev llvm-dev at lists.llvm.org
Thu Oct 10 09:43:58 PDT 2019


Hello,

We have the architecture without conditional moves. Which way can we 
lower select?

As we know there was the special pass a long time ago, but it was deleted.

commit c3591a0d48ce045bbf5ae0d78a41f3dae4bb99db
Author: Chris Lattner <sabre at nondot.org>
Date:   Tue Feb 19 07:49:17 2008 +0000

     remove the LowerSelect pass.  The last client was the old Sparc 
backend, which is long dead by now.

     llvm-svn: 47323

The problem is that if we use this pass we lose some useful special 
optimizing cases for selects, e.g. replacing it by min/max.

Does anyone have some experience with such architecture?

We're trying to generate some "if-then-else" on SelectionDAG now.

Could anyone show the way to generate "if-then-else" constructs on 
SelectionDAG?

Thanks in advance,

Sergey.



More information about the llvm-dev mailing list