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 | ec83fc091e285083fa2d91b066ae17c4d398c60a (patch) | |
tree | 8e463a0f7305019f9f5455ca374a573a4d5a06b4 /llvm/lib/CodeGen/RegAlloc/IGNode.cpp | |
parent | 34f8595c0bab83a44734d0a1d852208dd08027bb (diff) | |
download | bcm5719-llvm-ec83fc091e285083fa2d91b066ae17c4d398c60a.tar.gz bcm5719-llvm-ec83fc091e285083fa2d91b066ae17c4d398c60a.zip |
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 ]
//
llvm-svn: 1114
Diffstat (limited to 'llvm/lib/CodeGen/RegAlloc/IGNode.cpp')
0 files changed, 0 insertions, 0 deletions