[clang] eaa1f46 - [clang][NFC] Remove dependency on DataLayout::getPrefTypeAlignment
Guillaume Chatelet via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 13 05:19:32 PST 2023
Author: Guillaume Chatelet
Date: 2023-01-13T13:19:19Z
New Revision: eaa1f46f11f523104be54de058e812c9d7059819
URL: https://github.com/llvm/llvm-project/commit/eaa1f46f11f523104be54de058e812c9d7059819
DIFF: https://github.com/llvm/llvm-project/commit/eaa1f46f11f523104be54de058e812c9d7059819.diff
LOG: [clang][NFC] Remove dependency on DataLayout::getPrefTypeAlignment
Added:
Modified:
clang/include/clang/AST/CharUnits.h
clang/lib/CodeGen/CGCall.cpp
clang/lib/CodeGen/CGExpr.cpp
clang/lib/CodeGen/CodeGenFunction.h
Removed:
################################################################################
diff --git a/clang/include/clang/AST/CharUnits.h b/clang/include/clang/AST/CharUnits.h
index cd3dab00c69f8..ee0d402fc74af 100644
--- a/clang/include/clang/AST/CharUnits.h
+++ b/clang/include/clang/AST/CharUnits.h
@@ -64,6 +64,12 @@ namespace clang {
return CharUnits(Quantity);
}
+ /// fromAlign - Construct a CharUnits quantity from an llvm::Align
+ /// quantity.
+ static CharUnits fromAlign(llvm::Align Quantity) {
+ return CharUnits(Quantity.value());
+ }
+
// Compound assignment.
CharUnits& operator+= (const CharUnits &Other) {
Quantity += Other.Quantity;
diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp
index 41084956e1979..b8de9fb7224e0 100644
--- a/clang/lib/CodeGen/CGCall.cpp
+++ b/clang/lib/CodeGen/CGCall.cpp
@@ -1148,8 +1148,8 @@ static Address CreateTempAllocaForCoercion(CodeGenFunction &CGF, llvm::Type *Ty,
CharUnits MinAlign,
const Twine &Name = "tmp") {
// Don't use an alignment that's worse than what LLVM would prefer.
- auto PrefAlign = CGF.CGM.getDataLayout().getPrefTypeAlignment(Ty);
- CharUnits Align = std::max(MinAlign, CharUnits::fromQuantity(PrefAlign));
+ auto PrefAlign = CGF.CGM.getDataLayout().getPrefTypeAlign(Ty);
+ CharUnits Align = std::max(MinAlign, CharUnits::fromAlign(PrefAlign));
return CGF.CreateTempAlloca(Ty, Align, Name + ".coerce");
}
@@ -5161,15 +5161,14 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
llvm::Type *scalarType = RV.getScalarVal()->getType();
auto scalarSize = CGM.getDataLayout().getTypeAllocSize(scalarType);
- auto scalarAlign = CGM.getDataLayout().getPrefTypeAlignment(scalarType);
+ auto scalarAlign = CGM.getDataLayout().getPrefTypeAlign(scalarType);
// Materialize to a temporary.
- addr =
- CreateTempAlloca(RV.getScalarVal()->getType(),
- CharUnits::fromQuantity(std::max(
- layout->getAlignment().value(), scalarAlign)),
- "tmp",
- /*ArraySize=*/nullptr, &AllocaAddr);
+ addr = CreateTempAlloca(
+ RV.getScalarVal()->getType(),
+ CharUnits::fromAlign(std::max(layout->getAlignment(), scalarAlign)),
+ "tmp",
+ /*ArraySize=*/nullptr, &AllocaAddr);
tempSize = EmitLifetimeStart(scalarSize, AllocaAddr.getPointer());
Builder.CreateStore(RV.getScalarVal(), addr);
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 34974c63984e6..ad7871d7cc7f5 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -123,7 +123,7 @@ llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty,
Address CodeGenFunction::CreateDefaultAlignTempAlloca(llvm::Type *Ty,
const Twine &Name) {
CharUnits Align =
- CharUnits::fromQuantity(CGM.getDataLayout().getPrefTypeAlignment(Ty));
+ CharUnits::fromAlign(CGM.getDataLayout().getPrefTypeAlign(Ty));
return CreateTempAlloca(Ty, Align, Name);
}
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h
index f1d7cc7108a8e..66f60585052a3 100644
--- a/clang/lib/CodeGen/CodeGenFunction.h
+++ b/clang/lib/CodeGen/CodeGenFunction.h
@@ -4850,10 +4850,10 @@ DominatingLLVMValue::save(CodeGenFunction &CGF, llvm::Value *value) {
if (!needsSaving(value)) return saved_type(value, false);
// Otherwise, we need an alloca.
- auto align = CharUnits::fromQuantity(
- CGF.CGM.getDataLayout().getPrefTypeAlignment(value->getType()));
+ auto align = CharUnits::fromAlign(
+ CGF.CGM.getDataLayout().getPrefTypeAlign(value->getType()));
Address alloca =
- CGF.CreateTempAlloca(value->getType(), align, "cond-cleanup.save");
+ CGF.CreateTempAlloca(value->getType(), align, "cond-cleanup.save");
CGF.Builder.CreateStore(value, alloca);
return saved_type(alloca.getPointer(), true);
More information about the cfe-commits
mailing list