[llvm] [WIP] ABI Lowering Library (PR #140112)
via llvm-commits
llvm-commits at lists.llvm.org
Mon May 26 14:40:06 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions h,cpp -- llvm/include/llvm/ABI/QualTypeMapper.h llvm/include/llvm/ABI/Types.h llvm/lib/ABI/QualTypeMapper.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/include/llvm/ABI/QualTypeMapper.h b/llvm/include/llvm/ABI/QualTypeMapper.h
index 75aeaa07a..f408325da 100644
--- a/llvm/include/llvm/ABI/QualTypeMapper.h
+++ b/llvm/include/llvm/ABI/QualTypeMapper.h
@@ -8,51 +8,45 @@
#include <llvm/ADT/DenseMap.h>
namespace llvm {
- namespace abi {
+namespace abi {
- class QualTypeMapper {
- private:
- clang::ASTContext &ASTCtx;
- TypeBuilder Builder;
+class QualTypeMapper {
+private:
+ clang::ASTContext &ASTCtx;
+ TypeBuilder Builder;
- // llvm::DenseMap<clang::QualType , const Type*> TypeCache;
+ // llvm::DenseMap<clang::QualType , const Type*> TypeCache;
- const Type *convertBuiltinType(const clang::BuiltinType *BT);
- const Type *convertPointerType(const clang::PointerType *PT);
- const Type *convertArrayType(const clang::ArrayType *AT);
- const Type *convertVectorType(const clang::VectorType *VT);
- const Type *convertRecordType(const clang::RecordType *RT);
- const Type *convertFunctionType(const clang::FunctionProtoType *FT);
- const Type *convertEnumType(const clang::EnumType *ET);
+ const Type *convertBuiltinType(const clang::BuiltinType *BT);
+ const Type *convertPointerType(const clang::PointerType *PT);
+ const Type *convertArrayType(const clang::ArrayType *AT);
+ const Type *convertVectorType(const clang::VectorType *VT);
+ const Type *convertRecordType(const clang::RecordType *RT);
+ const Type *convertFunctionType(const clang::FunctionProtoType *FT);
+ const Type *convertEnumType(const clang::EnumType *ET);
- void computeRecordLayout(const clang::RecordDecl *RD,
- llvm::SmallVectorImpl<FieldInfo> &Fields,
- uint64_t &TotalSize, uint64_t &Alignment,
- StructPacking &Packing);
+ void computeRecordLayout(const clang::RecordDecl *RD,
+ llvm::SmallVectorImpl<FieldInfo> &Fields,
+ uint64_t &TotalSize, uint64_t &Alignment,
+ StructPacking &Packing);
+ uint64_t getTypeSize(clang::QualType QT) const;
+ uint64_t getTypeAlign(clang::QualType QT) const;
+ uint64_t getPointerSize() const;
+ uint64_t getPointerAlign() const;
- uint64_t getTypeSize(clang::QualType QT) const;
- uint64_t getTypeAlign(clang::QualType QT) const;
- uint64_t getPointerSize() const;
- uint64_t getPointerAlign() const;
+public:
+ explicit QualTypeMapper(clang::ASTContext &Ctx, BumpPtrAllocator &Alloc)
+ : ASTCtx(Ctx), Builder(Alloc) {}
+ const Type *convertType(clang::QualType QT);
- public:
-
- explicit QualTypeMapper(clang::ASTContext &Ctx, BumpPtrAllocator &Alloc)
- : ASTCtx(Ctx), Builder(Alloc) {}
+ // void clearCache() {TypeCache.clear();}
- const Type *convertType(clang::QualType QT);
+ TypeBuilder getTypeBuilder() { return Builder; }
+};
- // void clearCache() {TypeCache.clear();}
-
- TypeBuilder getTypeBuilder() {return Builder;}
-
- };
-
-
-
- } // namespace abi
+} // namespace abi
} // namespace llvm
#endif // !LLVM_ABI_QUALTYPE_MAPPER_H
diff --git a/llvm/include/llvm/ABI/Types.h b/llvm/include/llvm/ABI/Types.h
index 441d65220..e99bee35a 100644
--- a/llvm/include/llvm/ABI/Types.h
+++ b/llvm/include/llvm/ABI/Types.h
@@ -3,11 +3,11 @@
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/ArrayRef.h"
-#include <llvm/IR/CallingConv.h>
#include "llvm/Support/Alignment.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/TypeSize.h"
#include <cstdint>
+#include <llvm/IR/CallingConv.h>
namespace llvm {
namespace abi {
@@ -68,7 +68,8 @@ private:
public:
IntegerType(uint64_t BitWidth, Align Align, bool Signed)
- : Type(TypeKind::Integer, TypeSize::getFixed(BitWidth), Align), IsSigned(Signed) {}
+ : Type(TypeKind::Integer, TypeSize::getFixed(BitWidth), Align),
+ IsSigned(Signed) {}
bool isSigned() const { return IsSigned; }
@@ -79,12 +80,13 @@ public:
class FloatType : public Type {
private:
- const fltSemantics *Semantics;
+ const fltSemantics *Semantics;
public:
FloatType(const fltSemantics &FloatSemantics, Align Align)
- : Type(TypeKind::Float, TypeSize::getFixed(APFloat::getSizeInBits(FloatSemantics)), Align)
- , Semantics(&FloatSemantics){}
+ : Type(TypeKind::Float,
+ TypeSize::getFixed(APFloat::getSizeInBits(FloatSemantics)), Align),
+ Semantics(&FloatSemantics) {}
static bool classof(const Type *T) { return T->getKind() == TypeKind::Float; }
};
@@ -188,8 +190,6 @@ public:
static bool classof(const Type *T) { return T->getKind() == TypeKind::Union; }
};
-
-
// API for creating ABI Types
class TypeBuilder {
private:
diff --git a/llvm/lib/ABI/QualTypeMapper.cpp b/llvm/lib/ABI/QualTypeMapper.cpp
index 2a72286c5..7677f5aef 100644
--- a/llvm/lib/ABI/QualTypeMapper.cpp
+++ b/llvm/lib/ABI/QualTypeMapper.cpp
@@ -1,4 +1,5 @@
-//===-- llvm/ABI/QualTypeMapper.cpp - QualType to ABI Mapping ---------------===//
+//===-- llvm/ABI/QualTypeMapper.cpp - QualType to ABI Mapping
+//---------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
@@ -6,13 +7,11 @@
//
//===----------------------------------------------------------------------===//
//
-// This File contains the logic for converting clang::Qualtype to
+// This File contains the logic for converting clang::Qualtype to
// llvm::abi::Type for ABI Lowering
//
//===----------------------------------------------------------------------===//
-
#include <llvm/ABI/QualTypeMapper.h>
-
// TODO: Implementation of Qualtype -> abi::Type Mapping
``````````
</details>
https://github.com/llvm/llvm-project/pull/140112
More information about the llvm-commits
mailing list