SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [Clang] Handle target-specific builtins returning aggregates. (details)
  2. [Support][NFC] Add a comment about the semantics of MF_HUGE_HINT flag (details)
  3. [NFC,format] Sort switch cases alphabetically (details)
  4. [Support][NFC] Make some helper functions "static" in Memory.inc (details)
  5. [lldb/SWIG] Undo incorrect substitution (details)
  6. [SystemZ] Fix matching another pattern for nxgrk (PR44496) (details)
  7. [x86] add tests for 2-way splat copy; NFC (details)
  8. [Support][NFC] Add an explicit unit test for Process::getPageSize() (details)
  9. [TargetLowering][X86] TeachSimplifyDemandedBits to handle cases where (details)
  10. [demangle] Copy back some NFC commits from LLVM (details)
Commit 06d07ec4a372b55e6fb77bf0b97964bde16a3184 by simon.tatham
[Clang] Handle target-specific builtins returning aggregates.
Summary: A few of the ARM MVE builtins directly return a structure type.
This causes an assertion failure at code-gen time if you try to assign
the result of the builtin to a variable, because the `RValue` created in
`EmitBuiltinExpr` from the `llvm::Value` produced by codegen is always
made by `RValue::get()`, which creates a non-aggregate `RValue` that
will fail an assertion when `AggExprEmitter::withReturnValueSlot` calls
`Src.getAggregatePointer()`. A similar failure occurs if you try to use
the struct return value directly to extract one field, e.g.
`vld2q(address).val[0]`.
The existing code-gen tests for those MVE builtins pass the returned
structure type directly to the C `return` statement, which apparently
managed to avoid that particular code path, so we didn't notice the
crash.
Now `EmitBuiltinExpr` checks the evaluation kind of the builtin's return
value, and does the necessary handling for aggregate returns. I've added
two extra test cases, both of which crashed before this change.
Reviewers: dmgreen, rjmccall
Reviewed By: rjmccall
Subscribers: kristof.beyls, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D72271
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/arm-mve-intrinsics/vld24.c
Commit ed6daa2e1d32e940ac4bd8c31ae05154c5ed9bd3 by riccibrun
[Support][NFC] Add a comment about the semantics of MF_HUGE_HINT flag
The file was modifiedllvm/include/llvm/Support/Memory.h
Commit 356b33516c2e0ef241066dded16d7ecc1f7aa8cc by simon.moll
[NFC,format] Sort switch cases alphabetically
This patch brings the switch cases of `llvm/lib/Support/Triple.cpp` back
into alphabetical order. This was noted during the the review of
https://reviews.llvm.org/D69103
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D72452
The file was modifiedllvm/lib/Support/Triple.cpp
Commit 2fe45e029ddfa65880cfe5c3501db12a81cdcbd2 by riccibrun
[Support][NFC] Make some helper functions "static" in Memory.inc
The file was modifiedllvm/lib/Support/Unix/Memory.inc
The file was modifiedllvm/lib/Support/Windows/Memory.inc
Commit 7bbd4076c1984165568c978ff15b77dbfe52b6f0 by Jonas Devlieghere
[lldb/SWIG] Undo incorrect substitution
The Python directory for the script interpreter is still capitalized.
The file was modifiedlldb/bindings/python.swig
Commit b51fa8670f3d9346cad068aa7300d63eb051069d by ulrich.weigand
[SystemZ] Fix matching another pattern for nxgrk (PR44496)
SystemZDAGToDAGISel::Select will attempt to split logical instruction
with a large immediate constant.  This must not happen if the result
matches one of the z15 combined operations, so the code checks for
those.  However, one of them was missed, causing invalid code to be
generated in the test case for PR44496.
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/SystemZ/not-01.ll
Commit 460cbabe170e481d4468ef77de1fb08b02a0f2a3 by spatel
[x86] add tests for 2-way splat copy; NFC
Based on code in PR42024: https://bugs.llvm.org/show_bug.cgi?id=42024
The file was modifiedllvm/test/CodeGen/X86/vector-interleave.ll
Commit 002be6cfa2b1de064d672dac6db53c01e9f150b0 by riccibrun
[Support][NFC] Add an explicit unit test for Process::getPageSize()
It turns out that it was only tested indirectly. For now test only on
Linux X86-64 and aarch64.
The file was modifiedllvm/unittests/Support/ProcessTest.cpp
Commit b705fe5686a886e200fd57410c6bc9bad5c21c0e by craig.topper
[TargetLowering][X86] TeachSimplifyDemandedBits to handle cases where
only the sign bit is demanded from a SETCC and can be passed through
If we're doing a compare that only tests the sign bit and only the sign
bit is demanded, we can just bypass the node. This removes one of the
blend dependencies in our v2i64->v2f32 uint_to_fp codegen on pre-sse4.2
targets.
Differential Revision: https://reviews.llvm.org/D72356
The file was modifiedllvm/test/CodeGen/X86/vec_int_to_fp.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Commit 183b5d38d7cffc10ff9f4914b8879ed5b1976e40 by erik.pilkington
[demangle] Copy back some NFC commits from LLVM
The file was modifiedlibcxxabi/src/demangle/Utility.h
The file was modifiedlibcxxabi/src/demangle/ItaniumDemangle.h