[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>
Sun, 15 Mar 2020 02:10:46 +0000 (11:10 +0900)
commit10aa7ea951e22dbd7f2ebdeb6410cfbc8a251eb1
treef5e75f3984926afdb8576a4b5df0e8c811c70e0a
parent049bb95c5c4185611f8240249208aef82773a79d
[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 freezed, 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