[clang] [llvm] [MTE] Apply alignment / size in AsmPrinter rather than IR (PR #111918)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 21 15:00:59 PDT 2024
================
@@ -764,11 +764,18 @@ void AsmPrinter::emitGlobalVariable(const GlobalVariable *GV) {
const DataLayout &DL = GV->getDataLayout();
uint64_t Size = DL.getTypeAllocSize(GV->getValueType());
+ if (GV->isTagged())
+ Size = alignTo(Size, 16);
// If the alignment is specified, we *must* obey it. Overaligning a global
// with a specified alignment is a prompt way to break globals emitted to
// sections and expected to be contiguous (e.g. ObjC metadata).
- const Align Alignment = getGVAlignment(GV, DL);
+ Align Alignment = getGVAlignment(GV, DL);
+ if (GV->isTagged() && Alignment < 16) {
----------------
pcc wrote:
Did you consider changing the implementation of `getGVAlignment` instead of doing this here?
https://github.com/llvm/llvm-project/pull/111918
More information about the llvm-commits
mailing list