- Oct 19, 2023
-
-
Kazu Hirata authored
We can use std::pop_heap first and then retrieve the top priority item with pop_back_val, saving one line of code.
-
Ivan Tadeu Ferreira Antunes Filho authored
When compiling for Darwin, sigset is not initialized. When -Werror,-Wuninitialized-const-reference are enabled we see the error: asan_interceptors.cpp:260:38: error: variable 'sigset' is uninitialized when passed as a const reference argument here [-Werror,-Wuninitialized-const-reference] This fixes the error
-
Aart Bik authored
This enables reading block sparse from file using libgen! (and soon also direct IR codegen)
-
Kazu Hirata authored
This patch fixes: compiler-rt/lib/builtins/int_to_fp_impl.inc:36:10: error: expression is not an integer constant expression; folding it to a constant is a GNU extension [-Werror,-Wgnu-folding-constant]
-
Fangrui Song authored
[CodeGen] -fsanitize=alignment: add cl::opt sanitize-alignment-builtin to disable memcpy instrumentation (#69240) Deploying #67766 to a large internal codebase uncovers many bugs (many are probably benign but need cleaning up). There are also issues in high-profile open-source projects like v8. Add a cl::opt to disable builtin instrumentation for -fsanitize=alignment to help large codebase users. In the long term, this cl::opt option may still be useful to debug -fsanitize=alignment instrumentation on builtins, so we probably want to keep it around.
-
David Green authored
The MVETRUNC operation can perform the same truncate of two vectors, without requiring lane inserts/extracts from every vector lane. This moves the concat i1 lowering to use it for v8i1 and v16i1 result types, trading a bit of extra stack space for less instructions.
-
Louis Dionne authored
This will make it easier to implement new(nothrow) without calling the throwing version of new when exceptions are disabled. See https://llvm.org/D150610 for the full discussion.
-
Stanislav Mekhanoshin authored
-
Louis Dionne authored
This makes it a lot easier to make wide ranging changes like I am about to do in https://llvm.org/D150610.
-
Luke Lau authored
The current test cases to guard against speculative execution can actually be safely speculated because the denominator is known to be not 0 or -1, and isSafeToSpeculativelyExecuteWithOpcode will account for this. This adds some more test cases and rejigs some existing ones to use an unknown variable instead.
-
Oskar Wirga authored
When MergeFuncs creates a thunk, it does not modify the function in place, but creates a new one altogether. If type metadata is not properly forwarded to this new function, LowerTypeTests will be unable to put this thunk into the dispatch table. The fix here is to just forward the type metadata to the newly created functions.
-
Yaxun (Sam) Liu authored
Document clang support for function pointers and virtual functions with HIP
-
Dominik Adamski authored
The user of CodeExtractor should be able to specify that the aggregate argument should be passed as a pointer in zero address space. CodeExtractor is used to generate outlined functions required by OpenMP runtime. The arguments of the outlined functions for OpenMP GPU code are in 0 address space. 0 address space does not need to be the default address space for GPU device. That's why there is a need to allow the user of CodeExtractor to specify, that the allocated aggregate parameter is passed as pointer in zero address space.
-
Thurston Dang authored
stack-uar.c is flaky (1 in 256 executions) because the random tag may be zero (https://github.com/llvm/llvm-project/issues/69221). This patch works around the issue in the same way as deep-recursion.c (https://github.com/llvm/llvm-project/commit/aa4dfd3736dd1c2e0263eacd09bd613c5784ea73 ), by falling back to a neighboring object, which must have a different (non-zero) tag. This patch also does a minor cleanup of the aforementioned deep-recursion.c, for consistency with stack-uar.c. Co-authored-by:
Thurston Dang <thurston@google.com>
-
Guray Ozen authored
-
Piotr Zegar authored
Fix 'Bullet list ends without a blank line; unexpected unindent.
-
Chengji Yao authored
Specializing for 8-bit integers to ensure values are printed as integers Fixes #69310
-
Kai Nacke authored
Use of llvm::Optional was migrated to std::optional. This included a change in the constructor of ArrayRef. However, there are still 2 places in the SubtargetEmitter which uses llvm::None, causing a compile error when emitted.
-
Ilya Leoshkevich authored
When the code is built with -mbackchain, it is possible to retrieve the caller's frame and return addresses. GCC already can do this, add this support to Clang as well. Use RISCVTargetLowering and GCC's s390_return_addr_rtx() as inspiration. Add tests based on what GCC is emitting.
-
Joseph Huber authored
- [Libomptarget] Make the references to 'malloc' and 'free' weak. - [Libomptarget][NFC] Use C++ style attributes instead
-
Joseph Huber authored
Summary: We use `malloc` internally in the DeviceRTL to handle data globalization. If this is undefined it will map to the Nvidia implementation of `malloc` for NVPTX and return `nullptr` for AMDGPU. This is somewhat problematic, because when using this as a shared library it causes us to always extract the GPU libc implementation, which uses RPC and thus requires an RPC server. Making this `weak` allows us to implement this internally without worrying about binding to the GPU `libc` implementation.
-
Alexey Bataev authored
-
vabridgers authored
This change introduces the bitfield conversion check after fixes to the test case. The original submission unfortunately did not comprehend differences in architecture for the diagnostic messages, leading to unanticipated failures in the arm build bots. Original PR: https://github.com/llvm/llvm-project/pull/68276 Clang does not check for bitfield assignment widths, while gcc checks this. gcc produced a warning like so for it's -Wconversion flag: ``` $ gcc -Wconversion -c test.c test.c: In function 'foo': test.c:10:15: warning: conversion from 'int' to 'signed char:7' may change value [-Wconversion] 10 | vxx.bf = x; // no warning | ^ ``` This change simply adds this check for integral types under the -Wbitfield-conversion compiler option.
-
Adrian Prantl authored
-
Piotr Zegar authored
Fix ':4:Title underline too short.'
-
Emilio Cota authored
To forward-declare LLVM's support types.
-
Piotr Zegar authored
Fix micro bug in list.rst.
-
Logikable authored
Using the new pass manager is more verbose; let me know if the tutorial doesn't flow well with all the additions.
-
Stanislav Mekhanoshin authored
We can only fold it if it can fit into 32-bit. I believe it did not trigger yet because we do not select 64-bit literals generally.
-
Arjun P authored
-
Aaron Ballman authored
The constant expression engines use a list of note diagnostics to report back whether an evaluation is a valid constant expression or not. This requires the engines to generate those note diagnostics, and that can be expensive in cases where we're converting an APValue to a string as a streamed argument to the note. If we're going to display the note, then that expense is warranted. However, there are operations looking for a yes/no answer to whether something is a constant expression and won't display the diagnostics at all. Those uses are paying an expense they shouldn't have to.
-
Erich Keane authored
Out of line class template declaration specializations aren't created at the time they have their template arguments checked, so we previously weren't doing any amount of work to substitute the constraints before comparison. This resulted in the out of line definition's difference in 'depth' causing the constraints to compare differently. This patch corrects that. Additionally, it handles ClassTemplateDecl when collecting template arguments. Fixes: #61763
-
Alex Langford authored
Instead of reporting the error directly through the DWARFContext passed in as an argument, it would be more flexible to have extract return the error and allow the caller to react appropriately. This will be useful for using llvm's DWARFHeaderUnit from lldb which may report header extraction errors through a different mechanism.
-
Valery Dmitriev authored
-
Eric Kilmer authored
If a CMake project doesn't enable the C language, then the CMake FFI and Terminfo find modules will fail their checks for compilation and linking. This commit allows projects to enable only C++ by first checking if a C compiler is set before testing C source compilation; if not, it checks whether C++ compilation succeeds. Fixes #53950
-
- Oct 18, 2023
-
-
Mehdi Amini authored
-
Fangrui Song authored
Follow-up to #69295: In `Writer<ELFT>::run`, the symbol passes are flexible: they can be placed almost everywhere before `scanRelocations`, with a constraint that the `computeIsPreemptible` pass must be invoked for linker-defined non-local symbols. Merge copyLocalSymbols and demoteLocalSymbolsInDiscardedSections to simplify code: * Demoting local symbols can be made unconditional, not constrainted to /DISCARD/ uses due to performance concerns * `includeInSymtab` can be made faster * Make symbol passes close to each other * Decrease data cache misses due to saving an iteration over local symbols There is no speedup, likely due to the unconditional `dr->section` access in `demoteAndCopyLocalSymbols`. `gc-sections-tls.s` no longer reports an error because the TLS symbol is converted to an Undefined.
-
NatashaKnk authored
-
Stephen Tozer authored
This patch adds a new fn attribute, `optdebug`, that specifies that optimizations should make decisions that prioritize debug info quality, potentially at the cost of runtime performance. This patch does not add any functional changes triggered by this attribute, only the attribute itself. A subsequent patch will use this flag to disable the post-RA scheduler.
-
Slava Zakharin authored
According to OpenACC 3.2 2.11, private or reduction clause on the combined construct is treated as if it appeared on the loop construct.
-