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-winehstate", X86WinEHStatePass())
19#undef MODULE_PASS
20
21#ifndef FUNCTION_PASS
22#define FUNCTION_PASS(NAME, CREATE_PASS)
23#endif
24FUNCTION_PASS("x86-lower-amx-intrinsics", X86LowerAMXIntrinsicsPass(this))
25FUNCTION_PASS("x86-lower-amx-type", X86LowerAMXTypePass(this))
26FUNCTION_PASS("x86-partial-reduction", X86PartialReductionPass(this))
27#undef FUNCTION_PASS
28
29#ifndef MACHINE_FUNCTION_PASS
30#define MACHINE_FUNCTION_PASS(NAME, CREATE_PASS)
31#endif
32MACHINE_FUNCTION_PASS("x86-argument-stack-slot", X86ArgumentStackSlotPass())
33MACHINE_FUNCTION_PASS("x86-avoid-sfb", X86AvoidStoreForwardingBlocksPass())
34MACHINE_FUNCTION_PASS("x86-avoid-trailing-call", X86AvoidTrailingCallPass())
35MACHINE_FUNCTION_PASS("x86-cf-opt", X86CallFrameOptimizationPass())
36MACHINE_FUNCTION_PASS("x86-cleanup-local-dynamic-tls", X86CleanupLocalDynamicTLSPass())
37MACHINE_FUNCTION_PASS("x86-cmov-conversion", X86CmovConversionPass())
38MACHINE_FUNCTION_PASS("x86-compress-evex", X86CompressEVEXPass())
39MACHINE_FUNCTION_PASS("x86-domain-reassignment", X86DomainReassignmentPass())
40MACHINE_FUNCTION_PASS("x86-dyn-alloca-expander", X86DynAllocaExpanderPass())
41MACHINE_FUNCTION_PASS("x86-expand-pseudo", X86ExpandPseudoPass())
42MACHINE_FUNCTION_PASS("x86-fast-pre-tile-config", X86FastPreTileConfigPass())
43MACHINE_FUNCTION_PASS("x86-fast-tile-config", X86FastTileConfigPass())
44MACHINE_FUNCTION_PASS("x86-fixup-bw-insts", X86FixupBWInstsPass())
45MACHINE_FUNCTION_PASS("x86-fixup-inst-tuning", X86FixupInstTuningPass())
46MACHINE_FUNCTION_PASS("x86-fixup-leas", X86FixupLEAsPass())
47MACHINE_FUNCTION_PASS("x86-fixup-setcc", X86FixupSetCCPass())
48MACHINE_FUNCTION_PASS("x86-fixup-vector-constants", X86FixupVectorConstantsPass())
49MACHINE_FUNCTION_PASS("x86-flags-copy-lowering", X86FlagsCopyLoweringPass())
50MACHINE_FUNCTION_PASS("x86-fp-stackifier", X86FPStackifierPass())
51MACHINE_FUNCTION_PASS("x86-global-base-reg", X86GlobalBaseRegPass())
52MACHINE_FUNCTION_PASS("x86-indirect-branch-tracking", X86IndirectBranchTrackingPass())
53MACHINE_FUNCTION_PASS("x86-insert-x87-wait", X86InsertX87WaitPass())
54MACHINE_FUNCTION_PASS("x86-isel", X86ISelDAGToDAGPass(*this))
55MACHINE_FUNCTION_PASS("x86-lower-tile-copy", X86LowerTileCopyPass())
56MACHINE_FUNCTION_PASS("x86-lvi-load", X86LoadValueInjectionLoadHardeningPass())
57MACHINE_FUNCTION_PASS("x86-lvi-ret", X86LoadValueInjectionRetHardeningPass())
58MACHINE_FUNCTION_PASS("x86-optimize-leas", X86OptimizeLEAsPass())
59MACHINE_FUNCTION_PASS("x86-pre-tile-config", X86PreTileConfigPass())
60MACHINE_FUNCTION_PASS("x86-return-thunks", X86ReturnThunksPass())
61MACHINE_FUNCTION_PASS("x86-seses", X86SpeculativeExecutionSideEffectSuppressionPass())
62MACHINE_FUNCTION_PASS("x86-slh", X86SpeculativeLoadHardeningPass())
63MACHINE_FUNCTION_PASS("x86-suppress-apx-for-relocation", X86SuppressAPXForRelocationPass())
64MACHINE_FUNCTION_PASS("x86-tile-config", X86TileConfigPass())
65MACHINE_FUNCTION_PASS("x86-wineh-unwindv2", X86WinEHUnwindV2Pass())
66#undef MACHINE_FUNCTION_PASS
67
68#ifndef DUMMY_MACHINE_FUNCTION_PASS
69#define DUMMY_MACHINE_FUNCTION_PASS(NAME, PASS_NAME)
70#endif
71DUMMY_MACHINE_FUNCTION_PASS("x86-execution-domain-fix", X86ExecutionDomainFix())
72DUMMY_MACHINE_FUNCTION_PASS("x86-indirect-thunks", X86IndirectThunks())
73DUMMY_MACHINE_FUNCTION_PASS("x86-issue-vzero-upper", X86IssueVZeroUpperPass())
74DUMMY_MACHINE_FUNCTION_PASS("x86-pad-short-functions", X86PadShortFunctionsPass())
75#undef DUMMY_MACHINE_FUNCTION_PASS
76