- Mar 22, 2022
-
-
Djordje Todorovic authored
Before this patch the DebugifyLevel option was used for the synthetic mode, so after this, it will be used in the original mode as well. Differential Revision: https://reviews.llvm.org/D115623
-
Nikita Popov authored
Rather than iterating over users and comparing operands, iterate over uses and check operand number. Otherwise, we'll end up promoting a store twice if it has two equal operands. This can only happen with opaque pointers, as otherwise both operands differ by a level of indirection, so a bitcast would have to be involved. Fixes https://github.com/llvm/llvm-project/issues/54495.
-
Igor Kudrin authored
NVPTX does not support generating binary files, which is required for these tests. The majority of tests in 'DebugInfo/Generic' also require emitting object files, so they all are disabled for NVPTX. Differential Revision: https://reviews.llvm.org/D121996
-
Igor Kudrin authored
If 'config.target_triple' is empty, there is no sense to define the 'object-emission' tag. Differential Revision: https://reviews.llvm.org/D121994
-
Igor Kudrin authored
For '-filetype=null', 'NVPTXTargetStreamer' is not created, so the return value of 'OutStreamer->getTargetStreamer()' should be checked before calling the methods. Differential Revision: https://reviews.llvm.org/D122001
-
Igor Kudrin authored
These tests are located in 'X86' subfolders which means that they should be compiled for that target. As they did not have the target specified explicitly, they in fact were compiled for a default target triple. Not all targets support all required features for these tests; for example, if NVPTX is used as a default triple, the tests fail. The patch makes the tests run for 'x86_64', thus they pass regardless of the default target. Differential Revision: https://reviews.llvm.org/D121998
-
Bryan Chan authored
Update the FileCheck patterns in a test case to prevent a path name containing the `@` character from causing it to fail unnecessarily, e.g. during a Jenkins CI job.
-
Vince Bridgers authored
Usages of makeNull need to be deprecated in favor of makeNullWithWidth for architectures where the pointer size should not be assumed. This can occur when pointer sizes can be of different sizes, depending on address space for example. See https://reviews.llvm.org/D118050 as an example. This was uncovered initially in a downstream compiler project, and tested through those systems tests. steakhal performed systems testing across a large set of open source projects. Co-authored-by: steakhal Resolves: https://github.com/llvm/llvm-project/issues/53664 Reviewed By: NoQ, steakhal Differential Revision: https://reviews.llvm.org/D119601
-
Sanjay Patel authored
This is the IR counterpart to 370ebc9d which provided a bswap narrowing fix for issue #53867. Here we can be more general (although I'm not sure yet what would happen for illegal types in codegen - too rare to worry about?): https://alive2.llvm.org/ce/z/3-CPfo This will be more effective if we have moved the shift after the bswap as proposed in D122010, but it is independent of that patch. Differential Revision: https://reviews.llvm.org/D122166
-
Sanjay Patel authored
-
David Green authored
-
alex-t authored
In the frame index lowering we have to insert shift and add instructions to adjust stack object access. We need to take care of the stack object user kind and use scalar shift/add for scalar users. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D121524
-
Djordje Todorovic authored
Before we start addressing the issue with having a lot of false positives when using debugify in the original mode, we have made a few patches that should speed up the execution of the testing utility Passes. For example, when testing a large project (let's say LLVM project itself), we can face a lot of potential DI issues. Usually, we use -verify-each-debuginfo-preserve (that is very similar to -debugify-each) -- it collects DI metadata before each Pass, and after the Pass it checks if the Pass preserved the DI metadata. However, we can speed up this process, since we don't need to collect DI metadata before each Pass -- we could use the DI metadata that are collected after the previous Pass from the pipeline as an input for the next Pass. This patch speeds up the utility for ~2x. Differential Revision: https://reviews.llvm.org/D115622
-
Shraiysh Vaishay authored
This patch adds translation from PFT to FIR for critical construct. This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Co-authored-by:
kiranchandramohan <kiranchandramohan@gmail.com> Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D122218
-
Simon Pilgrim authored
Noticed by D122216
-
alex-t authored
In the frame index lowering we have to insert shift and add instructions to adjust stack object access. We need to take care of the stack object user kind and use scalar shift/add for scalar users. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D121524
-
Simon Moll authored
VPIntrinsic::getStaticVectorLength infers the operational vector length of a VPIntrinsic instance from a type that is used with the intrinsic. The function used the mask operand before. Yet, vp.merge|select do not have a mask operand (in the predicating sense that the other VP intrinsics are using them - it is a selection mask for them). Fallback to the return type to fix this. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D121913
-
Nikita Popov authored
-
Shengchen Kan authored
Reviewed By: pengfei, RKSimon Differential Revision: https://reviews.llvm.org/D122216
-
serge-sans-paille authored
Regression introduced by f1985a3f
-
Zakk Chen authored
Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D120227
-
Haojian Wu authored
It was reverted, because the test had a lift-time issue. Reland f66d3758 with a fix.
-
Alex Bradbury authored
This fixes bug <https://github.com/llvm/llvm-project/issues/54022>. For now this means that defined functions will have two .functype directives emitted. Given discussion in that bug has suggested interest in moving towards using something other than .functype to mark the beginning of a function (which would, as a side-effect, solve this issue), this patch doesn't attempt to avoid that duplication. Some test cases that used CHECK-LABEL: foo rather than CHECK-LABEL: foo: are broken by this change. This patch updates those test cases to always have a colon at the end of the CHECK-LABEL string. Differential Revision: https://reviews.llvm.org/D122134
-
Nikita Popov authored
-
Martin Storsjö authored
In MinGW mode, it's possible to build LLVM/Clang with LLVM_LINK_LLVM_DYLIB (which implicitly enables plugins too). Other existing ways of building plugins on Windows is to build with LLVM_EXPORT_SYMBOLS_FOR_PLUGINS, where each executable exports its symbols. With LLVM_LINK_LLVM_DYLIB, we can't generally skip building plugins even if they are set up with PLUGIN_TOOL, as some plugins (e.g. under clang/examples) set up that way do build properly (as they manually call clang_target_link_libraries, which links in the libclang-cpp.dll dylib). For CTTestTidyModule, there's no corresponding dylib that would provide the same exports. Differential Revision: https://reviews.llvm.org/D121687
-
serge-sans-paille authored
Preprocessor output diff: -238205 lines Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D122183
-
Nikita Popov authored
Remove two stray uses in CodeGenModule and CGCUDANV.
-
serge-sans-paille authored
Preprocessor output diff: -7300 lines Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D122182
-
Nikita Popov authored
This requires some adjustment in caller code, because there was a confusion regarding the meaning of the PtrTy argument: This argument is the type of the pointer being loaded, not the addresses being loaded from.
-
Nikita Popov authored
If necessary insert a bitcast beforehand, so the LLVM-level pointer type and the Clang-level pointer type line up.
-
Stanislav Gatev authored
Differential Revision: https://reviews.llvm.org/D122129 Reviewed-by: ymandel, xazax.hun
-
Zakk Chen authored
Add the UsesMaskPolicy flag to indicate the operations result would be effected by the mask policy. (ex. mask operations). It means RISCVInsertVSETVLI should decide the mask policy according by mask policy operand or passthru operand. If UsesMaskPolicy is false (ex. unmasked, store, and reduction operations), the mask policy could be either mask undisturbed or agnostic. Currently, RISCVInsertVSETVLI sets UsesMaskPolicy operations default to MA, otherwise to MU to keep the current mask policy would not be changed for unmasked operations. Add masked-tama, masked-tamu, masked-tuma and masked-tumu test cases. I didn't add all operations because most of implementations are using the same pseudo multiclass. Some tests maybe be duplicated in different tests. (ex. masked vmacc with tumu shows in vmacc-rv32.ll and masked-tumu) I think having different tests only for policy would make the testing clear. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D120226
-
Lian Wang authored
Reviewed By: frasercrmck, jacquesguan Differential Revision: https://reviews.llvm.org/D122211
-
Petr Hosek authored
lld Mach-O backend supports all our use cases now. Differential Revision: https://reviews.llvm.org/D122047
-
Shengchen Kan authored
This reduces the gaps between tables in X86GenFoldTables.inc and X86InstrFoldTables.cpp
-
gysit authored
The revision introduces a affine.min and affine.max canonicalization pattern that orders the result expressions. It flattens the result expressions to arrays of dimension and symbol coefficients plus one constant coefficient and rearranges them in lexicographic order. Without the pattern, CSE will not eliminate two affine.min / affine.max operation if the results are ordered differently. For example, the operations ``` %1 = affine.min affine_map<(d0) -> (8, -d0 + 27)>(%arg4) %2 = affine.min affine_map<(d0) -> (-d0 + 27, 8)>(%arg4) ``` doe not CSE. After applying the pattern, the two operations are equivalent ``` %1 = affine.min affine_map<(d0) -> (8, -d0 + 27)>(%arg4) %2 = affine.min affine_map<(d0) -> (8, -d0 + 27)>(%arg4) ``` which enables CSE. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D121819
-
Siva Chandra Reddy authored
An unnecessary dep of the getenv function is removed. From the x86_64 loader, a call to __llvm_libc::memcpy is replaced with call to __llvm_libc::inline_memcpy.
-
Chuanqi Xu authored
The CoroSplit pass would check the existence of coroutine intrinsic before starting work. It is not necessary and wasteful since it would iterate over the Module. This patch also removes the constraint on the corresponding of the SmallVector for the possible coroutines in the Modules. The original value is 4. Given coroutines is used actually in practice. 4 is really relatively a low threshold.
-
Yeting Kuo authored
To perform the cost model of vector casting, the patch consider most vector casts as their scalar form and consider those vector form of free scalr castings as 1. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D121771
-
Sheng authored
`getValueAsBitsInit` will assert when the "SoftFail" isn't presented. But given the 'if' statement below, we should've allowed this situation. This patch fix this.
-