Hi Renato,<div><br></div><div>Thanks for the response. While it is true that creating an IR optimization gives a better return due to it being applicable to any target ASM, there are also a lot of target specific optimizations that devs have felt are worthwhile enough to create, such as the ARMLoadStoreOptimizer.cpp file which contains ARM specific ASM optimizations. So I know that target specific optimizations are being created and tested, and since I've already gone and created the target specific optimization I'd like to be able to validate that it's working as expected in different test cases. What I'm really looking for is a set of tools to make it easier to generate specific ASM test cases, which I presume must exist somewhere since similar ARM optimizations have been created/tested before.</div>
<div><br></div><div>Thanks,</div><div>Isaac</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Dec 10, 2012 at 3:50 AM, Renato Golin <span dir="ltr"><<a href="mailto:rengolin@systemcall.org" target="_blank">rengolin@systemcall.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 10 December 2012 03:00, Isaac Asay <<a href="mailto:iasay@calpoly.edu">iasay@calpoly.edu</a>> wrote:<br>

> I've also tried using asm() C calls to force a<br>
> specific assembly pattern, but LLVM appears to treat the asm() call like a<br>
> single atomic block that does not have the optimizer run on its member<br>
> instructions.<br>
<br>
</div>Hi Isaac,<br>
<br>
AFAIK, inline assembly is only exported at the end and it's generally<br>
kept intact, since the compiler has no way to know whether you wanted<br>
all the side effects of your hand-coded assembly or not.<br>
<br>
Also, most LLVM optimizations run on IR, not assembly, so by writing<br>
it ASM, you lose most of the power of LLVM. Even if there is a way to<br>
enable the compiler to change your inline ASM, the improvements would<br>
be very limited.<br>
<br>
<br>
--<br>
cheers,<br>
--renato<br>
<br>
<a href="http://systemcall.org/" target="_blank">http://systemcall.org/</a><br>
</blockquote></div><br></div>