LLVM 17.0.0git
X86FoldTablesUtils.h
Go to the documentation of this file.
1//===-- X86FoldTablesUtils.h ------------------------------------*- 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#ifndef LLVM_SUPPORT_X86FOLDTABLESUTILS_H
10#define LLVM_SUPPORT_X86FOLDTABLESUTILS_H
11
12namespace llvm {
13enum {
14 // Select which memory operand is being unfolded.
15 // (stored in bits 0 - 2)
22
23 // Do not insert the reverse map (MemOp -> RegOp) into the table.
24 // This may be needed because there is a many -> one mapping.
25 TB_NO_REVERSE = 1 << 3,
26
27 // Do not insert the forward map (RegOp -> MemOp) into the table.
28 // This is needed for Native Client, which prohibits branch
29 // instructions from using a memory operand.
30 TB_NO_FORWARD = 1 << 4,
31
35
36 // Minimum alignment required for load/store.
37 // Used for RegOp->MemOp conversion. Encoded as Log2(Align)
38 // (stored in bits 9 - 11)
45
46 // Broadcast type.
47 // (stored in bits 12 - 13)
54
55 // Unused bits 14-15
56};
57} // namespace llvm
58#endif // LLVM_SUPPORT_X86FOLDTABLESUTILS_H
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
@ TB_BCAST_TYPE_SHIFT