[CodeGenPrepare] Freeze condition when transforming select to br
authorJuneyoung Lee <aqjune@gmail.com>
Sat, 14 Mar 2020 16:34:33 +0000 (01:34 +0900)
committerJuneyoung Lee <aqjune@gmail.com>
Mon, 16 Mar 2020 03:46:20 +0000 (12:46 +0900)
commit6ad63606ea4afde9043148509449ab984bfd499a
treefb8eec0779ab4c8ad7bdc2144cd85cb2d98d5d12
parent4ffe3ac729aa7a9863ea9a7bd451785a787d7ad8
[CodeGenPrepare] Freeze condition when transforming select to br

Summary:
This is a simple fix for CodeGenPrepare that freezes branch condition when transforming select to branch.
If it is not frozen, instsimplify or the later pipeline can potentially exploit undefined behavior.

The diff shows optimized form becase D75859 and D76048 already made a few changes to CodeGenPrepare for optimizing freeze(cmp).

Reviewers: jdoerfert, spatel, lebedev.ri, efriedma

Reviewed By: lebedev.ri

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D76179
llvm/lib/CodeGen/CodeGenPrepare.cpp
llvm/test/CodeGen/ARM/2012-08-30-select.ll
llvm/test/Transforms/CodeGenPrepare/X86/optimizeSelect-DT.ll
llvm/test/Transforms/CodeGenPrepare/X86/select.ll