FailedChanges

Summary

  1. [ELF] Define a reportRangeError() overload for thunks and tidy up recent PPC64 thunk range errors (details)
  2. [flang] Fix analyzed form of type-bound assignment (details)
  3. Let -basic-block-sections=labels emit basicblock metadata in a new .bb_addr_map section, instead of emitting special unary-encoded symbols. (details)
  4. collectBitParts - use const references. NFCI. (details)
  5. Retry of D84974 (details)
  6. [libc++] Upgrade the Clang on build bots (details)
  7. Fix 132e57bc597bd3f50174b7d286c43f76b47f11c1 (details)
  8. [DAGCombiner] Fold fmin/fmax with INF / FLT_MAX (details)
  9. [InstCombine] Simplify select operand based on equality condition (details)
  10. [ms] [llvm-ml] Add missing built-in type aliases (details)
  11. [ms] [llvm-ml] Fix struct padding logic (details)
  12. [ms] [llvm-ml] Add support for size queries in MASM (details)
  13. [ms] [llvm-ml] Add basic support for SEH, including PROC FRAME (details)
  14. [ARM] Add more tests for vecreduce soft float legalization (NFC) (details)
  15. [Legalize][ARM][X86] Add float legalization for VECREDUCE (details)
  16. [libc] Extend MPFRMatcher to handle 2-input-1-output and support hypot function. (details)
Commit 94921e9f8ad04793638e02a6104f63e06ae62b9e by i
[ELF] Define a reportRangeError() overload for thunks and tidy up recent PPC64 thunk range errors

Prefer `errorOrWarn` to `fatal` for recoverable errors and graceful degradation
when --noinhibit-exec is specified.

Mention the destination symbol, otherwise the diagnostic is not really actionable.
Two errors are not tested but the patch does not intend to add the coverage.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D87486
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/test/ELF/ppc64-toc-call-to-pcrel-long-jump.s
The file was modifiedlld/ELF/Target.h
The file was modifiedlld/ELF/Thunks.cpp
Commit ce6dd973ac556a326c38bd7667b4fb448f215d09 by tkeith
[flang] Fix analyzed form of type-bound assignment

Change the analyzed form of type-bound assignment to match that of call
statements. Resolve the binding name to a specific subprogram when
possible by using `GetBindingResolution`. Otherwise leave it as a
type-bound procedure call.

Differential Revision: https://reviews.llvm.org/D87541
The file was addedflang/test/Semantics/defined-ops.f90
The file was modifiedflang/lib/Semantics/expression.cpp
Commit 7841e21c98495ba5e33e0d2507d985bd5b938445 by rahmanl
Let -basic-block-sections=labels emit basicblock metadata in a new .bb_addr_map section, instead of emitting special unary-encoded symbols.

This patch introduces the new .bb_addr_map section feature which allows us to emit the bits needed for mapping binary profiles to basic blocks into a separate section.
The format of the emitted data is represented as follows. It includes a header for every function:

|  Address of the function                      |  -> 8 bytes (pointer size)
|  Number of basic blocks in this function (>0) |  -> ULEB128

The header is followed by a BB record for every basic block. These records are ordered in the same order as MachineBasicBlocks are placed in the function. Each BB Info is structured as follows:

|  Offset of the basic block relative to function begin |  -> ULEB128
|  Binary size of the basic block                       |  -> ULEB128
|  BB metadata                                          |  -> ULEB128  [ MBB.isReturn() OR MBB.hasTailCall() << 1  OR  MBB.isEHPad() << 2 ]

The new feature will replace the existing "BB labels" functionality with -basic-block-sections=labels.
The .bb_addr_map section scrubs the specially-encoded BB symbols from the binary and makes it friendly to profilers and debuggers.
Furthermore, the new feature reduces the binary size overhead from 70% bloat to only 12%.

For more information and results please refer to the RFC: https://lists.llvm.org/pipermail/llvm-dev/2020-July/143512.html

Reviewed By: MaskRay, snehasish

Differential Revision: https://reviews.llvm.org/D85408
The file was modifiedllvm/lib/CodeGen/BasicBlockSections.cpp
The file was modifiedllvm/lib/CodeGen/MIRParser/MIRParser.cpp
The file was modifiedllvm/lib/MC/MCObjectFileInfo.cpp
The file was modifiedllvm/test/CodeGen/X86/basic-block-sections-labels.ll
The file was modifiedllvm/include/llvm/CodeGen/MachineFunction.h
The file was modifiedllvm/include/llvm/MC/MCObjectFileInfo.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedclang/docs/UsersManual.rst
The file was addedllvm/test/CodeGen/X86/basic-block-sections-labels-functions-sections.ll
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp
The file was modifiedclang/test/CodeGen/basic-block-sections.c
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
Commit 4ff4708d39b790bf7231ad0fa4e7cfddb4e26f95 by llvm-dev
collectBitParts - use const references. NFCI.

Fixes clang-tidy warnings first noticed on D87452.
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
Commit 132e57bc597bd3f50174b7d286c43f76b47f11c1 by walter erquinigo
Retry of D84974

- Fix a small issue caused by a conflicting name (GetObject) on Windows.
  The fix was to rename the internal GetObject function to
  GetNextFunction.
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/TestVSCode_runInTerminal.py
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.h
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/Makefile
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
The file was modifiedlldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
The file was modifiedlldb/tools/lldb-vscode/JSONUtils.cpp
The file was modifiedlldb/tools/lldb-vscode/package.json
The file was modifiedlldb/tools/lldb-vscode/VSCode.cpp
The file was modifiedlldb/tools/lldb-vscode/VSCode.h
The file was addedlldb/test/API/tools/lldb-vscode/runInTerminal/main.c
Commit 7235326fb2342227d478d63378d2ba4d5e2418db by Louis Dionne
[libc++] Upgrade the Clang on build bots
The file was modifiedlibcxx/utils/docker/debian9/buildbot/docker-compose.yml
The file was modifiedlibcxx/utils/docker/debian9/buildbot/Dockerfile
Commit a3bc0401d436d8c7d2dd5b54e13b81333d53bdff by walter erquinigo
Fix 132e57bc597bd3f50174b7d286c43f76b47f11c1

