[lld][WebAssembly] Allow defining of arbitrary symbols types in LTO objects (#196552)
Bitcode files don't contains precise symbol type information so we
always allow the post-LTO defined symbols (from the LTO object file) to
overwrite bitcode symbols. We don't want to be reporting type mismatches
in these cases.
Fixes: #195311
[GlobalISel][AArch64] Add lowering for G_SMULFIX (#196757)
Adding lowering for G_SMULFIX G_OP. It is needed to compile
`libc/src/stdfix/expk.cpp` with `-O3`.
[lldb] Assert that CommandObject::DoExecute sets a return status (#196589)
Change the default value of CommandReturnObject::m_status from
eReturnStatusStarted to eReturnStatusInvalid, and add a debug-only RAII
check in CommandObjectParsed::Execute and CommandObjectRaw::Execute that
asserts the status is no longer Invalid after DoExecute returns.
This catches commands that forget to call SetStatus on a success or
failure path. Succeeded() still returns true when the status is Invalid
(0 sorts below eReturnStatusSuccessContinuingResult), so helpers that
read result.Succeeded() as a precondition before any explicit SetStatus
(e.g. StopProcessIfNecessary) continue to work.
rdar://176506732
DAGCombiner: (srl/sra (add nuw/nsw X, c), d) --> (add nuw/nsw (srl/sra X, d), c >> d)
Additional precondition:
* The LSBs of c are 0; equivalently: c >> d is exact
Alive2 for
* unsigned case: https://alive2.llvm.org/ce/z/YcJ8qA
* signed case: https://alive2.llvm.org/ce/z/fgpvyE
We already canonicalize (shl (add ...) ...) to (add (shl ...) ...).
Restrict this combine to the single-use case to minimize risk for now.
The main target of this combine is a fan-out tree of `add`s that all end
up being shifted by the same amount at the leaves. This change happens to
improve a bunch of existing CodeGen tests in AMDGPU.
v2:
- remove a redundant check on the shift amount -- large shift amounts
results in poison anyway
[2 lines not shown]
[FileCheck] Handle directives at EOF without a trailing newline (#196576)
FileCheck could assert when a check directive ended at EOF without a
trailing newline. After parsing the directive suffix, EOF can be a valid
continuation point, so parsing now continues directly from
`AfterSuffix`.
Fixes #101582
[RISCV] Check for null LIS before trying to move AVL in canMutatePriorConfig. (#196673)
If LIS is null then the VN info are null and we don't know if we need to
move the AVL.
Fixes an assertion like
RegAllocFast.cpp:729: void (anonymous
namespace)::RegAllocFastImpl::reloadAtBegin(MachineBasicBlock &):
Assertion `(&MBB != &MBB.getParent()->front() || IgnoreMissingDefs) &&
"no reload in start block. Missing vreg def?"' failed.
[lldb] Support list-ing Source Embedded in DWARF (#191802)
Compiled programs that embed their source code into their debugging
information (using, e.g., DW_LNCT_LLVM_source) should display that code
during debugging sessions.
Fixes #191801
[SPIRV] Extend NSDI debug handling for DebugTypeFunction.
Changes:
- Collect required types with DebugInfoFinder instead of walking DbgVariableRecords only. This allows processing types that might not be available in these records, and avoids code duplication for the traversals.
- Emit DebugTypeFunction for DISubroutineType when every signature slot maps to an
emitted debug type.
- Reset per-module state in beginModule().
- Replace parallel FileStringRegs/BasicTypeNameRegs with a StringMap OpString
cache, deduplicating identical strings.
- Add LLVM DINode flag lowering for NSDI.
- Cache DebugInfoNone, OpTypeVoid and OpTypeInt32 registers to avoid duplicate instructions.
[GitHub] Support issue_comment workflows in issue_write (#192205)
This is split off from #190010. We want to add a new workflow triggered
whenever a comment is added to an issue (workflow_run.event ==
'issue_comment'), that also writes an comment back via the issue_write
workflow.
However for issue_comment workflows, the head branch for the workflow
won't be the head of the PR, but the default branch of the repository.
So trying to fetch the PR based on the branch will fail.
GitHub docs seem to recommend that the PR number is explicitly passed
via an artifact in these cases:
https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#using-data-from-the-triggering-workflow
This PR adds support for this so we can eventually leave comments from
the test-suite.yml workflow