[Clang-doc] Display values and comments in MD (#183754)
Display enum members in a tabular format in markdown.
Support displaying enum member value and comments.
Output:
| Name | Value | Comments |
|---|---|---|
| Small | 0 | A pearl.<br>Pearls are quite small.<br><br>Pearls are used
in jewelry. |
| Medium | 1 | A tennis ball. |
| Large | 2 | A football. |
[ELF] Fix -u with TLS symbols: propagate type from STT_NOTYPE to STT_TLS (#185794)
-u creates an Undefined with STT_NOTYPE. When an object file provides
another Undefined with STT_TLS for the same symbol, Symbol::resolve
only updated binding, leaving type as STT_NOTYPE. This caused
sym.isTls() to return false in postScanRelocations, skipping TLS GOT
entry creation and leading to an out-of-range R_X86_64_GOTTPOFF error.
Fix: in resolve(Undefined), when the existing type is STT_NOTYPE,
adopt the incoming type.
[lldb] Replace make_error<StringError> with createStringError* (NFC) (#185748)
This makes the constructions of string errors more concise and more
consistent, mainly by removing the `inconvertibleErrorCode()`.
Additional changes replace `createStringError(formatv(...), ...)` with
`createStringErrorV(...)`.
Assisted-by: Claude
Make omp.iterator verify more robust and add tests
- Make sure
- step in omp.iterator is not zero
- when step > 0, lo < hi
- when step < 0, lo > hi
- Add negative test for above checks
- Add iterator lowering test to make sure negative step work
```
// OpenMP 5.2.6
The iterator value setof the iterator are the set ofvalues i_1,...,i_N where:
i_1 = begin
i_j = i_{j-1} + step, for j >= 2
If step > 0:
i_1 <= end
i_N <= end
i_N + step > end
[6 lines not shown]
[ELF,test] Add test for -u error message referencing object file (#185938)
When -u creates an undefined symbol and a relocatable file has a weak
reference, the error message references the relocatable file, not
<internal>.
[lldb] Catch missing calls to SystemLifetimeManager::Initialize (#185536)
We already catch missing calls to SystemLifetimeManager::Terminate, but
not for Initialize. This adds the missing assert and also makes sure it
behaves correctly when initializing and terminating more than once,
which is now supported.
[HLSL][SPIRV] Update reversebits codegen for half types (#184936)
In order to make codegen compatible with DXC and pass spirv validation,
this patch updates the codegen for half types following the same codegen
as DXC.
fix: https://github.com/llvm/llvm-project/issues/183611
[SamplePGO] Add a flag to disable salvage-unused-profile for large modules. (#185354)
Added a command-line option, `-salvage-unused-profile-max-functions` to
prevents performance degradation during compilation when processing
modules with an extremely large number of functions, where salvaging
unused profiles becomes prohibitively expensive.
[SLP]Do not request the last instruction for first buildvector nodes with no state
If looking for the match of the gather/buildvector node and its root is
a first node, which also a buildvector/gather, and has no state, we
should skip the analysis for such nodes to prevent a compiler crash
Fixes #185851
[TableGen] Fix MUL case in DAG default operands test (#185847)
The checks have been unused forever. This was an oversight in the patch
that introduced this test: https://reviews.llvm.org/D63814
Also fix the checks to match the actual output. This looks like another
oversight in the original patch, presumably because the checks were
never actually tested.
[HLSL][SPIR-V] Add resource load level intrinsics and SPIR-V backend support (#185707)
Adds the intrinsics resource_load_level intrinic for DXIL and SPIR-V. It
will be used to load a value from an specific location in the image at
the given mip level. It will be used to implement the Texture Load and
mips[][] methods.
Assisted-by: Gemini
[Docs] Remove references to IWG in GitRepositoryPolicy (#185919)
The IWG has not been a thing for several years now. Adjust the docs to
point to the infrastructure area team who is now responsible for making
these decisions.
[DWARFLinker] Fix DW_AT_LLVM_stmt_sequence attributes patched to wrong offsets (#178486)
This fixes a bug where `DW_AT_LLVM_stmt_sequence` attributes in dSYM
files were pointing to invalid offsets in the `.debug_line` section.
These attributes must point to `DW_LNE_set_address` opcodes (which mark
sequence starts), but after dsymutil reorders line table sequences by
address, the original row indices no longer correspond to sequence
starts in the output.
The root cause is that when sequences get reordered or merged, a row
that was originally a sequence start may end up in the middle of a
different sequence in the output. The old code was mapping the original
row index directly to its output position, but that output position
might not have a `DW_LNE_set_address` opcode anymore.
The fix builds a mapping from each output row to its containing
sequence's start row. When patching `DW_AT_LLVM_stmt_sequence`, we now:
1. Find the output row corresponding to the original row
2. Look up which sequence that output row belongs to
[22 lines not shown]
[CIR] Set `builtin` attribute for new and delete calls (#184920)
This adds code to set the `builtin` attribute when needed on operator
new and delete calls. This also required setting `nobuiltin` for
replaceable global allocation functions and threading the `builtin`
attribute through the LLVM dialect.
[libc] Force to inline syscall_impl on x86_64 (#178153)
With currently only LIBC_INLINE, we just hint the compiler to inline the
function which however in practice is not always the case.
This is in preparation for adding SHSTK support which requires the
system call enabling it to be inlined into do_start().
[libc++] Switch to the new docker image in the CI (#185843)
This also simplifies the workflow file a bit and removes a redundant
`generic-cxx26` configuration in stage 3.