diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-05-07 22:10:26 +0000 | 
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-05-07 22:10:26 +0000 | 
| commit | 3c52f0281fd5aea2819fb9b723cd9955ce60a99d (patch) | |
| tree | b00db436b3b091810039c828d85eb0bd708925b3 /llvm/lib/Target/Hexagon | |
| parent | c4b3a7a1d771a515dbd6d695275be92e6da3eb81 (diff) | |
| download | bcm5719-llvm-3c52f0281fd5aea2819fb9b723cd9955ce60a99d.tar.gz bcm5719-llvm-3c52f0281fd5aea2819fb9b723cd9955ce60a99d.zip  | |
Add an MF argument to TRI::getPointerRegClass() and TII::getRegClass().
The getPointerRegClass() hook can return register classes that depend on
the calling convention of the current function (ptr_rc_tailcall).
So far, we have been able to infer the calling convention from the
subtarget alone, but as we add support for multiple calling conventions
per target, that no longer works.
Patch by Yiannis Tsiouris!
llvm-svn: 156328
Diffstat (limited to 'llvm/lib/Target/Hexagon')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp | 2 | 
2 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp index cb6b75aaddd..b50cadd2975 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp @@ -1128,7 +1128,7 @@ SDNode *HexagonDAGToDAGISel::SelectIntrinsicWOChain(SDNode *N) {      // For immediates, lower it.      for (unsigned i = 1; i < N->getNumOperands(); ++i) {        SDNode *Arg = N->getOperand(i).getNode(); -      const TargetRegisterClass *RC = TII->getRegClass(MCID, i, TRI); +      const TargetRegisterClass *RC = TII->getRegClass(MCID, i, TRI, *MF);        if (RC == &Hexagon::IntRegsRegClass ||            RC == &Hexagon::DoubleRegsRegClass) { diff --git a/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp b/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp index ca01b70cc15..d4bca9fb525 100644 --- a/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp +++ b/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp @@ -2796,7 +2796,7 @@ bool HexagonPacketizerList::CanPromoteToNewValueStore( MachineInstr *MI,    // first operand is always the result    const HexagonInstrInfo *QII = (const HexagonInstrInfo *) TII; -  const TargetRegisterClass* PacketRC = QII->getRegClass(MCID, 0, QRI); +  const TargetRegisterClass* PacketRC = QII->getRegClass(MCID, 0, QRI, MF);    // if there is already an store in the packet, no can do new value store    // Arch Spec 3.4.4.2.  | 

