mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-03 13:31:05 +00:00
implement a todo: change a map into a vector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31805 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fb1aab0673
commit
280b714cd0
@ -23,7 +23,6 @@
|
||||
#include "llvm/Target/TargetAsmInfo.h"
|
||||
#include "llvm/ADT/Statistic.h"
|
||||
#include "llvm/Support/Compiler.h"
|
||||
#include <map>
|
||||
using namespace llvm;
|
||||
|
||||
static Statistic<> NumExpanded("ppc-branch-select",
|
||||
@ -31,9 +30,8 @@ static Statistic<> NumExpanded("ppc-branch-select",
|
||||
|
||||
namespace {
|
||||
struct VISIBILITY_HIDDEN PPCBSel : public MachineFunctionPass {
|
||||
/// OffsetMap - Mapping between BB and byte offset from start of function.
|
||||
/// TODO: replace this with a vector, using the MBB idx as the key.
|
||||
std::map<MachineBasicBlock*, unsigned> OffsetMap;
|
||||
/// OffsetMap - Mapping between BB # and byte offset from start of function.
|
||||
std::vector<unsigned> OffsetMap;
|
||||
|
||||
virtual bool runOnMachineFunction(MachineFunction &Fn);
|
||||
|
||||
@ -81,12 +79,14 @@ bool PPCBSel::runOnMachineFunction(MachineFunction &Fn) {
|
||||
// Running total of instructions encountered since beginning of function
|
||||
unsigned ByteCount = 0;
|
||||
|
||||
OffsetMap.resize(Fn.getNumBlockIDs());
|
||||
|
||||
// For each MBB, add its offset to the offset map, and count up its
|
||||
// instructions
|
||||
for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E;
|
||||
++MFI) {
|
||||
MachineBasicBlock *MBB = MFI;
|
||||
OffsetMap[MBB] = ByteCount;
|
||||
OffsetMap[MBB->getNumber()] = ByteCount;
|
||||
|
||||
for (MachineBasicBlock::iterator MBBI = MBB->begin(), EE = MBB->end();
|
||||
MBBI != EE; ++MBBI)
|
||||
@ -128,7 +128,7 @@ bool PPCBSel::runOnMachineFunction(MachineFunction &Fn) {
|
||||
unsigned Opcode = MBBI->getOperand(1).getImmedValue();
|
||||
unsigned CRReg = MBBI->getOperand(0).getReg();
|
||||
|
||||
int Displacement = OffsetMap[DestMBB] - ByteCount;
|
||||
int Displacement = OffsetMap[DestMBB->getNumber()] - ByteCount;
|
||||
unsigned Inverted = PPCInstrInfo::invertPPCBranchOpcode(Opcode);
|
||||
|
||||
MachineBasicBlock::iterator MBBJ;
|
||||
|
Loading…
Reference in New Issue
Block a user