- Jun 05, 2024
-
-
Alexey Merzlyakov authored
The PR adds the support of CoreDump debugging for RISC-V 64. It implements new `RegisterContextCorePOSIX_riscv64` class. Also, the contribution fixes `GetRegisterCount()` -> `GetRegisterSetCount()` misprint in `RegisterContextPOSIX_riscv64::GetRegisterSetCount()` method, which leaded to `set && "Register set should be valid."` assertion during `register info aX` command call. The patch was tested (on coredumps generated for simple Integer/FP calculation code) for _cross x86_64 -> RISCV_ and _native RISCV_ LLDB builds. There were performed basic LLDB functionality tests, such as: - CoreDump file load - Backtrace / frames - GP/FP registers read/info/list - Basic switch between threads - Disassembler code - Memory regions read / display
-
Kai Luo authored
It intends to check if IAS handles non-zero addend correctly.
-
Nikita Popov authored
-
Marco Borgeaud authored
Do not erase Builder when the first check fails because it could succeed on the second stack frame. The problem was that `InnerMatcher.matches` erases the bindings when it returns false. The appropriate solution is to pass a copy of the bindings, similar to what `matchesFirstInRange` does.
-
Hsiangkai Wang authored
Linalg fusion-on-memrefs are removed in dc37dc82. There is nothing being inserted in the erase set. Remove the useless code.
-
Stanislav Mekhanoshin authored
I want to reuse some of the global patterns for the flat, so move instantiation past the declarations.
-
Vyacheslav Levytskyy authored
[SPIR-V] Introduce support of '__spirv_' wrapper builtins for the SPV_INTEL_subgroups extension (#94235) This PR Introduces support of '__spirv_' wrapper builtins for the SPV_INTEL_subgroups extension.
-
Vyacheslav Levytskyy authored
Only with SPV_INTEL_arbitrary_precision_integers SPIR-V Backend creates arbitrary sized integer types (<= 64 bits). Without such extension and according to the SPIR-V specification `SPIRVGlobalRegistry::getOpTypeInt()` rounds integer sizes other than 8,16,32,64 up, to one of defined by the specification sizes. For the `DuplicateTracker` class this means that several original LLVM types (e.g., i2, i4) map to the same "OpTypeInt 8" instruction. This breaks `DuplicateTracker`'s logic and leads to generation of invalid SPIR-V code eventually. For example, ``` define spir_func void @foo(i2 %a, i4 %b) { entry: %res2 = tail call i2 @llvm.bitreverse.i2(i2 %a) %res4 = tail call i4 @llvm.bitreverse.i4(i4 %b) ret void } declare i2 @llvm.bitreverse.i2(i2) declare i4 @llvm.bitreverse.i4(i4) ``` after translation to SPIR-V would fail during validation (`spirv-val`) due to two `OpTypeInt 8 0` instructions. This PR fixes the issue by changing source LLVM type according to the SPIR-V type that will be used in the emitted code. -
tpenge authored
Add username for LLVM Security Group member
-
Nikita Popov authored
This option was added in 3b79b2ab with the comment: > I had SROA implemented this way a long time ago and due to the > overwhelming bugs that surfaced, moved to a much more relaxed > variant. Richard Smith would like to understand the magnitude > of this problem and it seems fairly harmless to keep some > flag-controlled logic to get the extremely strict behavior here. > I'll remove it if it doesn't prove useful. As far as I know, it did not prove useful, so I'm removing it now. With constant GEPs canonicalized to i8, GEPs that only temporarily go out of bounds during the offset calculation do not naturally occur anymore anyway.
-
Leandro Lupori authored
flang/runtime/time-intrinsic.cpp:403:19: error: comparison of integers of different signs: 'clock_t' (aka 'unsigned long') and 'int' [-Werror,-Wsign-compare] if (times(&tms) != -1) { -
LLVM GN Syncbot authored
-
Vlad Serebrennikov authored
This patch moves language- and target-specific functions out of `SemaDeclAttr.cpp`. As a consequence, `SemaAVR`, `SemaM68k`, `SemaMSP430`, `SemaOpenCL`, `SemaSwift` were created (but they are not the only languages and targets affected). Notable things are that `Sema.h` actually grew a bit, because of templated helpers that rely on `Sema` that I had to make available from outside of `SemaDeclAttr.cpp`. I also had to left CUDA-related in `SemaDeclAttr.cpp`, because it looks like HIP is building up on top of CUDA attributes. This is a follow-up to #93179 and continuation of efforts to split `Sema` up. Additional context can be found in #84184 and #92682.
-
Shengchen Kan authored
-
LLVM GN Syncbot authored
-
-
Serge Pavlov authored
Reverts llvm/llvm-project#92660 It needs more discussion.
-
Kareem Ergawy authored
Fixes a crash uncovered by [pr77666.f90](https://github.com/llvm/llvm-test-suite/blob/main/Fortran/gfortran/regression/gomp/pr77666.f90) in the test suite when delayed privatization is enabled by default. In particular, whenever `PrivCB` (the callback responsible for generating privatizaiton logic for an OMP variable) generates a multi-block privatization region, the insertion point diverges: the BB component of the IP can become a different BB from the parent block of the instruction iterator component of the IP. This PR updates the IP to make sure that the BB is the parent block of the instruction iterator.
-
Shengchen Kan authored
-
Feng Zou authored
Add check of number of operands for concat_vectors being equal to 2. This can avoid crash if there are more than 2 operands for concat_vectors and operand 0 & 1 are undef value.
-
Phoebe Wang authored
This is a second try to reland https://github.com/llvm/llvm-project/pull/87149. The previous commit exposed failures on some targets. The reason is only a few targets support COFF ObjectFormatType on Windows: https://github.com/llvm/llvm-project/blob/main/llvm/lib/TargetParser/Triple.cpp#L835-L842 With https://github.com/llvm/llvm-project/pull/87149, the targets don't support COFF will report "warning: argument unused during compilation: '-gcodeview-command-line' [-Wunused-command-line-argument]" in the test gcodeview-command-line.c I was thinking `REQUIRES: *-registered-target` could solve the problem, but it didn't. We need to check the actual triple instead of just `*-registered-target`.
-
Eric Fiselier authored
-
Fangrui Song authored
-
Fangrui Song authored
Fixes: 5ee580bbfb11d781c220c19416c1a97b657e039a 5ee580bbfb11d781c220c19416c1a97b657e039a does not ensure that UseAssemblerInfoForParsing is re-enabled. This is benign but not good.
-
Maksim Panchenko authored
In ValidateMemRefs pass, when we validate references in the form of `Symbol + Addend`, we should check `Symbol` not `Symbol + Addend` against aliasing a jump table. Recommitting with a modified test case: https://github.com/llvm/llvm-project/pull/88838 Co-authored-by:
sinan <sinan.lin@linux.alibaba.com>
-
PiJoules authored
-
Joachim Meyer authored
-
Philip Reames authored
-
Slava Zakharin authored
-
-
Slava Zakharin authored
In a simple case like this: ``` program test integer :: u(120, 2) u(1:120,1:2) = u(1:120,1:2) + 2 end program ``` Flang is creating a copy loop with fir.array_coor using a result of fir.embox inserted before the loop. This results in split address computations before and inside the loop, which can be seen as many more arithmetic operations than required after converting FIR to LLVM dialect. Even though LLVM SROA/mem2reg are able to optimize the temporary descriptor, and then LICM is able to hoist the invariant computations, we seem to get better mix of LLVM dialect operations after FIR-to-LLVM codegen. This may also slightly reduce the compilation time taken by LLVM to optimize the generate LLVM IR. This may also slightly reduce the time spent by FIR AliasAnalysis to reach the memory reference source.
-
Fangrui Song authored
Similar to commit 245491a9 for DwarfDebug. This completely disables the expensive MCFragment walk code in `AttemptToFoldSymbolOffsetDifference` when compiling sqlite3.i for macOS. In the future, we should try enabling the MCFragment walk only for constructs like `.if . -_start == 1` and `.subsection a-b` and remove these `setUseAssemblerInfoForParsing`.
-
Florian Hahn authored
Update LAA to use PSE::getSymbolicMaxBackedgeTakenCount which returns the minimum of the countable exits. When analyzing dependences and computing runtime checks, we need the smallest upper bound on the number of iterations. In terms of memory safety, it shouldn't matter if any uncomputable exits leave the loop, as long as we prove that there are no dependences given the minimum of the countable exits. The same should apply also for generating runtime checks. Note that this shifts the responsiblity of checking whether all exit counts are computable or handling early-exits to the users of LAA. Depends on https://github.com/llvm/llvm-project/pull/93498 PR: https://github.com/llvm/llvm-project/pull/93499
-
Michael Buch authored
This is a follow-up of https://github.com/llvm/llvm-project/pull/92328#issuecomment-2145849441 Clang attaches `DW_AT_declaration` to static inline data members and `dsymutil` indexes these constants. Skipping these caused the expression evaluator to fail to find such constants when using DWARFv5. Fixes `TestConstStaticIntegralMember.py` on DWARFv5.
-
Michael Christensen authored
Very minor change to help message on `process save-core`. Adds space between two sentences explaining the `-p` option: "Specify a plugin name to create the core file.This allows core files to be saved in different formats." --> "Specify a plugin name to create the core file. This allows core files to be saved in different formats." Before: ``` (lldb) help process save-core Save the current process as a core file using an appropriate file type. Syntax: process save-core [-s corefile-style -p plugin-name] FILE Command Options Usage: process save-core [-p[<plugin>]] [-s <corefile-style>] <path> -p[<plugin>] ( --plugin-name=[<plugin>] ) Specify a plugin name to create the core file.This allows core files to be saved in different formats. -s <corefile-style> ( --style <corefile-style> ) Request a specific style of corefile to be saved. Values: full | modified-memory | stack This command takes options and free-form arguments. If your arguments resemble option specifiers (i.e., they start with a - or --), you must use ' -- ' between the end of the command options and the beginning of the arguments. ``` After: ``` michristensen@devbig356 build/Debug » $HOME/llvm-sand/build/Debug/bin/lldb -x (lldb) help process save-core Save the current process as a core file using an appropriate file type. Syntax: process save-core [-s corefile-style -p plugin-name] FILE Command Options Usage: process save-core [-p[<plugin>]] [-s <corefile-style>] <path> -p[<plugin>] ( --plugin-name=[<plugin>] ) Specify a plugin name to create the core file. This allows core files to be saved in different formats. -s <corefile-style> ( --style <corefile-style> ) Request a specific style of corefile to be saved. Values: full | modified-memory | stack This command takes options and free-form arguments. If your arguments resemble option specifiers (i.e., they start with a - or --), you must use ' -- ' between the end of the command options and the beginning of the arguments. ``` -
Min-Yih Hsu authored
To get the time trace of LTO in the gold plugin, now we can pass the `time-trace=<time trace file>` as well as `time-trace-granularity=<granularity>` flags to LLVMgold. Note that we still have to populate `LTOConfig::TimeTraceEnabled` and `LTOConfig::TimeTraceGranularity` because ThinLTO backend needs them.
-
Arthur Eubanks authored
The function should always be known to LazyCallGraph
-
Keith Smiley authored
-
Fangrui Song authored
PTHREAD_MUTEX_INITIALIZER is zeroes for glibc and musl, but it improves conformance and might work with more libc implementations. Follow-up to #94374 Pull Request: https://github.com/llvm/llvm-project/pull/94387
-
Keith Smiley authored
-