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