LLVM/project 5185fb3llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/RISCV combine-is_fpclass.ll

[DAG] computeKnownFPClass - add ISD::FNEG handling + test coverage (#190325)

Fixes #189483 

- Implement computeKnownFPClass for ISD::FNEG in SelectionDAG.cpp
- Add tests for RISC-V in llvm/test/CodeGen/RISCV/known-fpclass-fneg.ll
DeltaFile
+40-0llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
+6-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+46-02 files

LLVM/project 42166b6llvm/test/Transforms/LoopVectorize epilog-vectorization-reductions.ll epilog-iv-select-cmp.ll, llvm/test/Transforms/LoopVectorize/AArch64 check-prof-info.ll epilog-vectorization-widen-inductions.ll

[LV] Update forced epilogue VF options to allow different VFs than main. (#190393)

Previously, forced epilogue vector factors via the command line options
required to match the forced main VF (or the VF to be built in general).
This leads to a number of akward tests, where we end up with dead
epilogue vector loops.

Update the logic to build an additional VPlan with the epilogue vector
factor, and require the provided epilogue VF to be < IC * MainLoopVF.
Otherwise, epilogue vectorization is skipped.

This only impacts the forced epilogue VF option used for testing and
ensures epilogue tests to cover more realistic scenarios and make them
more robust w.r.t. to additional VPlan-based folding.

PR: https://github.com/llvm/llvm-project/pull/190393
DeltaFile
+173-175llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
+97-97llvm/test/Transforms/LoopVectorize/AArch64/check-prof-info.ll
+97-81llvm/test/Transforms/LoopVectorize/epilog-iv-select-cmp.ll
+76-68llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
+70-57llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
+57-57llvm/test/Transforms/LoopVectorize/select-min-max-last-index-epilogue.ll
+570-53510 files not shown
+785-63916 files

LLVM/project 93c349bllvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp, llvm/test/CodeGen/RISCV known-fpclass.ll

[DAG] computeKnownFPClass - Add handling for AssertNoFPClass (#190185)

Resolves #189478

Adds code to handle AssertNoFPClass in computeKnownFPClass and adds IR
test coverage for RISC-V.
DeltaFile
+72-0llvm/test/CodeGen/RISCV/known-fpclass.ll
+8-0llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+80-02 files

LLVM/project 87dda6aclang/docs ReleaseNotes.rst, clang/lib/Sema SemaTemplateInstantiateDecl.cpp

[Clang] Do not create a NoSFINAETrap for variable specialization. (#191000)

There is no thing in the standard that says this should happen outside
of the immediate context.

Fixes #54439
DeltaFile
+26-0clang/test/SemaCXX/cxx1y-variable-templates_top_level.cpp
+0-1clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+1-0clang/docs/ReleaseNotes.rst
+27-13 files

LLVM/project ebc5607llvm/docs AMDGPUUsage.rst, llvm/lib/Target/AMDGPU SIMemoryLegalizer.cpp AMDGPULowerIntrinsics.cpp

[AMDGPU] Use wavefront scope for single-wave workgroup synchronization (#187673)

Workgroup-scoped fences and non-relaxed workgroup atomics were
previously legalized with synchronization strong enough for multi-wave
workgroups.
When the kernel's maximum flat work-group size does not exceed the
wavefront size, the workgroup contains only a single wavefront, so
workgroup-scoped synchronization is equivalent to wavefront scope and
the stronger legalization is unnecessary.
SIMemoryLegalizer now demotes workgroup scope to wavefront scope
in this case for workgroup-scoped fences and for non-relaxed atomic
load, store, atomicrmw, and cmpxchg operations.
This allows subsequent legalization to operate at wavefront scope.
The decision is based on AMDGPUSubtarget::isSingleWavefrontWorkgroup.

---------

Co-authored-by: Barbara Mitic <Barbara.Mitic at amd.com>
DeltaFile
+2,759-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+176-496llvm/test/CodeGen/AMDGPU/global-saddr-atomics.ll
+80-104llvm/test/CodeGen/AMDGPU/flat-saddr-atomics.ll
+28-7llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
+12-0llvm/docs/AMDGPUUsage.rst
+2-4llvm/lib/Target/AMDGPU/AMDGPULowerIntrinsics.cpp
+3,057-6112 files not shown
+3,065-6118 files

LLVM/project 9cf8152llvm/include/llvm/Transforms/Vectorize SLPVectorizer.h, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

Revert "[SLP][AMDGPU] Vectorize operands of non-trivially-vectorizable intrinsic calls" (#191153)

Reverts llvm/llvm-project#189784
DeltaFile
+169-133llvm/test/Transforms/SLPVectorizer/AMDGPU/notriviallyvectorizableintrinsicoperands.ll
+6-137llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+4-3llvm/test/Transforms/SLPVectorizer/RISCV/revec.ll
+0-5llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
+179-2784 files

LLVM/project 629bd87llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, llvm/unittests/Frontend OpenMPIRBuilderTest.cpp

[OMPIRBuilder] Move debug records to correct blocks. (#157125)

Consider the following small OpenMP target region:

```
!$omp target map(tofrom: x)
  x = x + 1
!$omp end target

```
Currently, when compiled with `flang`, it will generate an outlined
function like below (with irrelevant bits removed).

```
void @__omp_offloading_10303_14e8afc__QQmain_l13(ptr %0, ptr %1) { entry:
  %2 = alloca ptr, align 8, addrspace(5)
  %3 = addrspacecast ptr addrspace(5) %2 to ptr
...
  br i1 %exec_user_code, label %user_code.entry, label %worker.exit

    [36 lines not shown]
DeltaFile
+151-0llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+47-0mlir/test/Target/LLVMIR/omptarget-debug-record-pos.mlir
+28-1llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+5-5mlir/test/Target/LLVMIR/omptarget-debug-var-1.mlir
+231-64 files

LLVM/project 8506466clang/lib/StaticAnalyzer/Checkers CStringChecker.cpp, clang/test/Analysis bstring.c bstring.cpp

[analyzer] Fix crash in CStringChecker on zero-size element types (#191061)

Move the null check of Offset before its dereference in checkInit. When
the element type has zero size (e.g., an empty struct in C), the
division returns an empty optional, which was dereferenced
unconditionally.

Fixes #190457
DeltaFile
+14-0clang/test/Analysis/bstring.c
+9-0clang/test/Analysis/bstring.cpp
+3-3clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+26-33 files

LLVM/project b78da18clang/test/Analysis/Scalable extraction-works-alongside-compilation.cpp

[clang][ssaf][test] Fix the extraction-works-alongside-compilation.cpp test (#191162)

I forgot that we need this `REQUIRES: asserts` for the test.

Fixes build bots not setting `LLVM_ENABLE_ASSERTIONS=ON`.
For example:
https://lab.llvm.org/buildbot/#/builders/11/builds/37623

This fixes up #191058
DeltaFile
+1-0clang/test/Analysis/Scalable/extraction-works-alongside-compilation.cpp
+1-01 files

LLVM/project 9456cedllvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[LV] NFCI: Create VPExpressions in transformToPartialReductions.

With this change, all logic to generate partial reductions and
recognising them as VPExpressions is contained in
`transformToPartialReductions`, without the need for a second
transform pass.
The PR intends to be a non-functional change.
DeltaFile
+57-18llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+57-181 files

LLVM/project 18d5b9ellvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[LV] Simplify costing partial reduction chain links (NFCI) (#190980)

Previously, `getPartialReductionLinkCost()` needed to figure out what
case `matchExtendedReductionOperand()` matched to compute a cost. This
made adding new cases to `matchExtendedReductionOperand()` more complex
and added some redundancy.

This patch updates `ExtendedReductionOperand` so that it contains all
the information needed to compute the cost ready to pass to
`getPartialReductionCost()`. This means matching new operand forms only
needs to be done in `matchExtendedReductionOperand()`.

This is split off from #188043 (this change simplifies matching absolute
difference operands).
DeltaFile
+60-67llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+60-671 files

LLVM/project 3529ce0mlir/include/mlir/Dialect/Vector/Utils VectorUtils.h, mlir/lib/Dialect/Linalg/Transforms Vectorization.cpp

[mlir][Vector] Make createWriteOrMaskedWrite utility (#190967)

Analog to https://github.com/llvm/llvm-project/pull/89119, make
`createWriteOrMaskedWrite` a vector utility, exposing it for re-use by
downstream users.

This PR is mostly just moving code and updating documentation but also
addresses a `TODO` for `isMaskTriviallyFoldable` to use that utility in
`createReadOrMaskedRead` as well.

No new tests were added, because the functionality is covered by existing tests.

---------

Signed-off-by: Lukas Sommer <lukas.sommer at amd.com>
DeltaFile
+7-211mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
+194-9mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
+13-0mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
+214-2203 files

LLVM/project 01c5908llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanUnroll.cpp, llvm/test/Transforms/LoopVectorize epilog-vectorization-reductions.ll

[VPlan] Handle AnyOf Or reduction via ComputeReductionResult. (#191049)

Instead of having ComputeAnyOfResult handle the Or reduction of unrolled
parts inline, route it through ComputeReductionResult with
RecurKind::Or. ComputeAnyOfResult now takes a pre-reduced scalar and
only performs the freeze + select.

This is a preparatory step towards removing ComputeAnyOfResult entirely
in https://github.com/llvm/llvm-project/pull/190039.

PR: https://github.com/llvm/llvm-project/pull/191049
DeltaFile
+23-10llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+7-3llvm/lib/Transforms/Vectorize/VPlanUnroll.cpp
+1-8llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+5-1llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+2-2llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
+38-245 files

LLVM/project e765ea9mlir/include/mlir/Dialect/LLVMIR LLVMAttrDefs.td, mlir/lib/CAPI/Dialect LLVM.cpp

[mlir][debug] Make DICompileUnitAttr recursive. (#190808)

This PR add `DIRecursiveTypeAttrInterface` to `DICompileUnitAttr`. It
should fix the circular dependency problem we have since
`importedEntities` field was added.
DeltaFile
+27-9mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+35-0mlir/lib/Target/LLVMIR/DebugTranslation.cpp
+32-0mlir/test/Target/LLVMIR/llvmir-debug.mlir
+30-1mlir/test/Target/LLVMIR/Import/debug-info.ll
+22-0mlir/lib/Dialect/LLVMIR/IR/LLVMAttrs.cpp
+12-6mlir/lib/CAPI/Dialect/LLVM.cpp
+158-168 files not shown
+189-3114 files

LLVM/project c73872aclang/docs InternalsManual.rst ReleaseNotes.rst, clang/include/clang/Sema Sema.h

[Clang] Improve concept performance 1/N (#188421)

The concept parameter mapping patch significantly impacted performance
in scenarios where concepts are heavily used, even with
atomic-expression-level caching.

After normalization, we often end up with large atomic expressions
containing numerous duplicate and complex template parameter mappings.
Previously, we were substituting and checking these repeatedly, which
was highly inefficient.

We now cache these substitution results within TemplateInstantiator.
This saves us a lot of duplicate semantic checking and provides us some
performance improvement, as in these regression cases:

usb_ids_gen.cpp:
clang-21: 1.41s
clang-22: 3.90s
This patch: 2.45s

    [12 lines not shown]
DeltaFile
+37-4clang/lib/Sema/SemaTemplateInstantiate.cpp
+12-0clang/lib/Sema/SemaConcept.cpp
+7-0clang/include/clang/Sema/Sema.h
+2-1clang/docs/InternalsManual.rst
+1-0clang/docs/ReleaseNotes.rst
+59-55 files

LLVM/project cc419f1clang/test/CodeGen 2004-02-13-Memset.c

[clang][test] Modernize 2004-02-13-Memset.c to use FileCheck (#191092)

Replace `grep | count` verification with `FileCheck` and update `CHECK`
directives with current codegen output.
DeltaFile
+3-3clang/test/CodeGen/2004-02-13-Memset.c
+3-31 files

LLVM/project ba91dd1llvm/test/Transforms/LoopVectorize intrinsic.ll lifetime.ll, llvm/test/Transforms/LoopVectorize/AArch64 veclib-intrinsic-calls.ll

[LV][NFC] Remove unneeded LLVM intrinsic declarations (#190993)

We no longer need to declare LLVM intrinsics in .ll files as the
intrinsics are populated automatically in the module. Remove the
declarations from tests to reduce test noise and size.

This came from a suggestion on PR #190786.
DeltaFile
+0-67llvm/test/Transforms/LoopVectorize/intrinsic.ll
+0-64llvm/test/Transforms/LoopVectorize/AArch64/veclib-intrinsic-calls.ll
+0-34llvm/test/Transforms/LoopVectorize/X86/amdlibm-calls.ll
+8-10llvm/test/Transforms/LoopVectorize/lifetime.ll
+0-16llvm/test/Transforms/LoopVectorize/X86/svml-calls.ll
+0-16llvm/test/Transforms/LoopVectorize/PowerPC/massv-calls.ll
+8-207104 files not shown
+15-439110 files

LLVM/project 9f47bcdllvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp LegalizeTypes.h, llvm/test/CodeGen/AArch64 vselect-widen-mask-tree.ll arm64-zip.ll

Revert "[SelectionDAG] Recurse through mask expression trees in WidenVSELECTMask (#188085)" (#191151)

This reverts commit 815edc3ff646392bfee2b381d37dd35e4b04f9c5.
DeltaFile
+0-203llvm/test/CodeGen/AArch64/vselect-widen-mask-tree.ll
+51-130llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+34-31llvm/test/CodeGen/X86/bitcast-int-to-vector-bool-sext.ll
+18-9llvm/test/CodeGen/AArch64/arm64-zip.ll
+0-14llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+103-3875 files

LLVM/project 222a643clang/lib/ScalableStaticAnalysisFramework/Frontend TUSummaryExtractorFrontendAction.cpp, clang/test/Analysis/Scalable extraction-works-alongside-compilation.cpp

[clang][ssaf] Preserve AST after codegen for SSAF extractors (#191058)

This is a use-after-free.
Codegen would drop the AST before starting the optimizations on the LLVM
IR level. This means that the ASTConsumers of the SSAF extractors only
had dangling TU Decls etc.

For now, let's override this option to force-keep the AST alive. Note
that PluginActions already did the same if their consumers were added
after the main frontend-action.
See:

https://github.com/llvm/llvm-project/blob/69e0367e8221b8002b5d438fb70ff3daf36257fc/clang/lib/Frontend/FrontendAction.cpp#L470
```c++
CI.getCodeGenOpts().ClearASTBeforeBackend = false;
```

Long term, we could think about the stability implications of running
the extractors before codegen to be able to drop the AST, thus save

    [13 lines not shown]
DeltaFile
+16-0clang/test/Analysis/Scalable/extraction-works-alongside-compilation.cpp
+1-0clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
+17-02 files

LLVM/project 2d6c413llvm/test/Analysis/DependenceAnalysis exact-rdiv-addrec-wrap.ll

[DA] Remove "FIXME" for a test that has been fixed (#191143)
DeltaFile
+0-3llvm/test/Analysis/DependenceAnalysis/exact-rdiv-addrec-wrap.ll
+0-31 files

LLVM/project a6f967cclang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64 neon-intrinsics.c

[clang][CIR] Add lowering for vcvt_n_ and vcvtq_n_ conversion intrinsics (#190961)

This PR adds lowering for the conversion intrinsics with an immediate
argument (identified by `_n_` in the intrinsic name), excluding FP16
variants.

It also moves the corresponding tests from:
  * clang/test/CodeGen/AArch64/neon_intrinsics.c

to:
  * clang/test/CodeGen/AArch64/neon/intrinsics.c

The lowering follows the existing implementation in
CodeGen/TargetBuiltins/ARM.cpp and adds the `getFloatNeonType` helper
to support it. The remaining changes are code motion and refactoring.

Reference:
[1] https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#conversions
DeltaFile
+197-147clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+222-0clang/test/CodeGen/AArch64/neon/intrinsics.c
+0-201clang/test/CodeGen/AArch64/neon-intrinsics.c
+419-3483 files

LLVM/project 600e1c0llvm/include/llvm/Transforms/Vectorize SLPVectorizer.h, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

Revert "[SLP][AMDGPU] Vectorize operands of non-trivially-vectorizable intrin…"

This reverts commit 87717bf9f81f7b29466c5d9a30a3453bdfc93941.
DeltaFile
+169-133llvm/test/Transforms/SLPVectorizer/AMDGPU/notriviallyvectorizableintrinsicoperands.ll
+6-137llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+4-3llvm/test/Transforms/SLPVectorizer/RISCV/revec.ll
+0-5llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
+179-2784 files

LLVM/project bc0b57elibc/src/__support/OSUtil/linux/syscall_wrappers listen.h, libc/src/sys/socket listen.h

[libc] Implement listen(2) on linux (#190755)

I'm using the new syscall wrapper framework, and enabling the entry
point for x86_64, aarch64 and riscv. I also extend the connect test to
check for successful connection, now that we have that ability.
DeltaFile
+59-0libc/test/src/sys/socket/linux/listen_test.cpp
+43-0libc/src/__support/OSUtil/linux/syscall_wrappers/listen.h
+27-0libc/src/sys/socket/linux/listen.cpp
+21-0libc/test/src/sys/socket/linux/CMakeLists.txt
+20-0libc/src/sys/socket/listen.h
+12-0libc/src/sys/socket/linux/CMakeLists.txt
+182-06 files not shown
+213-112 files

LLVM/project 5918619llvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 logical-op-with-not.ll atomicrmw-O0.ll

[AArch64][CodeGen] match (or x (not y)) to generate mov+orn (#191145)

Fixes: #100045

Adds a tablegen pattern that matches (or x (not y)) and generates a
mov+orn instead of the original mvn+orr.

The number of instructions still stay the same but mov+orn can be
considered better than mvn+orr for two reasons:
1. Symmetry: For the same input with an 'and' instead of 'or', mov+bic
is generated.
2. Optimzation through register rename: If mov is immediate (for
example, 'mov x1, #0x4'), it can be retired early by the register
renamer and never issued for execution.

This patch was reverted as I wanted to change my email associated with
the patch.

Original patch: #190769

    [2 lines not shown]
DeltaFile
+32-8llvm/test/CodeGen/AArch64/logical-op-with-not.ll
+12-12llvm/test/CodeGen/AArch64/atomicrmw-O0.ll
+4-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+2-2llvm/test/CodeGen/AArch64/arm64-atomic.ll
+50-224 files

LLVM/project 13f1492llvm/include/llvm/ADT GenericUniformityImpl.h, llvm/include/llvm/Analysis UniformityAnalysis.h

refactor: update variable names in uniformity analysis
DeltaFile
+35-35llvm/include/llvm/ADT/GenericUniformityImpl.h
+36-33llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
+19-19llvm/lib/Analysis/UniformityAnalysis.cpp
+4-4llvm/include/llvm/Analysis/UniformityAnalysis.h
+4-3llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
+98-945 files

LLVM/project ff388adllvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[LV] NFCI: Create VPExpressions in transformToPartialReductions.

With this change, all logic to generate partial reductions and
recognising them as VPExpressions is contained in
`transformToPartialReductions`, without the need for a second
transform pass.
The PR intends to be a non-functional change.
DeltaFile
+54-14llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+54-141 files

LLVM/project b9c8733clang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64 v8.2a-fp16-intrinsics.c

[CIR][Aarch64] upstream scalar & vector intrinsics (FP16) (#190310)

This PR upstreams the following fp16 intrinsics as part of #185382:

- vaddh_f16, 
- vsubh_f16, 
- vmulh_f16, 
- vdivh_f16

This is my first PR to LLVM, so any feedback is greatly appreciated!
DeltaFile
+52-0clang/test/CodeGen/AArch64/neon/fullfp16.c
+0-28clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics.c
+8-4clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+60-323 files

LLVM/project ff604fdclang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64 neon-intrinsics.c

[clang][CIR] Add lowering for vcvt_n_ and vcvtq_n_ conversion intrinsics

This PR adds lowering for the conversion intrinsics with an immediate
argument (identified by `_n_` in the intrinsic name), excluding FP16
variants.

It also moves the corresponding tests from:
  * clang/test/CodeGen/AArch64/neon_intrinsics.c

to:
  * clang/test/CodeGen/AArch64/neon/intrinsics.c

The lowering follows the existing implementation in
CodeGen/TargetBuiltins/ARM.cpp and adds the `getFloatNeonType` helper
to support it. The remaining changes are code motion and refactoring.

Reference:
[1] https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#conversions
DeltaFile
+197-147clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+222-0clang/test/CodeGen/AArch64/neon/intrinsics.c
+0-201clang/test/CodeGen/AArch64/neon-intrinsics.c
+419-3483 files

LLVM/project 7cccf56mlir/lib/Transforms CSE.cpp, mlir/test/Transforms cse.mlir

Revert "[mlir][CSE] Delete dead code immediately in CSE pass" (#191146)

Reverts llvm/llvm-project#190926 ; this is crashing on simple examples
like:

```
func.func @test(%arg0: i1) {
  %c0_i32 = arith.constant 0 : i32
  %0 = arith.select %arg0, %c0_i32, %c0_i32 : i32
  %1 = scf.if %arg0 -> (i32) {
    %c0_i32_0 = arith.constant 0 : i32
    scf.yield %c0_i32_0 : i32
  } else {
    %c0_i32_0 = arith.constant 0 : i32
    scf.yield %c0_i32_0 : i32
  }
  return
}
```
DeltaFile
+0-32mlir/test/Transforms/cse.mlir
+5-9mlir/lib/Transforms/CSE.cpp
+5-412 files

LLVM/project 918e446lldb/packages/Python/lldbsuite/test lldbutil.py, lldb/test/API/macosx/simulator TestSimulatorPlatform.py

[lldb] Handle simulator printout in TestSimulatorPlatform (#189571)

This test invokes a binary in a simulator and then reads the first line
of stderr to parse the PID of the invoked binary.

This approach fails when the simulator itself prints a warning/error on
startup. In this case, we try to parse the error as the PID and fail.

This patch just removes the line limit. It doesn't seem to add any value
as we anyway need to search until we find the PID line, and if there is
no PID line we cannot do anything but time out eventually.

See also rdar://169799464
DeltaFile
+15-13lldb/packages/Python/lldbsuite/test/lldbutil.py
+0-1lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
+15-142 files