- Nov 17, 2023
-
-
Nemanja Ivanovic authored
Allocate a register of the correct register class for inline asm constraint "r" when used for FP values with -Zfinx/-Zdinx. --------- Co-authored-by:Nemanja Ivanovic <nemanja@synopsys.com>
-
santhoshe447 authored
Fix for https://github.com/llvm/llvm-project/issues/71897 When it comes to test infrastructure the test (TestDAP_variables.py: test_scopes_variables_setVariable_evaluate_with_descriptive_summaries) will fail if the variable has a summary along with value. I just tried to add a summary to a variable before we set a value to the variable using below expression from “request_setVariable” function. RunLLDBCommands(llvm::StringRef(), {std::string("type summary add --summary-string "{sample summary}" (const char **) argv")}); As value has nonnumeric characters where we are trying to convert into integer, python is throwing an error. We did not see this issue in upstream as we are not adding summary explicitly, by default we are getting empty summary & value for all children’s of argv parameter (even after auto summary). The test is failing with below error: ERROR: test_scopes_variables_setVariable_evaluate_with_descriptive_summaries (TestDAP_variables.TestDAP_variables) Traceback (most recent call last): File "/llvm/llvm-project/lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py", line 372, in test_scopes_variables_setVariable_evaluate_with_descriptive_summaries enableAutoVariableSummaries=True File "/llvm/llvm-project/lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py", line 266, in do_test_scopes_variables_setVariable_evaluate argv = self.get_local_as_int("argv") File "//llvm/llvm-project/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py", line 199, in get_local_as_int return int(value, 16) ValueError: invalid literal for int() with base 16: '0x0000000000001234 sample summary' Config=x86_64-//llvm/llvm-build/bin/clang Co-authored-by:
Santhosh Kumar Ellendula <sellendu@hu-sellendu-hyd.qualcomm.com>
-
Timm Baeder authored
This adds some infrastructure for unevaluated builtin calls, and uses the implementation from ExprConstant.cpp
-
Philip Reames authored
We already have the pseudo's for lowering these as MI nodes with rounding mode operands, and the generic FRM insertion pass. Doing the insertion later in the backend allows SSA level passes to avoid reasoning about physical register copies, and happens to produce better code in practice. The later is mostly an accident of our insertion order; we happen to place the frm write after the vsetvli, and it's very common for a register to be killed at the vsetvli. End result is that we get slightly better scalar register allocation. I'm a bit unclear on the history here. I was surprised to find this code in ISEL lowering at all, but am also surprised once I found it that all the patterns and pseudos seem to already exist. My best guess is that maybe we didn't do all the possible cleanup after introducing the HasRoundMode mechanism?
-
Cyndy Ishida authored
-
Danila Malyutin authored
Helps avoid the crash in verifier when it tries to print the error. `none` token might be produced by llvm-reduce, since it's a default value, so by extension this also fixes llvm-reduce crash, allowing it to just discard invalid IR. --------- Co-authored-by:arpilipe <apilipenko@azul.com>
-
Simon Pilgrim authored
We were printing the entire Constant, which if we were loading from a wider constant pool entry meant that we were confusing the asm comment with upper bits that aren't actually part of the load result
-
Erich Keane authored
Initial commits to support OpenACC. This patchset: adds a clang-command line argument '-fopenacc', and starts to define _OPENACC, albeit to '1' instead of the standardized value (since we don't properly implement OpenACC yet). The OpenACC spec defines `_OPENACC` to be equal to the latest standard implemented. However, since we're not done implementing any standard, we've defined this by default to be `1`. As it is useful to run our compiler against existing OpenACC workloads, we're providing a temporary override flag to change the `_OPENACC` value to be any entirely digit value, permitting testing against any existing OpenACC project. Exactly like the OpenMP parser, the OpenACC pragma parser needs to consume and reprocess the tokens. This patch sets up the infrastructure to do so by refactoring the OpenMP version of this into a more general version that works for OpenACC as well. Additionally, this adds a few diagnostics and token kinds to get us started.
-
Joseph Huber authored
Summary: This patch is a simple refactoring of code out of the linker wrapper into a common location. The main motivation behind this change is to make it easier to change the handling in the future to accept a triple to be used to emit entries that function on that target.
-
Jessica Del authored
If the input is a constant we can constant fold the `s_quadmask` intrinsic.
-
Cullen Rhodes authored
Moved from lowering to canonicalization.
-
Stephen Tozer authored
This patch changes the `DIArgList` class's inheritance from `MDNode` to `Metadata, ReplaceableMetadataImpl`, and ensures that it is always unique, i.e. a distinct DIArgList should never be produced. This should not result in any changes to IR or bitcode parsing and printing, as the format for DIArgList is unchanged, and the order in which it appears should also be identical. As a minor note, this patch also fixes a gap in the verifier, where the ValueAsMetadata operands to a DIArgList would not be visited.
-
Florian Hahn authored
Reverse mask early on when populating BlockInMask. This will enable separating mask management and address computation from the memory recipes in the future and is also needed to enable explicit unrolling in VPlan.
-
Eric authored
This change ports almost all of the linux buildkite builders to github actions. I would like to have this transition occur as soon as possible.
-
Yingwei Zheng authored
[InstCombine] Preserve NSW flags for `lshr (mul nuw X, C1), C2 -> mul nuw nsw X, (C1 >> C2)` (#72625) Alive2: https://alive2.llvm.org/ce/z/TU_V9M This missed optimization is discovered with the help of https://github.com/AliveToolkit/alive2/pull/962.
-
Egor Zhdan authored
This upstreams more of the Clang API Notes functionality that is currently implemented in the Apple fork: https://github.com/apple/llvm-project/tree/next/clang/lib/APINotes
-
Jacek Caban authored
This is a preparation for ARM64EC support, which needs to sort both ARM and x86_64 tables separately.
-
Matheus Izvekov authored
This adds dlltool to the list of tools which don't get excluded from installation when LLVM_INSTALL_TOOLCHAIN_ONLY is set. The most important effect here is that this tool will now be included in the official Windows release. While llvm-lib reuses the dlltool machinary internally and has many of the same capabilities, it does not expose the functionality controller by the '-k' flag, which is currently the only way to create import libraries for i386 with stdcall symbols from a module definition alone. We avoid changing llvm-lib tool, since it is designed to emulate LIB.EXE from MSVC toolchain, and as this functionality is not supported there, we would have had to introduce an LLVM extension flag in order to support it. See https://reviews.llvm.org/D36548 for reference on rationale for dlltool '-k' flag.
-
Kadir Cetinkaya authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
jeanPerier authored
This patch adds a document describing assumed-rank objects and the related features as well as how they will be implemented in Flang.
-
Simon Pilgrim authored
[X86] getTargetConstantBitsFromNode - bail if we're loading from a constant vector element type larger than the target value size This can be improved upon by just truncating the constant value, but the crash needs to be addressed first. Fixes #72539
-
Florian Hahn authored
This makes it simpler to pass additional flags/options in the future.
-
Adrian Kuegel authored
Remove redundant return.
-
Nikita Popov authored
For all practical purposes, we only care about comparisons with constant RHS in this code. In that case, an invert will be canonicalized into the constant and it will be handled by other cases. Given the complete lack of test coverage, I'm removing this code.
-
Marius Brehler authored
This renames the `emitc.call` op to `emitc.call_opaque` as the existing call op does not refer to the callee by symbol. The rename allows to introduce a new call op alongside with a future `emitc.func` op to model and facilitate functions and function calls.
-
Fangrui Song authored
This is #66888 with a test. For MC we only use a zstd test, as zlib has a lot of versions/forks with different speed/size tradeoff, which would make the test more brittle. If clang/test/Misc/cc1as-compress.s turns out to be brittle, we could make the string longer.
-
kadir çetinkaya authored
This was creating discrepancy in cases where we might have a physical file entry (e.g. because we followed a source location from a stdlib file) and tried to find its exporters.
-
Nikita Popov authored
This an alternative to #69886. The basic problem is that SCEV can look through trivial LCSSA phis. When the phi node later becomes non-trivial, we do invalidate it, but this doesn't catch uses that are not covered by the IR use-def walk, such as those in BECounts. Fix this by adding a special invalidation method for LCSSA phis, which will also invalidate all the SCEVUnknowns/SCEVAddRecExprs used by the LCSSA phi node and defined in the loop. We should probably also use this invalidation method in other places that add predecessors to exit blocks, such as loop unrolling and loop peeling. Fixes #69097. Fixes #66616. Fixes #63970.
-
Fangrui Song authored
-
Aiden Grossman authored
-
Maksim Panchenko authored
-
Timm Baeder authored
See #71911
-
Timm Baeder authored
Since the return value of this function is slightly more involved than the void/bool/int/size_t return values we've seen so far, also refactor this.
-
Timm Bäder authored
This used to just pass on the given parameter, but we need to respect the given bit width.
-
Yingwei Zheng authored
Alive2: https://alive2.llvm.org/ce/z/F9HG3M This missed optimization is discovered with the help of https://github.com/AliveToolkit/alive2/pull/962.
-
Matthias Braun authored
-
Fangrui Song authored
-
Louis Dionne authored
-