Compile error found in
http://lab.llvm.org:8011/builders/lldb-x86_64-debian/builds/17403/steps/build/logs/stdio

Simple fix
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
Commit 8e69c3cde8eed94be226bdef1ff6cedda3a33bc4 by nikita.ppv
[DAGCombiner] Fold fmin/fmax with INF / FLT_MAX

Similar to D87415, this folds the various float min/max opcodes
with a constant INF or -INF operand, or FLT_MAX / -FLT_MAX operand
if the ninf flag is set. Some of the folds are only possible under
nnan.

The fminnum(X, INF) with nnan and fmaxnum(X, -INF) with nnan cases
are needed to improve the VECREDUCE_FMIN/FMAX lowerings on X86,
the rest is here for the sake of completeness.

Differential Revision: https://reviews.llvm.org/D87571
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/ARM/fminmax-folds.ll
Commit cfff88c03cf9e9b72906a41fd11e06721d54f293 by nikita.ppv
[InstCombine] Simplify select operand based on equality condition

For selects of the type X == Y ? A : B, check if we can simplify A
by using the X == Y equality and replace the operand if that's
possible. We already try to do this in InstSimplify, but will only
fold if the result of the simplification is the same as B, in which
case the select can be dropped entirely. Here the select will be
retained, just one operand simplified.

As we are performing an actual replacement here, we don't have
problems with refinement / poison values.

Differential Revision: https://reviews.llvm.org/D87480
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll
Commit da17e0d5c1dfabcba887e323b1aabc8cc4342cd6 by epastor
[ms] [llvm-ml] Add missing built-in type aliases

Add signed aliases for integral types, as well as the "DF" abbreviation for the FWORD type.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D87246
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/builtin_types.test
Commit 7c44ee8e1937c7402a106f3fa6a356caa73a14e8 by epastor
[ms] [llvm-ml] Fix struct padding logic

MASM structs are end-padded to have size a multiple of the smaller of the requested alignment and the size of their largest field (taken recursively, if they have a field of STRUCT type).

This matches the behavior of ml.exe and ml64.exe. Our original implementation followed the MASM 6.0 documentation, which instead specified that MASM structs were padded to a multiple of their requested alignment.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D87248
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/struct_alignment.test
Commit 20201dc76aaf68eb940eb14bfc6dd4983292fb79 by epastor
[ms] [llvm-ml] Add support for size queries in MASM

Add support for size inference, sizeof, typeof, and lengthof.

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D86947
The file was modifiedllvm/test/tools/llvm-ml/struct.test
The file was modifiedllvm/include/llvm/MC/MCParser/MCAsmParser.h
The file was modifiedllvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
The file was addedllvm/test/tools/llvm-ml/type_operators.test
The file was modifiedllvm/lib/MC/MCParser/AsmParser.cpp
The file was addedllvm/test/tools/llvm-ml/size_inference.test
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 23a2b03221c5664fefc658c3eb26e7b6ecd1a1e8 by epastor
[ms] [llvm-ml] Add basic support for SEH, including PROC FRAME

Add basic support for SEH, including PROC FRAME

Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D86948
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
The file was addedllvm/test/tools/llvm-ml/proc.test
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp
The file was modifiedllvm/lib/MC/MCParser/COFFMasmParser.cpp
The file was addedllvm/test/tools/llvm-ml/proc_frame.test
Commit c0e3996bc7087a27e685c734480c0b92ff427d37 by nikita.ppv
[ARM] Add more tests for vecreduce soft float legalization (NFC)

This mirrors the existing fadd tests to fmul, fmin and fmax.
The file was addedllvm/test/CodeGen/ARM/vecreduce-fmul-legalization-soft-float.ll
The file was addedllvm/test/CodeGen/ARM/vecreduce-fmax-legalization-soft-float.ll
The file was addedllvm/test/CodeGen/ARM/vecreduce-fmin-legalization-soft-float.ll
Commit 53f36f06afbc02d1ab96e3789b41ddeafe31f40e by nikita.ppv
[Legalize][ARM][X86] Add float legalization for VECREDUCE

This adds SoftenFloatRes, PromoteFloatRes and SoftPromoteHalfRes
legalizations for VECREDUCE, to fill the remaining hole in the SDAG
legalization. These legalizations simply expand the reduction and
let it be recursively legalized. For the PromoteFloatRes case at
least it is possible to do better than that, but it's pretty tricky
(because we need to consider the interaction of three different
vector legalizations and the type promotion) and probably not
really worthwhile.

I haven't added ExpandFloatRes support, as I am not familiar with
ppc_fp128.

Differential Revision: https://reviews.llvm.org/D87569
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmul-legalization-soft-float.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fadd-legalization-soft-float.ll
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmax-legalization-soft-float.ll
The file was modifiedllvm/test/CodeGen/ARM/vecreduce-fmin-legalization-soft-float.ll
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll
Commit abf1c82dcc5c54f2bbd65eb7b30cc40de2bd7147 by lntue
[libc] Extend MPFRMatcher to handle 2-input-1-output and support hypot function.

Differential Revision: https://reviews.llvm.org/D87514
The file was modifiedlibc/utils/MPFRWrapper/MPFRUtils.h
The file was modifiedlibc/utils/MPFRWrapper/MPFRUtils.cpp