1//===- X86PassRegistry.def - Registry of X86 specific passes ----*- 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//
9// This file is used as the registry of passes that are part of the X86 backend.
10//
11//===----------------------------------------------------------------------===//
12
13// NOTE: NO INCLUDE GUARD DESIRED!
14
15#ifndef MODULE_PASS
16#define MODULE_PASS(NAME, CREATE_PASS)
17#endif
18MODULE_PASS("x86-asm-printer-begin", X86AsmPrinterBeginPass())
19MODULE_PASS("x86-asm-printer-end", X86AsmPrinterEndPass())
20MODULE_PASS("x86-winehstate", X86WinEHStatePass())
21#undef MODULE_PASS
22
23#ifndef FUNCTION_PASS
24#define FUNCTION_PASS(NAME, CREATE_PASS)
25#endif
26FUNCTION_PASS("x86-lower-amx-intrinsics", X86LowerAMXIntrinsicsPass(this))
27FUNCTION_PASS("x86-lower-amx-type", X86LowerAMXTypePass(this))
28FUNCTION_PASS("x86-partial-reduction", X86PartialReductionPass(this))
29#undef FUNCTION_PASS
30
31#ifndef MACHINE_FUNCTION_PASS
32#define MACHINE_FUNCTION_PASS(NAME, CREATE_PASS)
33#endif
34MACHINE_FUNCTION_PASS("x86-argument-stack-slot", X86ArgumentStackSlotPass())
35MACHINE_FUNCTION_PASS("x86-asm-printer", X86AsmPrinterPass())
36MACHINE_FUNCTION_PASS("x86-avoid-sfb", X86AvoidStoreForwardingBlocksPass())
37MACHINE_FUNCTION_PASS("x86-avoid-trailing-call", X86AvoidTrailingCallPass())
38MACHINE_FUNCTION_PASS("x86-cf-opt", X86CallFrameOptimizationPass())
39MACHINE_FUNCTION_PASS("x86-cleanup-local-dynamic-tls", X86CleanupLocalDynamicTLSPass())
40MACHINE_FUNCTION_PASS("x86-cmov-conversion", X86CmovConversionPass())
41MACHINE_FUNCTION_PASS("x86-compress-evex", X86CompressEVEXPass())
42MACHINE_FUNCTION_PASS("x86-domain-reassignment", X86DomainReassignmentPass())
43MACHINE_FUNCTION_PASS("x86-dyn-alloca-expander", X86DynAllocaExpanderPass())
44MACHINE_FUNCTION_PASS("x86-expand-pseudo", X86ExpandPseudoPass())
45MACHINE_FUNCTION_PASS("x86-fast-pre-tile-config", X86FastPreTileConfigPass())
46MACHINE_FUNCTION_PASS("x86-fast-tile-config", X86FastTileConfigPass())
47MACHINE_FUNCTION_PASS("x86-fixup-bw-insts", X86FixupBWInstsPass())
48MACHINE_FUNCTION_PASS("x86-fixup-inst-tuning", X86FixupInstTuningPass())
49MACHINE_FUNCTION_PASS("x86-fixup-leas", X86FixupLEAsPass())
50MACHINE_FUNCTION_PASS("x86-fixup-setcc", X86FixupSetCCPass())
51MACHINE_FUNCTION_PASS("x86-fixup-vector-constants", X86FixupVectorConstantsPass())
52MACHINE_FUNCTION_PASS("x86-flags-copy-lowering", X86FlagsCopyLoweringPass())
53MACHINE_FUNCTION_PASS("x86-fp-stackifier", X86FPStackifierPass())
54MACHINE_FUNCTION_PASS("x86-global-base-reg", X86GlobalBaseRegPass())
55MACHINE_FUNCTION_PASS("x86-indirect-branch-tracking", X86IndirectBranchTrackingPass())
56MACHINE_FUNCTION_PASS("x86-insert-vzeroupper", X86InsertVZeroUpperPass())
57MACHINE_FUNCTION_PASS("x86-insert-x87-wait", X86InsertX87WaitPass())
58MACHINE_FUNCTION_PASS("x86-isel", X86ISelDAGToDAGPass(*this))
59MACHINE_FUNCTION_PASS("x86-lower-tile-copy", X86LowerTileCopyPass())
60MACHINE_FUNCTION_PASS("x86-lvi-load", X86LoadValueInjectionLoadHardeningPass())
61MACHINE_FUNCTION_PASS("x86-lvi-ret", X86LoadValueInjectionRetHardeningPass())
62MACHINE_FUNCTION_PASS("x86-optimize-leas", X86OptimizeLEAsPass())
63MACHINE_FUNCTION_PASS("x86-postlegalizer-combiner-pass", X86PostLegalizerCombinerPass())
64MACHINE_FUNCTION_PASS("x86-pre-tile-config", X86PreTileConfigPass())
65MACHINE_FUNCTION_PASS("x86-prelegalizer-combiner-pass", X86PreLegalizerCombinerPass())
66MACHINE_FUNCTION_PASS("x86-return-thunks", X86ReturnThunksPass())
67MACHINE_FUNCTION_PASS("x86-seses", X86SpeculativeExecutionSideEffectSuppressionPass())
68MACHINE_FUNCTION_PASS("x86-slh", X86SpeculativeLoadHardeningPass())
69MACHINE_FUNCTION_PASS("x86-suppress-apx-for-relocation", X86SuppressAPXForRelocationPass())
70MACHINE_FUNCTION_PASS("x86-tile-config", X86TileConfigPass())
71MACHINE_FUNCTION_PASS("x86-wineh-unwindv2", X86WinEHUnwindV2Pass())
72#undef MACHINE_FUNCTION_PASS
73
74#ifndef DUMMY_MACHINE_FUNCTION_PASS
75#define DUMMY_MACHINE_FUNCTION_PASS(NAME, PASS_NAME)
76#endif
77DUMMY_MACHINE_FUNCTION_PASS("x86-execution-domain-fix", X86ExecutionDomainFix())
78DUMMY_MACHINE_FUNCTION_PASS("x86-indirect-thunks", X86IndirectThunks())
79DUMMY_MACHINE_FUNCTION_PASS("x86-pad-short-functions", X86PadShortFunctionsPass())
80#undef DUMMY_MACHINE_FUNCTION_PASS
81