- Jul 07, 2023
-
-
wanglei authored
This patch adds the definition of the LASX instructions, providing support only for assembly and disassembly, similar to D154183. Depends on D154183 Reviewed By: SixWeining Differential Revision: https://reviews.llvm.org/D154195
-
wanglei authored
This patch adds the definition for the `LSX` registers and instructions. It also adds handling for new immediate operands in the AsmParser. This patch ensures that llvm-mc and llvm-objdump correctly handle the `LSX` instructions. We expand those pseudo-instructions `vrepli.{b,h,w,d}` in the MCCodeEmitter. This increases the readability of the output when generating assembly files. Reviewed By: SixWeining Differential Revision: https://reviews.llvm.org/D154183 -
Aiden Grossman authored
Left some includes around from debugging the last patch that I forgot to take out, so here's the patch taking them out.
-
Aiden Grossman authored
This patch switches from using PTRACE_SEIZE within the subprocess benchmark runner for llvm-exegesis as PTRACE_SEIZE was introduced in Linux kernel 3.4. Some LLVM users were reporting build failures as they are using Kernel versions older than 3.4 (such as on CentOS/RHEL 6), hence the patch.
-
Aiden Grossman authored
Having the SubprocessMemory class available on Android was causing build failures in downstream builds as Android doesn't implement the SystemV IPC specification that supplies shm_open and other functions that the class relies on. This patch simply makes it unavailable on Android using preprocessor directives.
-
wren romano authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D154662
-
Jason Molenda authored
This reverts commit c3192196. Reverting my second attempt at https://reviews.llvm.org/D139453 changing which dyld notification method is being used. The Intel macOS CI bot is still failing with this rewrite at https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/ I'll need to set up an Intel macOS system running a matching OS version to debug this directly I think.
-
Matt Arsenault authored
There are a number of more test combinations here that can be done together and reduce the number of instructions. https://reviews.llvm.org/D143191
-
Eduard Zingerman authored
This reverts commit 09feee55. Revert because of a testbot failure: https://lab.llvm.org/buildbot/#/builders/5/builds/34931
-
Jason Molenda authored
On Darwin systems, the dynamic linker dyld has an empty function it calls when binaries are added/removed from the process. lldb puts a breakpoint on this dyld function to catch the notifications. The function arguments are used by lldb to tell what is happening. The linker has a natural representation when the addresses of binaries being added/removed are in the pointer size of the process. There is then a second function where the addresses of the binaries are in a uint64_t array, which the debugger has been using before - dyld allocates memory for the array, copies the values in to it, and calls it for lldb's benefit. This changes to using the native notifier function, with pointer-sized addresses. This is the second time landing this change; this time correct the size of the image_count argument, and add a fallback if the notification function "lldb_image_notifier" can't be found. Differential Revision: https://reviews.llvm.org/D139453
-
Lang Hames authored
In OrcAArch64::writeIndirectStubsBlock, masks the high bits of the immediate operand to the stub's ldr instruction so that negative offsets to the stub pointer do not overflow. No testcase -- this fixes most of the OrcLazy testcases for AArch64 (at least on Darwin), but we still need to fix the exception-handling test before we can turn them on.
-
Alexander Yermolovich authored
With different linker, the offset of strings can change. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D154670
-
Douglas Yung authored
-
Alexander Yermolovich authored
With different linker, the offset of strings can change. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D154669
-
Thurston Dang authored
I've temporarily reverted D154272 (which this commit depends on) due to a build breakage, so also reverting this for now. This reverts commit c1e28385.
-
Craig Topper authored
Similar to what we do for orc.b. Another patch will expose this as a builtin in clang.
-
Thurston Dang authored
This reverts my commit 015dabd7 due to breaking non-glibc builds.
-
Volodymyr Sapsai authored
-
Alexander Yermolovich authored
Fixed invalid assembly, where references were not correct. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D154667
-
Joseph Huber authored
This reverts commit a4a26374. This was causing some problems with the CPU build and CUDA buildbot. Revert until I can figure out what those issues are and fix them. I believe it is just some CMake.
-
Rob Suderman authored
Converting between a complex<f32> to i64 could be useful for handling interop between the `arith` and `complex` dialects. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D154663
-
Jim Ingham authored
Also, make it possible for new Targets which haven't been added to the TargetList yet to check for interruption, and add a few more places in building modules where we can check for interruption. Differential Revision: https://reviews.llvm.org/D154542
-
Joseph Huber authored
This is an alternate approach to the patches proposed in D153897 and D153794. Rather than exporting a single header that can be included on the GPU in all circumstances, this patch chooses to instead generate a separate set of headers that only provides the declarations. This can then be used by external tooling to set up what's on the GPU. This leaves room for header hacks for offloading languages without needing to worry about the `libc` implementation. Currently this generates a set of headers that only contain the declarations. These will then be installed to a new clang resource directory called `llvm_libc_wrappers/` which will house the shim code. We can then automaticlaly include this from `clang` when offloading to wrap around the headers while specifying what's on the GPU. Reviewed By: jdoerfert, JonChesterfield Differential Revision: https://reviews.llvm.org/D154036
-
Michael Maitland authored
Since the LMUL data that is needed to create an instrument is avaliable statically from vsetivli and vsetvli instructions, LMUL instruments can be automatically generated so that clients of the tool do no need to manually insert instrument comments. Instrument comments may be placed after a vset{i}vli instruction, which will override instrument that was automatically inserted. As a result, clients of llvm-mca instruments do not need to update their existing instrument comments. However, if the instrument has the same LMUL as the vset{i}vli, then it is reccomended to remove the instrument comment as it becomes redundant. Differential Revision: https://reviews.llvm.org/D154526 -
Michael Maitland authored
This precommit patch shows MaxSafeDepBytesDist is 24 when it should be 8. Differential Revision: https://reviews.llvm.org/D154173
-
Med Ismail Bennani authored
This patch attempts to fix a dead lock when loading modules in a Scripted Process. This issue was triggered by loading the modules after the process did resume, but before the process actually stop, causing the language runtime mutex to be locked by a separate thread, responsible to unwind the stack (using the runtime unwind plan), while the module loading thread was trying to notify the runtimes of the newly loaded module. To address that, this patch moves the module loading logic to be done before sending the stop event, to prevent the dead lock situation described above. Differential Revision: https://reviews.llvm.org/D154649 Signed-off-by:
Med Ismail Bennani <ismail@bennani.ma>
-
Alexander Yermolovich authored
Summary: To reduce memory footprint changed so that we process and write out TUs first, reset DIEBuilder and process CUs. CUs are processed in buckets. First bucket contains all the CUs with cross CU references. Rest processd one at a time. clang-17 build in debug mode, by clang-17. before 8:25.81 real, 834.37 user, 86.03 sys, 0 amem, 79525064 mmem 8:02.20 real, 820.46 user, 81.81 sys, 0 amem, 79501616 mmem 7:52.69 real, 802.01 user, 83.99 sys, 0 amem, 79534392 mmem after 7:49.35 real, 822.04 user, 66.19 sys, 0 amem, 34934260 mmem 7:42.16 real, 825.46 user, 63.52 sys, 0 amem, 34951660 mmem 7:46.71 real, 821.11 user, 63.14 sys, 0 amem, 34981164 mmem Differential Revision: https://phabricator.intern.facebook.com/D45883198
-
Alexander Yermolovich authored
Summary: Changed how we handle writing out .dwo and .dwp files. We now write out DWO sections sooner and destroy DIEBuilder. This should decrease memory footprint. Ran on clang-17 build in debug mode with split-dwarf. before 8:07.49 real, 664.62 user, 69.00 sys, 0 amem, 41601612 mmem 8:07.06 real, 669.60 user, 68.75 sys, 0 amem, 41822588 mmem 8:00.36 real, 664.14 user, 66.36 sys, 0 amem, 41561548 mmem after 8:21.85 real, 682.23 user, 69.64 sys, 0 amem, 39379880 mmem 8:04.58 real, 671.62 user, 66.50 sys, 0 amem, 39735800 mmem 8:10.02 real, 680.67 user, 67.24 sys, 0 amem, 39662888 mmem Differential Revision: https://phabricator.intern.facebook.com/D45458889
-
Alexander Yermolovich authored
Summary: * Some cleanup and minor fixes for the new debug information re-writer before moving on to productatization. * The new rewriter wasn't handling binary with DWARF5 and DWARF4 with -fdebug-types-sections. * Removed dead cross cu reference code. * Added support for DW_AT_sibling. * With the new re-writer abbrev number can change which can lead to offset of Type Units changing. Before we would just copy raw data. Changed to write out Type Unit List. This is generated by gdb-add-index. * Fixed how bolt handles gdb-index generated by gdb-11 with types sections. Simplified logic that handles variations of gdb-index. * Clang can generate two type units with the same hash, but different content. LLD does not de-duplicate when ThinLTO is involved. Changed so that TU hash and offset are used to make TU's unique. * It is possible to have references within location expression to another DIE. Fixed it so that relative offset is updated correctly. * Removed all the code related to patching. * Removed dead code. Changed how we handling writting out TUs and TU Index. It now should fully work for DWARF4 and DWARF5. * Removed unused arguments from some APIs, changed return type to void, and other small cleanups. Test Plan: Reviewers: Subscribers: Tasks: Tags: Differential Revision: https://phabricator.intern.facebook.com/D46168257
-
Alexander Yermolovich authored
Summary: This revision implement new mechanism for DWARFRewriter. In the new mechanism, we adopt the same way with DWARFLinker did. By parsing Debug information into IR, we are allowed to handle debug information more flexible. Now the debug information updating process relies on IR and IR will be written out to binary once the updating finished. A new class was added: DIEBuilder. This class is responsible for parsing debug information and raising it to the IR level. This class is also used to write out the .debug_info and .debug_abbrev sections. Since we output brand new Abbrev section we won't need to always convert low_pc/high_pc into ranges. When conversion does happen we can also remove low_pc entry. Differential Revision: https://phabricator.intern.facebook.com/D39484421 Tasks: T117448832
-
Scott Linder authored
* Relax the AsmParser to accept `.amdhsa_wavefront_size32 0` when the `.amdhsa_shared_vgpr_count` directive is present. * Teach the KD disassembler to respect the setting of KERNEL_CODE_PROPERTY_ENABLE_WAVEFRONT_SIZE32 when calculating the value of `.amdhsa_next_free_vgpr`. * Teach the KD disassembler to disassemble COMPUTE_PGM_RSRC3 for gfx90a and gfx10+. * Include "pseudo directive" comments for gfx10 fields which are not controlled by any assembler directive. * Fix disassembleObject failure diagnostic in llvm-objdump to not hard-code a comment string, and to follow the convention of not capitalizing the first sentence. Reviewed By: rochauha Differential Revision: https://reviews.llvm.org/D128014
-
Felipe de Azevedo Piovezan authored
When LLDB queries the debug names index with a regex, we should use the `Mangled` class wrapper, which attempts to match regex first against the mangled name and then against the demangled name. It is important to do so, otherwise queries like `frame var --regex A::` would never work. This is what is done for the Apple index as well. This fixes test/API/lang/cpp/class_static/main.cpp when compiled with DWARF 5. Differential Revision: https://reviews.llvm.org/D154617
-
Felipe de Azevedo Piovezan authored
Differential Revision: https://reviews.llvm.org/D154610
-
Arthur Eubanks authored
Compile time improvements: https://llvm-compile-time-tracker.com/compare.php?from=a4a2b62495a63516a4f782acff1b19361906546b&to=a408521f71702a5c5fb65077adc23413d8631cfc&stat=instructions:u Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D152744
-
Arthur Eubanks authored
Fixes invariant memory regressions in future DSE patches. Also add a flag to print<memoryssa> to not ensure optimized uses to test this. Noticeable compile time regression [1], but a future DSE change that depends on this more than makes up for it. [1] https://llvm-compile-time-tracker.com/compare.php?from=9d5466849a770eeab222d5a5890376d3596e8ad6&to=95682dbe11d76a3342870437377216e96b167504&stat=instructions:u Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D152859
-
Valentin Clement authored
The return type of the recipe must match the array slice provided by the user. This patch enhance the recipe creation to take into account the constant slices. Depends on D154259 Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D154648
-
Valentin Clement authored
Generate code to allocate privates for trivial scalars and arrays. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D154259
-
Louis Dionne authored
This is NFC because the function object is stateless anyway. This is done solely for consistency with surrounding code and this was probably an oversight in https://reviews.llvm.org/D132505. Differential Revision: https://reviews.llvm.org/D154612
-
Maksim Panchenko authored
GCC requires "class" keyword when variable name matches class name. Reviewed By: ayermolo Differential Revision: https://reviews.llvm.org/D154654
-
Gedare Bloom authored
C89 and C99 list initializers are treated differently than Cpp11 braced initializers. This patch identifies the C array/struct initializer lists by finding the preceding equal sign before a left brace, and applies formatting rules for BracketAlignmentStyle.BlockIndent to those list initializers. Fixes #57878. Differential Revision: https://reviews.llvm.org/D153205
-