- Aug 23, 2023
-
-
erichkeane authored
Undoing test commit. This reverts commit 3e50bcb4.
-
Alex Lorenz authored
This reverts commit 649004ae. This commit caused regression in TSAN tests on Darwin: https://green.lab.llvm.org/green/job/clang-stage1-RA/35380/ These tests have been failing: SanitizerCommon-tsan-x86_64-Darwin.Darwin.symbolizer-function-offset-dladdr.cpp SanitizerCommon-tsan-x86_64h-Darwin.Darwin.symbolizer-function-offset-dladdr.cpp ThreadSanitizer-x86_64.Darwin.symbolizer-dladdr.cpp ThreadSanitizer-x86_64h.Darwin.symbolizer-dladdr.cpp
-
erichkeane authored
-
Nico Weber authored
-
Rahman Lavaee authored
-
Mehdi Amini authored
-
Rahman Lavaee authored
Propeller and pseudo-probes map profiles back to Machine IR via basic block addresses that are stored in metadata sections. Empty basic blocks (basic blocks without real code) obfuscate the profile mapping because their addresses collide with their next basic blocks. For instance, the fallthrough block of an empty block should always be adjacent to it. Otherwise, a completely unnecessary jump would be added. This patch adds a MachineFunction pass named `GCEmptyBasicBlocks` which attempts to garbage-collect the empty blocks before the `BasicBlockSections` and pass. This pass removes each empty basic block after redirecting its incoming edges to its fall-through block. The garbage-collection is not complete. We keep the empty block in 4 cases: 1. The empty block is an exception handling pad. 2. The empty block has its address taken. 3. The empty block is the last block of the function and it has predecessors. 4. The empty block is the only block of the function. The first three cases are extremely rare in normal code (no cases for the clang binary). Removing the blocks under the first two cases requires modifying exception handling structures and operands of non-terminator instructions -- which is doable but not worth the additional complexity in the pass. Reviewed By: tmsriram Differential Revision: https://reviews.llvm.org/D107534 -
Jessica Clarke authored
On FreeBSD and NetBSD we don't use .weak due to differing semantics. Currently we end up using no directive, which gives a local symbol, whereas the closer thing to a weak symbol would be a global one. In particular, both GNU and LLVM toolchains cannot handle a GOT-indirect reference to a local symbol at a non-zero offset within a section on AArch64 (see https://github.com/ARM-software/abi-aa/issues/217), and so interceptors do not work on FreeBSD/arm64, failing to link with LLD. Switching to .globl both works around this bug and more closely aligns such non-weak platforms with weak ones. Fixes https://github.com/llvm/llvm-project/issues/63418 Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D158552
-
Daniel Thornburgh authored
-
Paul Robinson authored
-
Erick Velez authored
getFragmentsForType resulted in a bool typeIdentifier fragment to be spelled "_Bool". This fixes the spelling to be "bool" and checks it in C and C++. Reviewed By: dang Differential Revision: https://reviews.llvm.org/D158474
-
walter erquinigo authored
https://github.com/llvm/llvm-project/commit/59237bb52c9483fce395428bfab5996eabe54ed0 changed the behavior of the `SetTimeout` and `GetTimeout` methods of `EvaluateExpressionOptions`, which broke the Mojo REPL and related services (https://docs.modular.com/mojo/) because it relies on having infinite timeouts. That's a necessity because developers often use the REPL for executing extremely long-running numeric jobs. Having said that, `EvaluateExpressionOptions` shouldn't be that opinionated on this matter anyway. Instead, it should be the responsibility of the evaluator to define which timeout to use for each specific case. Differential Revision: https://reviews.llvm.org/D157764
-
Arthur Eubanks authored
This reverts commit cf2cf195. This breaks merging profiles when nothing is instrumented, see comments in https://reviews.llvm.org/D157632. This also reverts follow-up commit bfc965c5.
-
Philip Reames authored
Reasonable implementations may differ in complexity cost, so doing some API prepwork to support tunables. Note that this patch only covers the cases where we model the slide cost as linear. A separate patch will propose changing our insert and extract costs from constant-in-lmul to linear-in-lmul.
-
Philip Reames authored
Reasonable implementations may differ in complexity cost, so doing some API prepwork to support tunables.
-
walter erquinigo authored
This reverts commit a4dbdf47 because it breaks the buildbot https://lab.llvm.org/buildbot/#/builders/68/builds/58591
-
Jonathan Peyton authored
This change has the primary thread create each thread's initial mask and topology information so it is available immediately after forking. The setting of mask/topology information is decoupled from the actual binding. Also add this setting of topology information inside the __kmp_partition_places mechanism for OMP_PLACES+OMP_PROC_BIND. Without this, there could be a timing window after the primary thread signals the workers to fork where worker threads have not yet established their affinity mask or topology information. Each worker thread will then bind to the location the primary thread sets. Differential Revision: https://reviews.llvm.org/D156727
-
Leonard Chan authored
Prior to this, any allocations coming from the SizeClassAllocator would just have the vmo name "SizeClassAllocator". This will instead use the string passed to the Map functions if provided which provide slightly more info on what the vmo is used for. That is, is it for region data, metadata, or freearray space. Differential Revision: https://reviews.llvm.org/D158537
-
Nathan Sidwell authored
The NVPTX intrinsics are under 'n'. Use the consume_front API, so fix that. Refactor the helper function to group matchers on the first component and check that first. Do similarly with the final set of intrinsics, which have a lot of commonality in the matching. Finally reorder the argument/return type checking wrt name checking -- the former is going to be cheaper, so do that first before checking the name.# Reviewed By: tra Differential Revision: https://reviews.llvm.org/D158445
-
zhijian authored
Fixed a clang: error: OBJECT_MODE setting any is not recognized and is not a valid setting in https://lab.llvm.org/buildbot/#/builders/214/builds/9125/steps/6/logs/FAIL__Clang__dwarf-version_c The error is caused by the modification of clang/test/lit.cfg.py of the commit of https://reviews.llvm.org/D142660
-
Daniel Hoekwater authored
Reverted by 3d22dac6 because it depended on b9d079d6, which broke some tests.
-
Mehdi Amini authored
Fix MLIR pass manager initialization: hash the pass pipeline to detect when initialization is needed The current logic hashes the context to detect registration changes and re-run the pass initialization. However it wasn't checking for changes to the pipeline, so a pass that would get added after a first run would not be initialized during subsequent runs. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D158377
-
Craig Topper authored
This patch implements the getInstrMapping hook for RISCVRegisterBankInfo and others in order to correctly select the GPR register bank for operands of ALU instructions, and the associated operations introduced by the legalizer. Co-authored-by:
Lewis Revill <lewis.revill@embecosm.com> Reviewed By: nitinjohnraj Differential Revision: https://reviews.llvm.org/D76051
-
Harini Chilamantula authored
Reviewed By: abhina.sreeskantharajan Differential Revision: https://reviews.llvm.org/D158254
-
Florian Hahn authored
The current version of the test doesn't use any of the loads, so they can be removed together with the mask of the interleave group. Use some loaded values and store them, to prevent the mask from being optimized away.
-
Ted Woodward authored
Get the path to qemu in the following order: 1) From the property platform.plugin.qemu-user.emulator-path 2) If that property is not set, from PATH, building the name of the qemu binary from the triple in property platform.plugin.qemu-user.architecture 3) If that property is not set, from PATH, building the name of the qemu binary from the triple in the target This will allow a user to load a target and run without setting properties, if qemu is on the PATH and named qemu-<ArchName> Reviewed By: labath Differential Revision: https://reviews.llvm.org/D155117
-
Ted Woodward authored
llvm::MCInstPrinter has an option, controlled by setPrintBranchImmAsAddress, to print branch targets as immediate addresses instead of offsets. Turn this on in lldb, so targets that support this flag will print addresses instead of offsets. This requires the address of the instruction be provided, but fortunately it's calculated right before the call to PrintMCInst. Reviewed By: jasonmolenda, DavidSpickett Differential Revision: https://reviews.llvm.org/D155107
-
Jakub Kuderski authored
Issue: https://github.com/llvm/llvm-project/issues/64765 Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D158535
-
Florian Hahn authored
Mark some VPInstruction opcodes as not having side effects, preparation for D157037.
-
Kyungwoo Lee authored
LLD resolves symbols before performing LTO compilation, assuming that the symbols in question are resolved by the resulting object files from LTO. However, there is a scenario where the prevailing symbols might be resolved incorrectly due to specific assembly symbols not appearing in the symbol table of the bitcode. This patch deals with such a scenario by generating an error instead of silently allowing a mis-linkage. If a prevailing symbol is resolved through post-loaded archives via LC linker options, a warning will now be issued. Reviewed By: #lld-macho, thevinster Differential Revision: https://reviews.llvm.org/D158003
-
Jonas Devlieghere authored
Add backlinks to the LLVM Project and the LLVM Developer Policy from the docs. As suggested by Tanya on Discourse: https://discourse.llvm.org/t/rfc-revamping-lldbs-website/72899. Differential revision: https://reviews.llvm.org/D158467
-
Mark de Wever authored
With C++20 modules in libc++ the old name modules is ambiguous. This rename makes it clear this is regarding the clang modules. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D153042
-
Mark de Wever authored
The std module can be tested in the generic C++23 build. This removes the special module build. Note it is possible to enable modules automatically in CMake, but that would fail in the "parts disabled" builds; they have not been properly been converted to modules yet. Depends on D157625 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D157744
-
Mark de Wever authored
Depends on D158347 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D158357
-
Mark de Wever authored
Depends on D158337 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D158347
-
Mark de Wever authored
Depends on D158331 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D158337
-
Mark de Wever authored
Depends on D158330 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D158331
-
Mark de Wever authored
This fixes some missing #ifndef and implements the header restrictions in the modules script. Depends on D158192 Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D158330
-
Augusto Noronha authored
This reverts commit bb900632.
-
Mark de Wever authored
This takes the header restrictions into account instead of manually duplicating this build information. This is a preparation to properly support the libc++ disabled parts in the std module. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D158192
-