[llvm] r283635 - Allow a maximum of 64 bits to be returned in registers

Dylan McKay via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 7 18:05:10 PDT 2016


Author: dylanmckay
Date: Fri Oct  7 20:05:09 2016
New Revision: 283635

URL: http://llvm.org/viewvc/llvm-project?rev=283635&view=rev
Log:
Allow a maximum of 64 bits to be returned in registers

The rest spills to the stack

Authored by Jake Goulding

Added:
    llvm/trunk/test/CodeGen/AVR/large-return-size.ll
Modified:
    llvm/trunk/lib/Target/AVR/AVRISelLowering.h

Modified: llvm/trunk/lib/Target/AVR/AVRISelLowering.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AVR/AVRISelLowering.h?rev=283635&r1=283634&r2=283635&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AVR/AVRISelLowering.h (original)
+++ llvm/trunk/lib/Target/AVR/AVRISelLowering.h Fri Oct  7 20:05:09 2016
@@ -15,6 +15,7 @@
 #ifndef LLVM_AVR_ISEL_LOWERING_H
 #define LLVM_AVR_ISEL_LOWERING_H
 
+#include "llvm/CodeGen/CallingConvLower.h"
 #include "llvm/Target/TargetLowering.h"
 
 namespace llvm {
@@ -128,6 +129,13 @@ private:
   SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG) const;
   SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG) const;
 
+  CCAssignFn *CCAssignFnForReturn(CallingConv::ID CC) const;
+
+  bool CanLowerReturn(CallingConv::ID CallConv,
+                      MachineFunction &MF, bool isVarArg,
+                      const SmallVectorImpl<ISD::OutputArg> &Outs,
+                      LLVMContext &Context) const override;
+
   SDValue LowerReturn(SDValue Chain, CallingConv::ID CallConv, bool isVarArg,
                       const SmallVectorImpl<ISD::OutputArg> &Outs,
                       const SmallVectorImpl<SDValue> &OutVals, const SDLoc &dl,

Added: llvm/trunk/test/CodeGen/AVR/large-return-size.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AVR/large-return-size.ll?rev=283635&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/AVR/large-return-size.ll (added)
+++ llvm/trunk/test/CodeGen/AVR/large-return-size.ll Fri Oct  7 20:05:09 2016
@@ -0,0 +1,9 @@
+; RUN: llc < %s -march=avr | FileCheck %s
+define void @call_more_than_64_bits() {
+; CHECK-LABEL: call_more_than_64_bits
+entry-block:
+  %foo = call { i64, i1 } @more_than_64_bits()
+  ret void
+}
+
+declare { i64, i1 } @more_than_64_bits()




More information about the llvm-commits mailing list