- Feb 16, 2022
-
-
Anastasia Stulova authored
Reflect the latest development in clang docs. Differential Revision: https://reviews.llvm.org/D119719
-
Nathan Sidwell authored
parseNestedName's main loop allowed parsing a grammar that was more flexible than the actual grammar. This refactors that to rule out some more incorrect manglings. 1) The 'L' extension only applies to unqualified-name components, so check it just there. 2) The 'M' suffix is, AFAICT, removed from the grammar. Rather than eliminate it, let's parse it after we've parsed a component. Added some additional bad mangling tests, which are now rejected. I don't break the 'T' and 'D[tT]' cases out of the loop, even though they can only appear at first position, as it seems simpler to just check there is nothing SoFar. Reviewed By: ChuanqiXu Differential Revision: https://reviews.llvm.org/D119542
-
Nathan Sidwell authored
The Itanium mangler constructors use both NSDMI and explicit member construction for default values. This is confusing. *) Use NSDMIs wherever possible *) Use forwarding ctor for the nesting case with an llvm::raw_null_ostream (and explicitly set NullOut flag in that ctor). *) Copy the ModuleSubstitutions. This is a bug with no effect in the current mangling, but not in the newer mangling. Reviewed By: ChuanqiXu Differential Revision: https://reviews.llvm.org/D119550
-
Nemanja Ivanovic authored
The added run lines build a bitcode file for x86 and an object file for whatever the default target is that is running the test. This causes an incompatibility between the files. Add the triple to the llvm-mc invocation.
-
Florian Hahn authored
Add a few test cases with clobbers (writes and lifetime.end) that should prevent memcpy->byval forwarding, but those clobbers are missed at the moment.
-
Andrzej Warzynski authored
This patch updates `validModule` not to use `getModule`. `getModule` will dereference `module`, but that will lead to a seg-fault if `module` is a `nullptr`. Differential Revision: https://reviews.llvm.org/D119705
-
Shengchen Kan authored
Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D119914
-
Pavel Labath authored
After applying the same for as in TestThreadBacktraceRepeat, the test appears to pass reliably. The skip decorator was added many years ago, so it's not clear whether this is what caused it to hang.
-
Sven van Haastregt authored
It is necessary to guard atomic_double type according to https://www.khronos.org/registry/OpenCL/specs/3.0-unified/html/OpenCL_C.html#_footnotedef_54. Platform that disable cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics will have compiling errors even if atomic_double is not used. Patch by Haonan Yang. Differential Revision: https://reviews.llvm.org/D119398
-
Arlo Siemsen authored
D115300 added Rust as a new PDB language type. This change allows LLDB to recognize the new language type. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D119044
-
Balazs Benics authored
This is a followup for D118690. I'm removing the offending RUN line, to resolve the build breakage: https://lab.llvm.org/buildbot/#/builders/91/builds/3975/steps/8/logs/stdio Exit Code: 1 Command Output (stderr): -- /scratch/buildbot/bothome/clang-ve-ninja/llvm-project/clang/test/Analysis/analyze-function-guide.cpp:58:22: error: CHECK-EMPTY2-NOT: excluded string found in input // CHECK-EMPTY2-NOT: Every top-level function was skipped. ^ <stdin>:1:1: note: found here Every top-level function was skipped. ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Differential Revision: https://reviews.llvm.org/D118690
-
Balazs Benics authored
This reverts commit 620d99b7. Let's see if removing the two offending RUN lines makes this patch pass. Not ideal to drop tests but, it's just a debugging feature, probably not that important.
-
Nikita Popov authored
We should not assume that the cet.h header exists just because we're on x86 linux. Only include it if __CET__ is defined. This makes the code more similar to what compiler-rt does in https://github.com/llvm/llvm-project/blob/ee423d93ead39e94c2970b3cc7ef6e6faa75d10b/compiler-rt/lib/builtins/assembly.h#L17 (though that one also has a __has_include() check -- I've not found that to be necessary). Differential Revision: https://reviews.llvm.org/D119697
-
Nikita Popov authored
This is a followup to D119695 using the suggestion by joerg. Rather than manually declaring madvise() on __sun__, this uses posix_madvise() if available, which does get declared properly on Illumos. Differential Revision: https://reviews.llvm.org/D119856
-
Qiu Chaofan authored
These tests are dumped without optimization, which makes them too lengthy and contain meaningless load/stores. Clean them up to prepare for future headers update.
-
Jan Svoboda authored
Commit 4a794d84 caused build failure with -Werror -Wpessimizing-move on the clang-ppc64-aix buildbot. This patch applies Clang's suggestion to remove `std::move`.
-
Zakk Chen authored
The goal is support tail and mask policy in RVV builtins. We focus on IR part first. If the passthru operand is undef, we use tail agnostic, otherwise use tail undisturbed. My plan is to handle more complex operations in follow-up patches. Reviewers: frasercrmck Differential Revision: https://reviews.llvm.org/D118253
-
Siva Chandra Reddy authored
-
Chuanqi Xu authored
This one tries to fix: https://github.com/llvm/llvm-project/issues/53357. Simply, this one would check (x & y) and ~(x | y) in haveNoCommonBitsSet. Since they shouldn't have common bits (we could traverse the case by enumerating), and we could convert this one to (x & y) | ~(x | y) . Then the compiler could handle it in InstCombineAndOrXor. Further more, since ((x & y) + (~x & ~y)) would be converted to ((x & y) + ~(x | y)), this patch would fix it too. https://alive2.llvm.org/ce/z/qsKzRS Reviewed By: spatel, xbolva00, RKSimon, lebedev.ri Differential Revision: https://reviews.llvm.org/D118094
-
Chuanqi Xu authored
This patch tries to implement RVO for coroutine's return object got from get_return_object. From [dcl.fct.def.coroutine]/p7 we could know that the return value of get_return_object is either a reference or a prvalue. So it makes sense to do copy elision for the return value. The return object should be constructed directly into the storage where they would otherwise be copied/moved to. Test Plan: folly, check-all Reviewed By: junparser Differential revision: https://reviews.llvm.org/D117087
-
Shao-Ce SUN authored
Reviewed By: skan Differential Revision: https://reviews.llvm.org/D119846
-
Sheng authored
This gives a approximate error location. Although not very accurate, it suffices to debug. Reviewed By: myhsu Differential Revision: https://reviews.llvm.org/D119684
-
Sheng authored
Refactor the instructions in M68kInstrControl.td to use the VarLenCodeEmitter. This patch is tested by the existing test cases. Reviewed By: myhsu, ricky26 Differential Revision: https://reviews.llvm.org/D119665
-
Min-Yih Hsu authored
Supporting relocatable and pc-relative immediate values for the new code emitter. Differential Revision: https://reviews.llvm.org/D119101
-
Jonas Devlieghere authored
I was looking at Stream::PutRawBytes and thought I spotted a bug because both loops are using `i < src_len` as the loop condition despite them iterating in opposite directions. On closer inspection, the existing code is correct, because it relies on well-defined unsigned integer wrapping. Correct doesn't mean readable, so this patch changes the loop condition to compare against 0 when decrementing i while still covering the edge case of src_len potentially being 0 itself. Differential revision: https://reviews.llvm.org/D119857
-
Mubariz Afzal authored
This reverts ea0676f9
-
Serguei Katkov authored
Volatile store does not provide any special rules for reordering with atomics. Usual must alias anaylsis is enough here. This makes the bahavior similar to how volatile load is handled. Reviewers: reames, nikic Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D119818
-
Shao-Ce SUN authored
This reverts commit fe25c06c.
-
Shao-Ce SUN authored
For ten years, it seems that `MCRegisterInfo` is not used by any target. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D119846
-
Jeff Bailey authored
The prior page was the proposal doc, this one is now more about what the project intends to do, written in the present tense. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D119379
-
Carl Ritson authored
For AMDGPU the insertion point for a block may not be the first non-PHI instruction. This happens when a block contains EXEC mask manipulation related to control flow (converging lanes). Use SkipPHIsAndLabels to determine the block insertion point so that the target can skip any block prologue instructions. Reviewed By: rampitec, ruiling Differential Revision: https://reviews.llvm.org/D119399
-
Jeff Bailey authored
This implements a basic arm64 loader for Linux, and all the currently enabled linker tests pass. TLS is not implemented, and functions using it will have undefined behaviour. Notably, the TLS test is currently disabled on x86_64. Much of the structure is copied from x86_64 to allow for a refactoring of the start code between architectures. Tested: ninja libc_loader_tests on aarch64-linux. Co-authored-by:
Raman Tenneti <rtenneti@google.com> Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D119641
-
Serguei Katkov authored
-
Nico Weber authored
This reverts commit 25cdf87b. 125abb61 reverted the patch. It is incorrect to update this file when a flagless warning is added. This test exists to make sure _all_ warnings are behind a flag. The right fix is to put the new warning in a warning group (so that it can be toggled with a flag), not to update the list here.
-
Nikolas Klauser authored
Reviewed By: Quuxplusone, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D119881
-
Mahesh Ravishankar authored
Fusion of `linalg.generic` with `tensor.expand_shape/tensor.collapse_shape` currently handles fusion with reshape by expanding the dimensionality of the `linalg.generic` operation. This helps fuse elementwise operations better since they are fused at the highest dimensionality while keeping all indexing maps involved projected permutations. The intent of these is to push the reshape to the boundaries of functions. The presence of named ops (or other ops across which the reshape cannot be propagated) stops the propagation to the edges of the function. At this stage, the converse patterns that fold the reshapes with generic ops by collapsing the dimensions of the generic op can push the reshape towards edges. In particular it helps the case where reshapes exist in between named ops and generic ops. `linalg.named_op` -> `tensor.expand_shape` -> `linalg.generic` Pushing the reshape down will help fusion of `linalg.named_op` -> `linalg.generic` using tile + fuse transformations. This pattern is intended to replace the following patterns 1) FoldReshapeByLinearization : These patterns create indexing maps that are not projected permutations that affect future transformations. They are only useful for folding unit-dimensions. 2) PushReshapeByExpansion : This pattern has the same functionality but has some restrictions a) It tries to avoid creating new reshapes that limits its applicability. The pattern added here can achieve the same functionality through use of the `controlFn` that allows clients of the pattern freedom to make this decision. b) It does not work for ops with indexing semantics. These patterns will be deprecated in a future patch. Differential Revision: https://reviews.llvm.org/D119365 -
Nikolas Klauser authored
Reviewed By: Mordante, ldionne, Quuxplusone, #libc, #libc_abi Spies: #libc_vendors, libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D119667
-
Nico Weber authored
This reverts commit 4bafe65c. Breaks at least Misc/warning-flags.c, see comments on https://reviews.llvm.org/D109239
-