- Oct 29, 2020
-
-
Aaron Puchert authored
This was requested in the review of D90129.
-
Aaron Puchert authored
We collect the source location of a trailing return type in the parser, improving the location for regular functions and providing a location for lambdas, where previously there was none. Fixes PR47732. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D90129
-
Keith Smiley authored
This diff refactors error reporting to make it more clear what arguments were passed to llvm-install-name-tool. Test plan: make check-all Differential revision: https://reviews.llvm.org/D90080
-
Craig Disselkoen authored
This adds support for scalable vector types in the C API and in llvm-c-test, and also adds a test to ensure that llvm-c-test can properly roundtrip operations involving scalable vectors. While creating this diff, I discovered that the C API cannot properly roundtrip _constant expressions_ involving shufflevector / scalable vectors, but that seems to be a separate enough issue that I plan to address it in a future diff (unless reviewers feel it should be addressed here). Differential Revision: https://reviews.llvm.org/D89816
-
Kostya Kortchinsky authored
In a similar fashion to D87420 for Scudo, this CL introduces a way to get thread local variables via a platform-specific reserved TLS slot, since Fuchsia doesn't support ELF TLS from the libc itself. If needing to use this, a platform will have to define `GWP_ASAN_HAS_PLATFORM_TLS_SLOT` and provide `gwp_asan_platform_tls_slot.h` which will define a `uint64_t *getPlatformGwpAsanTlsSlot()` function that will return the TLS word of storage. I snuck in a couple of cleanup items as well, moving some static functions to anonymous namespace for consistency. Differential Revision: https://reviews.llvm.org/D90195
-
Jay Foad authored
V_DIV_SCALE_F32/F64 are VOP3B encoded so they can't use the ABS src modifier, but they can still use NEG and the usual output modifiers. This partially reverts 3b99f12a "AMDGPU: Remove modifiers from v_div_scale_*". Differential Revision: https://reviews.llvm.org/D90296
-
Florian Hahn authored
The following constraints hold for swifterror values: A swifterror value (either the parameter or the alloca) can only be loaded and stored from, or used as a swifterror argument. This patch updates instcombine to not try to convert a bitcast of a function into a bitcast of a swifterror argument. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D90258 -
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D90317
-
Jay Foad authored
D9844 fixed a problem where the ss suffix in the AsmString "cmp${cc}ss" was recognised as the X86 SS register, by only recognising a token as a register name if it is "isolated", i.e. surrounded by separator characters. In the AMDGPU backend there are many operands like $clamp which expand to an optional string " clamp" including the preceding space, so we want to have AsmStrings including sequences like "vcc$clamp" where vcc is a register name. This patch relaxes the rules for an isolated token, to say that it's OK if the token is immediately followed by a '$'. Differential Revision: https://reviews.llvm.org/D90315 -
Florian Hahn authored
When moving +0.0 into a float vector, we can use to vi*gpr variants of INS. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D90176
-
Austin Kerbow authored
Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D90334
-
Philip Reames authored
When trying to prove that a memory access touches only dereferenceable memory across all iterations of a loop, use the maximum exit count rather than an exact one. In many cases we can't prove exact exit counts whereas we can prove an upper bound. The test included is for a single exit loop with a min(C,V) exit count, but the true motivation is support for multiple exits loops. It's just really hard to write a test case for multiple exits because the vectorizer (the primary user of this API), bails far before this. For multiple exits, this allows a mix of analyzeable and unanalyzable exits when only analyzeable exits are needed to prove deref.
-
Richard Smith authored
classes into the enclosing block scope. We weren't properly detecting whether the name would be injected into a block scope in the case where it was lexically declared in a local class.
-
Sean Silva authored
This fixes a subtle issue, described in the comment starting with "Clone the op without the regions and inline the regions from the old op", which prevented this conversion from working on non-trivial examples. Differential Revision: https://reviews.llvm.org/D90203
-
Michael Park authored
This commit is a mass re-application of the following commits: 7d15ece7 e0ec7a02 02197f7e a175a965 Those were temporarily reverted in 057028ed, and never re-applied. Re-committed by @ldionne (author edited for credit). Differential Revision: https://reviews.llvm.org/D90168
-
Louis Dionne authored
Previously, if make_paths_relative() failed due to some reason, it would happily keep going and set the ${out_pathlist} to the standard output of the command, which would be the empty string if the command failed. This can lead to issues that are difficult to diagnose, since the calling code will usually try to keep going with a variable that was set to the empty string. Differential Revision: https://reviews.llvm.org/D89985 -
LLVM GN Syncbot authored
-
Alexander Belyaev authored
-
Duncan P. N. Exon Smith authored
Split `FileEntry` and `FileEntryRef` out into a new file `clang/Basic/FileEntry.h`. This allows current users of a forward-declared `FileEntry` to transition to `FileEntryRef` without adding more includers of `FileManager.h`. Also split `UniqueID` out to llvm/Support/FileSystem/UniqueID.h, so `FileEntry.h` doesn't need to include all of `FileSystem.h` for just that type. Differential Revision: https://reviews.llvm.org/D89761
-
Dávid Bolvanský authored
Use LocationSize::upperBound instead of precise since we only know an upper bound on the number of bytes read/written. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D89885
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D90235
-
Adrian Prantl authored
The support of a few debug info attributes specifically for Fortran arrays have been added to LLVM recently, but there's no way to take advantage of them through DIBuilder. This patch extends DIBuilder::createArrayType to enable the settings of those attributes. Patch by Chih-Ping Chen! Differential Review: https://reviews.llvm.org/D90323
-
Alok Kumar Sharma authored
This is needed to support fortran assumed rank arrays which have runtime rank. Summary: Fortran assumed rank arrays have dynamic rank. DWARF TAG DW_TAG_generic_subrange is needed to support that. Testing: unit test cases added (hand-written) check llvm check debug-info Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D89218
-
Arthur Eubanks authored
Branch weights are not represented internally linearly with the value in the IR. In its current state the test happened to pass, but the branch weights for 0,3,6 and 2,5,8,9 were not actually equal. $ opt -passes='print<branch-prob>' shows that the sum of the branch probabilities going to bb0 and bb2 were not the same. Printing analysis results of BPI for function 'bt_order_by_weight': ---- Branch Probabilities ---- edge entry -> bb0 probability is 0x00000003 / 0x80000000 = 0.00% edge entry -> bb2 probability is 0x00000004 / 0x80000000 = 0.00% with this change: Printing analysis results of BPI for function 'bt_order_by_weight': ---- Branch Probabilities ---- edge entry -> bb0 probability is 0x00000004 / 0x80000000 = 0.00% edge entry -> bb2 probability is 0x00000004 / 0x80000000 = 0.00% Reviewed By: hans Differential Revision: https://reviews.llvm.org/D90273 -
Shilei Tian authored
Previously we added support for target nowait, but target data nowait has not been supported yet. In this patch, target data nowait will also be wrapped into a task. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D90099
-
Florian Hahn authored
If most elements of BUILD_VECTOR are the same, with a few different elements, it is better to use DUP for the common elements and INSERT_VECTOR_ELT for the different elements. Currently this transform is guarded quite restrictively to only trigger in clearly beneficial cases. With D90176, the lowering for patterns originating from code like ` float32x4_t y = {a,a,a,0};` (common in 3D apps) are lowered even better (unnecessary fmov is removed). Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D90233 -
YAMAMOTO Takashi authored
Found during a NuttX porting effort. But these changes are not directly relevant to NuttX. Differential Revision: https://reviews.llvm.org/D90139
-
Mircea Trofin authored
Changing to pass by ref - less null checks to worry about. Differential Revision: https://reviews.llvm.org/D90330
-
Aditya Nandakumar authored
https://reviews.llvm.org/D88060 This adds the following combines 1) build_vector formation from insert_vec_elts 2) insert_vec_elts (build_vector) -> build_vector
-
Louis Dionne authored
This allows running these tests on systems that do not support std::rand().
-
Sam McCall authored
It's not helpful to show the alias itself as an option. This fixes a regression accepted in f24649b7. Differential Revision: https://reviews.llvm.org/D89238
-
Mircea Trofin authored
Some related changes as well. Differential Revision: https://reviews.llvm.org/D90268
-
Valentin Clement authored
Check for duplicate clauses associated with directive. Clauses can appear only once in the 4 lists associated with each directive (allowedClauses, allowedOnceClauses, allowedExclusiveClauses, requiredClauses). Duplicates were already present (removed with this patch) or were introduce in new patches by mistake (D89861). Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D90241
-
Anton Afanasyev authored
-
Vedant Kumar authored
These utilities aren't useful any more -- delete them as a cleanup. Discussion: http://lists.llvm.org/pipermail/lldb-dev/2020-October/016536.html
-
Vedant Kumar authored
Take advantage of the emitConstu helper to emit slightly shorter dwarf expressions to implement legacy [s|z]ext operations.
-
Vedant Kumar authored
Fix an out-of-bounds shift in emitLegacyZExt by using a slightly more complicated dwarf expression to create the zext mask. This addresses a UBSan diagnostic seen when compiling compiler-rt (llvm.org/PR47927). rdar://70307714 Differential Revision: https://reviews.llvm.org/D89838
-
Kazuaki Ishizaki authored
fix typos in comments and documents Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D90089
-
Vitaly Buka authored
-
Sanjay Patel authored
We model cost as number of instructions / uops, so it does not make sense to treat size/blended costs any differently than throughput.
-