From a712a6c4ce53588b1ee332b3cc1e14ed6d015f38 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 14 Dec 2015 22:37:23 +0000 Subject: [WebAssembly] Avoid adding redundant EXPR_STACK uses. llvm-svn: 255563 --- llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp') diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp index d890310ac50..0b04a6355a9 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp @@ -78,9 +78,10 @@ static void ImposeStackOrdering(MachineInstr *MI, MachineRegisterInfo &MRI) { ImposeStackInputOrdering(MI); // Also read the opaque EXPR_STACK register. - MI->addOperand(MachineOperand::CreateReg(WebAssembly::EXPR_STACK, - /*isDef=*/false, - /*isImp=*/true)); + if (!MI->readsRegister(WebAssembly::EXPR_STACK)) + MI->addOperand(MachineOperand::CreateReg(WebAssembly::EXPR_STACK, + /*isDef=*/false, + /*isImp=*/true)); // Also, mark any inputs to this instruction as being consumed by an // instruction on the expression stack. -- cgit v1.2.3