[cfe-users] How to change alignment of long long
Philipp Klaus Krause via cfe-users
cfe-users at lists.llvm.org
Fri Oct 21 09:50:56 PDT 2016
In clang-3.8, I'm trying to have some data types aligned on 8-bit
boundaries, which works for everything except long long.
In my target, I've used:
IntAlign = 8;
LongAlign = 8;
LongLongAlign = 8;
FloatAlign = 8;
DataLayoutString =
"E-p:16:8:8-i1:8:8-i8:8:8-i16:8:8-i32:8:8-i64:8:8-f32:8:8-a:8:8";
If I compile this test.c
int i;
long l;
long long ll;
float f;
I get the following test.ll:
; ModuleID = 'test.c'
target datalayout =
"E-p:16:8:8-i1:8:8-i8:8:8-i16:8:8-i32:8:8-i64:8:8-f32:8:8-a:8:8"
target triple = "sdcc-stm8"
@i = common global i16 0, align 1
@l = common global i32 0, align 1
@ll = common global i64 0, align 8
@f = common global float 0.000000e+00, align 1
!llvm.ident = !{!0}
!0 = !{!"clang version 3.8.1 "}
So the alignment is wrong for long long only.
It seems someone else had such a problem in January
(http://lists.llvm.org/pipermail/llvm-dev/2016-January/094000.html), but
I don't see a solution there.
Philipp
More information about the cfe-users
mailing list