<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></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 Jan 4, 2016, at 6:42 AM, Artyom Skrobov <<a href="mailto:Artyom.Skrobov@arm.com" class="">Artyom.Skrobov@arm.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Going back through SVN history, I cannot find any evidence that ARMv6L ever existed.<br class=""></blockquote><br class="">Oh, my bad!! I was thinking of ARMv7l... :/<br class=""><br class="">Nevertheless, I'll leave you guys to review this one, as I lost touch with the parser a while ago.<br class=""></blockquote><br class="">Ah, I see: ARMv7L is now an alias for ARMv7A.<br class=""></div></div></blockquote><div><br class=""></div><div>Do you have a reference to where it’s defined as an alias?  I agree that would be the better approach.  I grep’d the source tree for ‘armv7l’ (case insensitive) and it doesn’t shed any light on the subject:</div><div><br class=""></div><div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">wdillon@tegra-ubuntu:~/apple-llvm$ grep -RIi "armv7l" *</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #d53bd3" class="">include/llvm/Support/ARMTargetParser.def</span><span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span>ARM_ARCH("<span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">armv7l</b></span>", AK_<span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">ARMV7L</b></span>, "7-L", "v7l", ARMBuildAttrs::CPUArch::v7,</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #d53bd3" class="">include/llvm/Support/ARMTargetParser.def</span><span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span>ARM_CPU_NAME("cortex-a8", AK_<span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">ARMV7L</b></span>, FK_NEON, true, AEK_SEC)</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(213, 59, 211);" class="">lib/Support/Triple.cpp<span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">  case ARM::AK_</span><span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">ARMV7L</b></span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">:</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(213, 59, 211);" class="">lib/Support/TargetParser.cpp<span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">  case ARM::AK_</span><span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">ARMV7L</b></span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">:</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(213, 59, 211);" class="">lib/Support/TargetParser.cpp<span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">  case ARM::AK_</span><span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">ARMV7L</b></span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">:</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #d53bd3" class="">test/CodeGen/ARM/legalize-unaligned-load.ll</span><span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span>; RUN:  llc -O3 -code-model=default -relocation-model=default -mtriple=<span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">armv7l</b></span>-unknown-linux-gnueabihf -mcpu=generic %s -o - | FileCheck %s</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(213, 59, 211);" class="">test/CodeGen/ARM/struct-byval-frame-index.ll<span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">target triple = "</span><span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">armv7l</b></span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">-unknown-linux-gnueabihf"</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #d53bd3" class="">unittests/ADT/TripleTest.cpp</span><span style="font-variant-ligatures: no-common-ligatures; color: #34bbc7" class="">:</span>    llvm::Triple Triple("<span style="font-variant-ligatures: no-common-ligatures; color: #c33720" class=""><b class="">armv7l</b></span>-linux-gnueabihf”);</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">Other than the unit test (should I be thinking about adding a unit test?) and codegen these occurrences are what I modeled the ARMv6 patch to match.</div></div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class="">So, if William has to add support for ARMv6L, I'd suggest he adds it as an alias, and not as an architecture variant.<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">However, because the DefaultTargetTriple is armv6l-unknown-linux-gnueabihf<br class=""></blockquote></blockquote></blockquote><br class="">Where is this "armv6l" coming from? Is it a legacy GNU thing? Or is it a newly-coined name?<br class=""></div></div></blockquote></div><br class=""><div class="">the armv6l is coming from linux.  </div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(52, 189, 38);" class=""><b class="">wdillon@raspberrypi</b><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">:</span><span style="font-variant-ligatures: no-common-ligatures; color: #5330e1" class=""><b class="">~ $</b></span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> uname -a</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;" class="">Linux raspberrypi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2015 armv6l GNU/Linux</div></div><div class=""><br class=""></div><div class="">The default target triple comes from the logic in the swift compiler.  The use case is to canonicalize the arm architecture part of the triple.  Because there is so much logic in llvm to make the correct decisions, it makes sense to me to let llvm do the work of decoding the arm architecture, rather than trying to hack something together within swift.</div><div class=""><br class=""></div><div class="">Thanks for the feedback! :)</div><div class="">- Will</div></body></html>