<div dir="ltr">Hey. I'm doing research around compiler optimizations in embedded systems. My research brought me to LLVM passes. Based on this email (<a href="https://lists.llvm.org/pipermail/llvm-dev/2014-July/074913.html">https://lists.llvm.org/pipermail/llvm-dev/2014-July/074913.html</a>), it looks like one can build an LLVM function pass and add it to Android's CMake compilation phase.<br><br>First off, I'll have to compile the pass using the Android toolchain (So, this maybe `toolchains/llvm/prebuilt/darwin-x86_64/bin/x86_64-linux-android29-clang++`). I can have [Android's CMake toolchain](<pre class="gmail-clear-for-copy" style="color:initial;font:initial;font-feature-settings:initial;font-kerning:initial;text-orientation:initial;writing-mode:initial;zoom:initial;background:initial;background-blend-mode:initial;border:initial;border-radius:initial;border-collapse:initial;box-sizing:initial;break-after:initial;break-before:initial;break-inside:initial;caption-side:initial;clear:initial;columns:initial;column-fill:initial;column-rule:initial;column-span:initial;display:initial;empty-cells:initial;float:initial;height:initial;isolation:initial;line-break:initial;list-style:initial;margin:initial;max-height:initial;max-width:initial;min-height:initial;min-width:initial;mix-blend-mode:initial;object-fit:initial;object-position:initial;opacity:initial;outline:initial;overflow:initial;padding:initial;quotes:initial;speak:initial;table-layout:initial;text-align:initial;text-align-last:initial;text-combine-upright:initial;text-decoration-line:initial;text-overflow:initial;text-underline-position:initial;vertical-align:initial;border-spacing:initial;width:initial;word-break:initial;direction:ltr"><div style="color:unset;font-family:"Roboto Mono",monospace;font-feature-settings:unset;font-kerning:unset;font-size:unset;font-stretch:unset;font-variant:unset;font-weight:unset;text-orientation:unset;writing-mode:unset;zoom:unset;background:unset;background-blend-mode:unset;border:unset;border-radius:unset;border-collapse:unset;box-sizing:unset;break-after:unset;break-before:unset;break-inside:unset;caption-side:unset;clear:unset;columns:unset;column-fill:unset;column-rule:unset;column-span:unset;display:unset;empty-cells:unset;float:unset;height:unset;isolation:unset;letter-spacing:unset;line-break:unset;line-height:unset;list-style:unset;margin:unset;max-height:unset;max-width:unset;min-height:unset;min-width:unset;mix-blend-mode:unset;object-fit:unset;object-position:unset;opacity:unset;outline:unset;overflow:unset;padding:unset;quotes:unset;speak:unset;table-layout:unset;text-align:unset;text-align-last:unset;text-combine-upright:unset;text-decoration:unset;text-indent:unset;text-overflow:unset;text-transform:unset;text-underline-position:unset;vertical-align:unset;border-spacing:unset;width:unset;word-break:unset;word-spacing:unset"><a href="https://developer.android.com/ndk/guides/cmake#usage">https://developer.android.com/ndk/guides/cmake#usage</a>)</div></pre> take care of this, but how would one compile an LLVM pass out-of-tree using Android's toolchain?<br><br>Second, if anyone had experience with this or an example of running the pass itself, it'll be greatly appreciated.<br><br>Many thanks guys</div>