Canged ColorCallArg so that when a call arg is directly pushed on to stack
authorRuchira Sasanka <sasanka@students.uiuc.edu>
Mon, 12 Nov 2001 20:31:47 +0000 (20:31 +0000)
committerRuchira Sasanka <sasanka@students.uiuc.edu>
Mon, 12 Nov 2001 20:31:47 +0000 (20:31 +0000)
for argument passing, that instruction is directly added to the InstructionsBefore
set of the called machine instruction - i.e., it is not reordered.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1277 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9RegInfo.cpp

index 4040b02579d99839fc916093117296eff26bd661..b576d05e6fa239f03b9be096901c428689a5bb6c 100644 (file)
@@ -668,7 +668,11 @@ void UltraSparcRegInfo::colorCallArgs(const MachineInstr *const CallMI,
        AdMI = cpReg2MemMI(UniLRReg, getStackPointer(), argOffset, RegType );
       }
 
-      AddedInstrnsBefore.push_back( AdMI );  // Now add the instruction
+      // Now add the instruction. We can directly add to
+      // CallAI->InstrnsBefore since we are just saving a reg on stack
+      //
+      CallAI->InstrnsBefore.push_back( AdMI ); 
+      //cerr << "\nCaution: Passing a reg on stack";
     }
 
     else {                          // LR is not colored (i.e., spilled)      
@@ -683,6 +687,7 @@ void UltraSparcRegInfo::colorCallArgs(const MachineInstr *const CallMI,
        AdMI = cpMem2RegMI(getFramePointer(), LR->getSpillOffFromFP(),
                           UniArgReg, RegType );
         
+       cerr << "\nCaution: Loading a spilled val to a reg as a call arg";
        AddedInstrnsBefore.push_back( AdMI );  // Now add the instruction
       }
       
@@ -728,7 +733,7 @@ void UltraSparcRegInfo::colorCallArgs(const MachineInstr *const CallMI,
        CallAI->InstrnsBefore.push_back( Ad3 );  
        CallAI->InstrnsBefore.push_back( Ad4 );  
 
-       cerr << "\n Caution: Call arg moved from stack to stack";
+       cerr << "\nCaution: Call arg moved from stack2stack for: " << *CallMI ;
       }
 
     }