<div dir="ltr">Looks like Ben nicely cleaned up a few things for me here:<br><br><div>Author: Benjamin Kramer <<a href="mailto:benny.kra@googlemail.com">benny.kra@googlemail.com</a>></div><div>Date:   Thu Jul 2 21:02:39 2015 +0000</div><div><br></div><div>    [CodeGen] Use llvm::join to simplify string joining.</div><div><br></div><div>    While there replace stable_sort of std::string with just sort, stability</div><div>    is not necessary for "simple" value types. No functional change intended.</div><div><br></div><div>    git-svn-id: <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__llvm.org_svn_llvm-2Dproject_cfe_trunk-40241299&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=nJgQ0JbyvuV4bN-FSQMfoxSEE4eiA3lIu2wbkyKQCCM&s=_OBDNrfJRrHVs4gMCwvjjiZl1mk7cBn5c_iznBUgXUw&e=">https://llvm.org/svn/llvm-project/cfe/trunk@241299</a> 91177308-0d34-0410-b5e6-96231b3b80d8</div><div><br></div><div>Thanks Ben!</div><div><br></div><div>-eric</div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jul 4, 2015 at 12:15 PM Eric Christopher <<a href="mailto:echristo@gmail.com">echristo@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Ah, yeah, probably. I'll get that.<div><br></div><div>Thanks!</div></div><div dir="ltr"><div><br><br>-eric</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jul 2, 2015 at 5:54 AM Rafael Espíndola <<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Why stable_sort? Since it is sorting std::string elements just a plain<br>
sort should work, no?<br>
<br>
On 30 June 2015 at 21:07, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>> wrote:<br>
> Author: echristo<br>
> Date: Tue Jun 30 20:07:12 2015<br>
> New Revision: 241134<br>
><br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D241134-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=nJgQ0JbyvuV4bN-FSQMfoxSEE4eiA3lIu2wbkyKQCCM&s=onmRbl593vpBcM2sWZzYEG14U5JN9c5fMRDFnNbGpOA&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=241134&view=rev</a><br>
> Log:<br>
> Use a stable sort to guarantee target feature ordering in the IR<br>
> in order to make testing somewhat more feasible. Has the advantage<br>
> of making it easier to find target features as well.<br>
><br>
> Modified:<br>
>     cfe/trunk/lib/CodeGen/CGCall.cpp<br>
>     cfe/trunk/test/CodeGen/arm-target-features.c<br>
>     cfe/trunk/test/CodeGen/attr-target.c<br>
>     cfe/trunk/test/CodeGen/function-target-features.c<br>
><br>
> Modified: cfe/trunk/lib/CodeGen/CGCall.cpp<br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_CodeGen_CGCall.cpp-3Frev-3D241134-26r1-3D241133-26r2-3D241134-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=nJgQ0JbyvuV4bN-FSQMfoxSEE4eiA3lIu2wbkyKQCCM&s=GFk-aZfMvohH76rjz9EFtAXJRRueQIfxzQoz_Lcq-Kc&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=241134&r1=241133&r2=241134&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/lib/CodeGen/CGCall.cpp (original)<br>
> +++ cfe/trunk/lib/CodeGen/CGCall.cpp Tue Jun 30 20:07:12 2015<br>
> @@ -1544,6 +1544,7 @@ void CodeGenModule::ConstructAttributeLi<br>
>      if (TargetCPU != "")<br>
>        FuncAttrs.addAttribute("target-cpu", TargetCPU);<br>
>      if (!Features.empty()) {<br>
> +      std::stable_sort(Features.begin(), Features.end());<br>
>        std::stringstream TargetFeatures;<br>
>        std::copy(Features.begin(), Features.end(),<br>
>                  std::ostream_iterator<std::string>(TargetFeatures, ","));<br>
><br>
> Modified: cfe/trunk/test/CodeGen/arm-target-features.c<br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_CodeGen_arm-2Dtarget-2Dfeatures.c-3Frev-3D241134-26r1-3D241133-26r2-3D241134-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=nJgQ0JbyvuV4bN-FSQMfoxSEE4eiA3lIu2wbkyKQCCM&s=P45joKvO5Crkp_MDXxHNjh2X0QrMbonhdKBwrlp_YeY&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/arm-target-features.c?rev=241134&r1=241133&r2=241134&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/CodeGen/arm-target-features.c (original)<br>
> +++ cfe/trunk/test/CodeGen/arm-target-features.c Tue Jun 30 20:07:12 2015<br>
> @@ -6,7 +6,7 @@<br>
><br>
><br>
>  // RUN: %clang_cc1 -triple thumbv7-linux-gnueabihf -target-cpu cortex-a5 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-VFP4<br>
> -// CHECK-VFP4: "target-features"="+vfp4,+neon"<br>
> +// CHECK-VFP4: "target-features"="+neon,+vfp4"<br>
><br>
><br>
>  // RUN: %clang_cc1 -triple thumbv7-linux-gnueabihf -target-cpu cortex-a7 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-VFP4-DIV<br>
> @@ -15,14 +15,14 @@<br>
>  // RUN: %clang_cc1 -triple armv7-linux-gnueabihf -target-cpu cortex-a17 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-VFP4-DIV<br>
>  // RUN: %clang_cc1 -triple thumbv7s-linux-gnueabi -target-cpu swift -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-VFP4-DIV<br>
>  // RUN: %clang_cc1 -triple thumbv7-linux-gnueabihf -target-cpu krait -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-VFP4-DIV<br>
> -// CHECK-VFP4-DIV: "target-features"="+vfp4,+neon,+hwdiv,+hwdiv-arm"<br>
> +// CHECK-VFP4-DIV: "target-features"="+hwdiv,+hwdiv-arm,+neon,+vfp4"<br>
><br>
><br>
>  // RUN: %clang_cc1 -triple thumbv7s-apple-ios7.0 -target-cpu cyclone -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-BASIC-V8<br>
>  // RUN: %clang_cc1 -triple armv8-linux-gnueabi -target-cpu cortex-a53 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-BASIC-V8<br>
>  // RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a57 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-BASIC-V8<br>
>  // RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a72 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-BASIC-V8<br>
> -// CHECK-BASIC-V8: "target-features"="+neon,+fp-armv8,+hwdiv,+crypto,+crc,+hwdiv-arm"<br>
> +// CHECK-BASIC-V8: "target-features"="+crc,+crypto,+fp-armv8,+hwdiv,+hwdiv-arm,+neon"<br>
><br>
><br>
>  // RUN: %clang_cc1 -triple thumbv7-linux-gnueabi -target-cpu cortex-r5 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-DIV<br>
><br>
> Modified: cfe/trunk/test/CodeGen/attr-target.c<br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_CodeGen_attr-2Dtarget.c-3Frev-3D241134-26r1-3D241133-26r2-3D241134-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=nJgQ0JbyvuV4bN-FSQMfoxSEE4eiA3lIu2wbkyKQCCM&s=76JFWDKlZUyWUlFvahejl73GHv67CJNUpl1bV3G2TGE&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/attr-target.c?rev=241134&r1=241133&r2=241134&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/CodeGen/attr-target.c (original)<br>
> +++ cfe/trunk/test/CodeGen/attr-target.c Tue Jun 30 20:07:12 2015<br>
> @@ -23,6 +23,6 @@ int bar(int a) { return baz(a) + foo(a);<br>
>  // CHECK: echidna{{.*}} #2<br>
>  // CHECK: bar{{.*}} #0<br>
>  // CHECK: #0 = {{.*}}"target-cpu"="x86-64" "target-features"="+sse,+sse2"<br>
> -// CHECK: #1 = {{.*}}"target-cpu"="ivybridge" "target-features"="+sse4.2,+ssse3,+sse3,+sse,+sse2,+sse4.1,+avx"<br>
> -// CHECK: #2 = {{.*}}"target-cpu"="x86-64" "target-features"="-sse4a,-sse3,-avx2,-avx512bw,-avx512er,-avx512dq,-avx512pf,-fma4,-avx512vl,+sse,-pclmul,-avx512cd,-avx,-f16c,-ssse3,-avx512f,-fma,-xop,-aes,-sha,-sse2,-sse4.1,-sse4.2"<br>
> -// CHECK: #3 = {{.*}}"target-cpu"="x86-64" "target-features"="+ssse3,+sse3,+sse,+sse2,+sse4.1,+sse4.2"<br>
> +// CHECK: #1 = {{.*}}"target-cpu"="ivybridge" "target-features"="+avx,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3"<br>
> +// CHECK: #2 = {{.*}}"target-cpu"="x86-64" "target-features"="+sse,-aes,-avx,-avx2,-avx512bw,-avx512cd,-avx512dq,-avx512er,-avx512f,-avx512pf,-avx512vl,-f16c,-fma,-fma4,-pclmul,-sha,-sse2,-sse3,-sse4.1,-sse4.2,-sse4a,-ssse3,-xop"<br>
> +// CHECK: #3 = {{.*}}"target-cpu"="x86-64" "target-features"="+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3"<br>
><br>
> Modified: cfe/trunk/test/CodeGen/function-target-features.c<br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_test_CodeGen_function-2Dtarget-2Dfeatures.c-3Frev-3D241134-26r1-3D241133-26r2-3D241134-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=nJgQ0JbyvuV4bN-FSQMfoxSEE4eiA3lIu2wbkyKQCCM&s=go--d6-la7P0nN3W4bMSqMZP9SxhZp3dKe9d-WJZum0&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/function-target-features.c?rev=241134&r1=241133&r2=241134&view=diff</a><br>
> ==============================================================================<br>
> --- cfe/trunk/test/CodeGen/function-target-features.c (original)<br>
> +++ cfe/trunk/test/CodeGen/function-target-features.c Tue Jun 30 20:07:12 2015<br>
> @@ -17,7 +17,7 @@ void foo() {}<br>
><br>
>  // AVX-FEATURE: "target-features"{{.*}}+avx<br>
>  // AVX-NO-CPU-NOT: target-cpu<br>
> -// TWO-AVX: "target-features"={{.*}}+avx512f{{.*}}+avx512er<br>
> +// TWO-AVX: "target-features"={{.*}}+avx512er{{.*}}+avx512f<br>
>  // CORE-CPU: "target-cpu"="corei7"<br>
>  // CORE-CPU-AND-FEATURES: "target-cpu"="corei7" "target-features"={{.*}}+avx<br>
>  // X86-64-CPU: "target-cpu"="x86-64"<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div></blockquote></div></div>