- Aug 01, 2023
-
-
David Blaikie authored
-
Jonathan Peyton authored
* Add KMP_CPU_EQUAL and KMP_CPU_ISEMPTY to affinity mask API * Add printout of leader to hardware thread dump * Allow OMP_PLACES to restrict fullMask This change fixes an issue with the OMP_PLACES=resource(#) syntax. Before this change, specifying the number of resources did NOT change the default number of threads created by the runtime. e.g., OMP_PLACES=cores(2) would still create __kmp_avail_proc number of threads. After this change, the fullMask and __kmp_avail_proc are modified if necessary so that the final place list dictates which resources are available and how thus, how many threads are created by default. * Introduce hybrid core attributes to OMP_PLACES and KMP_AFFINITY For OMP_PLACES, two new features are added: 1) OMP_PLACES=cores:<attribute> where <attribute> is either intel_atom, intel_core, or eff# where # is 0 - number of core efficiencies-1. This syntax also supports the optional (#) number selection of resources. 2) OMP_PLACES=core_types|core_effs where this setting will create the number of core_types (or core_effs|core_efficiencies). For KMP_AFFINITY, the granularity setting is expanded to include two new keywords: core_type, and core_eff (or core_efficiency). This will set the granularity to include all cores with a particular core type (or efficiency). e.g., KMP_AFFINITY=granularity=core_type,compact will create threads which can float across a single core type. Differential Revision: https://reviews.llvm.org/D154547 -
David Blaikie authored
size() > 0 -> !empty indentation mismatched names on parameters in decls/defs const on value return types
-
Arnaud Botella authored
Current implementation outputs the parameter name when used with @param (or @tparam) doxygen tag but not the comment itself. Differential Revision: https://reviews.llvm.org/D156322
-
Peter Steinfeld authored
This update allows constant folding for many 128 bit floating point intrinsics through the library quadmath, which is only available on some platforms. Differential Revision: https://reviews.llvm.org/D156435
-
Joshua Batista authored
Add codegen for llvm bitreverse elementwise builtin The bitreverse elementwise builtin is necessary for HLSL codegen. Tests were added to make sure that the expected errors are encountered when these functions are given inputs of incompatible types, or too many inputs. The new builtin is restricted to integer types only. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D156357
-
spupyrev authored
This is a new algorithm for function layout (reordering) based on the call graph extracted from a profile data; see diffs down the stack for more details. This layout is very similar to the existing hfsort+, but perhaps a little better on some benchmarks. The goals of the change is as follows: (i) rename and replace hfsort+ with a newer (hopefully better) implementation. I'd prefer to keep both algs together for some time to simplify evaluation and transition, but do want to remove hfsort+ once we're confident that there are no regressions. (ii) unify the implementation of code layout algorithms across LLVM. Currently Passes/HfsortPlus.cpp and Utils/CodeLayout.cpp share many implementation-specific details; this diff unifies the code. Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D153039
-
Augie Fackler authored
-
Nico Weber authored
-
Chia-hung Duan authored
RoundedSize is supposed to be used on directly mapping. To determine if a cached block is feasible, the size doesn't need to be rounded in advance. As a result, the use of RoundedSize may miss some chance of using cached blocks. This reverts commit 4c6b8bb8. Reviewed By: frs513 Differential Revision: https://reviews.llvm.org/D156583
-
Alex Langford authored
This commit does a few related things: - Removes unused function `uuid_is_null` - Removes unneeded includes of UuidCompatibility.h - Renames UuidCompatibility to AppleUuidCompatibility and adds a comment to clarify intent of header. - Moves AppleUuidCompatibility to the include directory Differential Revision: https://reviews.llvm.org/D156562
-
Maksim Kita authored
Fix typo in ScalarEvolution public method. Differential Revision: https://reviews.llvm.org/D156621
-
Jonas Devlieghere authored
Improve memory usage by reducing the lifetime of CTF types. Once a CTF type has been converted to a (complete) LLDB type, there's no need to keep it in memory anymore. For most types, we can free them right after creating the corresponding LLDB types. The only exception is record types, which are only completed lazily. Differential revision: https://reviews.llvm.org/D156606
-
John Harrison authored
Instead of creating psuedo source files for each stack frame this change adopts the new DAP “disassemble” request, allowing clients to inspect assembly instructions of files with debug info in addition to files without debug info. [[ https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Disassemble | spec ]] See attached screenshot of the disassembly view. {F28473848} Reviewed By: wallace Differential Revision: https://reviews.llvm.org/D156493
-
Mark de Wever authored
Adds tests to guard against the issue solved in D156592. Depends on D156592 Reviewed By: ChuanqiXu, #libc, philnik Differential Revision: https://reviews.llvm.org/D156594
-
Mark de Wever authored
@ChuanqiXu noticed std::atomic was not properly exported in the std module. Investigation showed other named declarations were not exported either. This fixes the issue. Depends on D156550 Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D156592
-
Mark de Wever authored
Importing modules in the test suite failed due to linker errors. This fixes the issue and adds a minimal test to validate importing the std module works. Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D156550
-
Cyndy Ishida authored
This is the first of transition tapi-diff to be readtapi. This tool will eventually replace functionality for Xcode's `xcrun tapi stubify` and `xcrun tapi archive`. This patch updates the tool name and is a minor refactor for the driver to handle more options. Reviewed By: zixuw Differential Revision: https://reviews.llvm.org/D153045
-
Mark de Wever authored
Switch to LLVM-18 as ToT version. Use the latest official CMake 3.27 release. Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D156593
-
Aaron Ballman authored
The docs were still talking about Visual Studio 2013, which we've not supported in a while. I made the documentation a bit more vague because NATVIS is sometimes automatically picked up when building and sometimes requires manually installing the files. (For me, LLVM NATVIS is automatically picked up while Clang NATVIS needs manual installation; this happens because the way the monorepo is organized causes confusion when used with Visual Studio's built-in CMake functionality. Building from a .sln file generated by CMake may have better behavior in this case.)
-
Simon Pilgrim authored
[AMDGPU] AMDGPUTargetStreamer::getArchNameFromElfMach - use GPUKind::GK_NONE for unknown AMDGPU ElfMach flags Avoids issue reported on ea2c159f where objects with unknown subtarget ids were causing llvm_unreachable crashes
-
Simon Pilgrim authored
[X86] Allow pre-SSE41 targets to extract multiple v16i8 elements coming from the same DWORD/WORD super-element Pre-SSE41 targets tended to have weak (serial) GPR<->VEC moves, meaning we only allowed a single v16i8 extraction before spilling the vector to stack and loading the i8 elements instead. But this didn't make use of the DWORD/WORD extraction we had to use could extract multiple i8 elements at the same time. This patch attempts to determine if all uses of a vector are element extractions, and works out whether all the extractions share the same WORD or (lowest) DWORD, in which case we can perform a single extraction and just shift/truncate the individual elements. Differential Revision: https://reviews.llvm.org/D156350
-
- Jul 31, 2023
-
-
Steven Wu authored
Update comment in previous commit from D156603.
-
Matt Arsenault authored
This was adding confusing global state which was shadowed most of the time. https://reviews.llvm.org/D156680
-
Alex Zinenko authored
Provide Python bindings for transform ops defined in the vector dialect. All of these ops are sufficiently simple that no mixins are necessary for them to be nicely usable. Reviewed By: ingomueller-net Differential Revision: https://reviews.llvm.org/D156554
-
Alex Zinenko authored
Add an ODS (tablegen) backend to generate Python enum classes and attribute builders for enum attributes defined in ODS. This will allow us to keep the enum attribute definitions in sync between C++ and Python, as opposed to handwritten enum classes in Python that may end up using mismatching values. This also makes autogenerated bindings more convenient even in absence of mixins. Use this backend for the transform dialect failure propagation mode enum attribute as demonstration. Reviewed By: ingomueller-net Differential Revision: https://reviews.llvm.org/D156553
-
Sindhu Chittireddy authored
Differential Revision: https://reviews.llvm.org/D156274
-
Jakub Kuderski authored
Exist gracefully instead of triggering an assertions. Fixes: https://github.com/llvm/llvm-project/issues/64257 Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D156694
-
YAMAMOTO Takashi authored
Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D153107
-
-
Matt Arsenault authored
-
Fangrui Song authored
Similar to fsanitize-ignorelist.c. Otherwise there may or may not be an error, depending on whether share/cfi_ignorelist.txt is present in the default resource directory. Exposed by D156363
-
Mitch Phillips authored
As per the ABI at https://github.com/ARM-software/abi-aa/blob/main/memtagabielf64/memtagabielf64.rst, this patch interprets the SHT_AARCH64_MEMTAG_GLOBALS_STATIC section, which contains R_NONE relocations to tagged globals, and emits a SHT_AARCH64_MEMTAG_GLOBALS_DYNAMIC section, with the correct DT_AARCH64_MEMTAG_GLOBALS and DT_AARCH64_MEMTAG_GLOBALSSZ dynamic entries. This section describes, in a uleb-encoded stream, global memory ranges that should be tagged with MTE. We are also out of bits to spare in the LLD Symbol class. As a result, I've reused the 'needsTocRestore' bit, which is a PPC64 only feature. Now, it's also used for 'isTagged' on AArch64. An entry in SHT_AARCH64_MEMTAG_GLOBALS_STATIC is practically a guarantee from an objfile that all references to the linked symbol are through the GOT, and meet correct alignment requirements. As a result, we go through all symbols and make sure that, for all symbols $SYM, all object files that reference $SYM also have a SHT_AARCH64_MEMTAG_GLOBALS_STATIC entry for $SYM. If this isn't the case, we demote the symbol to being untagged. Symbols that are imported from other DSOs should always be fine, as they're GOT-referenced (and thus the GOT entry either has the correct tag or not, depending on whether it's tagged in the defining DSO or not). Additionally hand-tested by building {libc, libm, libc++, libm, and libnetd} on Android with some experimental MTE globals support in the linker/libc. Reviewed By: MaskRay, peter.smith Differential Revision: https://reviews.llvm.org/D152921
-
Matt Arsenault authored
There are more contexts where it's not handled correctly but this is the simplest one. https://reviews.llvm.org/D156682
-
Matt Arsenault authored
dyn_cast instead of isa+cast, and initialize on declaration.
-
cabreraam authored
This patch aims to address the TODO for handling character conversion in HLFIR found [here](https://github.com/llvm/llvm-project/blob/1defa781243f9d0bc66719465e4de33e9fb7a243/flang/lib/Lower/ConvertExprToHLFIR.cpp#L1388) using [this similar operation but for FIR as inspiration](https://github.com/llvm/llvm-project/blob/3ea673a97b0583affc22345b9d62e863ba36b3d8/flang/lib/Lower/ConvertExpr.cpp#L1212-L1271). Reviewed By: vzakhari, tblah Differential Revision: https://reviews.llvm.org/D155650
-
Roger Ferrer Ibanez authored
Identifiers major and minor are often already taken in POSIX systems due to their presence in <sys/types.h> as part of the makedev library function. This causes compilation failures on FreeBSD and Linux systems with glibc <2.28. This change renames the identifiers to major_/minor_. Differential Revision: https://reviews.llvm.org/D156683
-
Matt Arsenault authored
-
Alexey Bataev authored
Replaced by DenseMap instead of MapVector(the order is not important, just lookup is used) + reduced number of lookups.
-
Nikita Popov authored
Fixes a regression introduced by D75362 for irreducible control flow. In that case, we may visit the predecessor that renders the current block live only later, and incorrectly determine that a block is dead. Instead, switch to using the same DeadEdges based implementation we also use during the main InstCombine iteration. This temporarily regresses some cases that need replacement of dead phi operands with poison, which is currently only done during the main run, but not worklist population. This will be addressed in a followup, to keep it separate from the correctness fix here. Fixes https://github.com/llvm/llvm-project/issues/64259.
-