diff options
author | JF Bastien <jfb@google.com> | 2015-08-24 22:16:48 +0000 |
---|---|---|
committer | JF Bastien <jfb@google.com> | 2015-08-24 22:16:48 +0000 |
commit | af111db8af5e2ec7bfc9afa6b6e0f285129f0624 (patch) | |
tree | 482845bc029a40c8284c9f78981f67889cbbc24d /llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h | |
parent | 19c2e6634de882c2f146d278b49adb2952d7d104 (diff) | |
download | bcm5719-llvm-af111db8af5e2ec7bfc9afa6b6e0f285129f0624.tar.gz bcm5719-llvm-af111db8af5e2ec7bfc9afa6b6e0f285129f0624.zip |
WebAssembly: Implement call
Summary: Support function calls.
Reviewers: sunfish, sunfishcode
Subscribers: sunfishcode, jfb, llvm-commits
Differential revision: http://reviews.llvm.org/D12219
llvm-svn: 245887
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h index ea845cd4031..119d0f5ef43 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h +++ b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h @@ -24,10 +24,9 @@ namespace WebAssemblyISD { enum NodeType : unsigned { FIRST_NUMBER = ISD::BUILTIN_OP_END, - RETURN, - ARGUMENT, - - // add memory opcodes starting at ISD::FIRST_TARGET_MEMORY_OPCODE here... +#define HANDLE_NODETYPE(NODE) NODE, +#include "WebAssemblyISD.def" +#undef HANDLE_NODETYPE }; } // end namespace WebAssemblyISD @@ -47,26 +46,29 @@ private: FastISel *createFastISel(FunctionLoweringInfo &FuncInfo, const TargetLibraryInfo *LibInfo) const override; - + bool isOffsetFoldingLegal(const GlobalAddressSDNode *GA) const override; MVT getScalarShiftAmountTy(const DataLayout &DL, EVT) const override; - const char *getTargetNodeName(unsigned Opcode) const override; + SDValue LowerCall(CallLoweringInfo &CLI, + SmallVectorImpl<SDValue> &InVals) const override; 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, SDLoc dl, SelectionDAG &DAG) const override; - SDValue LowerFormalArguments(SDValue Chain, CallingConv::ID CallConv, bool IsVarArg, const SmallVectorImpl<ISD::InputArg> &Ins, SDLoc DL, SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals) const override; + + // Custom lowering hooks. + SDValue LowerOperation(SDValue Op, SelectionDAG &DAG) const override; + SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const; }; namespace WebAssembly { |