- User Since
- Apr 15 2014, 12:19 PM (271 w, 8 h)
Sun, Jun 23
FWIW, the original test case with pre-increment is fixed by this, e.g.:
Sat, Jun 15
No longer needed after rC362328 and follow-ups.
Tue, Jun 4
May 13 2019
In fact, it is probably better to turn the OS check around, e.g. *only* increase the alignment for Linux, and nowhere else.
Please also exclude FreeBSD from these changes, since we care a lot about backwards compatibility, and specifically about alignment requirements. (We have run into many issues in our ports collection where upstream assumes everything is 16-byte aligned on i386, which is *NOT* ABI compliant.)
May 6 2019
@efriedma any more work to be done on this? :)
May 4 2019
So does this look better now?
May 1 2019
Address review comments:
- Assign zero to pointed-to value in __kmp_store_mxcsr()
- Use SSE specific stuff in KMP_OS_UNIX part only
Apr 22 2019
Apr 20 2019
Apr 19 2019
Apr 9 2019
Apr 5 2019
Apr 3 2019
Apr 2 2019
- Only set OPENMP_TEST_COMPILER_OPENMP_FLAGS once.
- For standalone builds, call find_package(Threads) and use the result unconditionally.
- Fix else -> else().
Apr 1 2019
So, any thoughts on the current state of the review?
Mar 25 2019
Mar 24 2019
- Use CMAKE_THREAD_LIBS_INIT verbatim, if it is not "-lpthread".
- Add similar logic to DetectTestCompiler for standalone build.
Readdress the issue in a different way: add -pthread in the
OpenMPTesting.cmake file instead. The top-level LLVM config-ix.cmake file
mangles the value of the needed CMAKE_THREAD_LIBS_INIT variable, so derive the
flag from this, instead of directly using it.
Mar 23 2019
Using CMake's own FindThreads package is obviously the correct solution for finding the right compiler and linker options for enabling threading.
Mar 17 2019
Mar 16 2019
Update to use -pthread instead.
Mar 11 2019
Btw @jonpa, for me it's still interesting as to why the compiler hang only occurred for builds targeting i386 (i.e 32 bit x86), while x86_64 worked just fine. Is it due to the lower number of physical registers on i386?
@hans it's really late but if you're going to spin 8.0.0 rc5, it would be nice if this one gets merged too, after it's been committed. Or if not, I'll probably merge into the FreeBSD version of clang anyway, since we hit this issue first. :)
This helps quite a lot, in the sense that my original test case from PR40986 now at least compiles within a finite time. There is still a performance loss between clang 7.0.1 and clang 8.0.0 with this patch, though (tested with 10 runs each):
Mar 6 2019
Feb 27 2019
Feb 20 2019
I will update and commit.
In the case of <__locale>, __throw_runtime_error is already used in the file before its declaration, but via transitive includes, <stdexcept> is also included earlier, so it gets the duplicate declaration of __throw_runtime_error from there. I think we can just delete the __throw_runtime_error declaration from <__locale> altogether.
Feb 6 2019
Feb 5 2019
For what it's worth, this builds and tests correctly for me, and also appears to solve the test cases from bug 40206.
Jan 29 2019
Updated as @ruiu suggested.
Updated to address comments:
- Replaced tuple with BfdDesc struct
- Parse -freebsd suffix to determine OSABI
- Add new case for elf-aarch64 (which used to be elf-aarch64-freebsd)
Jan 28 2019
Jan 26 2019
Jan 25 2019
Jan 24 2019
Jan 20 2019
I can't vouch for the NetBSD part, but this definitely seems like a good idea to me. I'm unsure if the sysctl is already fixed on the FreeBSD side. @emaste any idea?
Jan 7 2019
Dec 25 2018
I'm not sure yet why, but this revision breaks unrolling of some loops in FreeBSD's lib/msun/ld80/e_powl.c, specifically the one in __polevll here, which gets expanded in two places, one instance with a count of 3:
Dec 23 2018
Dec 20 2018
Dec 16 2018
Nov 20 2018
Nov 19 2018
I think this is the wrong direction, placing "common" code in addCXXStdlibLinkDeps, which then has all kinds of ugly ifs and switches for different OSes? Let different OSes handle this in their own way, maybe.
Nov 18 2018
On FreeBSD, there is no libterminfo either, so LGTM.
Oct 22 2018
Oct 11 2018
Oct 8 2018
Here is the shortest test case I could come up with. (This uses ld.lld-r325886, but it could also use ld.lld 6.0.1.)