mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-01 01:30:36 +00:00
Modified switch generation so that only the phi values associated with the
destination basic block are copied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17212 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
151f8ba364
commit
30cc227fa7
@ -1194,11 +1194,11 @@ void CWriter::visitReturnInst(ReturnInst &I) {
|
||||
}
|
||||
|
||||
void CWriter::visitSwitchInst(SwitchInst &SI) {
|
||||
printPHICopiesForSuccessors(SI.getParent(), 0);
|
||||
|
||||
Out << " switch (";
|
||||
writeOperand(SI.getOperand(0));
|
||||
Out << ") {\n default:\n";
|
||||
printPHICopiesForSuccessor (SI.getParent(), SI.getDefaultDest(), 2);
|
||||
printBranchToBlock(SI.getParent(), SI.getDefaultDest(), 2);
|
||||
Out << ";\n";
|
||||
for (unsigned i = 2, e = SI.getNumOperands(); i != e; i += 2) {
|
||||
@ -1206,6 +1206,7 @@ void CWriter::visitSwitchInst(SwitchInst &SI) {
|
||||
writeOperand(SI.getOperand(i));
|
||||
Out << ":\n";
|
||||
BasicBlock *Succ = cast<BasicBlock>(SI.getOperand(i+1));
|
||||
printPHICopiesForSuccessor (SI.getParent(), Succ, 2);
|
||||
printBranchToBlock(SI.getParent(), Succ, 2);
|
||||
if (Succ == SI.getParent()->getNext())
|
||||
Out << " break;\n";
|
||||
|
@ -1194,11 +1194,11 @@ void CWriter::visitReturnInst(ReturnInst &I) {
|
||||
}
|
||||
|
||||
void CWriter::visitSwitchInst(SwitchInst &SI) {
|
||||
printPHICopiesForSuccessors(SI.getParent(), 0);
|
||||
|
||||
Out << " switch (";
|
||||
writeOperand(SI.getOperand(0));
|
||||
Out << ") {\n default:\n";
|
||||
printPHICopiesForSuccessor (SI.getParent(), SI.getDefaultDest(), 2);
|
||||
printBranchToBlock(SI.getParent(), SI.getDefaultDest(), 2);
|
||||
Out << ";\n";
|
||||
for (unsigned i = 2, e = SI.getNumOperands(); i != e; i += 2) {
|
||||
@ -1206,6 +1206,7 @@ void CWriter::visitSwitchInst(SwitchInst &SI) {
|
||||
writeOperand(SI.getOperand(i));
|
||||
Out << ":\n";
|
||||
BasicBlock *Succ = cast<BasicBlock>(SI.getOperand(i+1));
|
||||
printPHICopiesForSuccessor (SI.getParent(), Succ, 2);
|
||||
printBranchToBlock(SI.getParent(), Succ, 2);
|
||||
if (Succ == SI.getParent()->getNext())
|
||||
Out << " break;\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user