[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-12-12 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan abandoned this revision.
atanasyan added a comment.

Commits rL348934  and rL348935 
 enable using of integrated assembler for 
MIPS targets in all cases.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D52418/new/

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-11-13 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan added a comment.

In https://reviews.llvm.org/D52418#1294699, @brad wrote:

> Simon?


The testing continues. Unfortunately I do not have access to an appropriate 
hardware so cannot control the process. But the task is not abandoned.


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-11-11 Thread Brad Smith via Phabricator via cfe-commits
brad added a comment.

Simon?


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-10-23 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan added a comment.

In https://reviews.llvm.org/D52418#1271779, @brad wrote:

> How is it going with regard to N32 fixes / testing?


I'm in the process of building/testing LLVM/Clang binaries for N32 ABI.


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-10-22 Thread Brad Smith via Phabricator via cfe-commits
brad added a comment.

How is it going with regard to N32 fixes / testing?


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-10-10 Thread Brad Smith via Phabricator via cfe-commits
brad added a comment.

IMHO it would be best to try and deal with as many known / exposed issues with 
the N32 support and then just enable IAS across the board. Then tackle any 
remaining issues as they come up.


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-10-10 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan added a comment.

In https://reviews.llvm.org/D52418#1256189, @brad wrote:

> Simon, and what about lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp?


Good point. In fact, integrated assembler for GNUABIN32 was enabled in the 
`MipsMCAsmInfo` ctor by me and by mistake. I have another patch which fix it. 
But anyway there is a problem - we cannot check command line options in the 
`MipsMCAsmInfo`. So I'm going to test current MIPS N32 ABI implementation. 
Maybe we are ready to enable integrated assembler for it. In that case both 
`Generic_GCC::IsIntegratedAssemblerDefault()` and `MipsMCAsmInfo` ctor can be 
simplified.


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-10-04 Thread Brad Smith via Phabricator via cfe-commits
brad added a comment.

Simon, and what about lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp?


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-10-04 Thread Reid Kleckner via Phabricator via cfe-commits
rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.

lgtm, sorry it got lost.


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-10-03 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan added a comment.

Ping?


Repository:
  rC Clang

https://reviews.llvm.org/D52418



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


[PATCH] D52418: [driver][mips] Enable integrated assembler for MIPS64 except N32 ABI selected

2018-09-24 Thread Simon Atanasyan via Phabricator via cfe-commits
atanasyan created this revision.
atanasyan added reviewers: rsmith, rnk, zturner.
Herald added subscribers: jrtc27, arichardson, sdardis, srhines.

Enable integrated assembler for MIPS64 targets except N32 ABI explicitly 
selected by the `-mabi=n32` command line option or `mips64(el)-linux-gnuabin32` 
target triple.


Repository:
  rC Clang

https://reviews.llvm.org/D52418

Files:
  include/clang/Driver/ToolChain.h
  lib/Driver/ToolChains/Gnu.cpp
  test/Driver/mips-gnu-integrated-as.c


Index: test/Driver/mips-gnu-integrated-as.c
===
--- /dev/null
+++ test/Driver/mips-gnu-integrated-as.c
@@ -0,0 +1,27 @@
+# Check cases when MIPS cannot use the integrated assembler.
+
+# RUN: %clang -target mips-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mipsel-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64el-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64-unknown-gnu -mabi=64 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64el-unknown-gnu -mabi=64 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+
+# INT-NOT: "-no-integrated-as"
+
+# RUN: %clang -target mips64-linux-gnuabin32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+# RUN: %clang -target mips64el-linux-gnuabin32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+# RUN: %clang -target mips64-unknown-gnu -mabi=n32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+# RUN: %clang -target mips64el-unknown-gnu -mabi=n32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+
+# EXT: "-no-integrated-as"
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -2408,15 +2408,9 @@
 return true;
   case llvm::Triple::mips64:
   case llvm::Triple::mips64el:
-// Enabled for Debian, Android, FreeBSD and OpenBSD mips64/mipsel, as they
-// can precisely identify the ABI in use (Debian) or only use N64 for 
MIPS64
-// (Android). Other targets are unable to distinguish N32 from N64.
-if (getTriple().getEnvironment() == llvm::Triple::GNUABI64 ||
-getTriple().isAndroid() ||
-getTriple().isOSFreeBSD() ||
-getTriple().isOSOpenBSD())
-  return true;
-return false;
+// Do not use integrated assembler for N32 ABI only.
+return !tools::mips::hasMipsAbiArg(getArgs(), "n32") &&
+   getTriple().getEnvironment() != llvm::Triple::GNUABIN32;
   default:
 return false;
   }
Index: include/clang/Driver/ToolChain.h
===
--- include/clang/Driver/ToolChain.h
+++ include/clang/Driver/ToolChain.h
@@ -156,6 +156,8 @@
 
   void setTripleEnvironment(llvm::Triple::EnvironmentType Env);
 
+  const llvm::opt::ArgList () const { return Args; };
+
   virtual Tool *buildAssembler() const;
   virtual Tool *buildLinker() const;
   virtual Tool *getTool(Action::ActionClass AC) const;


Index: test/Driver/mips-gnu-integrated-as.c
===
--- /dev/null
+++ test/Driver/mips-gnu-integrated-as.c
@@ -0,0 +1,27 @@
+# Check cases when MIPS cannot use the integrated assembler.
+
+# RUN: %clang -target mips-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mipsel-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64el-unknown-gnu -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64-unknown-gnu -mabi=64 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+# RUN: %clang -target mips64el-unknown-gnu -mabi=64 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=INT %s
+
+# INT-NOT: "-no-integrated-as"
+
+# RUN: %clang -target mips64-linux-gnuabin32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+# RUN: %clang -target mips64el-linux-gnuabin32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+# RUN: %clang -target mips64-unknown-gnu -mabi=n32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+# RUN: %clang -target mips64el-unknown-gnu -mabi=n32 -### -c %s 2>&1 \
+# RUN:   | FileCheck -check-prefix=EXT %s
+
+# EXT: "-no-integrated-as"
Index: lib/Driver/ToolChains/Gnu.cpp
===
--- lib/Driver/ToolChains/Gnu.cpp
+++ lib/Driver/ToolChains/Gnu.cpp
@@ -2408,15 +2408,9 @@
 return true;
   case llvm::Triple::mips64:
   case llvm::Triple::mips64el:
-// Enabled for