- Dec 20, 2023
-
-
Joseph Huber authored
Summary: This patch reorganizes a lot of the code used to check for compatibility with the current environment. The main bulk of this patch involves moving from using a separate `__tgt_image_info` struct (which just contains a string for the architecture) to instead simply checking this information from the ELF directly. Checking information in the ELF is very inexpensive as creating an ELF file is simply writing a base pointer. The main desire to do this was to reorganize everything into the ELF image. We can then do the majority of these checks without first initializing the plugin. A future patch will move the first ELF checks to happen without initializing the plugin so we no longer need to initialize and plugins that don't have needed images. This patch also adds a lot more sanity checks for whether or not the ELF is actually compatible. Such as if the images have a valid ABI, 64-bit width, executable, etc.
-
Joseph Huber authored
Summary: Recently we added support for detecting the CUDA processor with the ELF flags. This allows us to get a string representation of it in other code. This will be used by the offloading runtime.
-
Kai Luo authored
`cmp; bc; isync` is more performant than `lwsync` theoretically. 64-bit platform already features it, now implement it for 32-bit platform.
-
long.chen authored
-
Jeffrey Byrnes authored
Makes constructing SchedGroups of this type easier, and provides ability to create them with __builtin_amdgcn_sched_group_barrier
-
Arthur Eubanks authored
-
ZijunZhaoCCK authored
Differential Revision: https://reviews.llvm.org/D159232 ``` Running ./ranges_contains.libcxx.out Run on (10 X 24.121 MHz CPU s) CPU Caches: L1 Data 64 KiB (x10) L1 Instruction 128 KiB (x10) L2 Unified 4096 KiB (x5) Load Average: 3.37, 6.77, 5.27 -------------------------------------------------------------------- Benchmark Time CPU Iterations -------------------------------------------------------------------- bm_contains_char/16 1.88 ns 1.87 ns 371607095 bm_contains_char/256 7.48 ns 7.47 ns 93292285 bm_contains_char/4096 99.7 ns 99.6 ns 7013185 bm_contains_char/65536 1296 ns 1294 ns 540436 bm_contains_char/1048576 23887 ns 23860 ns 29302 bm_contains_char/16777216 389420 ns 389095 ns 1796 bm_contains_int/16 7.14 ns 7.14 ns 97776288 bm_contains_in...
-
Nick Desaulniers authored
Build bots are failing in post submit. Unclear why but can't reproduce locally. Disable this test for asan for now.
-
Arthur Eubanks authored
This reverts commit 44dc1e0b. Causes non-determinism, see #75987.
-
Jakub Kuderski authored
Use the `vector::makeArithReduction` helper as the source-of-truth of reduction to arith ops lowering.
-
Nick Desaulniers authored
-
James Y Knight authored
-
Craig Topper authored
Zvfbfmin does not have any scalar operands making this an unnecessary dependency. The spec was just updated to remove this. See https://github.com/riscv/riscv-bfloat16/commit/86d7a74f4b928e981f79f6d84a4592e6e9e4c0e9 This fixes a correctness issue where Xsfvfwmaccqqq was incorrectly depending on Zfbfmin. The SiFive CPUs that support Xsfvfwmaccqqq do not implement Zfbfmin, but do implement Zvfbfmin based on a previous understanding that it only requires Zve32f. I've added tests for this feature to raise the bar for adding dependencies to it in the future.
-
Pete Lawrence authored
This a follow-up PR from this other one: https://github.com/llvm/llvm-project/pull/74413 Nothing calls into these two methods, so we (@DavidSpickett, @adrian-prantl, and I) agreed to remove them once we merged the previous PR.
-
Ben Langmuir authored
dlsym signs text symbols as functions rather than data in dyld, so match that for orc runtime dlsym. This fixes run_program on arm64e.
-
Mingming Liu authored
Test failed on ppc (https://lab.llvm.org/buildbot/#/builders/231/builds/18902), and logs shows missed import. Cannot reproduce this with machines I could access so far. https://gcc.gnu.org/wiki/CompileFarm seems to provide ppc64 machine. Mark the thinlto icp test as unsupported for now.
-
Cyndy Ishida authored
reading dylibs * This is a better fix than what I originally did to appease CI.
-
Igor Kudrin authored
This implements a post-commit suggestion for #75679.
-
Sang Ik Lee authored
…e introduced by oneAPI DPC++ compiler 2024.0
-
Nick Desaulniers authored
Looks like adding attributes to lambdas wasn't added to ISO C++ until C++23. Forget lambdas and just use a static function.
-
quic-akaryaki authored
In the change that added `--gap-fill`, the condition to choose the sections to write in `BinaryWriter::write()` did not exclude zero-size sections. However, zero-size sections did not have correct offsets assigned in `BinaryWriter::finalize()`. The result is either a failed assertion, or memory corruption due to writing to the buffer beyond its size. To fix this, exclude zero-size sections from writing. Also, add a zero-size section to the test, which would trigger the problem.
-
Jon Roelofs authored
https://github.com/llvm/llvm-project/pull/75635#issuecomment-1863433937 ``` /b/s/w/ir/x/w/llvm_build/./bin/clang --target=aarch64-unknown-linux-gnu --sysroot=/b/s/w/ir/x/w/cipd/linux -DHAS_ASM_LSE -DVISIBILITY_HIDDEN --target=aarch64-unknown-linux-gnu -O2 -g -DNDEBUG -fno-lto -std=c11 -fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer -DCOMPILER_RT_HAS_FLOAT16 -MD -MT CMakeFiles/clang_rt.builtins-aarch64.dir/cpu_model/aarch64.c.o -MF CMakeFiles/clang_rt.builtins-aarch64.dir/cpu_model/aarch64.c.o.d -o CMakeFiles/clang_rt.builtins-aarch64.dir/cpu_model/aarch64.c.o -c /b/s/w/ir/x/w/llvm-llvm-project/compiler-rt/lib/builtins/cpu_model/aarch64.c In file included from /b/s/w/ir/x/w/llvm-llvm-project/compiler-rt/lib/builtins/cpu_model/aarch64.c:43: /b/s/w/ir/x/w/llvm-llvm-project/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/sysauxv.inc:5:41: error: use of undeclared identifier 'HWCAP_ATOMICS' 5 | __aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0; | ^ 1 error generated. ```
-
Shoaib Meenai authored
This is breaking Android compiler-rt builds.
-
Kazu Hirata authored
This patch fixes: clang/lib/Interpreter/CodeCompletion.cpp:126:35: error: 'startswith' is deprecated: Use starts_with instead [-Werror,-Wdeprecated-declarations] clang/lib/Interpreter/CodeCompletion.cpp:189:42: error: 'startswith' is deprecated: Use starts_with instead [-Werror,-Wdeprecated-declarations]
-
Kazu Hirata authored
This patch fixes: third-party/unittest/googletest/include/gtest/gtest.h:1379:11: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare] llvm/unittests/Support/CommandLineTest.cpp:2294:3: note: in instantiation of function template specialization 'testing::internal::EqHelper::Compare<int, unsigned int, nullptr>' requested here
-
Fred Fu authored
This patch contains changes from 002d471a, in addition to a bug fix that added a virtual destructor to `CompletionContextHandler` The original changes in the orginal commit piggybacks on clang's semantic modules to enable semantic completion. In particular, we use `CodeCompletionContext` to differentiate two types of code completion. We also extract the relevant type information from it.
-
Nick Desaulniers authored
Otherwise for ASAN configured runs of the test, the test will fail due to the sanitizer rather than via SIGABRT.
-
Joseph Huber authored
Summary: A recent patch allowed us to easily replace GNU atomics with scoped variants that make use of the backend's handling for more permissive scopes. The default is full "system" scope, that means the atomic operation must be consistent with operations that may happen on the host's memory. This is generally only required for processes that are communicating with something via global fine-grained memory. This patch uses these atomics to make everything device scoped, as nothing in the OpenMP runtime should depend on the host. This is only provided as a very new clang extension but the DeviceRTL is only compiled with clang so it is always available.
-
Mingming Liu authored
Reland the reland "[PGO][GlobalValue][LTO]In GlobalValues::getGlobalIdentifier, use semicolon as delimiter for local-linkage varibles. " (#75954) Simplify the compiler-rt test to make it more general for different platforms, and use `*DAG` matchers for lines that may be emitted out-of-order. - The compiler-rt test passed on a Windows machine. Previously name matchers don't work for MSVC mangling (https://lab.llvm.org/buildbot/#/builders/127/builds/59907) - `*DAG` matchers fixed the error in https://lab.llvm.org/buildbot/#/builders/94/builds/17924 This is the second reland and fixed errors caught in first reland (https://github.com/llvm/llvm-project/pull/75860) **Original commit message** Commit fe051934 (phab D156569), IRPGO names uses format `[<filepath>;]<linkage-name>` while prior format is `[<filepath>:<mangled-name>`. The format change would break the use case demonstrated in (updated) `llvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll` and `compiler-rt/test/prof...
-
Christian Sigg authored
-
Nick Desaulniers authored
Use a size smaller than the smallest supported page size so that we don't clobber over any guard pages, which may result in a segfault before __stack_chk_fail can be called. Also, move __stack_chk_fail outside of our namespace.
-
Igor Kudrin authored
The patch introduces a `SubCommandGroup` class which represents a list of subcommands. An option can be added to all these subcommands using one `cl::sub(group)` command. This simplifies the declaration of options that are shared across multiple subcommands of a tool.
-
Shoaib Meenai authored
Make the `--implicit-check-not` account for the file extension as well. This will still fail if we ever have a builder with `.dylib` in its name, and we probably want a more robust solution, but this addresses the immediate issue. Fixes https://github.com/llvm/llvm-project/issues/75850 Fixes https://github.com/llvm/llvm-project/issues/75910
-
Igor Kudrin authored
The patch adds a helper method to iterate over all subcommands to which an option belongs. Duplicate code is removed and replaced with calls to this new method.
-
Nick Desaulniers authored
__stack_chk_fail should be provided by libc.a, not startup files. Add __stack_chk_fail to existing linux and arm entrypoints. On Windows (when not targeting MinGW), it seems that the corresponding function identifier is __security_check_cookie, so no entrypoint is added for Windows. Baremetal targets also ought to be compileable with `-fstack-protector*` There is no common header for this prototype, since calls to __stack_chk_fail are meant to be inserted by the compiler upon function return when compiled `-fstack-protector*`.
-
Yusra Syeda authored
Adds emitting the exception table and the EH registers for XPLINK. --------- Co-authored-by:Yusra Syeda <yusra.syeda@ibm.com>
-
Jon Roelofs authored
-
Paul Kirth authored
We included these in the commit message when we added `-ffat-lto-objects`, but they should be in the documentation as well.
-
Jon Roelofs authored
-