//===-- WebAssemblyOptimizeReturned.cpp - Optimize "returned" attributes --===// // // 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 // //===----------------------------------------------------------------------===// /// /// \file /// Optimize calls with "returned" attributes for WebAssembly. /// //===----------------------------------------------------------------------===// #include "WebAssembly.h" #include "llvm/IR/Dominators.h" #include "llvm/IR/InstVisitor.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" usingnamespacellvm; #define DEBUG_TYPE … namespace { class OptimizeReturned final : public FunctionPass, public InstVisitor<OptimizeReturned> { … }; } // End anonymous namespace char OptimizeReturned::ID = …; INITIALIZE_PASS(…) FunctionPass *llvm::createWebAssemblyOptimizeReturned() { … } void OptimizeReturned::visitCallBase(CallBase &CB) { … } bool OptimizeReturned::runOnFunction(Function &F) { … }