LLVM 24.0.0git
BundleAttributes.h
Go to the documentation of this file.
1//===- llvm/BundleAttributes.h - LLVM Bundle Attributes ---------*- 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_IR_BUNDLE_ATTRIBUTES_H
10#define LLVM_IR_BUNDLE_ATTRIBUTES_H
11
12#include "llvm/ADT/StringRef.h"
14#include "llvm/IR/InstrTypes.h"
15
16enum class BundleAttr {
18#define ATTR(Name, String) Name,
19#include "BundleAttributes.def"
20};
21
22namespace llvm {
23
26
30
32 const Use &Ptr;
33 const Use &Alignment;
34 const Use *Offset;
35 std::optional<uint64_t> AlignmentVal;
36 std::optional<uint64_t> OffsetVal;
37};
38
40
42 const Use &Ptr;
43 const Use &Count;
44 std::optional<uint64_t> CountVal;
45};
46
49
51 const Use &Ptr;
52};
53
55
57 const Use &Val;
58};
59
61
66
68
70 const Use &Ptr1;
71 const Use &Ptr2;
72};
73
76
78 const Function *Context,
80
81} // namespace llvm
82
83#endif // LLVM_IR_BUNDLE_ATTRIBUTES_H
BundleAttr
#define LLVM_ABI
Definition Compiler.h:211
This class represents a range of values.
Represent a constant reference to a string, i.e.
Definition StringRef.h:56
A Use represents the edge between a Value definition and its users.
Definition Use.h:35
LLVM Value Representation.
Definition Value.h:75
This is an optimization pass for GlobalISel generic memory operations.
BundleAttr getBundleAttrFromOBU(OperandBundleUse OBU)
LLVM_ABI AssumeSeparateStorageInfo getAssumeSeparateStorageInfo(OperandBundleUse)
LLVM_ABI bool assumeBundleImpliesNonNull(const Value *Val, const Function *Context, OperandBundleUse OBU)
LLVM_ABI AssumeNonNullInfo getAssumeNonNullInfo(OperandBundleUse)
LLVM_ABI StringRef getNameFromBundleAttr(BundleAttr)
LLVM_ABI AssumeRangeInfo getAssumeRangeInfo(OperandBundleUse)
LLVM_ABI AssumeAlignInfo getAssumeAlignInfo(OperandBundleUse)
LLVM_ABI BundleAttr getBundleAttrFromID(uint32_t)
LLVM_ABI AssumeDereferenceableInfo getAssumeDereferenceableInfo(OperandBundleUse)
LLVM_ABI AssumeNoUndefInfo getAssumeNoUndefInfo(OperandBundleUse)
std::optional< uint64_t > AlignmentVal
std::optional< uint64_t > OffsetVal
std::optional< uint64_t > CountVal
A lightweight accessor for an operand bundle meant to be passed around by value.
uint32_t getTagID() const
Return the tag of this operand bundle as an integer.