<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 3, 2017, at 3:39 PM, Charith Mendis <<a href="mailto:char.mendis1989@gmail.com" class="">char.mendis1989@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">If I know for sure I am accessing 32 byte chunks at a time, how can I go about changing the alignment of @u?<div class=""><br class=""></div><div class="">Should I use DataLayout's reset method? I couldn't find a method to change alignment of one global variable.</div></div></div></blockquote><div>GlobalObject::setAlignment()?</div><div><br class=""></div><div>- Matthias</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class=""><br class=""></div><div class="">Thanks</div></div><div class="gmail_extra" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""><div class="gmail_quote">On Tue, Oct 3, 2017 at 6:34 PM, Matthias Braun<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:mbraun@apple.com" target="_blank" class="">mbraun@apple.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">The effective alignment is part of the load and store operations. Updating those would mean that you need to know which ones are based on the @u address.<br class=""><br class="">You can come up with some heuristics that track values through getelementptr and similar constructs in llvm IR and which will work in most cases.<br class=""><br class="">However as you can have arbitrary computations to create the address for a load/store tracking the source of such computations is actually undecidable in general and you may have cases where you cannot determine the origin when allowing arbitrary IR.<br class="">Because of this I'd recommend to rather adjust the frontends type system so the loads and stores are created with the correct alignment in the first place.<br class=""><br class="">- Matthias<br class=""><div class=""><div class="h5"><br class="">> On Oct 3, 2017, at 3:25 PM, Charith Mendis via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class="">><br class="">><br class="">> What is the best way to change the alignment of global variables and allocated structures in LLVM during one of its optimization passes?<br class="">><br class="">><br class="">> For example, I want to change,<br class="">><br class="">> @u = internal unnamed_addr global [5 x [65 x [65 x [65 x double]]]] zeroinitializer, align 16<br class="">><br class="">> to align to 32 bytes.<br class="">><br class="">> How can this be accomplished so that all other references in the code accessing this structure are also updated.<br class="">><br class="">> Thank You<br class="">><br class="">> --<br class="">> Kind regards,<br class="">> Charith Mendis<br class="">><br class="">> Graduate Student,<br class="">> CSAIL,<br class="">> Massachusetts Institute of Technology<br class=""></div></div>> ______________________________<wbr class="">_________________<br class="">> LLVM Developers mailing list<br class="">><span class="Apple-converted-space"> </span><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">><span class="Apple-converted-space"> </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/llvm-dev</a><br class=""><br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><div class="">Kind regards,<br class="">Charith Mendis<br class=""><br class="">Graduate Student,<div class="">CSAIL,<br class=""><div class="">Massachusetts Institute of Technology</div></div></div></div></div></div></div></blockquote></div><br class=""></body></html>