FailedChanges

Summary

  1. [NFC][PowerPC] Use -check-prefixes to simplify the check in code-align.ll Summary: When checking the same output, we can use the `-check-prefixes` to simplify the check. For example, if we want to check below output. ``` ; GENERIC-LABEL: .globl foo ; BASIC-LABEL: .globl foo ; PWR-LABEL: .globl foo ; GENERIC: .p2align 2 ; BASIC: .p2align 4 ; PWR: .p2align 4 ; GENERIC: @foo ; BASIC: @foo ; PWR: @foo ``` If we use `-check-prefixes` ``` ... -check-prefixes=CHECK,GENERAL ... -check-prefixes=CHECK,BASIC ... -check-prefixes=CHECK,PWR ``` Above check can be simplify to: ``` ; CHECK-LABEL: .globl foo ; GENERIC: .p2align 2 ; BASIC: .p2align 4 ; PWR: .p2align 4 ; CHECK: @foo ``` Reviewed By: hfinkel Differential Revision: https://reviews.llvm.org/D61227
  2. [DAGCombiner] Do not generate ISD::ADDE node if adde is not legal for the target when combine ISD::TRUNC node Do not combine (trunc adde(X, Y, Carry)) into (adde trunc(X), trunc(Y), Carry), if adde is not legal for the target. Even it's at type-legalize phase. Because adde is special and will not be legalized at operation-legalize phase later. This fixes: PR40922 https://bugs.llvm.org/show_bug.cgi?id=40922 Differential Revision: https://reviews.llvm.org//D60854
  3. [ORC] Fix an ambiguous call in a unit test.
Revision 359533 by zhangkang:
[NFC][PowerPC] Use -check-prefixes to simplify the check in code-align.ll

Summary:
When checking the same output, we can use the `-check-prefixes` to simplify the check.
For example, if we want to check below output.
```
; GENERIC-LABEL: .globl  foo
; BASIC-LABEL: .globl  foo
; PWR-LABEL: .globl  foo
; GENERIC: .p2align  2
; BASIC: .p2align  4
; PWR: .p2align  4
; GENERIC: @foo
; BASIC: @foo
; PWR: @foo

```
If we use `-check-prefixes`
```
... -check-prefixes=CHECK,GENERAL
... -check-prefixes=CHECK,BASIC
... -check-prefixes=CHECK,PWR
```
Above check can be simplify to:
```
; CHECK-LABEL: .globl  foo
; GENERIC: .p2align  2
; BASIC: .p2align  4
; PWR: .p2align  4
; CHECK: @foo
```

Reviewed By: hfinkel
Differential Revision: https://reviews.llvm.org/D61227
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/PowerPC/code-align.lltrunk/test/CodeGen/PowerPC/code-align.ll
Revision 359532 by wuzish:
[DAGCombiner] Do not generate ISD::ADDE node if adde is not legal for the target when combine ISD::TRUNC node

Do not combine (trunc adde(X, Y, Carry)) into (adde trunc(X), trunc(Y), Carry),
if adde is not legal for the target. Even it's at type-legalize phase.
Because adde is special and will not be legalized at operation-legalize phase later.

This fixes: PR40922
https://bugs.llvm.org/show_bug.cgi?id=40922

Differential Revision: https://reviews.llvm.org//D60854
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpptrunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/PowerPC/pr39815.lltrunk/test/CodeGen/PowerPC/pr39815.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/pr40922.lltrunk/test/CodeGen/PowerPC/pr40922.ll
Revision 359529 by Lang Hames:
[ORC] Fix an ambiguous call in a unit test.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpptrunk/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp

Summary

  1. [analyzer] Treat functions without run-time branches as "small". Currently we always inline functions that have no branches, i.e. have exactly three CFG blocks: ENTRY, some code, EXIT. This makes sense because when there are no branches, it means that there's no exponential complexity introduced by inlining such function. Such functions also don't trigger various fundamental problems with our inlining mechanism, such as the problem of inlined defensive checks. Sometimes the CFG may contain more blocks, but in practice it still has linear structure because all directions (except, at most, one) of all branches turned out to be unreachable. When this happens, still treat the function as "small". This is useful, in particular, for dealing with C++17 if constexpr. Differential Revision: https://reviews.llvm.org/D61051
  2. [analyzer] SmartPtrModeling: Fix a null dereference. Don't crash when trying to model a call in which the callee is unknown in compile time, eg. a pointer-to-member call. Differential Revision: https://reviews.llvm.org/D61285
Revision 359531 by dergachev:
[analyzer] Treat functions without run-time branches as "small".

Currently we always inline functions that have no branches, i.e. have exactly
three CFG blocks: ENTRY, some code, EXIT. This makes sense because when there
are no branches, it means that there's no exponential complexity introduced
by inlining such function. Such functions also don't trigger various fundamental
problems with our inlining mechanism, such as the problem of inlined
defensive checks.

Sometimes the CFG may contain more blocks, but in practice it still has
linear structure because all directions (except, at most, one) of all branches
turned out to be unreachable. When this happens, still treat the function
as "small". This is useful, in particular, for dealing with C++17 if constexpr.

Differential Revision: https://reviews.llvm.org/D61051
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Analysis/CFG.htrunk/include/clang/Analysis/CFG.h
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.htrunk/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
The file was modified/cfe/trunk/lib/Analysis/CFG.cpptrunk/lib/Analysis/CFG.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpptrunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpptrunk/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
The file was added/cfe/trunk/test/Analysis/inline-if-constexpr.cpptrunk/test/Analysis/inline-if-constexpr.cpp
The file was modified/cfe/trunk/unittests/Analysis/CFGTest.cpptrunk/unittests/Analysis/CFGTest.cpp
Revision 359530 by dergachev:
[analyzer] SmartPtrModeling: Fix a null dereference.

Don't crash when trying to model a call in which the callee is unknown
in compile time, eg. a pointer-to-member call.

Differential Revision: https://reviews.llvm.org/D61285
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpptrunk/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
The file was modified/cfe/trunk/test/Analysis/smart-ptr.cpptrunk/test/Analysis/smart-ptr.cpp