]> granicus.if.org Git - llvm/commitdiff
GlobalISel: pass Function to lowerFormalArguments directly (NFC).
authorTim Northover <tnorthover@apple.com>
Wed, 21 Sep 2016 12:57:35 +0000 (12:57 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 21 Sep 2016 12:57:35 +0000 (12:57 +0000)
The only implementation that exists immediately looks it up anyway, and the
information is needed to handle various parameter attributes (stored on the
function itself).

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

include/llvm/CodeGen/GlobalISel/CallLowering.h
lib/CodeGen/GlobalISel/IRTranslator.cpp
lib/Target/AArch64/AArch64CallLowering.cpp
lib/Target/AArch64/AArch64CallLowering.h
lib/Target/AMDGPU/AMDGPUCallLowering.cpp
lib/Target/AMDGPU/AMDGPUCallLowering.h

index 62bd0f423803645717a08bee4567d3832b10ef34..6df0e9e32d3ba4627b11503041b00dd4e63e0c40 100644 (file)
@@ -62,10 +62,9 @@ class CallLowering {
   /// lowering.
   ///
   /// \return True if the lowering succeeded, false otherwise.
-  virtual bool
-  lowerFormalArguments(MachineIRBuilder &MIRBuilder,
-                       const Function::ArgumentListType &Args,
-                       ArrayRef<unsigned> VRegs) const {
+  virtual bool lowerFormalArguments(MachineIRBuilder &MIRBuilder,
+                                    const Function &F,
+                                    ArrayRef<unsigned> VRegs) const {
     return false;
   }
 
index 4d4a696c07b752c88f33b5f34f67311ae79f209c..155a39a044e6ad7c0359acbee16bc437677fe5d7 100644 (file)
@@ -556,8 +556,7 @@ bool IRTranslator::runOnMachineFunction(MachineFunction &MF) {
   SmallVector<unsigned, 8> VRegArgs;
   for (const Argument &Arg: F.args())
     VRegArgs.push_back(getOrCreateVReg(Arg));
-  bool Succeeded =
-      CLI->lowerFormalArguments(MIRBuilder, F.getArgumentList(), VRegArgs);
+  bool Succeeded = CLI->lowerFormalArguments(MIRBuilder, F, VRegArgs);
   if (!Succeeded) {
     if (!TPC->isGlobalISelAbortEnabled()) {
       MIRBuilder.getMF().getProperties().set(
index 6e318139f3665455d9e0a5dc7729962661a8ddae..0a3b911dfb876a9dd927cfcd6250460417b1ca04 100644 (file)
@@ -152,13 +152,13 @@ bool AArch64CallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
   return true;
 }
 
-bool AArch64CallLowering::lowerFormalArguments(
-    MachineIRBuilder &MIRBuilder, const Function::ArgumentListType &Args,
-    ArrayRef<unsigned> VRegs) const {
+bool AArch64CallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder,
+                                               const Function &F,
+                                               ArrayRef<unsigned> VRegs) const {
+  auto &Args = F.getArgumentList();
   MachineFunction &MF = MIRBuilder.getMF();
   MachineBasicBlock &MBB = MIRBuilder.getMBB();
   MachineRegisterInfo &MRI = MF.getRegInfo();
-  const Function &F = *MF.getFunction();
   auto &DL = F.getParent()->getDataLayout();
 
   SmallVector<MachineInstr *, 8> Seqs;
index 05b415fd45ecb068ed132a9041473c6c8e79d10a..452551d98ae0c831f766b88ae1a680b9b14a3667 100644 (file)
@@ -30,8 +30,7 @@ class AArch64CallLowering: public CallLowering {
   bool lowerReturn(MachineIRBuilder &MIRBuiler, const Value *Val,
                    unsigned VReg) const override;
 
-  bool lowerFormalArguments(MachineIRBuilder &MIRBuilder,
-                            const Function::ArgumentListType &Args,
+  bool lowerFormalArguments(MachineIRBuilder &MIRBuilder, const Function &F,
                             ArrayRef<unsigned> VRegs) const override;
 
   bool lowerCall(MachineIRBuilder &MIRBuilder, const MachineOperand &Callee,
index 693c18c75ea024592abe0513f9793928d405c2b2..ef188442ce1064aee8992a532b905c13b3a307e3 100644 (file)
@@ -34,9 +34,9 @@ bool AMDGPUCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
   return true;
 }
 
-bool AMDGPUCallLowering::lowerFormalArguments(
-    MachineIRBuilder &MIRBuilder, const Function::ArgumentListType &Args,
-    ArrayRef<unsigned> VRegs) const {
+bool AMDGPUCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder,
+                                              const Function &F,
+                                              ArrayRef<unsigned> VRegs) const {
   // TODO: Implement once there are generic loads/stores.
   return true;
 }
index 60b801f6f2527c8bf4fe1aa54c51ba1f2f7d3902..9ae87c9397ab396bef3897ba771c4005ba5c019d 100644 (file)
@@ -27,10 +27,8 @@ class AMDGPUCallLowering: public CallLowering {
 
   bool lowerReturn(MachineIRBuilder &MIRBuiler, const Value *Val,
                    unsigned VReg) const override;
-  bool
-  lowerFormalArguments(MachineIRBuilder &MIRBuilder,
-                       const Function::ArgumentListType &Args,
-                       ArrayRef<unsigned> VRegs) const override;
+  bool lowerFormalArguments(MachineIRBuilder &MIRBuilder, const Function &F,
+                            ArrayRef<unsigned> VRegs) const override;
 };
 } // End of namespace llvm;
 #endif