Deleted Added
full compact
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 ---