1//===- InstSimplifyPass.h ---------------------------------------*- C++ -*-===// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7//===----------------------------------------------------------------------===// 10/// Defines passes for running instruction simplification across chunks of IR. 12//===----------------------------------------------------------------------===// 14#ifndef LLVM_TRANSFORMS_SCALAR_INSTSIMPLIFYPASS_H 15#define LLVM_TRANSFORMS_SCALAR_INSTSIMPLIFYPASS_H 21/// Run instruction simplification across each instruction in the function. 23/// Instruction simplification has useful constraints in some contexts: 24/// - It will never introduce *new* instructions. 25/// - There is no need to iterate to a fixed point. 27/// Many passes use instruction simplification as a library facility, but it may 28/// also be useful (in tests and other contexts) to have access to this very 29/// restricted transform at a pass granularity. However, for a much more 30/// powerful and comprehensive peephole optimization engine, see the 31/// `instcombine` pass instead. 39#endif// LLVM_TRANSFORMS_SCALAR_INSTSIMPLIFYPASS_H This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
Run instruction simplification across each instruction in the function.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
A set of analyses that are preserved following a run of a transformation pass.
This is an optimization pass for GlobalISel generic memory operations.
A CRTP mix-in to automatically provide informational APIs needed for passes.