- Mar 19, 2021
-
-
Wei Mi authored
value profile annotated after inlining. In https://reviews.llvm.org/D96806 and https://reviews.llvm.org/D97350, we use the magic number -1 in the value profile to avoid repeated indirect call promotion to the same target for an indirect call. Function updateIDTMetaData is used to mark an target as being promoted in the value profile with the magic number. updateIDTMetaData is also used to update the value profile when an indirect call is inlined and new inline instance profile should be applied. For the second case, currently updateIDTMetaData mixes up the existing value profile of the indirect call with the new profile, leading to the problematic senario that a target count is larger than the total count in the value profile. The patch fixes the problem. When updateIDTMetaData is used to update the value profile after inlining, all the values in the existing value profile will be dropped except the values with the magic numbe...
-
Mircea Trofin authored
This reverts commit 11b70b9e. The bot failure was due to ArgumentPromotion deleting functions without deleting their analyses. This was separately fixed in 4b1c8070.
-
Ricky Taylor authored
This is a test commit to verify my access.
-
Mircea Trofin authored
Not doing it here can lead to subtle bugs - the analysis results are associated by the Function object's address. Nothing stops the memory allocator from allocating new functions at the same address.
-
Mike Rice authored
Added basic parsing/sema/serialization support to extend the existing 'destroy' clause for use with the 'interop' directive. Differential Revision: https://reviews.llvm.org/D98834
-
Chris Lattner authored
Valgrind is reporting this bogus warning because it doesn't model pthread_sigmask fully accurately. This is a valgrind bug, but silencing it has effectively no cost, so just do it. ==73662== Syscall param __pthread_sigmask(set) points to uninitialised byte(s) ==73662== at 0x101E9D4C2: __pthread_sigmask (in /usr/lib/system/libsystem_kernel.dylib) ==73662== by 0x101EFB5EA: pthread_sigmask (in /usr/lib/system/libsystem_pthread.dylib) ==73662== by 0x1000D9F6D: llvm::sys::Process::SafelyCloseFileDescriptor(int) (in /Users/chrisl/Projects/circt/build/bin/firtool) ==73662== by 0x100072795: llvm::ErrorOr<std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer> > > getFileAux<llvm::MemoryBuffer>(llvm::Twine const&, long long, unsigned long long, unsigned long long, bool, bool) (in /Users/chrisl/Projects/circt/build/bin/firtool) ==73662== by 0x100072573: llvm::MemoryBuffer::getFileOrSTDIN(llvm::Twine const&, long long, bool) (in /Users/chrisl/Projects/circt/build/bin/firtool) ==73662== by 0x100282C25: mlir::openInputFile(llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (in /Users/chrisl/Projects/circt/build/bin Differential Revision: https://reviews.llvm.org/D98830
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D98804
-
- Mar 18, 2021
-
-
Jon Chesterfield authored
[amdgpu] Update med3 combine to skip i64 Fixes an assumption that a type which is not i32 will be i16. This asserts when trying to sign/zero extend an i64 to i32. Test case was cut down from an openmp application. Variations on it are hit by other combines before reaching the problematic one, e.g. replacing the immediate values with other function arguments changes the codegen path and misses this combine. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D98872
-
Asher Mancinelli authored
Create test fixture for runtime tests which enables verification of failure cases. Test some runtime IO APIs for failure cases. Support testing efforts in D98303. Expand on effort discussed in D98601. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D98652
-
Nigel Perks authored
The pass can be seen on staging buildbot clang-xcore-ubuntu-20-x64. Differential Revision: https://reviews.llvm.org/D98352
-
Simon Pilgrim authored
Extend this to support ComputeNumSignBits of the (used) source vector elements so that we can handle more than just the case where we're sext_in_reg from the source element signbit. Noticed while investigating the poor codegen in D98587.
-
Alexander Belyaev authored
Also use `ArrayAttr` to pass iterator pass to the TiledLoopOp builder. Differential Revision: https://reviews.llvm.org/D98871
-
Sid Manning authored
Allow inline assembly code to referece cs0 and cs1.
-
LLVM GN Syncbot authored
-
caoming.roy authored
Implement command-line options -map Reviewed By: int3, #lld-macho Differential Revision: https://reviews.llvm.org/D98323
-
Pavel Labath authored
Fix the test to account for recent test infrastructure changes, and make it run locally to increase the chances of it continuing to work in the future.
-
Andrzej Warzynski authored
Adds support for `-fget-symbols-sources` in the new Flang driver. All relevant tests are updated to use the new driver when `FLANG_BUILD_NEW_DRIVER` is set. `RUN` lines in tests are updated so `-fsyntax-only` comes before `-fget-symbols-sources`. That's because: * both `-fsyntax-only` and `-fget-symbols-sources` are action flags, and * the new driver, flang-new, will only consider the right-most action flag. In other words, this change is needed so that the tests work with both `f18` (requires both flags) and `flang-new` (only considers the last action flag). Differential Revision: https://reviews.llvm.org/D98191 -
Andrew Savonichev authored
Delay the issue of a new instruction if that leads to out-of-order commits of writes. This patch fixes the problem described in: https://bugs.llvm.org/show_bug.cgi?id=41796#c3 Differential Revision: https://reviews.llvm.org/D98604
-
Jay Foad authored
-
David Truby authored
Co-authored-by:
Kiran Chandramohan <kiran.chandramohan@arm.com> Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D92327
-
Simon Pilgrim authored
-
Matt Arsenault authored
Pass through the original argument IR value in order to preserve the aliasing information in the memcpy memory operands.
-
Matt Arsenault authored
byval requires an implicit copy between the caller and callee such that the callee may write into the stack area without it modifying the value in the parent. Previously, this was passing through the raw pointer value which would break if the callee wrote into it. Most of the time, this copy can be optimized out (however we don't have the optimization SelectionDAG does yet). This will trigger more fallbacks for AMDGPU now, since we don't have legalization for memcpy yet (although we should stop using byval anyway).
-
Alexey Bataev authored
If SLP vectorizer tries to extend the scheduling region and runs out of the budget too early, but still extends the region to the new ending instructions (i.e., it was able to extend the region for the first instruction in the bundle, but not for the second), the compiler need to recalculate dependecies in full, just like if the extending was successfull. Without it, the schedule data chunks may end up with the wrong number of (unscheduled) dependecies and it may end up with the incorrect function, where the vectorized instruction does not dominate on the extractelement instruction. Differential Revision: https://reviews.llvm.org/D98531
-
Alexey Lapshin authored
This patch is follow-up for D91028. It implements direct writing into the output stream for wasm. Depends on D91028 Differential Revision: https://reviews.llvm.org/D95478
-
Martin Storsjö authored
If producing libraries with an arch suffix (i.e. if LLVM_ENABLE_PER_TARGET_RUNTIME_DIR isn't set), we append the architecture name. However, for arm, clang doesn't look for libraries with the full architecture name, but only looks for "arm" and "armhf". Try to deduce what the full target triple might have been, and use that for deciding between "arm" and "armhf". This tries to reapply this bit from D98173, that had to be reverted in 7b153b43 due to affecting how the builtins themselves are compiled, not only affecting the output file name. Differential Revision: https://reviews.llvm.org/D98452
-
Max Kazantsev authored
-
Max Kazantsev authored
Just makes code simpler.
-
Max Kazantsev authored
Provides API that allows to check predicate for being true or false with one call. Current implementation is naive and just calls isKnownPredicate twice, but further we can rework this logic trying to use one check to prove both facts.
-
Thomas Preud'homme authored
LLVM test CodeGen/AArch64/machine-outliner-retaddr-sign-thunk.ll uses a string substitution block that contains a regex matching block. This seems like as a copy/paste from other similar test where the match also defines a variable, hence the [[]] syntax. In this case however this is a CHECK-NOT variable so nothing should match. No variable definition is thus expected and the square brackets can be dropped. Reviewed By: chill Differential Revision: https://reviews.llvm.org/D98853
-
Sven van Haastregt authored
The `int` and `long` versions of these builtins already provide the necessary overloads for `intptr_t` and `uintptr_t` arguments, as `ASTContext` defines `atomic_(u)intptr_t` in terms of the `int` or `long` types. Prior to this patch, calls to those builtins with particular argument types resulted in call-is-ambiguous errors. Differential Revision: https://reviews.llvm.org/D98520
-
Thomas Preud'homme authored
Clang test acle_sve_ld1.sh is missing the colon in one of the string variable definition separating the variable name from the regex. This leads the substitution block to be parsed as a numeric variable use. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D98852
-
Sanjay Patel authored
This makes the induction part of the loop vectorizer match the reduction part. We do not need all of the fast-math-flags. For example, there are some that clearly are not in play like arcp or afn. If we want to make FMF constraints consistent across the IR optimizer, we might want to add nsz too, but that's up for debate (users can't expect associative FP math and preservation of sign-of-zero at the same time?). The calling code was fixed to avoid miscompiles with: 1bee5497 Differential Revision: https://reviews.llvm.org/D98708
-
Balazs Benics authored
After the import, we did not copy the `TSCSpec`. This commit resolves that. Reviewed By: balazske Differential Revision: https://reviews.llvm.org/D98707
-
Valeriy Savchenko authored
-
Elizabeth Andrews authored
This patch is a second attempt at fixing a link error for MSVC entry points when calling conventions are specified using a flag. Calling conventions specified using flags should not be applied to MSVC entry points. The default calling convention is set in this case. The default calling convention for MSVC entry points main and wmain is cdecl. For WinMain, wWinMain and DllMain, the default calling convention is stdcall on 32 bit Windows. Explicitly specified calling conventions are applied to MSVC entry points. For MinGW, the default calling convention for all MSVC entry points is cdecl. First attempt: 4cff1b40 Revert of first attempt: bebfc3b9 Differential Revision: https://reviews.llvm.org/D97941
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Alexey Lapshin authored
This patch removes creation of the resulting file from the executeObjcopyOnBinary() function. For the most use cases, the executeObjcopyOnBinary receives output file as a parameter - raw_ostream &Out. The splitting .dwo file is implemented differently: file containg .dwo tables is created inside executeObjcopyOnBinary(). When objcopy functionality would be moved into separate library, current implementation will become inconvenient. The goal of that refactoring is to separate concerns: It might be convenient to to do dwo tables splitting but to create resulting file differently. Differential Revision: https://reviews.llvm.org/D98582
-
Simon Pilgrim authored
Add ISD::ABS to the existing unary instructions handling for splat detection This is similar to D83605, but doesn't appear to need to touch any of the wasm refactoring. Differential Revision: https://reviews.llvm.org/D98778
-