Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/clang/lib/CIR/Dialect/IR/CIRDataLayout.cpp
213845 views
1
#include "clang/CIR/Dialect/IR/CIRDataLayout.h"
2
3
using namespace cir;
4
5
//===----------------------------------------------------------------------===//
6
// DataLayout Class Implementation
7
//===----------------------------------------------------------------------===//
8
9
CIRDataLayout::CIRDataLayout(mlir::ModuleOp modOp) : layout(modOp) {
10
reset(modOp.getDataLayoutSpec());
11
}
12
13
void CIRDataLayout::reset(mlir::DataLayoutSpecInterface spec) {
14
bigEndian = false;
15
if (spec) {
16
mlir::StringAttr key = mlir::StringAttr::get(
17
spec.getContext(), mlir::DLTIDialect::kDataLayoutEndiannessKey);
18
if (mlir::DataLayoutEntryInterface entry = spec.getSpecForIdentifier(key))
19
if (auto str = llvm::dyn_cast<mlir::StringAttr>(entry.getValue()))
20
bigEndian = str == mlir::DLTIDialect::kDataLayoutEndiannessBig;
21
}
22
}
23
24