- May 07, 2024
-
-
Ian Anderson authored
stdarg.h and especially stddef.h are textual and so everything they declare gets precompiled into all of their clients' pcm files. They shouldn't directly declare anything though, their purpose is to select what submodules get imported, and not to add duplicate declarations to all of their clients. Make it so that they always ignore their header guards, even without modules, and declare them in separate header files so that they only go into the stdarg/stddef pcms. Still declare them in case clients rely on them.
-
Schrodinger ZHU Yifan authored
Such APIs are useful in lock implementations
-
Valentin Clement (バレンタイン クレメン) authored
fir.cuda_free operation was wrongly generated for dummy argument.
-
S. Bharadwaj Yadavalli authored
An earlier commit provided a way to decouple DXIL version from Shader Model version by representing the DXIL version as `SubArch` in the DXIL Target Triple and adding corresponding valid DXIL Arch types. This change constructs DXIL target triple with DXIL version that is deduced from Shader Model version specified in the following scenarios: 1. When compilation target profile is specified: For e.g., DXIL target triple `dxilv1.8-unknown-shader6.8-library` is constructed when `-T lib_6_8` is specified. 2. When DXIL target triple without DXIL version is specified: For e.g., DXIL target triple `dxilv1.8-pc-shadermodel6.8-library` is constructed when `-mtriple=dxil-pc-shadermodel6.8-library` is specified. Updated relevant HLSL tests that check for target triple. Validated that Clang (`check-clang`) and LLVM (`check-llvm`) regression tests pass.
-
Krzysztof Parzyszek authored
Address review comments for PR91214.
-
Jonas Devlieghere authored
Use add_custom_command instead of add_custom_target to generate SBLanguages.h.
-
Chris B authored
This implements the HLSL 202x conforming literals feature. The feature proposal is available here: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0017-conforming-literals.md The language specification for this behavior is available in (poorly rendered) HTML or PDF: https://microsoft.github.io/hlsl-specs/specs/hlsl.html#Lex.Literal.Float https://microsoft.github.io/hlsl-specs/specs/hlsl.pdf The main implementation details are: 1) Unsuffixed floating literals are `float`. 2) The integer `ll` suffix specifies `int64_t (aka long)` which is 64-bit because HLSL has no defined `long` keyword or `long long` type. Resolves #85714
-
Chris B authored
This adds a document to describe the DXContainer format and the structures of data inside the file. Resolves #88775
-
David Tenty authored
Revert the portion of https://github.com/llvm/llvm-project/pull/75125 which modified the LIBOMP_HEADERS_INSTALL_PATH in standalone build. This change is harmful for real standalone builds (i.e. builds where we build openmp by itself), since it tries to overwrite the `omp.h` inside the build compiler. For all-in-one builds with clang, testing shows this change is unnecessary as https://github.com/llvm/llvm-project/pull/88007 already set up that build configuration so that omp.h will be put into the project build's `clang` resource directory.
-
Keith Smiley authored
-
Alan Zhao authored
[coro][CoroSplit] Use `llvm.lifetime.end` to compute putting objects on the frame vs the stack (#90265) The current logic for using lifetime intrinsics to determine whether a coroutine alloca should live on the coroutine frame or stack doesn't consider `llvm.lifetime.end`. As a result, some allocas are incorrectly placed on the stack even though their lifetimes may outlive the stack. For example, SimplifyCFG may generate code that drops the corresponding `llvm.lifetime.end` of an `llvm.lifetime.start`, and that code is incorrectly handled by the existing logic. To fix this, new logic is introduced where if an alloca's address is escaped, and there is a path from an `llvm.lifetime.start` to a coroutine suspend point (e.g. `llvm.coro.suspend`) without an `llvm.lifetime.end`, then we know the object lives beyond the suspension point and therefore must go on the coroutine frame. Fixes https://github.com/llvm/llvm-project/issues/86580
-
Krzysztof Parzyszek authored
Insert the barrier after the last _executed_ copy, not the most recently inserted copy. This fixes https://github.com/llvm/llvm-project/issues/91205.
-
Alexander Yermolovich authored
We need to update DW_AT_comp_dir/DW_AT_dwo_name TU in the .debug_info.dwo section so that the path is correct. Refactored helper functions to make it easier for next step.
-
Brandt Bucher authored
This uses non-volatile registers for the first four (six on Windows) registers used for `preserve_none` argument passing. This allows these registers to stay "pinned", even if the body of the `preserve_none` function contains calls to other "normal" functions. Example: ```c void boring(void); __attribute__((preserve_none)) void (continuation)(void *, void *, void *, void *); __attribute__((preserve_none)) void entry(void *a, void *b, void *c, void *d) { boring(); __attribute__((musttail)) return continuation(a, b, c, d); } ``` Before: ```asm pushq %rax movq %rcx, %rbx movq %rdx, %r14 movq %rsi, %r15 movq %rdi, %r12 callq boring@PLT movq %r12, %rdi movq %r15, %rsi movq %r14, %rdx movq %rbx, %rcx popq %rax jmp continuation@PLT ``` After: ```asm pushq %rax callq boring@PLT popq %rax jmp continuation@PLT ``` -
Chris authored
This change updates the logic that determines whether an `emitc.expression` result is translated into a dedicated variable assignment. Due to how the translation of `emitc.subscript` currently works, a previously inline-able `emitc.expression` would produce incorrect C++ if its single user was a `emitc.subscript` operation.
-
David Green authored
This removes the GISel versions of isREVMask, isTRNMask, isUZPMask and isZipMask. They are combined with the existing versions from SDAG into AArch64PerfectShuffle.h.
-
Fangrui Song authored
-
Simon Pilgrim authored
This appears to have been missed because later cpus don't inherit from Nehalem tuning much. Noticed while cleaning up for #90985
-
Alexey Bataev authored
Need to use the last address of the vectorized stores for the strided stores, not the first one, to correctly store the data.
-
Andy Kaylor authored
This change refactors RenderFloatingPointOptions() to eliminate some excessively complicated logic and a redundant switch statement. The logic being simplified is an artifact of the original -ffp-model implementation, and over time it has become unnecessary. The handling of diagnostics related to the -ffp-contract option is still a bit convoluted after this change. I will address that in a subsequent patch because I think it will make sense to make some minor changes to the driver behavior when that is cleaned up. The current patch should not make any change to observable behavior of the driver.
-
Alex Langford authored
I was cleaning up this portion of the code and realized these are completely unused.
-
alx32 authored
In some cases we see strings from categories being part of "data" sections (Ex:`__objc_const`), not part of of sections marked as `cstring_literals`. Since lld treats these sections differently we need to explicitly implement support for reading strings from the non-`cstring_literals` sections. Adding a test that previously would result in an assert.
-
alx32 authored
When generating categories, clang sometimes will generate references in the `.addrsig` section to the various category data items. Since we may erase such items after merging them, we also need to remove them from the `.addrsig` section - otherwise this will cause runtime asserts with the `.addrsig` section trying to access invalid data. Implementation wise, we use a hashset to keep track of all erased `InputSection`'s and then go through all `.addrsig` sections and remove references to any erased `InputSection`.
-
Luke Lau authored
Currently RISCVDeadRegisterDefinitions runs after vsetvli insertion, but in #70549 vsetvli insertion runs after vector regalloc and as a result we no longer convert some vsetvli a0, a0s to vsetvli x0, a0. This patch moves it to after vector regalloc, but before scalar regalloc so we still get the benefits of reducing register pressure.
-
Leandro Lupori authored
-
erichkeane authored
These two are very similar to the other 'var-list' variants, except they require that the type of the variable be a pointer. This patch implements that restriction.
-
David Green authored
-
Leandro Lupori authored
Besides duplicating code, privatizing variables in every section causes problems when synchronization barriers are used. This happens because each section is executed by a given thread, which will cause the program to hang if not all running threads execute the barrier operation. Fixes https://github.com/llvm/llvm-project/issues/72824
-
Luke Lau authored
Because LiveVariables has been run, we no longer need to lookup the users in MachineRegisterInfo anymore and can instead just check for the dead flag.
-
- May 06, 2024
-
-
Congcong Cai authored
-
Alexey Bataev authored
Need to check that the signed operand has an extra sign bit to be sure that we do not skip signedness, when trying to minimize bitwidth for smin/smax intrinsics.
-
Alexey Bataev authored
-
Franklin Zhang authored
Fix the issue that `char` constants are converted to `uint64_t` in the wrong way when doing the inlining.
-
David Tenty authored
This reverts commit 11066449. As noted in the original patch, this was designed to reverted once https://reviews.llvm.org/D142479 and https://reviews.llvm.org/D142660 landed, which has long since happened.
-
Zequan Wu authored
`SBProcess::GetMemoryRegionInfo` uses `qMemoryRegionInfo` packet to get memory region info, but this is not supported in gdb-server and causing downstream lldb test failures. This change ignores the the error from `SBProcess::GetMemoryRegionInfo` . Reported by @tedwoodward @jerinphilip.
-
Jan Voung authored
Revert "Reapply "Use an abbrev to reduce size of VALUE_GUID records in ThinLTO summaries" (#90610)" (#91194) Reverts llvm/llvm-project#90692 Breaking PPC buildbots. The bots are not meant to test LLD, but are running a test that is using an old version of LLD without the change (so is incompatible). Revert until a fix is found.
-
Michael Flanders authored
Adds more FP test macros for the upcoming test adds for #61092 and the issues opened from it: #88768, #88769, #88770, #88771, #88772. Fix bug in `{EXPECT,ASSERT}_FP_EXCEPTION`. `EXPECT_FP_EXCEPTION(0)` seems to be used to test that an exception did not happen, but it always does `EXPECT_GE(... & 0, 0)` which never fails. Update and refactor tests that break after the above bug fix. An interesting way things broke after the above change is that `ForceRoundingMode` and `quick_get_round()` were raising the inexact exception, breaking a lot of the `atan*` tests. The changes for all files other than `FPMatcher.h` and `libc/test/src/math/smoke/RoundToIntegerTest.h` should have the same semantics as before. For `RoundToIntegerTest.h`, lines 56-58 before the changes do not always hold since this test is used for functions with different exception and errno behavior like `lrint` and `lround`. I've deleted those lines for now, but tests for those cases should be added for the different nearest int functions to account for this. Adding @nickdesaulniers for review. -
Danny Mösch authored
Fixes #90285.
-
martinboehme authored
This relands #90348 with a fix for a [buildbot failure](https://lab.llvm.org/buildbot/#/builders/216/builds/38446) caused by the test being run with `-fno-rtti`.
-
Florian Hahn authored
Pre-commit tests for an upcoming patch.
-