- Jul 29, 2021
-
-
Michael Benfield authored
Also introduce Expr::tryEvaluateStrLen. Differential Revision: https://reviews.llvm.org/D104887
-
Louis Dionne authored
This started breaking in the CI because we bumped the Clang version to 14, which requires adjusting the markup in the test suite. I think it's actually nice the we need to do that and that it doesn't happen automatically, since it serves as a reminder that this is broken in Clang.
-
Muhammad Omair Javaid authored
Revert "[trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization" This reverts commit aad17c55. Breaks LLDB build on 32 bit Arm/Linux bot: https://lab.llvm.org/buildbot/#/builders/17/builds/9497 Differential Revision: https://reviews.llvm.org/D105741
-
Itai Zukerman authored
Added the following targets to the LLVM Bazel overlay: AVR Mips MPS430 SystemZ XCore Reviewed By: GMNGeoffrey Differential Revision: https://reviews.llvm.org/D106921
-
Geoffrey Martin-Noble authored
This adds Bazel configuration for the TargetMCA targets, which currently only includes AMDGPU. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D106996
-
Fangrui Song authored
so that readers can connect them with the hexadecimal addresses in the output.
-
Fangrui Song authored
-
bakhtiyar authored
Interop parallelism requires needs awaiting on results. Blocking awaits are bad for performance. TFRT supports lightweight resumption on threads, and coroutines are an abstraction than can be used to lower the kernels onto TFRT threads. Reviewed By: ezhulenev Differential Revision: https://reviews.llvm.org/D106508
-
zoecarver authored
Differential Revision: https://reviews.llvm.org/D106507
-
Ellis Hoag authored
D45024 renamed the field in `DISubprogram` from `variables:` to `retainedNodes:`. Some of the docs were updated in D89082 but this updates the rest. Reviewed By: scott.linder Differential Revision: https://reviews.llvm.org/D106926
-
Fangrui Song authored
On ELF, an SHT_INIT_ARRAY outside a section group is a GC root. The current codegen abuses SHT_INIT_ARRAY in a section group to mean a GC root. On PE/COFF, the dynamic initialization for `__declspec(selectany)` in a comdat can be garbage collected by `-opt:ref`. Call `addUsedGlobal` for the two cases to fix the abuse/bug. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D106925
-
Eli Friedman authored
Apparently, the features were getting mixed up, so we'd try to disassemble in ARM mode. Fix sub-architecture detection to compute the correct triple if we're detecting it automatically, so the user doesn't need to pass --triple=thumb etc. It's possible we should be somehow tying the "+thumb-mode" target feature more directly to Tag_CPU_arch_profile? But this seems to work reasonably well, anyway. While I'm here, fix up the other llvm-objdump tests that were explicitly specifying an ARM triple; that shouldn't be necessary. Differential Revision: https://reviews.llvm.org/D106912
-
Mehdi Amini authored
By making an explicit template specialization for the TypeID provided by these classes, the compiler will not emit an inline weak definition and rely on the linker to unique it. Instead a single definition will be emitted in the C++ file alongside the implementation for these classes. That will turn into a linker error what is now a hard-to-debug runtime behavior where instances of the same class may be using a different TypeID inside of different DSOs. Differential Revision: https://reviews.llvm.org/D105903
-
Mehdi Amini authored
-
Dmitry Vyukov authored
Currently __tsan_atomic* functions do FuncEntry/Exit using caller PC and then use current PC (pointing to __tsan_atomic* itself) during memory access handling. As the result the top function in reports involving atomics is __tsan_atomic* and the next frame points to user code. Remove FuncEntry/Exit in atomic functions and use caller PC during memory access handling. This removes __tsan_atomic* from the top of report stacks, so that they point right to user code. The motivation for this is performance. Some atomic operations are very hot (mostly loads), so removing FuncEntry/Exit is beneficial. This also reduces thread trace consumption (1 event instead of 3). __tsan_atomic* at the top of the stack is not necessary and does not add any new information. We already say "atomic write of size 4", "__tsan_atomic32_store" does not add anything new. It also makes reports consistent between atomic and non-atomic accesses. For normal accesses we say "previous write" and point to user code; for atomics we say "previous atomic write" and now also point to user code. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106966
-
Dmitry Vyukov authored
Compilers tends to insert memset/memcpy for some struct/array operations, and these don't play well inside of sanitizer runtimes. Avoiding these calls was the intention behind internal_memset. Remove the leftover ={} that can result in memset call. Reviewed By: vitalybuka, pgousseau Differential Revision: https://reviews.llvm.org/D106978 -
Dmitry Vyukov authored
We strip all frames below main but in some cases it may be not enough. Namely, when main is instrumented but does not call any other instrumented code. In this case __tsan_func_entry in main obtains PC pointing to __libc_start_main (as we pass caller PC to __tsan_func_entry), but nothing obtains PC pointing to main itself (as main does not call any instrumented code). In such case we will not have main in the stack, and stripping everything below main won't work. So strip __libc_start_main explicitly as well. But keep stripping of main because __libc_start_main is glibc/linux-specific, so looking for main is more reliable (and usually main is present in stacks). Depends on D106957. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106958
-
Dmitry Vyukov authored
Caller PC is plain harmful as native caller PC has nothing to do with Java code. Current PC is not particularly useful and may be somewhat confusing for Java users as it makes top frame to point to some magical __tsan function. But obtaining and using these PCs adds runtime cost for every java event. Remove these PCs. Rely only on official Java frames. It makes execution faster, code simpler and reports better. Depends on D106956. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106957
-
Dmitry Vyukov authored
We maintain information about Java allocations, but for some reason never printed it in reports. Print it. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106956
-
Patrick Holland authored
Differential Revision: https://reviews.llvm.org/D106775
-
Dmitry Vyukov authored
1. Add a set of micro benchmarks for memory accesses, mem* functions and unaligned accesses. 2. Add support for multiple benchmarks in a single binary (or it would require 12 new benchmark binaries). 3. Remove the "clock growth" machinery, it affects the current tsan runtime by increasing size of all vector clocks, but this won't be relevant for the new tsan runtime. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106961
-
Dmitry Vyukov authored
We used to count number of allocations/bytes based on the type and maybe record them in heap block headers. But that's all in the past, now it's not used for anything. Remove the mblock type. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106971
-
Dmitry Vyukov authored
Remove pc argument of ThreadIgnoreEnd, ThreadIgnoreSyncEnd and AcquireGlobal functions. It's unused and in some places we don't even have a pc and pass 0 anyway. Don't confuse readers and don't pretend that pc is needed and that passing 0 is somehow deficient. Use simpler convention for ThreadIgnoreBegin and ThreadIgnoreSyncBegin: accept only pc instread of pc+save_stack. 0 pc means "don't save stack". Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D106973
-
Walter Erquinigo authored
[trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization This diff introduces Hierarchical Trace Representation (HTR) and creates the `thread trace export ctf -f <filename> -t <thread_id>` command to export an Intel PT trace's HTR to Chrome Trace Format (CTF) for visualization. See `lldb/docs/htr.rst` for context/documentation on HTR. **Overview of Changes** - Add HTR documentation (see `lldb/docs/htr.rst`) - Add HTR structures (layer, block, block metadata) - Implement "Basic Super Block" HTR pass - Add 'thread trace export ctf' command to export the HTR of an Intel PT trace to Chrome Trace Format (CTF) As this diff is the first iteration of HTR and trace visualization, future diffs will build on this work by generalizing the internal design of HTR and implementing new HTR passes that provide better trace summarization/visualization. See attached video for an example of Intel PT trace visualization: {F17851042} Original Author: jj10306 Submitted by: wallace Reviewed By: wallace, clayborg Differential Revision: https://reviews.llvm.org/D105741 -
Sjoerd Meijer authored
The SCEV method getBackedgeTakenCount() returns a SCEVCouldNotCompute object if the backedge-taken count is unpredictable. This fix ensures there is no longer an attempt to use such an object to find the trip count. Patch by: Rosie Sumpter. Differential Revision: https://reviews.llvm.org/D106970
-
Jeroen Dobbelaere authored
This is a second attempt to fix the EXPENSIVE_CHECKS issue that was mentioned In D91661#2875179 by @jroelofs. (The first attempt was in D105983) D91661 more or less completely reverted D49126 and by doing so also removed the cleanup logic of the created declarations and calls. This patch is a replacement for D91661 (which must itself be reverted first). It replaces the custom declaration creation with the generic version and shows the test impact. It also tracks the number of NamedValues to detect if a new prototype was added instead of looking at the available users of a prototype. Reviewed By: jroelofs Differential Revision: https://reviews.llvm.org/D106147
-
Jeroen Dobbelaere authored
Revert "Revert of D49126 [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types." This reverts commit 77080a1e. This change introduced issues detected with EXPENSIVE_CHECKS. Reverting to restore the needed function cleanup. A next patch will then just improve on the name mangling.
-
Aaron Ballman authored
This amends b0ef3d8f based on a suggestion from James Y Knight.
-
Aart Bik authored
Reviewed By: gussmith23 Differential Revision: https://reviews.llvm.org/D106904
-
Mats Larsen authored
-
Fangrui Song authored
[[noreturn]] can be used since Oct 2016 when the minimum compiler requirement was bumped to GCC 4.8/MSVC 2015. Note: the definition of LLVM_ATTRIBUTE_NORETURN is kept for now.
-
Alex Zinenko authored
In translation from MLIR to another IR, run the MLIR verifier on the parsed module to ensure only valid modules are given to the translation. Previously, we would send any module that could be parsed to the translation, including semantically invalid modules, leading to surprising errors or lack thereof down the pipeline. Depends On D106937 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D106938
-
Alex Zinenko authored
The verifier of the llvm.call operation was not checking for mismatches between the number of operation results and the number of results in the signature of the callee. Furthermore, it was possible to construct an llvm.call operation producing an SSA value of !llvm.void type, which should not exist. Add the verification and treat !llvm.void result type as absence of call results. Update the GPU conversions to LLVM that were mistakenly assuming that it was fine for llvm.call to produce values of !llvm.void type and ensure these calls do not produce results. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D106937
-
Jessica Clarke authored
Using split-file does not work with update_llc_test_checks.py. It's also mostly redundant, as the single and double tests can just use a single llc and FileCheck invocation for each FPU type using -check-prefixes rather than -check-prefix, and update_llc_test_checks.py will merge what it can. Only test_dasmconst needs to be SPE-only and so is pulled out into its own mall file (rather than using sed to preprocess the file and keep it commented out for EFPU2, which would work, but is ugly). As well as cutting down on the number of RUN lines, this also results in test_fma's CHECK lines being merged for both FPUs. Reviewed By: kiausch Differential Revision: https://reviews.llvm.org/D106969
-
Raphael Isemann authored
Revert "[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure" This reverts commit 5db8e232. The test has been disabled since then on the bot and we got the logs we wanted.
-
Craig Topper authored
-
Craig Topper authored
The sign_extend we insert here can get turned into a zero_extend if the sign bit is known zero. This can enable a setcc combine that shrinks compares with zero_extend. This reduces the use count of the zero_extend allowing other combines to turn it back into an any_extend. This restricts the combine to only cases where the result is used by a CopyToReg. This works for my original motivating case. I hope the CopyToReg use will prevent any converted extends from turning back into an any_extend. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D106754
-
- Jul 28, 2021
-
-
Mark de Wever authored
The error message for disabled filesystem and locale support is now done in the same fashion as ranges and format in D106763. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D106935
-
Chris Jackson authored
Reverted due to buildbot failures. This reverts commit d675b594.
-
Dmitry Vyukov authored
The current 10 threads is not particularly "lots" and not stressful. Create 10x300 threads and ensure they all are running at the same time. Depends on D106953. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D106954
-