SuccessChanges

Summary

  1. [clang] Remove the DIFlagArgumentNotModified debug info flag (details)
  2. [Scalarizer] Treat values from unreachable blocks as undef (details)
Commit 1643734741d2f2957206774a50960ba335a36a0c by djordje.todorovic
[clang] Remove the DIFlagArgumentNotModified debug info flag
It turns out that the ExprMutationAnalyzer can be very slow when AST
gets huge in some cases. The idea is to move this analysis to the LLVM
back-end level (more precisely, in the LiveDebugValues pass). The new
approach will remove the performance regression, simplify the
implementation and give us front-end independent implementation.
Differential Revision: https://reviews.llvm.org/D68206
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was removedclang/test/CodeGen/debug-info-param-modification.c
Commit 1587c7e86f1c58e3f692f0a418e5df6aeb754bb0 by mikael.holmen
[Scalarizer] Treat values from unreachable blocks as undef
Summary: When scalarizing PHI nodes we might try to examine/rewrite
InsertElement nodes in predecessors. If those predecessors are
unreachable from entry, then the IR in those blocks could have
unexpected properties resulting in infinite loops in
Scatterer::operator[]. By simply treating values originating from
instructions in unreachable blocks as undef we do not need to analyse
them further.
This fixes PR41723.
Reviewers: bjope
Reviewed By: bjope
Subscribers: bjope, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70171
The file was modifiedllvm/lib/Transforms/Scalar/Scalarizer.cpp
The file was addedllvm/test/Transforms/Scalarizer/phi-unreachable-pred.ll