diff options
author | Chris Lattner <sabre@nondot.org> | 2001-11-03 21:08:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-11-03 21:08:59 +0000 |
commit | 5b497ee7c24b0cff0b5b5064b086d2ad4b190b6f (patch) | |
tree | 650dbd3c801a5f4dc8e979687238a0c45f714f5f /lib/Transforms/LevelRaise.cpp | |
parent | 3bf04d5b99db505b07d55b42a348c6c642546d8c (diff) |
Add new cleanup pass:
// 1. PHI nodes with multiple entries for the same predecessor. GCC sometimes
// generates code that looks like this:
//
// bb7: br bool %cond1004, label %bb8, label %bb8
// bb8: %reg119 = phi uint [ 0, %bb7 ], [ 1, %bb7 ]
//
// which is completely illegal LLVM code. To compensate for this, we insert
// an extra basic block, and convert the code to look like this:
//
// bb7: br bool %cond1004, label %bbX, label %bb8
// bbX: br label bb8
// bb8: %reg119 = phi uint [ 0, %bbX ], [ 1, %bb7 ]
//
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1114 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/LevelRaise.cpp')
0 files changed, 0 insertions, 0 deletions