Mercurial > hg > CbC > CbC_llvm
diff lib/Target/AVR/AVRISelLowering.h @ 148:63bd29f05246
merged
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 19:46:37 +0900 |
parents | c2174574ed3a |
children |
line wrap: on
line diff
--- a/lib/Target/AVR/AVRISelLowering.h Sun Dec 23 19:23:36 2018 +0900 +++ b/lib/Target/AVR/AVRISelLowering.h Wed Aug 14 19:46:37 2019 +0900 @@ -1,9 +1,8 @@ //===-- AVRISelLowering.h - AVR DAG Lowering Interface ----------*- C++ -*-===// // -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // @@ -64,12 +63,14 @@ } // end of namespace AVRISD +class AVRSubtarget; class AVRTargetMachine; /// Performs target lowering for the AVR. class AVRTargetLowering : public TargetLowering { public: - explicit AVRTargetLowering(AVRTargetMachine &TM); + explicit AVRTargetLowering(const AVRTargetMachine &TM, + const AVRSubtarget &STI); public: MVT getScalarShiftAmountTy(const DataLayout &, EVT LHSTy) const override { @@ -127,6 +128,11 @@ unsigned getRegisterByName(const char* RegName, EVT VT, SelectionDAG &DAG) const override; + bool shouldSplitFunctionArgumentsAsLittleEndian(const DataLayout &DL) + const override { + return false; + } + private: SDValue getAVRCmp(SDValue LHS, SDValue RHS, ISD::CondCode CC, SDValue &AVRcc, SelectionDAG &DAG, SDLoc dl) const; @@ -164,6 +170,10 @@ const SDLoc &dl, SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals) const; +protected: + + const AVRSubtarget &Subtarget; + private: MachineBasicBlock *insertShift(MachineInstr &MI, MachineBasicBlock *BB) const; MachineBasicBlock *insertMul(MachineInstr &MI, MachineBasicBlock *BB) const;