LLVM 22.0.0git
MachineCombinerPattern.h
Go to the documentation of this file.
1//===-- llvm/CodeGen/MachineCombinerPattern.h - Instruction pattern supported by
2// combiner ------*- C++ -*-===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines instruction pattern supported by combiner
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_CODEGEN_MACHINECOMBINERPATTERN_H
15#define LLVM_CODEGEN_MACHINECOMBINERPATTERN_H
16
17namespace llvm {
18
19/// The combiner's goal may differ based on which pattern it is attempting
20/// to optimize.
22 MustReduceDepth, // The data dependency chain must be improved.
23 MustReduceRegisterPressure, // The register pressure must be reduced.
24 Default // The critical path must not be lengthened.
25};
26
27/// These are instruction patterns matched by the machine combiner pass.
28enum MachineCombinerPattern : unsigned {
29 // These are commutative variants for reassociating a computation chain. See
30 // the comments before getMachineCombinerPatterns() in TargetInstrInfo.cpp.
36
38};
39
40} // end namespace llvm
41
42#endif
This is an optimization pass for GlobalISel generic memory operations.
MachineCombinerPattern
These are instruction patterns matched by the machine combiner pass.
CombinerObjective
The combiner's goal may differ based on which pattern it is attempting to optimize.
@ Default
The result values are uniform if and only if all operands are uniform.
Definition Uniformity.h:20