LLVM 20.0.0git
ExpandVariadics.h
Go to the documentation of this file.
1//===- ExpandVariadics.h - expand variadic functions ------------*- C++ -*-===//
2//
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
6//
7//===----------------------------------------------------------------------===//
8#ifndef LLVM_TRANSFORMS_IPO_EXPANDVARIADICS_H
9#define LLVM_TRANSFORMS_IPO_EXPANDVARIADICS_H
10
11#include "llvm/IR/PassManager.h"
12
13namespace llvm {
14
15class Module;
16class ModulePass;
17class OptimizationLevel;
18
20 Unspecified, // Use the implementation defaults
21 Disable, // Disable the pass entirely
22 Optimize, // Optimise without changing ABI
23 Lowering, // Change variadic calling convention
24};
25
26class ExpandVariadicsPass : public PassInfoMixin<ExpandVariadicsPass> {
27 const ExpandVariadicsMode Mode;
28
29public:
30 // Operates under passed mode unless overridden on commandline
32
34};
35
37
38} // end namespace llvm
39
40#endif // LLVM_TRANSFORMS_IPO_EXPANDVARIADICS_H
This header defines various interfaces for pass management in LLVM.
Machine Check Debug Module
A container for analyses that lazily runs them and caches their results.
Definition: PassManager.h:253
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
Definition: Pass.h:251
A Module instance is used to store all the information related to an LLVM module.
Definition: Module.h:65
A set of analyses that are preserved following a run of a transformation pass.
Definition: Analysis.h:111
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
ModulePass * createExpandVariadicsPass(ExpandVariadicsMode)
ExpandVariadicsMode
@ Disable
Disable colors.
A CRTP mix-in to automatically provide informational APIs needed for passes.
Definition: PassManager.h:69