SuccessChanges

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

Summary

  1. [InstCombine] form copysign from select of FP constants (PR44153) (details)
  2. [FileCheck] Clean and improve unit tests (details)
  3. Add support for Linux/Musl ABI (details)
  4. [clangd] Avoid redundant testcases in rename unittest, NFC. (details)
Commit 7bee94410ce265833695128dfad7fbd7a8eef6ba by spatel
[InstCombine] form copysign from select of FP constants (PR44153)
This should be the last step needed to solve the problem in the
description of PR44153: https://bugs.llvm.org/show_bug.cgi?id=44153
If we're casting an FP value to int, testing its signbit, and then
choosing between a value and its negated value, that's a complicated way
of saying "copysign":
(bitcast X) <  0 ? -TC :  TC --> copysign(TC,  X)
Differential Revision: https://reviews.llvm.org/D72643
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
Commit abd0ab389ee3351dc577a08f939493b67ce39f32 by thomasp
[FileCheck] Clean and improve unit tests
Summary: Clean redundant unit test checks (codepath already tested
elsewhere) and add a few missing checks for existing numeric
substitution and match logic.
Reviewers: jhenderson, jdenny, probinson, grimar, arichardson, rnk
Reviewed By: jhenderson
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72912
The file was modifiedllvm/unittests/Support/FileCheckTest.cpp
Commit 7fee4fed4c75c13d0cec7ff3a043e0313a3abc55 by sidneym
Add support for Linux/Musl ABI
Differential revision: https://reviews.llvm.org/D72701
The patch adds a new option ABI for Hexagon. It primary deals with the
way variable arguments are passed and is use in the Hexagon Linux Musl
environment.
If a callee function has a variable argument list, it must perform the
following operations to set up its function prologue:
  1. Determine the number of registers which could have been used for
passing
    unnamed arguments. This can be calculated by counting the number of
    registers used for passing named arguments. For example, if the
callee
    function is as follows:
         int foo(int a, ...){ ... }
     ... then register R0 is used to access the argument ' a '. The
registers
    available for passing unnamed arguments are R1, R2, R3, R4, and R5.
  2. Determine the number and size of the named arguments on the stack.
  3. If the callee has named arguments on the stack, it should copy all
of these
    arguments to a location below the current position on the stack, and
the
    difference should be the size of the register-saved area plus
padding
    (if any is necessary).
     The register-saved area constitutes all the registers that could
have
    been used to pass unnamed arguments. If the number of registers
forming
    the register-saved area is odd, it requires 4 bytes of padding; if
the
    number is even, no padding is required. This is done to ensure an
8-byte
    alignment on the stack.  For example, if the callee is as follows:
       int foo(int a, ...){ ... }
     ... then the named arguments should be copied to the following
location:
       current_position - 5 (for R1-R5) * 4 (bytes) - 4 (bytes of
padding)
     If the callee is as follows:
        int foo(int a, int b, ...){ ... }
     ... then the named arguments should be copied to the following
location:
        current_position - 4 (for R2-R5) * 4 (bytes) - 0 (bytes of
padding)
  4. After any named arguments have been copied, copy all the registers
that
    could have been used to pass unnamed arguments on the stack. If the
number
    of registers is odd, leave 4 bytes of padding and then start copying
them
    on the stack; if the number is even, no padding is required. This
    constitutes the register-saved area. If padding is required, ensure
    that the start location of padding is 8-byte aligned.  If no padding
is
    required, ensure that the start location of the on-stack copy of the
    first register which might have a variable argument is 8-byte
aligned.
  5. Decrement the stack pointer by the size of register saved area plus
the
    padding.  For example, if the callee is as follows:
        int foo(int a, ...){ ... } ;
     ... then the decrement value should be the following:
        5 (for R1-R5) * 4 (bytes) + 4 (bytes of padding) = 24 bytes
     The decrement should be performed before the allocframe
instruction.
    Increment the stack-pointer back by the same amount before returning
    from the function.
The file was modifiedllvm/lib/Target/Hexagon/HexagonMachineFunctionInfo.h
The file was addedllvm/test/CodeGen/Hexagon/vararg_named.ll
The file was addedllvm/test/CodeGen/Hexagon/vararg.ll
The file was addedllvm/test/CodeGen/Hexagon/vararg-deallocate-sp.ll
The file was addedllvm/test/CodeGen/Hexagon/vararg-linux-abi.ll
The file was addedllvm/test/CodeGen/Hexagon/vararg_double_onstack.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonFrameLowering.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonSubtarget.cpp
The file was addedllvm/test/CodeGen/Hexagon/vararg_align_check.ll
The file was addedllvm/test/CodeGen/Hexagon/vacopy.ll
The file was modifiedllvm/lib/Target/Hexagon/HexagonSubtarget.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
Commit 3de9a5db629ac9d633576513d025a8f038a3cdec by hokein.wu
[clangd] Avoid redundant testcases in rename unittest, NFC.
Reviewers: kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95,
cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73035
The file was modifiedclang-tools-extra/clangd/refactor/Rename.cpp
The file was modifiedclang-tools-extra/clangd/unittests/RenameTests.cpp