diff options
author | Thomas Lively <tlively@google.com> | 2020-02-03 14:37:10 -0800 |
---|---|---|
committer | Thomas Lively <tlively@google.com> | 2020-02-04 20:04:59 -0800 |
commit | 649aba93a27170cb03a4b17c98a19b9237a880b8 (patch) | |
tree | 0cda9dd337896a552a8644aff360508527ec28d1 /llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp | |
parent | 843a0f97717a006fd21cd89fd229b064506e5d05 (diff) | |
download | llvm-649aba93a27170cb03a4b17c98a19b9237a880b8.zip llvm-649aba93a27170cb03a4b17c98a19b9237a880b8.tar.gz llvm-649aba93a27170cb03a4b17c98a19b9237a880b8.tar.bz2 |
Revert "[WebAssembly][InstrEmitter] Foundation for multivalue call lowering"
Summary:
This reverts commit 3ef169e586f4d14efe690c23c878d5aa92a80eb5. The
purpose of this commit was to allow stack machines to perform
instruction selection for instructions with variadic defs. However,
MachineInstrs fundamentally cannot support variadic defs right now, so
this change does not turn out to be useful.
Depends on D73927.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73928
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp index e490344..7d54bf0 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp @@ -135,12 +135,12 @@ static void convertImplicitDefToConstZero(MachineInstr *MI, // Determine whether a call to the callee referenced by // MI->getOperand(CalleeOpNo) reads memory, writes memory, and/or has side // effects. -static void queryCallee(const MachineInstr &MI, bool &Read, bool &Write, - bool &Effects, bool &StackPointer) { +static void queryCallee(const MachineInstr &MI, unsigned CalleeOpNo, bool &Read, + bool &Write, bool &Effects, bool &StackPointer) { // All calls can use the stack pointer. StackPointer = true; - const MachineOperand &MO = WebAssembly::getCalleeOp(MI); + const MachineOperand &MO = MI.getOperand(CalleeOpNo); if (MO.isGlobal()) { const Constant *GV = MO.getGlobal(); if (const auto *GA = dyn_cast<GlobalAlias>(GV)) @@ -252,7 +252,8 @@ static void query(const MachineInstr &MI, AliasAnalysis &AA, bool &Read, // Analyze calls. if (MI.isCall()) { - queryCallee(MI, Read, Write, Effects, StackPointer); + unsigned CalleeOpNo = WebAssembly::getCalleeOpNo(MI.getOpcode()); + queryCallee(MI, CalleeOpNo, Read, Write, Effects, StackPointer); } } |