- Apr 18, 2024
-
-
Chuanqi Xu authored
ASTWrite would write some special records for the consumer of the AST can get the information easily. This is fine. But currently all the special records are written eagerly, which is conflicting with reduced BMI. In reduced BMI, we hope to write things as less as possible. It is not a goal for reduced BMI to retain all the informations. So in this patch we won't record the special declarations eagerly before we starting write. But only writing the sepcial records after we writes decls and types, then only the reached declarations will be collected.
-
Chuanqi Xu authored
ASTWriter::WriteASTCore ASTWriter::WriteASTCore is a big function and slightly hard to read. This patch extracts the logics to force emitting special declarations and writing special records for these declarations into member functions. This is helpful to improve the readability and also helpful for the following patch to write special declarations lazily.
-
Dmitrii Agibov authored
-
Vassil Vassilev authored
Fixes #56517.
-
Timm Bäder authored
This can happen in C.
-
Andreas Jonson authored
Rename has/dropPoisonGeneratingFlagsOrMetadata to has/dropPoisonGeneratingAnnotations and make it also handle nonnull, align and range return attributes on calls, similar to the existing handling for !nonnull, !align and !range metadata.
-
Craig Topper authored
-
Timm Bäder authored
Fixes the Codegen/CSKY/csky-hard-abi.c test
-
Nikita Popov authored
-
Nikita Popov authored
The llvm.smix should be llvm.smin.
-
Fraser Cormack authored
We need clang and llvm to build in-tree.
-
Fraser Cormack authored
-
Fraser Cormack authored
Building the libclc project in-tree with debug tools can be very slow. This commit adds an option for a user to specify a dierctory from which to import (e.g., release-built) tools. All tools required by the project must be imported from the same location, for simplicity. Original patch downstream authored by @jchlanda.
-
Fraser Cormack authored
This should make it more obvious it applies only to libclc.
-
Fraser Cormack authored
This tool now behaves like the others, for consistency.
-
Aiden Grossman authored
This patch updates the FAQ and lexicon links under design overview to actually work instead of being incomplete and thus completely missing from the output.
-
Timm Baeder authored
We always capitalize bitfield as "BitField".
-
Brad Smith authored
OpenBSD uses W^X so the tests will not work.
-
Nikolas Klauser authored
-
Jakub Kuderski authored
* Make the wording around lanes / threads / work items more consistent. * Add examples for all shufle modes. * Also clean up `gpu.subgroup_reduce`.
-
Chia authored
Similar to #75145, but for scalable vectors. Specifically, this patch works for the below optimization case: ## Source Code ``` define void @trunc_sat_i8i16_maxmin(ptr %x, ptr %y) { %1 = load <vscale x 4 x i16>, ptr %x, align 16 %2 = tail call <vscale x 4 x i16> @llvm.smax.v4i16(<vscale x 4 x i16> %1, <vscale x 4 x i16> splat (i16 -128)) %3 = tail call <vscale x 4 x i16> @llvm.smin.v4i16(<vscale x 4 x i16> %2, <vscale x 4 x i16> splat (i16 127)) %4 = trunc <vscale x 4 x i16> %3 to <vscale x 4 x i8> store <vscale x 4 x i8> %4, ptr %y, align 8 ret void } ``` ## Before this patch [Compiler Explorer](https://godbolt.org/z/EKc9eGvo8) ``` trunc_sat_i8i16_maxmin: vl1re16.v v8, (a0) li a0, -128 vsetvli a2, zero, e16, m1, ta, ma vmax.vx v8, v8, a0 li a0, 127 vmin.vx v8, v8, a0 vsetvli zero, zero, e8, mf2, ta, ma vnsrl.wi v8, v8, 0 vse8.v v8, (a1) ret ``` ## After this patch ``` trunc_sat_i8i16_maxmin: vsetivli zero, 4, e8, mf4, ta, ma vle16.v v8, (a0) vnclip.wi v8, v8, 0 vse8.v v8, (a1) ret ``` -
Will Hawkins authored
Previously, tests for whether comparison using == was supported by iterators derived from ranges adaptors was spread throughout the testing codebase. This PR centralizes the implementation of those tests.
-
Will Hawkins authored
Add additional tests for `begin`/`end` of `std::ranges::take_view`. In partial fulfillment of #72406.
-
Craig Topper authored
The callee saved size is only used if there is a frame pointer. Sink the code onto the frame pointer only path.
-
Luke Lau authored
-
Chuanqi Xu authored
Reduced BMI Mitigate https://github.com/llvm/llvm-project/issues/61447 The root cause of the above problem is that when we write a declaration, we need to lookup all the redeclarations in the imported modules. Then it will be pretty slow if there are too many redeclarations in different modules. This patch doesn't solve the porblem. What the patchs mitigated is, when we writing a named module, we shouldn't write the declarations from GMF if it is unreferenced **in current module unit**. The difference here is that, if the declaration is used in the imported modules, we used to emit it as an update. But we definitely want to avoid that after this patch. For that reproducer in https://github.com/llvm/llvm-project/issues/61447, it used to take 2.5s to compile and now it only takes 0.49s to compile, which is a big win.
-
Owen Pan authored
Fixes #78789.
-
Kai Luo authored
These pseudo instructions finally copy the result to CR0 so they should define `CR0` in their definitions.
-
Nikita Popov authored
We can't directly use the high bits value if it is more poisonous due to poison elements in the masks. This fixes the issue reported in https://github.com/llvm/llvm-project/pull/88217#issuecomment-2061034941.
-
Shih-Po Hung authored
This patch introduces following changes - Support all fp predicates - Use the Val type to estimate the latency/throughput cost - Assign a cost of 1 for mask operations as LMULCost for mask types cannot be correctly estimated.
-
Yaxun (Sam) Liu authored
On windows, record layout should be consistent with host side, otherwise host code is not able to access fields of the record correctly. Fixes: https://github.com/llvm/llvm-project/issues/51031 Fixes: SWDEV-446010
-
Nikita Popov authored
This reverts commit 6f7160ee. This still causes large compile-time regressions in some cases.
-
Qizhi Hu authored
[Clang][Sema] set declaration invalid earlier to prevent crash in calculating record layout (#87173) Try to fix https://github.com/llvm/llvm-project/issues/75221 This crash caused by calculating record layout which contains a field declaration with dependent type. Make it invalid before it is a complete definition to prevent this crash. Define a new scope type to record this type alias and set the record declaration invalid when it is defined in a type alias template. Co-authored-by:
huqizhi <836744285@qq.com>
-
Craig Topper authored
-
Valentin Clement (バレンタイン クレメン) authored
In the presence of other semantic error, `GetAssignment` would return a nullptr and therefore would make the rest of the check crash when trying to collect symbols. Exiting early when we have a nullptr so the compiler doesn't crash and user can get the meaningful semantic error.
-
azhan92 authored
The test `llvm/unittests/Support/CommandLineTest.cpp` that handles errors in expansion of response files was previously disabled for AIX. Originally the code was dependent on `read` returning `EISDIR` which occurs on platforms such as Linux. However, other platforms such as AIX allow use of `read` on file descriptors for directories. This change updates `readNativeFile` to produce `EISDIR` on AIX and z/OS when used on a directory (instead of relying on the call to `read` to do so). --------- Co-authored-by:
Alison Zhang <alisonzhang@ibm.com> Co-authored-by:
James Henderson <46713263+jh7370@users.noreply.github.com>
-
Philip Reames authored
-
Keith Smiley authored
On Linux using --version-script doesn't force loading of the underlying archives that contain the symbols. By setting alwayslink=True on the API cc_library we virtually get this behavior. This also allows downstream users to use the exports files used by cmake. We could build more configurability into this but there are also a lot of possible variations users might want.
-
Valentin Clement (バレンタイン クレメン) authored
Replace the runtime call to `AllocatableDeallocate` for CUDA device variable to the newly added `fir.cuda_deallocate` operation. This is similar with #88980 A third patch will handle the case of automatic dealloctaion of device allocatable variables
-