<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Andrew,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div>What tools are you passing this triple to, and where did you get the list of features you showed? (looks like an MC level list to me)<br>
</div>
<div><br>
</div>
<div>Depending on the tool you'll get different levels of expansion of the features, "clang -###" is the most minimal then some things are expanded later in llvm-mc. (where is somewhat inconsistent)<br>
</div>
<div><br>
</div>
<div>David Spickett.<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> llvm-dev <llvm-dev-bounces@lists.llvm.org> on behalf of Andrew Kelley via llvm-dev <llvm-dev@lists.llvm.org><br>
<b>Sent:</b> 23 January 2020 06:49<br>
<b>To:</b> LLVM Dev <llvm-dev@lists.llvm.org><br>
<b>Subject:</b> [llvm-dev] How to find out the default CPU / Features String for a given triple?</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">When I pass an empty string for cpu and features to createTargetMachine,<br>
and then use LLVMGetTargetMachineCPU() and<br>
LLVMGetTargetMachineFeatureString() to get the strings back, they are<br>
still empty. Is there a way to have llvm compute the effective<br>
cpu/features string, and provide it so that I can inspect it?<br>
<br>
I'm trying to figure out how the cpu/features string that I am<br>
explicitly passing, which I am expecting to be equivalent to passing<br>
empty string, is different.<br>
<br>
As an example, I have a test passing in the CI using the triple<br>
"aarch64v8.1a-unknown-linux-unknown", and "" for both CPU name and<br>
target features string. However when I pass the following target<br>
specific features string, I get qemu crashing in the CI:<br>
<br>
-a35,-a53,-a55,-a57,-a72,-a73,-a75,-a76,-aes,-aggressive-fma,-alternate-sextload-cvt-f32-pattern,+altnzcv,+am,-arith-bcc-fusion,-arith-cbz-fusion,-balance-fp-ops,+bti,-call-saved-x10,-call-saved-x11,-call-saved-x12,-call-saved-x13,-call-saved-x14,-call-saved-x15,-call-saved-x18,-call-saved-x8,-call-saved-x9,+ccdp,+ccidx,+ccpp,+complxnum,+crc,-crypto,-custom-cheap-as-move,-cyclone,-disable-latency-sched-heuristic,+dit,+dotprod,-exynos-cheap-as-move,-exynosm1,-exynosm2,-exynosm3,-exynosm4,-falkor,+fmi,-force-32bit-jump-tables,+fp-armv8,-fp16fml,+fptoint,-fullfp16,-fuse-address,+fuse-aes,-fuse-arith-logic,-fuse-crypto-eor,-fuse-csel,-fuse-literals,+jsconv,-kryo,+lor,+lse,-lsl-fast,+mpam,-mte,+neon,-no-neg-immediates,+nv,+pa,+pan,+pan-rwv,+perfmon,-predictable-select-expensive,+predres,-rand,+ras,+rasv8_4,+rcpc,+rcpc-immo,+rdm,-reserve-x1,-reserve-x10,-reserve-x11,-reserve-x12,-reserve-x13,-reserve-x14,-reserve-x15,-reserve-x18,-reserve-x2,-reserve-x20,-reserve-x21,-reserve-x22,-reserve-x23,-reserve-x24,-reserve-x25,-reserve-x26,-reserve-x27,-reserve-x28,-reserve-x3,-reserve-x4,-reserve-x5,-reserve-x6,-reserve-x7,-reserve-x9,-saphira,+sb,+sel2,-sha2,-sha3,-slow-misaligned-128store,-slow-paired-128,-slow-strqro-store,-sm4,-spe,+specrestrict,+ssbs,-strict-align,-sve,-sve2,-sve2-aes,-sve2-bitperm,-sve2-sha3,-sve2-sm4,-thunderx,-thunderx2t99,-thunderxt81,-thunderxt83,-thunderxt88,+tlb-rmi,-tpidr-el1,-tpidr-el2,-tpidr-el3,+tracev8.4,-tsv110,+uaops,-use-aa,+use-postra-scheduler,-use-reciprocal-square-root,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8.5a,+vh,-zcm,-zcz,-zcz-fp,-zcz-fp-workaround,-zcz-gp<br>
<br>
Now, I understand that qemu crashing can be fixed by using a newer qemu<br>
version. And, indeed, on my laptop with a newer qemu, the test passes.<br>
However, this test was previously passing on the CI, which means that<br>
with this explicit string of target specific features, *something is<br>
different*. I am trying to determine what that different thing is.<br>
<br>
Thanks in advance for the help,<br>
Andrew<br>
<br>
</div>
</span></font></div>
</body>
</html>