Re: [PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-05-04 Thread Eric Christopher via cfe-commits
Sounds great. Thanks!

-eric

On Wed, May 4, 2016 at 4:36 AM Andrey Turetskiy 
wrote:

> aturetsk added a comment.
>
> Hi,
> Thanks for the review.
>
> Committed:
>
> 1. Add a test for driver options from m_x86_Features_Group (
> http://reviews.llvm.org/rL268487)
> 2. Add missing -mno-cx16 driver option (http://reviews.llvm.org/rL268488)
> 3. Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87 (
> http://reviews.llvm.org/rL268489)
>
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D19658
>
>
>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-05-04 Thread Andrey Turetskiy via cfe-commits
aturetsk added a comment.

Hi,
Thanks for the review.

Committed:

1. Add a test for driver options from m_x86_Features_Group 
(http://reviews.llvm.org/rL268487)
2. Add missing -mno-cx16 driver option (http://reviews.llvm.org/rL268488)
3. Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87 
(http://reviews.llvm.org/rL268489)


Repository:
  rL LLVM

http://reviews.llvm.org/D19658



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-05-04 Thread Andrey Turetskiy via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL268487: Add a test for driver options from 
m_x86_Features_Group. (authored by aturetsk).

Changed prior to commit:
  http://reviews.llvm.org/D19658?vs=55579=56125#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D19658

Files:
  cfe/trunk/test/Driver/x86-target-features.c

Index: cfe/trunk/test/Driver/x86-target-features.c
===
--- cfe/trunk/test/Driver/x86-target-features.c
+++ cfe/trunk/test/Driver/x86-target-features.c
@@ -0,0 +1,44 @@
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mmmx -m3dnow 
-m3dnowa %s -### -o %t.o 2>&1 | FileCheck -check-prefix=MMX %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-mmx -mno-3dnow 
-mno-3dnowa %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-MMX %s
+// MMX: "-target-feature" "+mmx" "-target-feature" "+3dnow" "-target-feature" 
"+3dnowa"
+// NO-MMX: "-target-feature" "-mmx" "-target-feature" "-3dnow" 
"-target-feature" "-3dnowa"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -msse -msse2 -msse3 
-mssse3 -msse4a -msse4.1 -msse4.2 %s -### -o %t.o 2>&1 | FileCheck 
-check-prefix=SSE %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-sse -mno-sse2 
-mno-sse3 -mno-ssse3 -mno-sse4a -mno-sse4.1 -mno-sse4.2 %s -### -o %t.o 2>&1 | 
FileCheck -check-prefix=NO-SSE %s
+// SSE: "-target-feature" "+sse" "-target-feature" "+sse2" "-target-feature" 
"+sse3" "-target-feature" "+ssse3" "-target-feature" "+sse4a" "-target-feature" 
"+sse4.1" "-target-feature" "+sse4.2"
+// NO-SSE: "-target-feature" "-sse" "-target-feature" "-sse2" 
"-target-feature" "-sse3" "-target-feature" "-ssse3" "-target-feature" "-sse4a" 
"-target-feature" "-sse4.1" "-target-feature" "-sse4.2"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -msse4 -maes %s -### 
-o %t.o 2>&1 | FileCheck -check-prefix=SSE4-AES %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-sse4 -mno-aes 
%s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-SSE4-AES %s
+// SSE4-AES: "-target-feature" "+sse4.2" "-target-feature" "+aes"
+// NO-SSE4-AES: "-target-feature" "-sse4.1" "-target-feature" "-aes"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mavx -mavx2 
-mavx512f -mavx512cd -mavx512er -mavx512pf -mavx512dq -mavx512bw -mavx512vl 
-mavx512vbmi -mavx512ifma %s -### -o %t.o 2>&1 | FileCheck -check-prefix=AVX %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-avx -mno-avx2 
-mno-avx512f -mno-avx512cd -mno-avx512er -mno-avx512pf -mno-avx512dq 
-mno-avx512bw -mno-avx512vl -mno-avx512vbmi -mno-avx512ifma %s -### -o %t.o 
2>&1 | FileCheck -check-prefix=NO-AVX %s
+// AVX: "-target-feature" "+avx" "-target-feature" "+avx2" "-target-feature" 
"+avx512f" "-target-feature" "+avx512cd" "-target-feature" "+avx512er" 
"-target-feature" "+avx512pf" "-target-feature" "+avx512dq" "-target-feature" 
"+avx512bw" "-target-feature" "+avx512vl" "-target-feature" "+avx512vbmi" 
"-target-feature" "+avx512ifma"
+// NO-AVX: "-target-feature" "-avx" "-target-feature" "-avx2" 
"-target-feature" "-avx512f" "-target-feature" "-avx512cd" "-target-feature" 
"-avx512er" "-target-feature" "-avx512pf" "-target-feature" "-avx512dq" 
"-target-feature" "-avx512bw" "-target-feature" "-avx512vl" "-target-feature" 
"-avx512vbmi" "-target-feature" "-avx512ifma"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mpclmul -mrdrnd 
-mfsgsbase -mbmi -mbmi2 %s -### -o %t.o 2>&1 | FileCheck -check-prefix=BMI %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-pclmul 
-mno-rdrnd -mno-fsgsbase -mno-bmi -mno-bmi2 %s -### -o %t.o 2>&1 | FileCheck 
-check-prefix=NO-BMI %s
+// BMI: "-target-feature" "+pclmul" "-target-feature" "+rdrnd" 
"-target-feature" "+fsgsbase" "-target-feature" "+bmi" "-target-feature" "+bmi2"
+// NO-BMI: "-target-feature" "-pclmul" "-target-feature" "-rdrnd" 
"-target-feature" "-fsgsbase" "-target-feature" "-bmi" "-target-feature" "-bmi2"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mlzcnt -mpopcnt 
-mtbm -mfma -mfma4 %s -### -o %t.o 2>&1 | FileCheck -check-prefix=FMA %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-lzcnt 
-mno-popcnt -mno-tbm -mno-fma -mno-fma4 %s -### -o %t.o 2>&1 | FileCheck 
-check-prefix=NO-FMA %s
+// FMA: "-target-feature" "+lzcnt" "-target-feature" "+popcnt" 
"-target-feature" "+tbm" "-target-feature" "+fma" "-target-feature" "+fma4"
+// NO-FMA: "-target-feature" "-lzcnt" "-target-feature" "-popcnt" 
"-target-feature" "-tbm" "-target-feature" "-fma" "-target-feature" "-fma4"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mxop -mf16c -mrtm 
-mprfchw -mrdseed %s -### -o %t.o 2>&1 | FileCheck -check-prefix=XOP %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-xop -mno-f16c 
-mno-rtm -mno-prfchw -mno-rdseed %s -### -o %t.o 2>&1 | FileCheck 
-check-prefix=NO-XOP %s
+// XOP: 

Re: [PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-04-30 Thread Eric Christopher via cfe-commits
echristo accepted this revision.
echristo added a comment.
This revision is now accepted and ready to land.

Nice. If you wouldn't mind splitting out into 3 patches (all ok):

a) The initial testcase,
b) the mno-cx16 patch and associated test
c) The x87 part and associated test.

You'll also want to put in that there's definitely a bit of "last one wins" on 
the testcases and so that the test case isn't exhaustive.

Thanks!

-eric


http://reviews.llvm.org/D19658



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-04-29 Thread Andrey Turetskiy via cfe-commits
aturetsk added a comment.

Hi,
Thanks for the review.
All m_x86_Features_Group options are handled in function 
handleTargetFeaturesGroup from lib/Driver/Tools.cpp, so there is no additional 
code needed.
There was no test for this, so I added a new one trying to cover all options 
from m_x86_Features_Group.



Comment at: include/clang/Driver/Options.td:1406
@@ -1403,2 +1405,3 @@
 def mno_sha : Flag<["-"], "mno-sha">, Group;
+def mno_cx16 : Flag<["-"], "mno-cx16">, Group;
 def mno_fxsr : Flag<["-"], "mno-fxsr">, Group;

The test showed me that this flag is missing so I added it.


http://reviews.llvm.org/D19658



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-04-29 Thread Andrey Turetskiy via cfe-commits
aturetsk updated this revision to Diff 55579.
aturetsk added a comment.

Add a missing option and a test.


http://reviews.llvm.org/D19658

Files:
  include/clang/Driver/Options.td
  test/Driver/x86-target-features.c

Index: test/Driver/x86-target-features.c
===
--- /dev/null
+++ test/Driver/x86-target-features.c
@@ -0,0 +1,51 @@
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mx87 %s -### -o 
%t.o 2>&1 | FileCheck -check-prefix=X87 %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-x87 %s -### -o 
%t.o 2>&1 | FileCheck -check-prefix=NO-X87 %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -m80387 %s -### -o 
%t.o 2>&1 | FileCheck -check-prefix=X87 %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-80387 %s -### 
-o %t.o 2>&1 | FileCheck -check-prefix=NO-X87 %s
+// X87: "-target-feature" "+x87"
+// NO-X87: "-target-feature" "-x87"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mmmx -m3dnow 
-m3dnowa %s -### -o %t.o 2>&1 | FileCheck -check-prefix=MMX %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-mmx -mno-3dnow 
-mno-3dnowa %s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-MMX %s
+// MMX: "-target-feature" "+mmx" "-target-feature" "+3dnow" "-target-feature" 
"+3dnowa"
+// NO-MMX: "-target-feature" "-mmx" "-target-feature" "-3dnow" 
"-target-feature" "-3dnowa"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -msse -msse2 -msse3 
-mssse3 -msse4a -msse4.1 -msse4.2 %s -### -o %t.o 2>&1 | FileCheck 
-check-prefix=SSE %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-sse -mno-sse2 
-mno-sse3 -mno-ssse3 -mno-sse4a -mno-sse4.1 -mno-sse4.2 %s -### -o %t.o 2>&1 | 
FileCheck -check-prefix=NO-SSE %s
+// SSE: "-target-feature" "+sse" "-target-feature" "+sse2" "-target-feature" 
"+sse3" "-target-feature" "+ssse3" "-target-feature" "+sse4a" "-target-feature" 
"+sse4.1" "-target-feature" "+sse4.2"
+// NO-SSE: "-target-feature" "-sse" "-target-feature" "-sse2" 
"-target-feature" "-sse3" "-target-feature" "-ssse3" "-target-feature" "-sse4a" 
"-target-feature" "-sse4.1" "-target-feature" "-sse4.2"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -msse4 -maes %s -### 
-o %t.o 2>&1 | FileCheck -check-prefix=SSE4-AES %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-sse4 -mno-aes 
%s -### -o %t.o 2>&1 | FileCheck -check-prefix=NO-SSE4-AES %s
+// SSE4-AES: "-target-feature" "+sse4.2" "-target-feature" "+aes"
+// NO-SSE4-AES: "-target-feature" "-sse4.1" "-target-feature" "-aes"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mavx -mavx2 
-mavx512f -mavx512cd -mavx512er -mavx512pf -mavx512dq -mavx512bw -mavx512vl 
-mavx512vbmi -mavx512ifma %s -### -o %t.o 2>&1 | FileCheck -check-prefix=AVX %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-avx -mno-avx2 
-mno-avx512f -mno-avx512cd -mno-avx512er -mno-avx512pf -mno-avx512dq 
-mno-avx512bw -mno-avx512vl -mno-avx512vbmi -mno-avx512ifma %s -### -o %t.o 
2>&1 | FileCheck -check-prefix=NO-AVX %s
+// AVX: "-target-feature" "+avx" "-target-feature" "+avx2" "-target-feature" 
"+avx512f" "-target-feature" "+avx512cd" "-target-feature" "+avx512er" 
"-target-feature" "+avx512pf" "-target-feature" "+avx512dq" "-target-feature" 
"+avx512bw" "-target-feature" "+avx512vl" "-target-feature" "+avx512vbmi" 
"-target-feature" "+avx512ifma"
+// NO-AVX: "-target-feature" "-avx" "-target-feature" "-avx2" 
"-target-feature" "-avx512f" "-target-feature" "-avx512cd" "-target-feature" 
"-avx512er" "-target-feature" "-avx512pf" "-target-feature" "-avx512dq" 
"-target-feature" "-avx512bw" "-target-feature" "-avx512vl" "-target-feature" 
"-avx512vbmi" "-target-feature" "-avx512ifma"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mpclmul -mrdrnd 
-mfsgsbase -mbmi -mbmi2 %s -### -o %t.o 2>&1 | FileCheck -check-prefix=BMI %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-pclmul 
-mno-rdrnd -mno-fsgsbase -mno-bmi -mno-bmi2 %s -### -o %t.o 2>&1 | FileCheck 
-check-prefix=NO-BMI %s
+// BMI: "-target-feature" "+pclmul" "-target-feature" "+rdrnd" 
"-target-feature" "+fsgsbase" "-target-feature" "+bmi" "-target-feature" "+bmi2"
+// NO-BMI: "-target-feature" "-pclmul" "-target-feature" "-rdrnd" 
"-target-feature" "-fsgsbase" "-target-feature" "-bmi" "-target-feature" "-bmi2"
+
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mlzcnt -mpopcnt 
-mtbm -mfma -mfma4 %s -### -o %t.o 2>&1 | FileCheck -check-prefix=FMA %s
+// RUN: %clang -target i386-unknown-linux-gnu -march=i386 -mno-lzcnt 
-mno-popcnt -mno-tbm -mno-fma -mno-fma4 %s -### -o %t.o 2>&1 | FileCheck 
-check-prefix=NO-FMA %s
+// FMA: "-target-feature" "+lzcnt" "-target-feature" "+popcnt" 
"-target-feature" "+tbm" "-target-feature" "+fma" "-target-feature" "+fma4"
+// NO-FMA: "-target-feature" "-lzcnt" "-target-feature" "-popcnt" 
"-target-feature" "-tbm" "-target-feature" "-fma" 

Re: [PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-04-28 Thread Bruno Cardoso Lopes via cfe-commits
bruno added a subscriber: bruno.
bruno added a reviewer: bruno.
bruno added a comment.

Hi Andrey,

What about the code / tests that check for this flags?


http://reviews.llvm.org/D19658



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D19658: [X86] Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87

2016-04-28 Thread Andrey Turetskiy via cfe-commits
aturetsk created this revision.
aturetsk added reviewers: rsmith, echristo.
aturetsk added subscribers: cfe-commits, zinovy.nis.
Herald added a subscriber: joker.eph.

Add -m[no-]x87 and -m[no-]80387 options to control FeatureX87.
-m[no-]80387 options is added for compatibility with GCC.

http://reviews.llvm.org/D19658

Files:
  include/clang/Driver/Options.td

Index: include/clang/Driver/Options.td
===
--- include/clang/Driver/Options.td
+++ include/clang/Driver/Options.td
@@ -1361,6 +1361,8 @@
 def mno_rtd: Flag<["-"], "mno-rtd">, Group;
 def mno_soft_float : Flag<["-"], "mno-soft-float">, Group;
 def mno_stackrealign : Flag<["-"], "mno-stackrealign">, Group;
+def mno_x87 : Flag<["-"], "mno-x87">, Group;
+def mno_80387 : Flag<["-"], "mno-80387">, Alias;
 def mno_sse2 : Flag<["-"], "mno-sse2">, Group;
 def mno_sse3 : Flag<["-"], "mno-sse3">, Group;
 def mno_sse4a : Flag<["-"], "mno-sse4a">, Group;
@@ -1527,6 +1529,8 @@
 def mimplicit_float : Flag<["-"], "mimplicit-float">, Group;
 def mrecip : Flag<["-"], "mrecip">, Group;
 def mrecip_EQ : CommaJoined<["-"], "mrecip=">, Group, 
Flags<[CC1Option]>;
+def mx87 : Flag<["-"], "mx87">, Group;
+def m80387 : Flag<["-"], "m80387">, Alias;
 def msse2 : Flag<["-"], "msse2">, Group;
 def msse3 : Flag<["-"], "msse3">, Group;
 def msse4a : Flag<["-"], "msse4a">, Group;


Index: include/clang/Driver/Options.td
===
--- include/clang/Driver/Options.td
+++ include/clang/Driver/Options.td
@@ -1361,6 +1361,8 @@
 def mno_rtd: Flag<["-"], "mno-rtd">, Group;
 def mno_soft_float : Flag<["-"], "mno-soft-float">, Group;
 def mno_stackrealign : Flag<["-"], "mno-stackrealign">, Group;
+def mno_x87 : Flag<["-"], "mno-x87">, Group;
+def mno_80387 : Flag<["-"], "mno-80387">, Alias;
 def mno_sse2 : Flag<["-"], "mno-sse2">, Group;
 def mno_sse3 : Flag<["-"], "mno-sse3">, Group;
 def mno_sse4a : Flag<["-"], "mno-sse4a">, Group;
@@ -1527,6 +1529,8 @@
 def mimplicit_float : Flag<["-"], "mimplicit-float">, Group;
 def mrecip : Flag<["-"], "mrecip">, Group;
 def mrecip_EQ : CommaJoined<["-"], "mrecip=">, Group, Flags<[CC1Option]>;
+def mx87 : Flag<["-"], "mx87">, Group;
+def m80387 : Flag<["-"], "m80387">, Alias;
 def msse2 : Flag<["-"], "msse2">, Group;
 def msse3 : Flag<["-"], "msse3">, Group;
 def msse4a : Flag<["-"], "msse4a">, Group;
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits