[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