aboutsummaryrefslogtreecommitdiff
path: root/libclc
AgeCommit message (Collapse)AuthorFilesLines
2022-01-13libclc: Add clspv64 targetKévin Petit2-2/+12
Add a variant of the clspv target that is built using spir64. This is a pre-requisite to supporting spir64 in clspv which is required to take advantage of SPV_KHR_physical_storage_buffer which in turn enables more OpenCL C programs to be compiled with clspv. https://reviews.llvm.org/D116668
2021-12-13Quote some more destination paths with variablesJohn Ericson1-6/+6
Just defensive CMake-ing. I pulled this from D115544 and D99484 which are blocked on some lldb CI failures I don't yet understand. Hoping to land something smaller in the meantime. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D115566
2021-12-10Revert "Revert "Revert "Use `GNUInstallDirs` to support custom installation ↵Med Ismail Bennani1-6/+6
dirs. -- LLVM""" This reverts commit 492de35df443d5f31480173d5f1274c7835cd3d8. I tried to apply John's changes in 8d897ec91528 that were expected to fix his patch but that didn't work unfortunately. Reverting this again to fix the macOS bots and leave him more time to investigate the issue.
2021-12-10Revert "Revert "Use `GNUInstallDirs` to support custom installation dirs. -- ↵John Ericson1-6/+6
LLVM"" This reverts commit 797b50d4be873b4662983413a06806fca544c276. See the original D99484. @mib who noticed the original problem could not longer reproduce it, after I tried and also failed. We are threfore hoping it went away on its own! Reviewed By: mib Differential Revision: https://reviews.llvm.org/D115544
2021-11-02Revert "Use `GNUInstallDirs` to support custom installation dirs. -- LLVM"Med Ismail Bennani1-6/+6
This reverts commit 6fd2db04d0f22ea22c5317d98ce2126aa64b6a73 since it broke GreenDragon LLDB-Incremental bot: https://green.lab.llvm.org/green/job/lldb-cmake/37560/console Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
2021-11-02Use `GNUInstallDirs` to support custom installation dirs. -- LLVMJohn Ericson1-6/+6
This is a new draft of D28234. I previously did the unorthodox thing of pushing to it when I wasn't the original author, but since this version - Uses `GNUInstallDirs`, rather than mimics it, as the original author was hesitant to do but others requested. - Is much broader, effecting many more projects than LLVM itself. I figured it was time to make a new revision. I am using this patch (and many back-ports) as the basis of https://github.com/NixOS/nixpkgs/pull/111487 for my distro (NixOS). It looked like people were generally on board in D28234, but I make note of this here in case extra motivation is useful. --- As pointed out in the original issue, a central tension is that LLVM already has some partial support for these sorts of things. For example `LLVM_LIBDIR_SUFFIX`, or `COMPILER_RT_INSTALL_PATH`. Because it's not quite clear yet what to do about those, we are holding off on changing libdirs and `compiler-rt`. for this initial PR. --- On the advice of @lebedev.ri, I am splitting this up a bit per subproject, starting with LLVM. To allow it to be more easily reviewed. This and the subsequent patch must be landed together, as this will not build alone. But the rest can be landed on their own. Reviewed By: compnerd Differential Revision: https://reviews.llvm.org/D100810
2021-08-19libclc: Fix rounding during type conversionDaniel Stone1-1/+1
The rounding during type conversion uses multiple conversions, selecting between them to try to discover if rounding occurred. This appears to not have been tested, since it would generate code of the form: float convert_float_rtp(char x) { float r = convert_float(x); char y = convert_char(y); [...] } which will access uninitialised data. The idea appears to have been to have done a char -> float -> char roundtrip in order to discover the rounding, so do this. Discovered by inspection. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed By: jvesely Differential Revision: https://reviews.llvm.org/D81999
2021-07-15libclc: Add -cl-no-stdinc to clang flags on clang >=13Jan Vesely1-1/+9
cf3ef15a6ec5e5b45c6c54e8fbe3769255e815ce ("[OpenCL] Add builtin declarations by default.") switched behaviour to include "opencl-c-base.h". We don't want or need that for libclc so pass the flag to revert to old behaviour. Fixes build since cf3ef15a6ec5e5b45c6c54e8fbe3769255e815ce Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D99794
2021-04-30Support: Stop using F_{None,Text,Append} compatibility synonyms, NFCDuncan P. N. Exon Smith1-2/+2
Stop using the compatibility spellings of `OF_{None,Text,Append}` left behind by 1f67a3cba9b09636c56e2109d8a35ae96dc15782. A follow-up will remove them. Differential Revision: https://reviews.llvm.org/D101650
2021-03-04libclc: Add clspv target to libclcAlan Baker6-2/+352
Add clspv as a new target for libclc. clspv is an open-source compiler that compiles OpenCL C to Vulkan SPIR-V. Compiles for the spir target. The clspv target differs from the the spirv target in the following ways: * fma is modified to use uint2 instead of ulong for mantissas. This results in lower performance fma, but provides a implementation that can be used on more Vulkan devices where 64-bit integer support is less common. * Use of a software implementation of nextafter because the generic implementation depends on nextafter being a defined builtin function for which clspv has no definition. * Full optimization of the library (-O3) and no conversion to SPIR-V This library is close to what would be produced by running opt -O3 < builtins.opt.spirv-mesa3d-.bc > builtins.opt.clspv--.bc and continuing the build from that point. Reviewer: jvesely Differential Revision: https://reviews.llvm.org/D94013
2020-10-01libclc: Use find_package to find Python 3 and require itAaron Puchert2-4/+2
The script's shebang wants Python 3, so we use FindPython3. The original code didn't work when an unversioned python was not available. This is explicitly allowed in PEP 394. ("Distributors may choose to set the behavior of the python command as follows: python2, python3, not provide python command, allow python to be configurable by an end user or a system administrator.") Also I think it's actually required, so let the configuration fail if we can't find it. Lastly remove the shebang, since the script is only run via interpreter and doesn't have the executable bit set anyway. Reviewed By: jvesely Differential Revision: https://reviews.llvm.org/D88366
2020-09-16libclc: Add a __builtin to let SPIRV targets select between SW and HW FMADaniel Stone3-0/+13
Reviewer: jenatali jvesely Differential Revision: https://reviews.llvm.org/D85910
2020-09-10libclc/spirv: Add missing files from D85911Jan Vesely4-0/+18
Fixes: 060c8e083dd637866854acb6a0823c45b2ef68ef Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
2020-09-10libclc/spirv: Add various functionsDaniel Stone2-0/+12
Adds fma,fmod,ldexp. Reviewer: jenatali jvesely Differential Revision: https://reviews.llvm.org/D85911
2020-08-17libclc: Add Mesa/SPIR-V targetDave Airlie8-41/+336
Add targets to emit SPIR-V targeted to Mesa's OpenCL support, using SPIR-V 1.1. Substantially based on Dave Airlie's earlier work. libclc: spirv: remove step/smoothstep apis not defined for SPIR-V libclc: disable inlines for SPIR-V builds Reviewed By: jvesely, tstellar, jenatali Differential Revision: https://reviews.llvm.org/D77589
2020-08-17libclc: Make all built-ins overloadableDaniel Stone41-173/+191
The SPIR spec states that all OpenCL built-in functions should be overloadable and mangled, to ensure consistency. Add the overload attribute to functions which were missing them: work dimensions, memory barriers and fences, and events. Reviewed By: tstellar, jenatali Differential Revision: https://reviews.llvm.org/D82078
2020-08-17libclc: Fix FP_ILOGBNAN definitionBoris Brezillon2-3/+19
Fix FP_ILOGBNAN definition to match the opencl-c-base.h one and guarantee that FP_ILOGBNAN and FP_ILOGB0 are different. Doing that implies fixing ilogb() implementation to return the right value. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed By: jvesely Differential Revision: https://reviews.llvm.org/D83473
2020-07-22[CMake] Bump CMake minimum version to 3.13.4Louis Dionne1-1/+1
This upgrade should be friction-less because we've already been ensuring that CMake >= 3.13.4 is used. This is part of the effort discussed on llvm-dev here: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140578.html Differential Revision: https://reviews.llvm.org/D78648
2020-05-29libclc: update website urldavidak1-1/+1
old link is dead
2020-05-28libclc: Compile with -nostdlibMatt Arsenault1-1/+1
This fixes a build error when compiling for amdgcn-amd-amdhsa, which defaults to trying to link bitcode libraries.
2020-04-29libclc: Pass system libraries to the linker after llvm librariesTom Stellard1-1/+1
Summary: The llvm libraries depend on the symbols in the system libaries, so the system libraries need to be added after. Reviewers: jvesely Reviewed By: jvesely Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78535
2020-04-14libclc: Use temporary files rather than a pipeDaniel Stone1-1/+2
This is required for using the Ninja backend on Windows, as it passes commands directly to CreateProcess, and does not allow the shell to interpret them: https://ninja-build.org/manual.html#ref_rule_command Using the Visual Studio backend is not possible as attempting to create a static library target comprised entirely of novel languages not known to the Visual Studio backend built in to CMake's C++ source will generate nothing at all. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77165
2020-04-14libclc: Don't pass linker flags to CLC/LLAsmDaniel Stone2-2/+2
We don't want the regular linker flags for these invocations, since we're not compiling to the target machine anyway. This fixes things like '/machine:x64' being unknown when invoked under Windows. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77164
2020-04-14libclc: Use echo rather than true for try_compileDaniel Stone2-2/+2
When providing a fake compiler, libclc currently uses 'true' which does not exist on Windows. Use echo instead as the no-op. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77163
2020-04-14libclc: Fix LLVM library linking on WindowsDaniel Stone1-1/+3
CMake requires library lists on Windows to be split by semi-colons, rather than the spaces we get from llvm-config. Fix this by a substitution on Windows. reviewer: jvesely Differential Revision: https://reviews.llvm.org/D77162
2020-02-25libclc: cmake configure should depend on file listJan Vesely1-0/+10
This makes sure targets are rebuilt if a file is added or removed. Reviewer: tstellar Differential Revision: https://reviews.llvm.org/D74662
2020-02-20libclc: Use acos implementation from amd_builtinsJan Vesely2-38/+171
Fixes acos CTS (1 thread, scalar) on AMD Turks. Reviewer: tstellar Differential Revision: https://reviews.llvm.org/D74011
2020-02-09libclc/r600: Use target specific builtins to implement rsqrt and native_rsqrtJan Vesely3-0/+35
Fixes OCL CTS rsqrt and half_rsqrt (1 thread, scalaer) tests on AMD Turks. Reviewer: awatry Differential Revision: https://reviews.llvm.org/D74016
2020-02-09libclc: Move rsqrt implementation to a .cl fileJan Vesely3-1/+31
Reviewer: awatry Differential Revision: https://reviews.llvm.org/D74013
2020-02-04libclc/asin: Switch to amd builtins version of asinAaron Watry2-20/+165
Fixes a wimpy-mode CTS failure for asin(float). Passes non-wimpy for both float/double on RX580. Signed-off-by: Aaron Watry <awatry@gmail.com> Tested-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
2019-11-08libclc: Drop the old python based build systemJan Vesely3-536/+0
Reviewer: tstellar Differential Revision: https://reviews.llvm.org/D69966
2019-11-08libclc: Drop travisJan Vesely1-200/+0
It only works for standalone repos. Reviewer: tstellar Differential Revision: https://reviews.llvm.org/D69965
2019-10-24[www] Change URLs to HTTPS.Stephan T. Lavavej1-3/+3
This changes most URLs in llvm's html files to HTTPS. Most changes were search-and-replace with manual verification; some changes were manual. For a few URLs, the websites were performing redirects or had changed their anchors; I fixed those up manually. This consistently uses the official https://wg21.link redirector. This also strips trailing whitespace and fixes a couple of typos. Fixes D69363. There are a very small number of dead links for which I don't know any replacements (they are equally dead as HTTP or HTTPS): https://llvm.org/cmds/llvm2cpp.html https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4 https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4 https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4 https://llvm.org/perf/db_default/v4/nts/22463 https://polly.llvm.org/documentation/memaccess.html
2019-09-27travis: Add LLVM 9 buildJan Vesely1-0/+34
Reviewer: tstellar Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 373047
2019-09-27travis: Switch to Ubuntu 16.04 (xenial)Jan Vesely1-58/+9
Use native packages up to llvm-6. Reviewer: tstellar Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 373046
2019-08-05Revert "Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC"Jan Vesely1-2/+2
This reverts commit 58c814614d2ac69bcf79b09543505fac80ada4e6. Fixes build breakage using LLVM<7. llvm-svn: 367893
2019-08-05Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFCFangrui Song1-2/+2
F_{None,Text,Append} are kept for compatibility since r334221. llvm-svn: 367800
2019-03-27travis: Add LLVM-8 buildJan Vesely1-0/+34
Reviewer: Tom Stellard Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 357125
2019-03-13sincos: Simplify declaration headers.Jan Vesely1-8/+3
This follows the same pattern as modf and fract. Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356028
2019-03-13fdim: Use binary_decl_tt.inc instead of custom inc file.Jan Vesely2-2/+6
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356027
2019-03-13nextafter: Use binary_decl_tt.inc instead of custom inc file.Jan Vesely2-2/+6
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356026
2019-03-13copysign: Use binary_decl_tt.inc instead of custom inc file.Jan Vesely2-2/+6
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356025
2019-03-13atan2pi: Use binary_decl_tt.inc instead of custom inc file.Jan Vesely2-24/+6
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356024
2019-03-13atan2: Use binary_decl_tt.inc instead of custom inc file.Jan Vesely2-24/+6
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356023
2019-03-13hypot: Use binary_decl_tt.inc instead of custom inc fileJan Vesely2-2/+6
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356022
2019-03-13Move unary_instrinsic.inc to private headers.Jan Vesely9-8/+8
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356021
2019-03-13Move binary_intrinsic.h to private headers.Jan Vesely1-0/+0
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356020
2019-03-13Move ternary_intrinsic.h to private headers.Jan Vesely2-1/+1
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356019
2019-03-13trunc: Remove llvm intrinsic from the header.Jan Vesely3-6/+15
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356018
2019-03-13round: Remove llvm intrinsic from the headerJan Vesely3-6/+15
Reviewer: Aaron Watry Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 356017