[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2018-11-05 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski planned changes to this revision.
krytarowski added a comment.

OK.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2018-11-05 Thread Joerg Sonnenberger via Phabricator via cfe-commits
joerg added a comment.

Nothing changed. I don't see how catering to the broken libstdc++ 
self-configuration helps. So no, I still object to this change.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2018-11-04 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski requested review of this revision.
krytarowski added a comment.
Herald added a subscriber: llvm-commits.

This change happened to be required in downstream usage.. knowing its limits 
can we merge it as it is?


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-10-25 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski planned changes to this revision.
krytarowski added a comment.

Rescheduled for future. Maybe I will need to check and improve how good is this 
i386 __float128 support.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-26 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski added a comment.

Joerg declines to take this patch as it is, as there is no compiler-rt support 
for __float128 on i386 in compiler-rt. GCC knows __float128 on i386, amd64, 
i64, hppa, powerpc [some variations]; currently I focus on i386/amd64.

My proposal was to check if there is used libstdc++, and conditionally enable 
__float128 for i386/amd64?


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-26 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment.

I think there's something wrong with clang's implementation of __float128. It 
seems fundamentally incompatible with libstdc++'s __is_floating_point_helper 
mechanism. We can definitely take this patch to unblock things, but we should 
file a bug about investigating this all the way. This popped up in mingw, I 
forget elsewhere, and it's wasting peoples' time.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-17 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski added a comment.

We can change NetBSD base libstdc++ in `/usr/include/g++/bits/*/c++config.h` 
from

  /* Define if __float128 is supported on this host. */
  #define _GLIBCXX_USE_FLOAT128 1

to:

  #if !defined(__clang__)
  /* Define if __float128 is supported on this host. */
  #define _GLIBCXX_USE_FLOAT128 1
  #endif


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-17 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski added a comment.

We can patch libstdc++ to conditionally enable float128 on NetBSD, this works 
too. All other systems I'm aware of including cygwin moved to 
`this->HasFloat128 = true;`.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-17 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski added a comment.

In https://reviews.llvm.org/D34018#783218, @joerg wrote:

> As I said, I don't see the point in pretending we support float128 when the 
> runtime doesn't contain the necessary pieces.


On the other hand cmake and other packages break now. What's the alternative?


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-17 Thread Joerg Sonnenberger via Phabricator via cfe-commits
joerg added a comment.

As I said, I don't see the point in pretending we support float128 when the 
runtime doesn't contain the necessary pieces.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-17 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski added a comment.

ping


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-11 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski added a comment.

Is this sufficient as a test:

  $NetBSD$
  
  --- test/Sema/128bitfloat.cpp.orig2017-05-29 10:06:54.0 +
  +++ test/Sema/128bitfloat.cpp
  @@ -4,6 +4,8 @@
   // RUN: %clang_cc1 -triple i686-windows-gnu -verify -std=c++11 %s
   // RUN: %clang_cc1 -triple x86_64-windows-gnu -verify -std=c++11 %s
   // RUN: %clang_cc1 -triple x86_64-windows-msvc -verify -std=c++11 %s
  +// RUN: %clang_cc1 -triple i386--netbsd -verify -std=c++11 %s
  +// RUN: %clang_cc1 -triple x86_64--netbsd -verify -std=c++11 %s
   
   #if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__)
   __float128 f;
  ``


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-08 Thread Joerg Sonnenberger via Phabricator via cfe-commits
joerg added a comment.

Soft-float on the runtime environment part. I.e. non-trivial operations are 
lowered to library calls.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-08 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski added a comment.

Softfloat on the NetBSD of Clang/LLVM part?


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-08 Thread Joerg Sonnenberger via Phabricator via cfe-commits
joerg added a comment.

At the very least, missing test case.

I'm mostly ambivalent about this -- I don't really see the point and without 
matching soft float support it won't fully work either.


Repository:
  rL LLVM

https://reviews.llvm.org/D34018



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


[PATCH] D34018: Support __float128 on NetBSD libstdc++ x86/x86_64

2017-06-07 Thread Kamil Rytarowski via Phabricator via cfe-commits
krytarowski created this revision.

This adds support for __float128 from GNU libstdc++ with Clang on NetBSD 
x86/x86_64 targets.

This corrects compilation at least of CMake and probably others like Firefox.

In file included from 
/tmp/pkgsrc-tmp/devel/cmake/work/cmake-3.8.2/Source/kwsys/Directory.cxx:4:
In file included from 
/tmp/pkgsrc-tmp/devel/cmake/work/cmake-3.8.2/Source/cmsys/Directory.hxx:8:
In file included from /usr/include/g++/string:40:
In file included from /usr/include/g++/bits/char_traits.h:39:
In file included from /usr/include/g++/bits/stl_algobase.h:64:
In file included from /usr/include/g++/bits/stl_pair.h:59:
In file included from /usr/include/g++/bits/move.h:57:
/usr/include/g++/type_traits:311:39: error: __float128 is not supported on this 
target

  struct __is_floating_point_helper<__float128>
^

Sponsored by 


Repository:
  rL LLVM

https://reviews.llvm.org/D34018

Files:
  lib/Basic/Targets.cpp


Index: lib/Basic/Targets.cpp
===
--- lib/Basic/Targets.cpp
+++ lib/Basic/Targets.cpp
@@ -514,6 +514,8 @@
 Builder.defineMacro("__ELF__");
 if (Opts.POSIXThreads)
   Builder.defineMacro("_REENTRANT");
+if (this->HasFloat128)
+  Builder.defineMacro("__FLOAT128__");
 
 switch (Triple.getArch()) {
 default:
@@ -530,6 +532,15 @@
   NetBSDTargetInfo(const llvm::Triple , const TargetOptions )
   : OSTargetInfo(Triple, Opts) {
 this->MCountName = "_mcount";
+
+switch (Triple.getArch()) {
+default:
+  break;
+case llvm::Triple::x86:
+case llvm::Triple::x86_64:
+  this->HasFloat128 = true;
+  break;
+}
   }
 };
 


Index: lib/Basic/Targets.cpp
===
--- lib/Basic/Targets.cpp
+++ lib/Basic/Targets.cpp
@@ -514,6 +514,8 @@
 Builder.defineMacro("__ELF__");
 if (Opts.POSIXThreads)
   Builder.defineMacro("_REENTRANT");
+if (this->HasFloat128)
+  Builder.defineMacro("__FLOAT128__");
 
 switch (Triple.getArch()) {
 default:
@@ -530,6 +532,15 @@
   NetBSDTargetInfo(const llvm::Triple , const TargetOptions )
   : OSTargetInfo(Triple, Opts) {
 this->MCountName = "_mcount";
+
+switch (Triple.getArch()) {
+default:
+  break;
+case llvm::Triple::x86:
+case llvm::Triple::x86_64:
+  this->HasFloat128 = true;
+  break;
+}
   }
 };
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits