- May 27, 2022
-
-
python3kgae authored
Update metadata index which changed for dx.valver. Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D126311
-
Louis Dionne authored
Start testing Apple backdeployment with older libunwinds, and stop explicitly specifying the libunwind testing config, since it is already selected correctly by default. Differential Revision: https://reviews.llvm.org/D126470
-
Stella Stamenova authored
The test was broken by: https://reviews.llvm.org/D125604
-
Will Hawkins authored
After changing the "fallback" behavior when a user sets a breakpoint without specifying a module the bad-address-breakpoint test case failed incorrectly. This patch updates that test case in order to more thoroughly discover an illegal address and use that as the means for testing whether a breakpoint set at an illegal address fails to resolve. Differential revision: https://reviews.llvm.org/D126109
-
Joel E. Denny authored
OpenMP 5.2, sec. 10.2 "teams Construct", p. 232, L9-12 restricts what regions can be strictly nested within a `teams` construct. This patch relaxes Clang's enforcement of this restriction in the case of nested `atomic` constructs unless `-fno-openmp-extensions` is specified. Cases like the following then seem to work fine with no additional implementation changes: ``` #pragma omp target teams map(tofrom:x) #pragma omp atomic update x++; ``` Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D126323
-
Louis Dionne authored
-
Mircea Trofin authored
argparse.BooleanOptionalAction is not supported until python 3.9.
-
Aaron Ballman authored
e5ccd668 and 5029dce4 added deprecation warnings to the <stdbool.h> and <stdnoreturn.h> headers, respectively, because the headers are deprecated in C2x. However, there are system headers that include these headers unconditionally, and #warning diagnostics within system headers are shown to users instead of suppressed, which means these deprecation warnings are being triggered in circumstances that users have no control over except to disable all the warnings through the _CLANG_DISABLE_CRT_DEPRECATION_WARNINGS macro or other means. This removes the problematic #warning uses until we find a more palatable solution.
-
Adrian Tong authored
treated as Copy instruction in MCP. This is then used in AArch64 to remove copy instructions after taildup ran in machine block placement Differential Revision: https://reviews.llvm.org/D125335
-
Jason Molenda authored
I missed one place I need to realpath the build artifact path, to make it match the path we get back from dyld.
-
Zongwei Lan authored
Differential Revision: https://reviews.llvm.org/D125391
-
Jason Molenda authored
A follow on to my patch for https://reviews.llvm.org/D126435 hit by an x86_64 linux bot; I assumed that a FileSpec had a directory component and checked if the first character was a '~'. This was not a valid assumption.
-
Jason Molenda authored
When reading source path remappings out of a dSYM, lldb currently does tilde expansion -- expanding the tilde-username and checking that the destination pathname exists, for each dSYM with the path remappings. This cost happens during lldb's initial process launch / load, an especially perf-sensitive time. Inside Apple, we have dSYMs with source path remappings pointing to NFS directories where these extra stats for every dSYM can be very expensive if the network is slow. This patch instead keeps the source path mapping in the original tilde-username terms and does the tilde expansion when we need to read a specific source file from one of the modules. We'll be stat'ing all of those inodes to load the source file anyway, so the fact that we do the tilde expansion on every source file we load, it doesn't cost us significantly. Differential Revision: https://reviews.llvm.org/D126435 rdar://77091379 (cherry picked from commit c274b6e5)
-
Bruno Cardoso Lopes authored
C++ generated code with huge amount of switch cases chokes badly while emitting coverage mapping, in our specific testcase (~72k cases), it won't stop after hours. After this change, the frontend job now finishes in 4.5s and shrinks down `@__covrec_` by 288k when compared to disabling simplification altogether. There's probably no good way to create a testcase for this, but it's easy to reproduce, just add thousands of cases in the below switch, and build with `-fprofile-instr-generate -fcoverage-mapping`. ``` enum type : int { FEATURE_INVALID = 0, FEATURE_A = 1, ... }; const char *to_string(type e) { switch (e) { case type::FEATURE_INVALID: return "FEATURE_INVALID"; case type::FEATURE_A: return "FEATURE_A";} ... } ``` Differential Revision: https://reviews.llvm.org/D126345 -
Mircea Trofin authored
This is scoped to autogenerated tests. The goal is to support having each RUN line specify a list of check-prefixes where one can specify potentially redundant prefixes. For example, for X86, if one specified prefixes for both AVX1 and AVX2, and the codegen happened to match today, one of the prefixes would be used and the onther one not. If the unused prefix were dropped, and later, codegen differences were introduced, one would have to go figure out where to add what prefix (paraphrasing https://lists.llvm.org/pipermail/llvm-dev/2021-February/148326.html) To avoid getting errors due to unused prefixes, whole directories can be opted out (as discussed on that thread), but that means that tests that aren't autogenerated in such directories could have undetected unused prefix bugs. This patch proposes an alternative that both avoids the above, dir-level optout, and supports the main autogen scenario discussed first. The autogen tool appen...
-
Florian Hahn authored
Also collect conditions from assume up-front in applyLoopGuards. This allows re-using the logic to handle logical ANDs as assume conditions. It should should pave the road for a fix for #55645.
-
David Penry authored
- Add t2LoopEnd to TargetInstrInfo::analyzeBranch and related functions. As there are many side effects of analyzing a branch, only do so if software pipelining is enabled to maintain previous behavior when pipelining is not desired. - Make sure that t2LoopEndDec is immediately followed by a t2B when it is synthesized from a t2LoopEnd. This is done because the t2LoopEnd might have acquired a fall-through path, but IfConversion assumes that fall-through are only possible on analyzable branches. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D126322
-
Mike Rice authored
Refactor the code that handles the align clause of 'omp allocate' so it can be used with globals as well as local variables. Differential Revision: https://reviews.llvm.org/D126426
-
Owen Anderson authored
This reverts commit 1e911498. Pending further discussion.
-
Philip Reames authored
This change reorganizes the majority of frame index resolution into a two strep process. Step 1 - Select which base register we're going to use. Step 2 - Compute the offset from that base register. The key point is that this allows us to share the step 2 logic for the SP case. This reduces the code duplication, and (I think) makes the code much easier to follow. I also went ahead and added assertions into phase 2 to catch errors where we select an illegal base pointer. In general, we can't index from a base register to a stack location if that requires crossing a variable and unknown region. In practice, we have two such cases: dynamic stack realign and var sized objects. Note that crossing the scalable region is fine since while variable, it's a known variability which can be expressed in the offset. Differential Revision: https://reviews.llvm.org/D126403 -
Shoaib Meenai authored
This reverts commit ec10ac75. See https://discourse.llvm.org/t/cmake-regeneration-is-broken/62788. This change caused Ninja's CMake regeneration to depend on the build, which prevented CMake regeneration from functioning properly and caused spurious build failures on incremental builds when a CMake change occurred.
-
Shoaib Meenai authored
We've observed segfaults in libunwind when attempting to check for the Linux aarch64 sigreturn frame, presumably because of bad unwind info leading to an incorrect PC that we attempt to read from. Use process_vm_readv to read the memory safely instead. The s390x code path should likely follow suit, but I don't have the hardware to be able to test that, so I didn't modify it here either. Reviewed By: MaskRay, rprichard, #libunwind Differential Revision: https://reviews.llvm.org/D126343
-
Shoaib Meenai authored
Create a macro for this instead of duplicating the architecture checks everywhere. (It's a little redundant to use it when we're checking for a specific architecture, but I'm also applying it there for consistency.) Reviewed By: rprichard, MaskRay, #libunwind Differential Revision: https://reviews.llvm.org/D126342
-
Nikita Popov authored
Use logical instead of bitwise and to combine conditions, to avoid propagating poison from a later condition if an earlier one is already false. This avoids introducing branch on poison. Differential Revision: https://reviews.llvm.org/D125898
-
- May 26, 2022
-
-
Philip Reames authored
During insertion of VSETVLI, we have two related bits of code which decide whether we can reuse a previous vsetvli result. As was pointed out in the original review, these cases can allow any prior state for which we know that VL is the same for any value of AVL. This was originally separated out of a desire for separate tests and review. As it turns out, finding a test case for this has been quite challenging. Most of the cases I tried, we manage to already get through other chains of logic. We do have one correct test change, but that only exercises one of the two changes. Differential Revision: https://reviews.llvm.org/D126400
-
Alexey Bataev authored
Patch improves compile time. For function calls, which cannot be vectorized, create a unique group for each such a call instead of subgroup. It prevents them from being grouped by a subgroups and attempts for their vectorization. Also, looks through casts operand to try to check their groups/subgroups. Reduces number of vectorization attempts. No changes in the statistics for SPEC2017/2006/llvm-test-suite. Differential Revision: https://reviews.llvm.org/D126476
-
Alexey Bataev authored
Need to handle a corner case correctly, if all elements are Undefs/Poisons, need to emit actual values, not just poisons. Differential Revision: https://reviews.llvm.org/D126298
-
Alex Zhikhartsev authored
Responding to a feature request from the Rust community: https://github.com/rust-lang/rust/issues/80630 void foo(X) { for (...) switch (X) case A X = B case B X = C } Even though the initial switch value is non-constant, the switch statement can still be threaded: the initial value will hit the switch statement but the rest of the state changes will proceed by jumping unconditionally. The early predictability check is relaxed to allow unpredictable values anywhere, but later, after the paths through the switch statement have been enumerated, no non-constant state values are allowed along the paths. Any state value not along a path will be an initial switch value, which can be safely ignored. Differential Revision: https://reviews.llvm.org/D124394
-
Florian Hahn authored
Show a missed case where the AND is currently blocks applying the information from the assume.
-
Krzysztof Parzyszek authored
The default implementations will perform a shallow copy instead of a deep copy, causing some internal data structures to be shared between different objects. Disable these operations so they don't get accidentally used. Differential Revision: https://reviews.llvm.org/D126401
-
Anastasia Stulova authored
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Reviewed By: ldionne, var-const, #libc Spies: libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D123016
-
Simon Pilgrim authored
-
Stefan Pintilie authored
On Power PC we have ISA3.0 for Power 9, ISA3.1 for Power 10. This patchs adds an ISA for mcpu=future. The idea is to have a placeholder ISA for work that is experimental and may not be supported by existing ISAs. Reviewed By: lei Differential Revision: https://reviews.llvm.org/D126075
-
Paul Robinson authored
-
Tyler Chatow authored
Fixes https://github.com/llvm/llvm-project/issues/55457 Ensures that attributes in the enum declaration are interpreted correctly, for instance: ``` enum class [[nodiscard]] E { a, b }; ``` Reviewed By: MyDeveloperDay, curdeius Differential Revision: https://reviews.llvm.org/D125848
-
Nathan Sidwell authored
CoreturnStmt needs to keep the operand value distinct from its use in any return_value call, so that instantiation may rebuild the latter. But it also needs to keep the operand value separate in the case of calling return_void. Code generation checks the operand value form to determine whether it is a distincte entity to the promise call. This adds the same logic to CFG generation. Reviewed By: bruno Differential Revision: https://reviews.llvm.org/D126399
-
NAKAMURA Takumi authored
-
Louis Dionne authored
If you are broken by this change, you should remove your CMake cache and re-run the CMake generation step.
-