This project is mirrored from https://github.com/llvm/llvm-project.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Apr 08, 2022
-
-
Kevin Athey authored
Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D122851
-
Walter Erquinigo authored
Some parts of the code have to distinguish between live and postmortem threads to figure out how to get some data, e.g. thread trace buffers. This makes the code less generic and more error prone. An example of that is that we have two different decoders: LiveThreadDecoder and PostMortemThreadDecoder. They exist because getting the trace bufer is different for each case. The problem doesn't stop there. Soon we'll have even more kinds of data, like the context switch trace, whose fetching will be different for live and post- mortem processes. As a way to fix this, I'm creating a common API for accessing thread data, which is able to figure out how to handle the postmortem and live cases on behalf of the caller. As a result of that, I was able to eliminate the two decoders and unify them into a simpler one. Not only that, our TraceSave functionality only worked for live threads, but now it can also work for postmortem processes, which might be useful now, but it might in the future. This common API is OnThreadBinaryDataRead. More information in the inline documentation. Differential Revision: https://reviews.llvm.org/D123281
-
Walter Erquinigo authored
As we soon will need to decode multiple raw traces for the same thread, having a class that encapsulates the decoding of a single raw trace is a stepping stone that will make the coming features easier to implement. So, I'm creating a LibiptDecoder class with that purpose. I refactored the code and it's now much more readable. Besides that, more comments were added. With this new structure, it's also easier to implement unit tests. Differential Revision: https://reviews.llvm.org/D123106
-
Arthur Eubanks authored
-
Jorge Gorbe Moya authored
Using a portable format specifier avoids a "format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]" error depending on the exact definition of `uint64_t`.
-
Zequan Wu authored
This fixes the issue when the current line offset is actually for next range. Maintain a current code range with current line offset and cache next file/line offset. Update file/line offset after finishing current range. Differential Revision: https://reviews.llvm.org/D123151
-
Jez Ng authored
This diff is motivated by my work to add proper DWARF unwind support. As detailed in PR50956 functions that need DWARF unwind need to have compact unwind entries synthesized for them. These CU entries encode an offset within `__eh_frame` that points to the corresponding DWARF FDE. In order to encode this offset during `UnwindInfoSectionImpl::finalize()`, we need to first assign values to `InputSection::outSecOff` for each `__eh_frame` subsection. But `__eh_frame` is ordered after `__unwind_info` (according to ld64 at least), which puts us in a bit of a bind: `outSecOff` gets assigned during finalization, but `__eh_frame` is being finalized after `__unwind_info`. But it occurred to me that there's no real need for most ConcatOutputSections to be finalized sequentially. It's only necessary for text-containing ConcatOutputSections that may contain branch relocs which may need thunks. ConcatOutputSections containing other types of data can be finalized in any order. This diff moves the finalization logic for non-text sections into a separate `finalizeContents()` method. This method is called before section address assignment & unwind info finalization takes place. In theory we could call these `finalizeContents()` methods in parallel, but in practice it seems to be faster to do it all on the main thread. Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D123279
-
Stanislav Mekhanoshin authored
It was only handled for FLAT initially because we did not have unaligned DS instructions lowering. Now it is implemented but the bug is not handled. Differential Revision: https://reviews.llvm.org/D123338
-
Pengxuan Zheng authored
Compiler-rt cross-compile for ARMv5 fails because D99282 made it an error if DMB is used for any pre-ARMv6 targets. More specifically, the "#error only supported on ARMv6+" added in D99282 will cause compilation to fail when any source file which includes assembly.h are compiled for pre-ARMv6 targets. Since the only place where DMB is used is syn-ops.h (which is only included by arm/sync_fetch_and_* and these files are excluded from being built for older targets), this patch moves the definition there to avoid the issues described above. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D123105
-
Quinn Pham authored
This reverts commit 2aae5b1f. Because it breaks tests on windows.
-
Fangrui Song authored
This reverts commit 764cd491, which I incorrectly assumed NFC partly because there were no test coverage for the non-relocatable non-emit-relocs case before 9d6d936243fe343abe89323a27c7241b395af541. The interaction of {,-r,--emit-relocs} {,--discard-locals} {,--gc-sections} is complex but without -r/--emit-relocs, --gc-sections does need to discard .L symbols like --no-gc-sections. The behavior matches GNU ld.
-
Stanislav Mekhanoshin authored
There is no need to fully scalarize an unaligned operation in some case, just split it to alignment. Differential Revision: https://reviews.llvm.org/D123330
-
Fangrui Song authored
-
Florian Hahn authored
Reduced test for #54427.
-
Quinn Pham authored
This patch changes `EmitPPCBuiltinExpr` in `CGBuiltin.cpp` to remove the loop at the beginning of the function that emits the arguments and to delay emitting the arguments until inside the switch statement. These changes will put `EmitPPCBuiltinExpr` in line with the strategy of the target independent function `EmitBuiltinExpr`. Also, this patch ensures that arguments are only emitted once. Tests that included builtins affected by these changes have been modified to match expected behaviour. Reviewed By: #powerpc, nemanjai, amyk Differential Revision: https://reviews.llvm.org/D121637
-
Jonas Devlieghere authored
Implement Pavel's suggestion to use llvm::sys::fs::getMainExecutable to find the executable name for llvm::sys::PrintStackTraceOnErrorSignal.
-
Mark de Wever authored
This reverts commit 82427685. This seems to break the AIX-32 bit build.
-
Luboš Luňák authored
If the variables view shows a variable that is a struct that has MightHaveChildren(), the expand diamond is shown, but if trying to expand it and it's not possible (e.g. incomplete type), remove the expand diamond to visualize that it can't be in fact expanded. Otherwise it feels kinda weird that a tree item cannot be expanded even though it "should". I guess the MightHaveChildren() checking means that GetChildren() may be expensive, so also do not call it for rows that are not expanded. Differential Revision: https://reviews.llvm.org/D123008
-
Luboš Luňák authored
Differential Revision: https://reviews.llvm.org/D123015
-
Craig Topper authored
I assume we meant to return the result of the call to BaseT::isLoweredToCall(F). This might not be a functional change in practice because it would still hit the default case in the switch and call BaseT::isLoweredToCall(F) at the end. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D123333
-
Nico Weber authored
I was wondering if SymtabSection::emitStabs() should check defined->includeInSymtab. Add asserts and comments explaining why that's not necessary. No behavior change. Differential Revision: https://reviews.llvm.org/D123302
-
Emil Kieri authored
We aim at improving the readability and maintainability of Options.td, and in particular its handling of 'Flags', by - limiting the extent of 'let Flags = [...] in {'s, and - adding closing comments to matching '}'s. - being more consistent about empty lines around 'let Flags' and '}'. More concretely, - we do not let a 'let Flags' span across several headline comments. When all 'def's in two consecutive headlines share the same flags, we stil close and start a new 'let Flags' at the intermediate headline. - when a 'let Flags' span just one or two 'def's, set 'Flags' within the 'def's instead. - we remove nested 'let Flags'. Note that nested 'let Flags' can be quite confusing, especially when the outer was started long before the inner. Moving a 'def' out of the inner 'let Flags' and setting 'Flags' within the 'def' will not have the intended effect, as those flags will be overridden by the outer 'let Flags'. Reviewed By: awarzynski, jansvoboda11, hans Differential Revision: https://reviews.llvm.org/D123070
-
River Riddle authored
Reland [GreedPatternRewriter] Preprocess constants while building worklist when not processing top down Reland Note: Adds a fix to properly mark a commutative operation as folded if we change the order of its operands. This was uncovered by the fact that we no longer re-process constants. This avoids accidentally reversing the order of constants during successive application, e.g. when running the canonicalizer. This helps reduce the number of iterations, and also avoids unnecessary changes to input IR. Fixes #51892 Differential Revision: https://reviews.llvm.org/D122692
-
Jez Ng authored
{D118797} means that we can now check the name/segname of a given section directly, instead of having to look those properties up on one of its subsections. This allows us to simplify our code. Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D123275
-
David Green authored
An insert subvector under aarch64 can often be done as a single lane mov operation. For example a v4i8 inserted into a v16i8 is a s-reg mov, so long as the index is a multiple of 4. This teaches the cost model that, using code copied over from the X86 backend. Some of the costs (v16i16_4_0) are still high because they get matched as a SK_Select, not an SK_InsertSubvector. D120879 has some codegen tests for inserting subvectors, which I were added as llvm/test/CodeGen/AArch64/insert-subvector.ll. Differential Revision: https://reviews.llvm.org/D120880
-
Joseph Huber authored
This patch adds the `llvm_omp_target_dynamic_shared_alloc` function to the `omp.h` header file so users can access it by default. Also changed the name to keep it consistent with the other target allocators. Added some documentation so users know how to use it. Didn't add the interface for Fortran since there's no way to test it right now. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D123246
-
Joseph Huber authored
The target allocators have been supported for NVPTX offloading for awhile. The tests should use the allocators instead of calling the functions manually. Also the comments indicating these being a preview should be removed. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D123242
-
Mogball authored
Builders generated for ops with variadic regions and inferred return types were not being correctly generated (missing parameter).
-
Jonas Devlieghere authored
As noticed in D87637, when LLDB crashes, we only print stack traces if LLDB is directly executed, not when used via Python bindings. Enabling this by default may be undesirable (libraries shouldn't be messing with signal handlers), so make this an explicit opt-in. I "commandeered" this patch from Jordan Rupprecht who put this up for review originally. Differential revision: https://reviews.llvm.org/D91835
-
Alex Brachet authored
-
Alex Brachet authored
-
Nathan James authored
Fixes https://github.com/llvm/llvm-project/issues/53515. Reviewed By: LegalizeAdulthood Differential Revision: https://reviews.llvm.org/D118927
-
Daniel Grumberg authored
Differential Revision: https://reviews.llvm.org/D123295
-
natashaknk authored
In addition, fixed a small bug with padding incorrectly inferring output shape for dynaic inputs in convolution Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D121872
-
Augie Fackler authored
Spotted during review of D123052. Differential Revision: https://reviews.llvm.org/D123232
-
Simon Pilgrim authored
Test coverage for Issue #34550
-
Pavel Samolysov authored
The code to check if the regular LTO summary should be emitted and to add the corresponding module flags was duplicated in the 'EmitAssemblyHelper::EmitAssemblyWithLegacyPassManager' and 'EmitAssemblyHelper::RunOptimizationPipeline' methods. In order to eliminate these code duplications, the 'EmitAssemblyHelper::shouldEmitRegularLTOSummary' method has been extracted. The method returns a bool value, the value is 'true' if the module summary should be emitted. The patch keeps the setting of the module flags inline. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D123026
-
Mark de Wever authored
The code accidentally uses a hard-coded value. Use a constant to make sure the same value is used at both places.
-
Zixu Wang authored
Objective-C methods selector parts should be considered as identifiers. Depends on D123259 Differential Revision: https://reviews.llvm.org/D123261
-
Arthur Eubanks authored
Ephemeral values cannot cause a pointer to escape. No change in compile time: https://llvm-compile-time-tracker.com/compare.php?from=4371710085ba1c376a094948b806ddd3b88319de&to=c5ddbcc4866f38026737762ee8d7b9b00395d4f4&stat=instructions This partially fixes some regressions caused by more calls to `__builtin_assume` (D122397). Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D123162
-