- Mar 15, 2022
-
-
Fangrui Song authored
Make .debug_line so larger so that MC will more assuredly compress .debug_line (it doesn't compress a section if compressed content is not smaller).
-
Chris Lattner authored
This reverts commit f18d6af7. This patch is a more controversial than I expected, it is better to revert while the discussion continues. xref this thread: https://discourse.llvm.org/t/doc-mlir-translate-mlir-opt/60751/ xref this phab patch: https://reviews.llvm.org/D120970 Differential Revision: https://reviews.llvm.org/D121668
-
Thomas Raoux authored
The ldmatrix intrinsic trans option was inverted. Bug found by @christopherbate! Differential Revision: https://reviews.llvm.org/D121666
-
Jonas Devlieghere authored
While working on dde487e5 I noticed that the MacOSX platforms were in need of some love. This patch cleans up the headers: - Move platforms into the lldb_private namespace. - Remove lldb_private:: prefixes to improve readability. - Fix header includes and use forward declarations (iwyu). - Fix formatting
-
Keith Smiley authored
On unix systems this logic would not separate the file and directory of the DIFile unless they shared more components at the start than just the root path character. The logic to do this was unix specific so it didn't work on Windows. Now we check if the entire root_path is the same as what you were going to set as the Dir and use the full filepath in that case. Differential Revision: https://reviews.llvm.org/D111579
-
Keith Smiley authored
This adds 2 new lit helpers `%{fs-src-root}` and `%{fs-sep}`, these allow writing tests that correctly handle slashes on Windows. In the case of tests like clang/test/CodeGen/debug-prefix-map.c, these are unable to correctly test behavior on both platforms, unless they fork and add OS requirements, because the relevant logic hits host specific codepaths like checking if paths are absolute. Differential Revision: https://reviews.llvm.org/D111457 -
-
Ruiling Song authored
I met the issue here when working on something else. Actually we have already reserved EXEC, but it looks like the register coalescer is causing the sub-register of EXEC appears in LiveIntervals. I have not looked deeper why register coalscer have such behavior, but removeAllRegUnitsForPhysReg() is the right way. Reviewed By: critson, foad, arsenm Differential Revision: https://reviews.llvm.org/D117014
-
Petr Hosek authored
We should be building iossim for x86_64, not arm64. Differential Revision: https://reviews.llvm.org/D121659
-
Jez Ng authored
All references to interposable symbols can be redirected at runtime to point to a different symbol definition (with the same name). For example, if both dylib A and B define symbol _foo, and we load A before B at runtime, then all references to _foo within dylib B will point to the definition in dylib A. ld64 makes all extern symbols interposable when linking with `-flat_namespace`. TODO 1: Support `-interposable` and `-interposable_list`, which should just be a matter of parsing those CLI flags and setting the `Defined::interposable` bit. TODO 2: Set Reloc::FinalDefinitionInLinkageUnit correctly with this info (we are currently not setting it at all, so we're erring on the conservative side, but we should help the LTO backend generate more optimal code.) Reviewed By: modimo, MaskRay Differential Revision: https://reviews.llvm.org/D119294
-
Jez Ng authored
Previously, we only allowed this for DylibSymbols. However, in order to properly support `-flat_namespace` as well as `-interposable`, we need to allow this for Defined symbols too. Therefore we hoist the `lazyBindOffset` and the `stubsHelperIndex` into the parent Symbol class. The actual change to support interposition under `-flat_namespace` is in {D119294}; the NFC changes here have been split out for easier review. Perf regression isn't stat sig on my 3.2 GHz 16-Core Intel Xeon W linking chromium_framework: base diff difference (95% CI) sys_time 1.227 ± 0.021 1.234 ± 0.031 [ -0.3% .. +1.5%] user_time 3.665 ± 0.036 3.674 ± 0.035 [ -0.2% .. +0.7%] wall_time 4.596 ± 0.055 4.609 ± 0.064 [ -0.3% .. +0.9%] samples 34 47 Max RSS regression is barely stat sig: base diff difference (95% CI) ... -
Owen Pan authored
Fixes #53495 Differential Revision: https://reviews.llvm.org/D121576
-
Joseph Huber authored
-
Joseph Huber authored
Summary: A previous patch added the offloading kind to the triple format we used. I forgot to update the line where we add the AMDGPU libraries.
-
LLVM GN Syncbot authored
-
Julian Lettner authored
For MachO, lower `@llvm.global_dtors` into `@llvm_global_ctors` with `__cxa_atexit` calls to avoid emitting the deprecated `__mod_term_func`. Reuse the existing `WebAssemblyLowerGlobalDtors.cpp` to accomplish this. Enable fallback to the old behavior via Clang driver flag (`-fregister-global-dtors-with-atexit`) or llc / code generation flag (`-lower-global-dtors-via-cxa-atexit`). This escape hatch will be removed in the future. Differential Revision: https://reviews.llvm.org/D121327
-
Joseph Huber authored
Nvidia uses fatbinaries to bundle all of their device code. This patch adds the magic number "0x50ed55ba" used in their propeitary format to the list of magic identifies. This is technically undocumented and could unlikely be changed by Nvidia in the future. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D120932
-
Joseph Huber authored
This path refactors the new driver to be less dependent on OpenMP. This is done in preparation for the new driver to be able to handle other offloading kinds and compile them together. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D120934
-
Joseph Huber authored
This patch adds the offload kind to the embedded section name in preparation for offloading to different kinda like CUDA or HIP. Depends on D120288 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D120271
-
Joseph Huber authored
This patch implements a DenseMap info struct for the device file type. This is used to help grouping device files that have the same triple and architecture. Because of this the filename, which will always be unique for each file, is not used. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D120288
-
Joseph Huber authored
Currently we use the `-fembed-offload-object` option to embed a binary file into the host as a named section. This is currently only used as a codegen action, meaning we only handle this option correctly when the input is a bitcode file. This patch adds the same handling to embed an offloading object after we complete code generation. This allows us to embed the object correctly if the input file is source or bitcode. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D120270
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D121634
-
Stanislav Mekhanoshin authored
The namespaces of HWREGs is now overlapping with gfx10. Thus the patch is longer than necessary to just support new names. It also need to handle proper error messages, i.e. to issue a "specified hardware register is not supported on this GPU" message. This may need a major refactoring in the future. Differential Revision: https://reviews.llvm.org/D121418
-
Andrew Browne authored
https://github.com/llvm/llvm-project/issues/54172 Reviewed By: pcc Differential Revision: https://reviews.llvm.org/D121250
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D121414
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D121401
-
Ryan Prichard authored
The fix for D111703 clobbered r4 both to: - Save/restore the original lr. - Load the address of _Unwind_Resume for LIBCXXABI_BAREMETAL. This patch saves and restores lr without clobbering any extra registers. For LIBCXXABI_BAREMETAL, it is still necessary to clobber one extra register to hold the address of _Unwind_Resume, but it seems better to use ip/r12 (intended for linker veneers/trampolines) than r4 for this purpose. The function also clobbers r0 for the _Unwind_Resume function's parameter, but that is unavoidable. Reviewed By: danielkiss, logan, MaskRay Differential Revision: https://reviews.llvm.org/D121432
-
Dávid Bolvanský authored
Compatible behaviour with always_inline stmt attribute
-
Jim Ingham authored
They don't require that the memory return address be restored prior to function exit, so there's no guarantee the value is correct. It's better to return nothing that something that's not accurate. Differential Revision: https://reviews.llvm.org/D121348
-
Stanislav Mekhanoshin authored
Both VADDR and SADDR are used in SVS mode. Differential Revision: https://reviews.llvm.org/D121254
-
Sterling Augustine authored
This reverts commit e049a87f. That commit breaks the build with errors of the form: /usr/local/google/home/saugustine/llvm/llvm-project/lld/MachO/ExportTrie.cpp:148:11: error: definition of implicitly declared destructor TrieNode::~TrieNode() {
-
Peter Klausler authored
The intrinsic module IEEE_ARITHMETIC must incorporate the public names from the intrisic module IEEE_EXCEPTIONS. Rename IEEE_EXCEPTIONS to __Fortran_ieee_exceptions so that it won't clash with the nonintrinsic namespace, establish a new intrinic IEEE_EXCEPTIONS module that USEs it, and add a USE to IEEE_ARITHMETIC. Updated to use STREQUAL rather than ambiguous MATCHES in the CMakeLists.txt file. Differential Revision: https://reviews.llvm.org/D121490
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D121242
-
Andrew Litteken authored
When matching PHINodes when margining functions the IROutliner only checks that an incoming value exists in phi node in overall function. It doesn't check the length, the order, or that the incoming block also matches. In the given example, we see that both phi nodes have the same incoming values, but from different blocks. The fix is to to enforce stricter a match of the incoming value, and the incoming block as well when matching the created phi nodes. Reviewers: paquette Differential Revision: https://reviews.llvm.org/D121310
-
Craig Topper authored
If we have a logical and/or in select form and the true/false operand is an fcmp with poison generating FMF, we won't be able to fold it to an and/or instruction. This prevents us from optimizing the case where it is a logical operation of two fcmps with identical operands. This patch adds explicit checks for this case that doesn't rely on converting to and/or to do the optimization. It reuses the existing foldLogicOfFCmps, but adds a new flag to disable the other combine that is inside that function. FMF flags from the two FCmps are intersected using the logic added in D121243. The FIXME has been updated to indicate that we can only use a union for the non-select form. This allows us to optimize cases like this from compare-fp-3.c in the gcc torture suite with fast math. void test1 (float x, float y) { if ((x==y) && (x!=y)) link_error0(); } Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D121323 -
Nick Desaulniers authored
2 of the 3 callsite of IRMover::move() pass empty lambda functions. Just make this parameter llvm::unique_function. Came about via discussion in D120781. Probably worth making this change regardless of the resolution of D120781. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D121630
-
Vy Nguyen authored
The code can be used in multi-threads and the allocator is not thread safe. fixes PR/54378 Reviewed By: int3, #lld-macho Differential Revision: https://reviews.llvm.org/D121638
-
Simon Pilgrim authored
-
Dávid Bolvanský authored
-