解释数组在 LLVM IR 中的对齐方式

问题描述 投票:0回答:0

我有以下

.c
文件:

#include <stdio.h>

int main() {
  int a[2][3] = { 0 };
  
  int i = 1, j = 2;
  int c = 10, d = 20;

  d = c + a[i][j];

  printf("%d\n", d);
  
  return 0;
}

在它的LLVM IR 形式@Compiler Explorer 中,数组

a
的对齐是
16

%2 = alloca [2 x [3 x i32]], align 16

有没有可能解释为什么会这样

16

llvm llvm-ir memory-alignment
© www.soinside.com 2019 - 2024. All rights reserved.