mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Keep track of incoming argument's location while emitting LiveIns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124611 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -281,7 +281,7 @@ public:
|
||||
|
||||
/// addLiveIn - Add the specified physical register as a live-in value and
|
||||
/// create a corresponding virtual register for it.
|
||||
unsigned addLiveIn(unsigned PReg, const TargetRegisterClass *RC);
|
||||
unsigned addLiveIn(unsigned PReg, const TargetRegisterClass *RC, DebugLoc DL);
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// BasicBlock accessor functions.
|
||||
|
@ -17,6 +17,8 @@
|
||||
#include "llvm/Target/TargetRegisterInfo.h"
|
||||
#include "llvm/ADT/BitVector.h"
|
||||
#include "llvm/ADT/IndexedMap.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/Support/DebugLoc.h"
|
||||
#include <vector>
|
||||
|
||||
namespace llvm {
|
||||
@ -64,7 +66,10 @@ class MachineRegisterInfo {
|
||||
/// stored in the second element.
|
||||
std::vector<std::pair<unsigned, unsigned> > LiveIns;
|
||||
std::vector<unsigned> LiveOuts;
|
||||
|
||||
|
||||
/// LiveInLocs - Keep track of location livein registers.
|
||||
DenseMap<unsigned, DebugLoc> LiveInLocs;
|
||||
|
||||
MachineRegisterInfo(const MachineRegisterInfo&); // DO NOT IMPLEMENT
|
||||
void operator=(const MachineRegisterInfo&); // DO NOT IMPLEMENT
|
||||
public:
|
||||
@ -271,7 +276,12 @@ public:
|
||||
LiveIns.push_back(std::make_pair(Reg, vreg));
|
||||
}
|
||||
void addLiveOut(unsigned Reg) { LiveOuts.push_back(Reg); }
|
||||
|
||||
|
||||
/// addLiveInLoc - Keep track of location info for live in reg.
|
||||
void addLiveInLoc(unsigned VReg, DebugLoc DL) {
|
||||
LiveInLocs[VReg] = DL;
|
||||
}
|
||||
|
||||
// Iteration support for live in/out sets. These sets are kept in sorted
|
||||
// order by their register number.
|
||||
typedef std::vector<std::pair<unsigned,unsigned> >::const_iterator
|
||||
|
Reference in New Issue
Block a user