- Feb 07, 2023
-
-
Gulfem Savrun Yeniceri authored
Originally, the following commit removed mapping coverage regions for system headers: https://github.com/llvm/llvm-project/commit/93205af066341a53733046894bd75c72c99566db It might be viable and useful to collect coverage from system headers in some systems. This patch adds --system-headers-coverage option (disabled by default) to enable collecting coverage from system headers. Differential Revision: https://reviews.llvm.org/D143304
-
Florian Hahn authored
This reverts commit 695ce48c. The compile-time regression causing the revert has been fixed. Recommit the original patch. Original commit message: The pass should help to close a functional gap when it comes to reasoning about related conditions in a relatively general way. It addresses multiple existing issues (linked below) and the need for a more powerful reasoning system was also discussed recently in https://discourse.llvm.org/t/rfc-alternative-approach-of-dealing-with-implications-from-comparisons-through-pos-analysis/65601/7 On AArch64, the new pass performs ~2000 simplifications on MultiSource,SPEC2006,SPEC2017 with -O3. Compile-time impact: NewPM-O3: +0.20% NewPM-ReleaseThinLTO: +0.32% NewPM-ReleaseLTO-g: +0.28% https://llvm-compile-time-tracker.com/compare.php?from=f01a3a893c147c1594b9a3fbd817456b209dabbf&to=577688758ef64fb044215ec3e497ea901bb2db28&stat=instructions:u Fixes #49344. Fixes #47888. Fixes #48253. Fixes #49229. Fixes #58074. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D135915
-
Benjamin Maxwell authored
-
Vassil Vassilev authored
In https://reviews.llvm.org/D119036 we fixed some of the infrastructure by removing the textual keyword. The underlying issue of PR50592 was that clang can re-export only submodules but under some conditions we needed to re-export the standalone module std_config via std. This patch provides a better fix to the symptom D119036 fixed. Differential revision: https://reviews.llvm.org/D142805
-
David Green authored
This removes a condition in the detection of AVG nodes, where we needn't be checking the LHS of an add node as any const will be canonicalized to the RHS.
-
David Green authored
This slightly extends the creation of hadd nodes to allow them to be generated with the original type size if wrapping flags allow. https://alive2.llvm.org/ce/z/bPjakD https://alive2.llvm.org/ce/z/fa_gzb Differential Revision: https://reviews.llvm.org/D143371
-
Benjamin Maxwell authored
Previously this would incorrectly return the raw offset into the .debug_addr section for the DW_FORM_addrx1/2/3/4 forms rather than the actual address. Note that this was handled correctly in the dump() function so this issue only occurs for users of this API and not in tools such as llvm-dwarfdump. The dump() method has now been updated to use this method to increase coverage. This also now adds a few unit tests for indexed addresses to DWARFDebugInfoTest. Differential Revision: https://reviews.llvm.org/D143073
-
Joseph Huber authored
Currently, the plan is to support testing on a single GPU architecture. We query the supported architectures from the user's system. However, there are times when the user would want to override this. This patch adds the `LIBC_GPU_TEST_ARCHITECTURE` option, which allows users to specify which GPU architecture to build for. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D143400
-
Florian Hahn authored
This patch breaks up the solving step into 2 phases: 1. Collect all rows where the variable to eliminate is != 0 and remove it from the original system. 2. Process all collect rows to build new set of constraints, add them to the original system. This is much more efficient for excessive cases, as this avoids a large number of moves to the new system. This reduces the time spent in ConstraintElimination for the test case shared in D135915 from ~3s to 0.6s.
-
Shivam Gupta authored
Incorrect use of shared_ptr. found by PVS-Studio https://pvs-studio.com/en/blog/posts/cpp/1003/, N8 & N9. Differential Revision: https://reviews.llvm.org/D142309
-
Ivan Kosarev authored
v_swap_b32 is a VOP1-only instruction, meaning it neither encodes src1 nor has 64-bit encodings. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D143289
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/60545. Previously, we would only pass the size parameter to the deallocation function if the type is completely the same. But it is good enough to make them unqualified the smae.
-
Dmitry Chernenkov authored
-
Florian Hahn authored
Move some accesses that are use multiple times to variables. This also will make updating them easier in the future.
-
- Feb 06, 2023
-
-
Jay Foad authored
-
Jay Foad authored
-
serge-sans-paille authored
Lazyly initialize uncommon toolchain detector Cuda and rocm toolchain detectors are currently run unconditionally, while their result may not be used at all. Make their initialization lazy so that the discovery code is not run in common cases. Reapplied since 77910ac3 landed and fixes the test ordering issue. Differential Revision: https://reviews.llvm.org/D142606
-
zhijian authored
Summary: since the class 'SymbolicFile ' do not have a is64Bit() API , when we need to check whether a SymbolicFile object is 64bit or not. we need to write a function to do it, it maybe cause duplication code. Reviewers: James Henderson, Fangrui Song Differential Revision: https://reviews.llvm.org/D143097
-
Simon Pilgrim authored
-
Simon Pilgrim authored
AVX1 doesn't benefit as nearly all integer ops will stay as 128-bit ops. This only exposes a couple of minor changes but will be a lot more useful in an upcoming shuffle combining patch.
-
John Brawn authored
Since commit 846b6767 SmallVectorBase<uint32_t> has been explicitly instantiated, which means that clang.exe must export it for a plugin to be able to link against it, but the constructor is not exported as currently no template constructors or destructors are exported. We can't just export all constructors and destructors, as that puts us over the symbol limit on Windows, so instead rewrite how we decide which templates need to be exported to be more precise. Currently we assume that templates instantiated many times have no explicit instantiations, but this isn't necessarily true and results also in exporting implicit template instantiations that we don't need to. Instead check for references to template members, as this indicates that the template must be explicitly instantiated (as if it weren't the template would just be implicitly instantiated on use). Doing this reduces the number of symbols exported from clang from 66011 to 53993 (in the build configuration that I've been testing). It also lets us get rid of the special-case handling of Type::getAs, as its explicit instantiations are now being detected as such. Differential Revision: https://reviews.llvm.org/D142989
-
Craig Topper authored
This is an alternative to D141074 to fix the problem by adjusting the precision control dynamically. Reviewed By: icedrocket Differential Revision: https://reviews.llvm.org/D142178
-
Jonathan Peyton authored
The memory sanitizer intercepts the memcpy() call but not the direct assignment of last byte to 0. This leads the sanitizer to believe the last byte of a string based on the kmp_str_buf_t type is uninitialized. Hence, the eventual strlen() inside __kmp_env_dump() leads to an use-of-uninitialized-value warning. Using strncat() instead gives the sanitizer the information it needs. Differential Revision: https://reviews.llvm.org/D143401 Fixes #60501
-
Mark de Wever authored
Updates the LLVM versions used in the Dockerfile. It also removes obsolete symlinks. This doesn't update the Buildkite jobs, they need to use the new Docker image before they can be updated. Reviewed By: ldionne, #libc, philnik Differential Revision: https://reviews.llvm.org/D143007
-
Craig Topper authored
This doesn't appear to be needed. Differential Revision: https://reviews.llvm.org/D143367
-
Craig Topper authored
Instead of making it an AsmParserOnly instruction, make it an alias. This makes printing consistent with disassembly. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D143362
-
Matthias Springer authored
The previous strategy was too complex and faulty. Op dominance cannot be used to rule out RaW conflicts due to op ordering if the reading op and the conflicting writing op are in a sub repetitive region of the closest enclosing repetitive region of the definition of the read value. Differential Revision: https://reviews.llvm.org/D143087
-
Yaxun (Sam) Liu authored
Device side malloc/free needs special implementation for ASAN. Reviewed by: Artem Belevich, Matt Arsenault Differential Revision: https://reviews.llvm.org/D143111
-
Matthias Springer authored
Reading from tensor.empty or bufferization.alloc_tensor (without copy) cannot cause a conflict because these ops do not specify the contents of their result tensors. Differential Revision: https://reviews.llvm.org/D143183
-
serge-sans-paille authored
Since 6fa2abf9 the rocm driver is lazily loaded, which impacts the output of the rocm-detect.hip test.
-
Jonas Hahnfeld authored
clang/test/Driver/rocm-detect.hip is failing for a number of configurations, for example: clang-x86_64-debian-fast https://lab.llvm.org/buildbot/#/builders/109/builds/57270 clang-debian-cpp20 https://lab.llvm.org/buildbot/#/builders/249/builds/310 clang-with-lto-ubuntu https://lab.llvm.org/buildbot/#/builders/124/builds/6693 This reverts commit 6fa2abf9.
-
Jean Perier authored
There is little point not to dereference pointers LHS and RHS before before emitting an hlfir.assign when lowering an assignment. This pushes complexity and descriptor read side effects that are better expressed in a load before the assignment. Differential Revision: https://reviews.llvm.org/D143372
-
Pratik Sharma authored
Replaced the dead link with the correct link in ExternalClangExamples.rst Differential Revision: https://reviews.llvm.org/D143343 Fixes https://github.com/llvm/llvm-project/issues/60142
-
David Green authored
A 64bit st2 which does not start at element 0 will involved adding extra ext elements, making the st2 unprofitable. This prevents that case which can lead to a few less instructions. Differential Revision: https://reviews.llvm.org/D142966
-
Haojian Wu authored
Replace them with the library APIs. Differential Revision: https://reviews.llvm.org/D143274
-
Aaron Ballman authored
We've supported attributes on alias declarations at least as far back as Clang 3.5 from my testing. This also updates the RUN lines to test the newer language modes as well.
-
Alex Zinenko authored
Add a verifier checking that if a transform operation consumes a handle (which is associated with a payload operation being erased or recreated), it also indicates modification of the payload IR. This hasn't been consistent in the past because of the "no-aliasing" assumption where we couldn't have had more than one handle to an operation, requiring some handle-manipulation operations, such as `transform.merge_handles` to consume their operands. That assumption has been liften and it is no longer necessary for these operations to consume handles and thus make the life harder for the clients. Additionally, remove TransformEffects.td that uses the ODS mechanism for indicating side effects that works only for operands and results. It was being used incorrectly to also indicate effects on the payload IR, not assocaited with any IR value, and lacked the consume/produce semantics available via helpers in C++. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D142361
-
Vladislav Vinogradov authored
Add missing llvm:: and mlir:: namespaces qualifiers to some auto-generated code. Reviewed By: ftynse, springerm Differential Revision: https://reviews.llvm.org/D143381
-
Bjorn Pettersson authored
Most of the removed includes should probably have been removed already when we removed TargetMachine::adjustPassManager.
-
Bjorn Pettersson authored
Getting rid of some include dependencies that seem to be outdated.
-