<p dir="ltr">Hi Tim,</p>
<p dir="ltr">Thanks for your quick reply.</p>
<p dir="ltr">My backend doesn't have a true i64 type. I combine two i32 registers to create an extended register, that's supported by my architecture.</p>
<p dir="ltr">My datalayout is: ....i64:32:32....</p>
<p dir="ltr">--</p>
<p dir="ltr">Best Regards,</p>
<p dir="ltr">Kumail Ahmed<br>
M.Sc. StudentĀ <br>
TU Kaiserslautern</p>
<div class="gmail_quote">On 14 Jan 2016 8:58 p.m., "Tim Northover" <<a href="mailto:t.p.northover@gmail.com">t.p.northover@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 14 January 2016 at 11:01, Kumail Ahmed via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> I'm trying to align long long variable on a 4 byte boundary. I tried<br>
> to change to clang frontend as follow:<br>
><br>
> LongLongAlign = 32 ; LongLongWidth = 64;<br>
<br>
These mostly affect things like the preprocessor defines and<br>
(possibly) applications of _Alignof.<br>
<br>
> The asm output is still 8 bytes, when I declare a long long global array:<br>
<br>
What's your target's DataLayout? You should be able to see it at the<br>
top of any module you dump.<br>
<br>
This is what I'd expect to affect how the backend deals with alignment<br>
(including struct/array layout and variable definitions). There should<br>
be an "-i64:N-" bit for your 64-bit type, and it sounds you want that<br>
to read "-i64:32-". If there's no i64 entry, then the default is<br>
(oddly) 32, so this isn't the issue.<br>
<br>
Cheers.<br>
<br>
Tim.<br>
</blockquote></div>