- Jul 17, 2021
-
-
Fangrui Song authored
llvm-readelf is a user-facing tool which emulates GNU readelf. Remove one-dash long options which are not recognized by GNU style `getopt_long`. This ensures long options cannot collide with grouped short options. Note: the documentation (D63719)/help messages have recommended the double-dash forms since LLVM 9.0.0. llvm-readobj is intended as an internal tool which has some flexibility. llvm-readelf/llvm-readobj use the same option parsing code and llvm-readobj's one-dash long options aren't used after test migration. Differential Revision: https://reviews.llvm.org/D106037
-
Fangrui Song authored
-
David Green authored
-
Simon Pilgrim authored
Fixes issue reported on D105827 where a single shuffle of a constant (with multiple uses) was caught in an infinite loop where one shuffle (UNPCKL) used an undef arg but then that got recombined to SHUFPS as the constant value had its own undef that confused matching.....
-
Lei Huang authored
Implement a subset of builtins required for compatiblilty with AIX XL compiler. Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D105930
-
Joseph Huber authored
-
Joseph Huber authored
This patch begins adding documentation for each remark emitted by `openmp-opt`. This builds on the IDs introduced in D105939 so that users can more easily identify each remark in the webpage. Depends on D105939. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D106018
-
Joseph Huber authored
This patch adds unique idenfitiers to the existing OpenMP remarks. This makes it easier to identify the corresponding documentation for each remark that will be hosted in the OpenMP webpage. Depends on D105898 Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D105939
-
Joseph Huber authored
This patch rewrites and reworks a few of the existing remarks to make the mmore concise and consistent prior to writing the documentation for them. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D105898
-
Dmitry Vyukov authored
Windows bot failed with: sanitizer_win.cpp.obj : error LNK2019: unresolved external symbol WaitOnAddress referenced in function "void __cdecl __sanitizer::FutexWait(struct __sanitizer::atomic_uint32_t *,unsigned int)" (?FutexWait@__sanitizer@@YAXPEAUatomic_uint32_t@1@I@Z) sanitizer_win.cpp.obj : error LNK2019: unresolved external symbol WakeByAddressSingle referenced in function "void __cdecl __sanitizer::FutexWake(struct __sanitizer::atomic_uint32_t *,unsigned int)" (?FutexWake@__sanitizer@@YAXPEAUatomic_uint32_t@1@I@Z) sanitizer_win.cpp.obj : error LNK2019: unresolved external symbol WakeByAddressAll referenced in function "void __cdecl __sanitizer::FutexWake(struct __sanitizer::atomic_uint32_t *,unsigned int)" (?FutexWake@__sanitizer@@YAXPEAUatomic_uint32_t@1@I@Z) https://lab.llvm.org/buildbot/#/builders/127/builds/14046 According to MSDN we need to link Synchronization.lib: https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitonaddress Differential Revision: https://reviews.llvm.org/D106167
-
Emily Shi authored
This was fixed in the past for `frexp`, but was not made for `frexpl` & `frexpf` https://github.com/google/sanitizers/issues/321 This patch copies the fix over to `frexpl` because it caused `frexp_interceptor.cpp` test to fail on iPhone and `frexpf` for consistency. rdar://79652161 Reviewed By: delcypher, vitalybuka Differential Revision: https://reviews.llvm.org/D104948
-
Philip Reames authored
-
Aart Bik authored
Removed inconsistent name prefixes, added consistency checks on debug strings, added more assertions to verify assumptions that may be lifted in the future. Reviewed By: gussmith23 Differential Revision: https://reviews.llvm.org/D106108
-
Stefan Pintilie authored
On Power PC some legacy compilers included a number of builtins in a builtins.h header file. While this header file is not required to hold builtins for clang some legacy code does try to include this file and so this patch provides an empty version of that file. Differential Revision: https://reviews.llvm.org/D106065
-
Craig Topper authored
-
Craig Topper authored
This adds new pseudoinstructions with ForceTailAgnostic set. This matches what we did for non-widening VMACC. We should move to a tail policy operand on the pseudos when we expand the intrinsic interface to include the tail policy.
-
Craig Topper authored
[RISCV] Refactor where in the multiclass hierarchy we add commutable VFMADD/VFMACC instructions. NFC I'm preparing to add tail agnostic versions of VWMACC and VFWMACC so this will make them more consistent.
-
Fangrui Song authored
-
Dmitry Vyukov authored
Semaphore is a portable way to park/unpark threads. The plan is to use it to implement a portable blocking mutex in subsequent changes. Semaphore can also be used to efficiently wait for other things (e.g. we currently spin to synchronize thread creation and start). Reviewed By: vitalybuka, melver Differential Revision: https://reviews.llvm.org/D106071
-
Philip Reames authored
-
Guozhi Wei authored
This patch transforms the sequence lea (reg1, reg2), reg3 sub reg3, reg4 to two sub instructions sub reg1, reg4 sub reg2, reg4 Similar optimization can also be applied to LEA/ADD sequence. The modifications to TwoAddressInstructionPass is to ensure the operands of ADD instruction has expected order (the dest register of LEA should be src register of ADD). Differential Revision: https://reviews.llvm.org/D104684 -
Philip Reames authored
-
Fangrui Song authored
-
Jon Roelofs authored
This reverts commit dd57ba1a. It broke some tests: http://45.33.8.238/linux/51314/step_12.txt
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Add an assertion that we've calling MaskedElementsAreZero with a vector op and that the DemandedElts arg is a matching width. Makes the error a lot easier to grok when something else accidentally gets used.
-
Jon Roelofs authored
Differential revision: https://reviews.llvm.org/D105953
-
Craig Topper authored
[RISCV] Teach constant materialization that it can use zext.w at the end with Zba to reduce number of instructions. If the upper 32 bits are zero and bit 31 is set, we might be able to use zext.w to fill in the zeros after using an lui and/or addi. Most of this patch is plumbing the subtarget features into the constant materialization. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D105509
-
Craig Topper authored
This is at the end of the switch so doesn't cause any issues now, but if a new case is added it will break.
-
Nikita Popov authored
As suggested on D105733, this adds a verifier rule that calls to intrinsics must match the signature of the intrinsic. Without opaque pointers this is automatically enforced for all calls, because the pointer types need to match. If the signatures don't match, a pointer bitcast has to be inserted. For intrinsics in particular, such bitcasts are not legal, because the address of intrinsics cannot be taken. With opaque pointers, there are no more pointer bitcasts, so it's generally possible for the call and the callee signature to differ. However, for intrinsics we still want to enforce that the signatures must match, the same as was done before through the address taken check. We can't enforce this more generally for non-intrinsics, because calls with mismatched signatures at the very least can legally occur in unreachable code, and might also be valid in some other cases, depending on how exactly the signatures differ. Differential Revision: https://reviews.llvm.org/D106013
-
madhur13490 authored
Differential Revision: https://reviews.llvm.org/D106161
-
Christopher Di Bella authored
* <__algorithm/iter_swap.h> * <__algorithm/swap_ranges.h> * <__functional/is_transparent.h> * <__memory/uses_allocator.h> * <__ranges/drop_view.h> * <__ranges/transform_view.h> * <shared_mutex> * <span> Also updates header inclusions that were affected. **NOTE:** This is a proper subset of D105932. Since the content has already been LGTM'd, I intend to merge this patch without review, pending green CI. I decided it would be better to move these changes into their own commit since the former patch has undergone further changes and will need yet another light review. In the event any of that gets rolled back (for whatever reason), the changes in this patch won't be affected. Differential Revision: https://reviews.llvm.org/D106040
-
Andrzej Warzynski authored
In the `flang` bash script, we need to be careful _when_ to use <output> from `flang -c -o <output> <input>` when generating the relocatable output file name. In particular, we should use it in this case: ```compilation only flang -c -o <output> <input> ``` but leave it for the final executable here: ```compile, assemble and link flang -o <output> <input> ``` This change is implemented in `get_relocatable_name`. I've also taken the liberty to fix how errors from sub-commands are reported (without this change, `flang` always returns `0` on failure). This is implemented in `main`. Differential Revision: https://reviews.llvm.org/D105896
-
- Jul 16, 2021
-
-
Congzhe Cao authored
We already know that we need to check whether lcssa phis are supported in inner loop exit block or in outer loop exit block, and we have logic to check them already. Presumably the inner loop latch does not have lcssa phis and there is no code that deals with lcssa phis in the inner loop latch. However, that assumption is not true, when we have loops with more than two-level nesting. This patch adds checks for lcssa phis in the inner latch. Reviewed By: Whitney Differential Revision: https://reviews.llvm.org/D102300
-
Louis Dionne authored
-
Matt Arsenault authored
NFC here since it's just using a scalar anyway.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Louis Dionne authored
This makes sure that even if a node goes down, the BuildKite agent will be started again when it goes back up.
-
Alexander Belyaev authored
-