LLVM 19.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
34
35 // Minimum alignment required for load/store.
36 // Used for RegOp->MemOp conversion. Encoded as Log2(Align)
37 // (stored in bits 8 - 10)
44
45 // Broadcast type.
46 // (stored in bits 11 - 13)
55
56 // Unused bits 14-16
57};
58} // namespace llvm
59#endif // LLVM_SUPPORT_X86FOLDTABLESUTILS_H
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
@ TB_BCAST_TYPE_SHIFT