AsmPrinter.cpp (261991) | AsmPrinter.cpp (262613) |
---|---|
1//===-- AsmPrinter.cpp - Common AsmPrinter code ---------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 9 unchanged lines hidden (view full) --- 18#include "llvm/ADT/SmallString.h" 19#include "llvm/ADT/Statistic.h" 20#include "llvm/Analysis/ConstantFolding.h" 21#include "llvm/Assembly/Writer.h" 22#include "llvm/CodeGen/GCMetadataPrinter.h" 23#include "llvm/CodeGen/MachineConstantPool.h" 24#include "llvm/CodeGen/MachineFrameInfo.h" 25#include "llvm/CodeGen/MachineFunction.h" | 1//===-- AsmPrinter.cpp - Common AsmPrinter code ---------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 9 unchanged lines hidden (view full) --- 18#include "llvm/ADT/SmallString.h" 19#include "llvm/ADT/Statistic.h" 20#include "llvm/Analysis/ConstantFolding.h" 21#include "llvm/Assembly/Writer.h" 22#include "llvm/CodeGen/GCMetadataPrinter.h" 23#include "llvm/CodeGen/MachineConstantPool.h" 24#include "llvm/CodeGen/MachineFrameInfo.h" 25#include "llvm/CodeGen/MachineFunction.h" |
26#include "llvm/CodeGen/MachineInstrBundle.h" |
|
26#include "llvm/CodeGen/MachineJumpTableInfo.h" 27#include "llvm/CodeGen/MachineLoopInfo.h" 28#include "llvm/CodeGen/MachineModuleInfo.h" 29#include "llvm/DebugInfo.h" 30#include "llvm/IR/DataLayout.h" 31#include "llvm/IR/Module.h" 32#include "llvm/IR/Operator.h" 33#include "llvm/MC/MCAsmInfo.h" --- 2182 unchanged lines hidden (view full) --- 2216 for (MachineBasicBlock::iterator II = Pred->getFirstTerminator(), 2217 IE = Pred->end(); II != IE; ++II) { 2218 MachineInstr &MI = *II; 2219 2220 // If it is not a simple branch, we are in a table somewhere. 2221 if (!MI.isBranch() || MI.isIndirectBranch()) 2222 return false; 2223 | 27#include "llvm/CodeGen/MachineJumpTableInfo.h" 28#include "llvm/CodeGen/MachineLoopInfo.h" 29#include "llvm/CodeGen/MachineModuleInfo.h" 30#include "llvm/DebugInfo.h" 31#include "llvm/IR/DataLayout.h" 32#include "llvm/IR/Module.h" 33#include "llvm/IR/Operator.h" 34#include "llvm/MC/MCAsmInfo.h" --- 2182 unchanged lines hidden (view full) --- 2217 for (MachineBasicBlock::iterator II = Pred->getFirstTerminator(), 2218 IE = Pred->end(); II != IE; ++II) { 2219 MachineInstr &MI = *II; 2220 2221 // If it is not a simple branch, we are in a table somewhere. 2222 if (!MI.isBranch() || MI.isIndirectBranch()) 2223 return false; 2224 |
2224 // If we are the operands of one of the branches, this is not 2225 // a fall through. 2226 for (MachineInstr::mop_iterator OI = MI.operands_begin(), 2227 OE = MI.operands_end(); OI != OE; ++OI) { 2228 const MachineOperand& OP = *OI; 2229 if (OP.isJTI()) | 2225 // If we are the operands of one of the branches, this is not a fall 2226 // through. Note that targets with delay slots will usually bundle 2227 // terminators with the delay slot instruction. 2228 for (ConstMIBundleOperands OP(&MI); OP.isValid(); ++OP) { 2229 if (OP->isJTI()) |
2230 return false; | 2230 return false; |
2231 if (OP.isMBB() && OP.getMBB() == MBB) | 2231 if (OP->isMBB() && OP->getMBB() == MBB) |
2232 return false; 2233 } 2234 } 2235 2236 return true; 2237} 2238 2239 --- 24 unchanged lines hidden --- | 2232 return false; 2233 } 2234 } 2235 2236 return true; 2237} 2238 2239 --- 24 unchanged lines hidden --- |