SuccessChanges

Summary

  1. [InitLLVM] Ensure SIGPIPE handler installed before sigaction() (details)
  2. Attempt to complete an incomplete expression type when considering a (details)
  3. Update the maximum integer bitwidth in MLIR. (details)
  4. [NewPM] Run ObjC ARC passes (details)
Commit e05baf40de8a3bbfcf4a765761b1147e94b7309c by Vedant Kumar
[InitLLVM] Ensure SIGPIPE handler installed before sigaction()

The pipe signal handler must be installed before any other handlers are
registered. This is because the Unix RegisterHandlers function does not
perform a sigaction() for SIGPIPE unless a one-shot handler is present,
to allow long-lived processes (like lldb) to fully opt-out of llvm's
SIGPIPE handling and ignore the signal safely.

Fixes a bug introduced in D70277.

Tested by running Nick's test case:

% xcrun ./bin/clang -E -fno-integrated-cc1 x.c | tee foo.txt | head

I verified that child cc1 process exits with IO_ERR, and that the parent
recognizes the error code, exiting cleanly.

Differential Revision: https://reviews.llvm.org/D94324
The file was modifiedllvm/include/llvm/Support/InitLLVM.h
The file was addedclang/test/Driver/sigpipe-handling.c
The file was modifiedllvm/lib/Support/InitLLVM.cpp
Commit 2bf6e443e54604c7818c4d1a1837f3d091023270 by richard
Attempt to complete an incomplete expression type when considering a
reference binding to an expression.

We need to know the array bound in order to determine whether the
parameter type is reference-compatible with the argument type, so we
need to trigger instantiation in this case.
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/lib/Sema/SemaTemplateDeduction.cpp
The file was modifiedclang/test/SemaTemplate/instantiate-static-var.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
Commit bc8acf2ce8ad6e8c9b1d97b2e02d3f4ad26e1d9d by andrew
Update the maximum integer bitwidth in MLIR.

Large integers are generated in Circt commonly which exceed 4kbits.  This aligns the maximum bitwidth in MLIR and LLVM.

Reviewed By: rriddle, lattner, mehdi_amini

Differential Revision: https://reviews.llvm.org/D94116
The file was modifiedmlir/test/IR/invalid-ops.mlir
The file was modifiedmlir/include/mlir/IR/BuiltinTypes.h
Commit 756dd707668ccc1ac22b88d5899984843a5a3262 by aeubanks
[NewPM] Run ObjC ARC passes

Match the legacy PM in running various ObjC ARC passes.

This requires making some module passes into function passes. These were
initially ported as module passes since they add function declarations
(e.g. https://reviews.llvm.org/D86178), but that's still up for debate
and other passes do so.

Reviewed By: ahatanak

Differential Revision: https://reviews.llvm.org/D93743
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was modifiedllvm/include/llvm/Transforms/ObjCARC.h
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp