<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 27, 2017, at 10:39 AM, John McCall via swift-dev &lt;<a href="mailto:swift-dev@swift.org" class="">swift-dev@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><blockquote type="cite" class=""><div class="">On Sep 27, 2017, at 1:24 PM, Jiho Choi &lt;<a href="mailto:jray319@gmail.com" class="">jray319@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Thanks for the explanation.&nbsp; I modified those two locations you mentioned but the build failed during tests.&nbsp; I've been browsing the source code to figure out other dependences but didn't succeed yet.&nbsp; Could you please give me some pointers on where to look at?</div></div></blockquote><div class=""><br class=""></div><div class="">You'll have to look at the test failures individually. &nbsp;If they're just IRGen tests failing because the IR no longer matches the current output, then you need to either fix the tests or just ignore them for the purposes of your experiment. &nbsp;If they're IRGen tests failing because the compiler is crashing, or execution tests failing because the running code is crashing, it's likely that I just forgot something that depends on the output. &nbsp;We're not going to be able to debug this problem for you in the abstract, though.</div></div></div></div></blockquote><br class=""></div><div>You should look at pull requests #7837 and #9214:</div><div><a href="https://github.com/apple/swift/pull/7837" class="">https://github.com/apple/swift/pull/7837</a></div><a href="https://github.com/apple/swift/pull/9214" class="">https://github.com/apple/swift/pull/9214</a><div class=""><br class=""><div class="">#7837 the object header size on 32-bit architectures. The PR is not currently up-to-date, but should give you an idea of the scope of changes that would be necessary for your experiment. #9214 is an addition after #7837 that would also be affected by a header size change.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Another approach for experimental purposes is to modify StrongRefCount without changing its size. That struct is designed to store some data inline, and if necessary can transform into an out-of-line form that stores data of any size.&nbsp;</div><div class=""><br class=""></div><div class="">You could change the arrangement of bits in the StrongRefCount inline form if you only need a few bits for your storage.&nbsp;</div><div class=""><br class=""></div><div class="">Or you could force StrongRefCount to always use the out-of-line form and store whatever data you want there. This would be slower but probably fine for experimentation.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">--&nbsp;</div><div class="">Greg Parker &nbsp; &nbsp; <a href="mailto:gparker@apple.com" class="">gparker@apple.com</a>&nbsp; &nbsp; &nbsp;Runtime Wrangler</div><div class=""><br class=""></div><div class=""><br class=""></div></div></body></html>