projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
on darwin<10, fallback to .weak_definition (PPC,X86)
[oota-llvm.git]
/
lib
/
CodeGen
/
MachineSSAUpdater.cpp
diff --git
a/lib/CodeGen/MachineSSAUpdater.cpp
b/lib/CodeGen/MachineSSAUpdater.cpp
index acb1ee6cb6eec32b5c45ecace0e735efc04562a5..17f0af84dde359cf7545a51609c8e3c5e5d352be 100644
(file)
--- a/
lib/CodeGen/MachineSSAUpdater.cpp
+++ b/
lib/CodeGen/MachineSSAUpdater.cpp
@@
-13,19
+13,19
@@
//===----------------------------------------------------------------------===//
#include "llvm/CodeGen/MachineSSAUpdater.h"
//===----------------------------------------------------------------------===//
#include "llvm/CodeGen/MachineSSAUpdater.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
-#include "llvm/Target/TargetInstrInfo.h"
-#include "llvm/Target/TargetMachine.h"
-#include "llvm/Target/TargetRegisterInfo.h"
-#include "llvm/ADT/DenseMap.h"
-#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/AlignOf.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/AlignOf.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
+#include "llvm/Target/TargetInstrInfo.h"
+#include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/Transforms/Utils/SSAUpdaterImpl.h"
using namespace llvm;
#include "llvm/Transforms/Utils/SSAUpdaterImpl.h"
using namespace llvm;
@@
-42,7
+42,7
@@
MachineSSAUpdater::MachineSSAUpdater(MachineFunction &MF,
}
MachineSSAUpdater::~MachineSSAUpdater() {
}
MachineSSAUpdater::~MachineSSAUpdater() {
- delete
&getAvailableVals
(AV);
+ delete
static_cast<AvailableValsTy*>
(AV);
}
/// Initialize - Reset this object to get ready for a new set of SSA
}
/// Initialize - Reset this object to get ready for a new set of SSA
@@
-77,7
+77,7
@@
unsigned MachineSSAUpdater::GetValueAtEndOfBlock(MachineBasicBlock *BB) {
static
unsigned LookForIdenticalPHI(MachineBasicBlock *BB,
static
unsigned LookForIdenticalPHI(MachineBasicBlock *BB,
-
SmallVector<std::pair<MachineBasicBlock*, unsigned>, 8
> &PredValues) {
+
SmallVectorImpl<std::pair<MachineBasicBlock*, unsigned>
> &PredValues) {
if (BB->empty())
return 0;
if (BB->empty())
return 0;
@@
-109,7
+109,7
@@
unsigned LookForIdenticalPHI(MachineBasicBlock *BB,
/// a value of the given register class at the start of the specified basic
/// block. It returns the virtual register defined by the instruction.
static
/// a value of the given register class at the start of the specified basic
/// block. It returns the virtual register defined by the instruction.
static
-MachineInstr
*
InsertNewDef(unsigned Opcode,
+MachineInstr
Builder
InsertNewDef(unsigned Opcode,
MachineBasicBlock *BB, MachineBasicBlock::iterator I,
const TargetRegisterClass *RC,
MachineRegisterInfo *MRI,
MachineBasicBlock *BB, MachineBasicBlock::iterator I,
const TargetRegisterClass *RC,
MachineRegisterInfo *MRI,
@@
-183,13
+183,12
@@
unsigned MachineSSAUpdater::GetValueInMiddleOfBlock(MachineBasicBlock *BB) {
// Otherwise, we do need a PHI: insert one now.
MachineBasicBlock::iterator Loc = BB->empty() ? BB->end() : BB->begin();
// Otherwise, we do need a PHI: insert one now.
MachineBasicBlock::iterator Loc = BB->empty() ? BB->end() : BB->begin();
- MachineInstr
*
InsertedPHI = InsertNewDef(TargetOpcode::PHI, BB,
- Loc, VRC, MRI, TII);
+ MachineInstr
Builder
InsertedPHI = InsertNewDef(TargetOpcode::PHI, BB,
+
Loc, VRC, MRI, TII);
// Fill in all the predecessors of the PHI.
// Fill in all the predecessors of the PHI.
- MachineInstrBuilder MIB(InsertedPHI);
for (unsigned i = 0, e = PredValues.size(); i != e; ++i)
for (unsigned i = 0, e = PredValues.size(); i != e; ++i)
-
MIB
.addReg(PredValues[i].second).addMBB(PredValues[i].first);
+
InsertedPHI
.addReg(PredValues[i].second).addMBB(PredValues[i].first);
// See if the PHI node can be merged to a single value. This can happen in
// loop cases when we get a PHI of itself and one other value.
// See if the PHI node can be merged to a single value. This can happen in
// loop cases when we get a PHI of itself and one other value.
@@
-316,8
+315,7
@@
public:
/// the specified predecessor block.
static void AddPHIOperand(MachineInstr *PHI, unsigned Val,
MachineBasicBlock *Pred) {
/// the specified predecessor block.
static void AddPHIOperand(MachineInstr *PHI, unsigned Val,
MachineBasicBlock *Pred) {
- PHI->addOperand(MachineOperand::CreateReg(Val, false));
- PHI->addOperand(MachineOperand::CreateMBB(Pred));
+ MachineInstrBuilder(*Pred->getParent(), PHI).addReg(Val).addMBB(Pred);
}
/// InstrIsPHI - Check if an instruction is a PHI.
}
/// InstrIsPHI - Check if an instruction is a PHI.