|
LLVM 22.0.0git
|
#include "MSP430ISelLowering.h"#include "MSP430.h"#include "MSP430MachineFunctionInfo.h"#include "MSP430SelectionDAGInfo.h"#include "MSP430Subtarget.h"#include "MSP430TargetMachine.h"#include "llvm/CodeGen/CallingConvLower.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"#include "llvm/CodeGen/ValueTypes.h"#include "llvm/IR/CallingConv.h"#include "llvm/IR/DerivedTypes.h"#include "llvm/IR/Function.h"#include "llvm/IR/Intrinsics.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/raw_ostream.h"#include "MSP430GenCallingConv.inc"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "msp430-lower" |
Functions | |
| template<typename ArgT> | |
| static void | ParseFunctionArgs (const SmallVectorImpl< ArgT > &Args, SmallVectorImpl< unsigned > &Out) |
| For each argument in a function store the number of pieces it is composed of. | |
| static void | AnalyzeVarArgs (CCState &State, const SmallVectorImpl< ISD::OutputArg > &Outs) |
| static void | AnalyzeVarArgs (CCState &State, const SmallVectorImpl< ISD::InputArg > &Ins) |
| template<typename ArgT> | |
| static void | AnalyzeArguments (CCState &State, SmallVectorImpl< CCValAssign > &ArgLocs, const SmallVectorImpl< ArgT > &Args) |
| Analyze incoming and outgoing function arguments. | |
| static void | AnalyzeRetResult (CCState &State, const SmallVectorImpl< ISD::InputArg > &Ins) |
| static void | AnalyzeRetResult (CCState &State, const SmallVectorImpl< ISD::OutputArg > &Outs) |
| template<typename ArgT> | |
| static void | AnalyzeReturnValues (CCState &State, SmallVectorImpl< CCValAssign > &RVLocs, const SmallVectorImpl< ArgT > &Args) |
| static SDValue | EmitCMP (SDValue &LHS, SDValue &RHS, SDValue &TargetCC, ISD::CondCode CC, const SDLoc &dl, SelectionDAG &DAG) |
Variables | |
| static cl::opt< bool > | MSP430NoLegalImmediate ("msp430-no-legal-immediate", cl::Hidden, cl::desc("Enable non legal immediates (for testing purposes only)"), cl::init(false)) |
| #define DEBUG_TYPE "msp430-lower" |
Definition at line 36 of file MSP430ISelLowering.cpp.
|
static |
Analyze incoming and outgoing function arguments.
We need custom C++ code to handle special constraints in the ABI like reversing the order of the pieces of splitted arguments. In addition, all pieces of a certain argument have to be passed either using registers or the stack but never mixing both.
Definition at line 335 of file MSP430ISelLowering.cpp.
References llvm::CCValAssign::AExt, AnalyzeVarArgs(), assert(), llvm::CCValAssign::Full, llvm::CCValAssign::getReg(), llvm::ISD::ArgFlagsTy::isByVal(), llvm::ISD::ArgFlagsTy::isSExt(), llvm::ISD::ArgFlagsTy::isZExt(), llvm::CallingConv::MSP430_BUILTIN, ParseFunctionArgs(), Reg, llvm::CCValAssign::SExt, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::CCValAssign::ZExt.
|
static |
Definition at line 432 of file MSP430ISelLowering.cpp.
Referenced by AnalyzeReturnValues().
|
static |
Definition at line 437 of file MSP430ISelLowering.cpp.
|
static |
Definition at line 443 of file MSP430ISelLowering.cpp.
References AnalyzeRetResult().
|
static |
Definition at line 325 of file MSP430ISelLowering.cpp.
|
static |
Definition at line 320 of file MSP430ISelLowering.cpp.
Referenced by AnalyzeArguments().
|
static |
Definition at line 923 of file MSP430ISelLowering.cpp.
References assert(), llvm::CallingConv::C, MSP430CC::COND_E, MSP430CC::COND_GE, MSP430CC::COND_HS, MSP430CC::COND_INVALID, MSP430CC::COND_L, MSP430CC::COND_LO, MSP430CC::COND_NE, llvm::ISD::Constant, llvm::dyn_cast(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), LHS, llvm_unreachable, RHS, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, and std::swap().
Referenced by llvm::MSP430TargetLowering::LowerBR_CC(), llvm::MSP430TargetLowering::LowerSELECT_CC(), and llvm::MSP430TargetLowering::LowerSETCC().
|
static |
For each argument in a function store the number of pieces it is composed of.
Definition at line 300 of file MSP430ISelLowering.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by AnalyzeArguments().
|
static |
Referenced by llvm::MSP430TargetLowering::isLegalICmpImmediate().