- Feb 09, 2023
-
-
Fangrui Song authored
Having symVector makes iteration efficient and is actually more efficient than using llvm::DenseMap<llvm::CachedHashStringRef, Symbol *>, so the FIXME comment can be removed. Using an alternative implementation ankerl/unordered_dense.h decreases link time for chromium by 0.x% but I am unsure it justifies the extra header file.
-
Dave Lee authored
To the Python bindings, add support for Python-like negative indexes. While was using `script`, I tried to access a thread's bottom frame with `thread.frame[-1]`, but that failed. This change updates the `__getitem__` implementations to support negative indexes as one would expect in Python. Differential Revision: https://reviews.llvm.org/D143282
-
Wolfgang Pieb authored
Adding a module flag 'MaxTLSAlign' describing the maximum alignment a global TLS variable can have. Optimizers are prevented from increasing the alignment of such variables beyond this threshold. Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D140123
-
Han Zhu authored
-
Adrian Vogelsgesang authored
The pretty printer for `std::coroutine_handle` was running into > Assertion failed: (target_ctx != source_ctx && "Can't import into itself") from ClangASTImporter.h, line 270. This commit fixes the issue by removing the `CopyType` call from the pretty printer. While this call was necessary in the past, it seems to be no longer required, at least all test cases are still passing. Maybe something changed in the meantime around the handling of `TypesystemClang` instances. I don't quite understand why `CopyType` was necessary earlier. I am not sure how to add a regression test for this, though. It seems the issue is already triggered by the exising `TestCoroutineHandle.py`, but API tests seem to ignore all violations of `lldbassert` and still report the test as "passed", even if assertions were triggered Differential Revision: https://reviews.llvm.org/D143127
-
Philip Reames authored
-
Simon Pilgrim authored
One of the cleanups necessary for D136529 - another being how we're going to handle moving freeze through multiple result nodes (like uaddo and subcarry)
-
Valentin Clement authored
In some remapping case the rank of the pointer is different from the target one. ``` program remap type :: p integer :: a end type t type(p), target :: ta(10) = [ (t(i),i=1,10) ] class(t), pointer :: p(:,:) p(1:2,1:5) => ta end ``` This patch updates the rank and the byte stride to fix such case. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D143566 -
Moritz Sichert authored
The classification of TLS symbols in ELF was changed from ST_Data to ST_Other in the following commit: 018a484c RuntimeDyldELF::processRelocationRef() needs to be updated to also handle ST_Other symbols so that it handles TLS relocations correctly. The current tests did not fail because we have a shortcut for global symbols that are already defined. Differential Revision: https://reviews.llvm.org/D143568
-
Simon Pilgrim authored
All set to Custom - there's no need to have them in separate loops
-
- Feb 08, 2023
-
-
Valentin Clement authored
D142279 enabled assertion in libstdc++ and one was triggered in the PFTBuilder because an optional was access even if it was null. This patch fix this issue and add a regression test. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D143589
-
Florian Hahn authored
This patch updates LV to sink recipes directly using the VPlan use chains. The initial patch only moves sinking to be purely VPlan-based. Follow-up patches will move legality checks to VPlan as well. At the moment, there's a single test failure remaining. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D142589
-
Sander de Smalen authored
This patch causes a regression, so reverting it while I investigate the issue. This reverts commit e6eb84a1.
-
Erik Desjardins authored
This reverts commit d768b974. Causes sanitizer failure: https://lab.llvm.org/buildbot/#/builders/238/builds/1114 ``` /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Support/xxhash.cpp:107:12: runtime error: applying non-zero offset 8 to null pointer #0 0xaaaab28ec6c8 in llvm::xxHash64(llvm::StringRef) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Support/xxhash.cpp:107:12 #1 0xaaaab28cbd38 in llvm::StringMapImpl::LookupBucketFor(llvm::StringRef) /b/sanitizer-aarch64-linux-bootstrap-ubsan/build/llvm-project/llvm/lib/Support/StringMap.cpp:87:28 ``` Probably causes test failure in `warn-unsafe-buffer-usage-fixits-local-var-span.cpp`: https://lab.llvm.org/buildbot/#/builders/60/builds/10619 Probably causes reverse-iteration test failure in `test-output-format.ll`: https://lab.llvm.org/buildbot/#/builders/54/builds/3545
-
Valentin Clement authored
Allocation of unlimited polymorphic allocatable with character intrinsic type is now done through `PointerNullifyCharacter` or `AllocatableInitCharacter` so the length is correctly set. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D143580
-
Vladislav Dzhidzhoev authored
Reimplemented SelectionDAG code for GlobalISel. Fixes https://github.com/llvm/llvm-project/issues/54079 Differential Revision: https://reviews.llvm.org/D130903
-
Simon Pilgrim authored
Use APInt::setBit() method instead of OR'ing individual bits.
-
Brian Cain authored
Patch-by:
Colin Lemahieu <colinl@codeaurora.org> Differential Revision: https://reviews.llvm.org/D143531
-
Valentin Clement authored
Result must carry the polymorphic type information from the vector. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D143575
-
Zain Jaffal authored
This reverts commit 665ee0cd. Fix comments and formatting style.
-
Joseph Huber authored
Summary: We don't have the infastructure to support MPFR on the GPU. We should disable this categorically on GPU builds for now.
-
Guillaume Chatelet authored
-
Sanjay Patel authored
-
Florian Hahn authored
This adds test coverage to avoid crashes with further changes.
-
David Green authored
A combination of GlobalISel and MachineCombiner can end up creating `SUB xrz, (MOVI -2105098)` instructions which have not been constant folded. The AArch64MIPeepholeOpt pass will then attempt to create `ADD xzr, 513, lsl 12`, which is not a valid instruction. This adds a bail out of the transform if the register is xzr/wzr. Fixes #60528 Differential Revision: https://reviews.llvm.org/D143475
-
JackAKirk authored
I used https://github.com/zjin-lcf/HeCBench (with nvcc usage swapped to clang++), which is an adaptation of the classic Rodinia benchmarks aimed at CUDA and SYCL programming models, to compare different values of the multiplier using both clang++ cuda and clang++ sycl nvptx backends. I find that the value is currently too low for both cases. Qualitatively (and in most cases there is very a close quantitative agreement across both cases) the change in code execution time for a range of values from 5 to 1000 matches in both variations (CUDA clang++ vs SYCL (with cuda backend) using the intel/llvm clang++ compiler) of the HeCbench samples. This value of 11 is optimal for clang++ cuda for all cases I've investigated. I have not found a single case where performance is deprecated by this change of the value from 5 to 11. For one sample the sycl cuda backend preferred a higher value. However we are happy to prioritize clang++ cuda, and we find...
-
Marco Elver authored
Emit all constant integers produced by SanitizerBinaryMetadata as ULEB128 to further reduce binary space used. Increasing the version is not necessary given this change depends on (and will land) along with the bump to v2. To support this, the !pcsections metadata format is extended to allow for per-section options, encoded in the first MD operator which must always be a string and contain the section: "<section>!<options>". Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D143484
-
Marco Elver authored
Optimize the encoding of "covered" metadata by: 1. Reducing feature mask from 4 bytes to 1 byte (needs increase once we reach more than 8 features). 2. Only emitting UAR stack args size if it is non-zero, saving 4 bytes in the common case. One caveat is that the emitted metadata for function PC (offset), size, and UAR size (if enabled) are no longer aligned to 4 bytes. SanitizerBinaryMetadata version base is increased to 2, since the change is backwards incompatible. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D143482 -
Benjamin Kramer authored
Fixes a81136c3
-
Benjamin Kramer authored
-
Benjamin Kramer authored
This is quite silly, but casting to uintptr_t seems like the easiest option to quiet ubsan. llvm/lib/Support/xxhash.cpp:107:12: runtime error: applying non-zero offset 8 to null pointer #0 0x7fe3660404c0 in llvm::xxHash64(llvm::StringRef) llvm/lib/Support/xxhash.cpp:107:12 -
Jean Perier authored
Code move without any change, the goal is to re-use this piece of code for procedure designator lowering in HLFIR since there is no significant changes in the way procedure designators will be lowered. Differential Revision: https://reviews.llvm.org/D143563
-
David Green authored
So long as the operation is reassociative, we can reassociate the double vecreduce from for example fadd(vecreduce(a), vecreduce(b)) to vecreduce(fadd(a,b)). This will in general save a few instructions, but some architectures (MVE) require the opposite fold, so a shouldExpandReduction is added to account for it. Only targets that use shouldExpandReduction will be affected. Differential Revision: https://reviews.llvm.org/D141870
-
Zain Jaffal authored
This reverts commit 40ffe9c1. Reverted because some comments where missed in the review https://reviews.llvm.org/D142647
-
Christian Ulmann authored
This commit adds additional checks and warning messages to the MD_prof import. As LLVM does not verify most metadata, the import has the be resilient towards ill-formatted inputs. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D143492
-
Zain Jaffal authored
Differential Revision: https://reviews.llvm.org/D142647
-
Christian Ulmann authored
This commit introduces functionality to import loop metadata. Loop metadata nodes are transformed into LoopAnnotationAttrs and attached to the corresponding branch operations. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D143376
-
Tom Eccles authored
This test has been very unreliable across different machines. Update it to use clang's sysroot image so that the fastmath object file name is stable across different distributions and distro types. Based on clang/test/Driver/linux-ld.c Thanks to mnadeem for pointing this out at https://reviews.llvm.org/D138675 Differential Revision: https://reviews.llvm.org/D142807
-
Tom Eccles authored
These will be useful for sharing code with intrinsic argument processing when lowering hlfir transformational intrinsic operations to FIR in the BufferizeHLFIR pass. Differential Revision: https://reviews.llvm.org/D143503
-
wangpc authored
The default OpenMP runtime may not be libomp since it can be changed by specified `CLANG_DEFAULT_OPENMP_RUNTIME`. This test will fail if we change the default OpenMP runtime. This patch removes test for the default OpenMP runtime and moves the CHECKs downward. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D143549
-