AbortedChanges

Summary

  1. [NFC] Add { } to silence compiler warning [-Wmissing-braces]. llvm-project/llvm/unittests/ADT/ArrayRefTest.cpp:254:25: warning: suggest braces around initialization of subobject [-Wmissing-braces] std::array<int, 5> A1{42, -5, 0, 1000000, -1000000}; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ { }
  2. [InstCombine] Limit FMul constant folding for fma simplifications. As @reames pointed out post-commit, rL371518 adds additional rounding in some cases, when doing constant folding of the multiplication. This breaks a guarantee llvm.fma makes and must be avoided. This patch reapplies rL371518, but splits off the simplifications not requiring rounding from SimplifFMulInst as SimplifyFMAFMul. Reviewers: spatel, lebedev.ri, reames, scanon Reviewed By: reames Differential Revision: https://reviews.llvm.org/D67434
  3. [CUDA][HIP] Enable kernel function return type deduction. Summary: - Even though only `void` is still accepted as the deduced return type, enabling deduction/instantiation on the return type allows more consistent coding. Reviewers: tra, jlebar Subscribers: cfe-commits, yaxunl Tags: #clang Differential Revision: https://reviews.llvm.org/D68031
  4. [AArch64][GlobalISel] Choose CCAssignFns per-argument for tail call lowering When checking for tail call eligibility, we should use the correct CCAssignFn for each argument, rather than just checking if the caller/callee is varargs or not. This is important for tail call lowering with varargs. If we don't check it, then basically any varargs callee with parameters cannot be tail called on Darwin, for one thing. If the parameters are all guaranteed to be in registers, this should be entirely safe. On top of that, not checking for this could potentially make it so that we have the wrong stack offsets when checking for tail call eligibility. Also refactor some of the stuff for CCAssignFnForCall and pull it out into a helper function. Update call-translator-tail-call.ll to show that we can now correctly tail call on Darwin. Also add two extra tail call checks. The first verifies that we still respect the caller's stack size, and the second verifies that we still don't tail call when a varargs function has a memory argument. Differential Revision: https://reviews.llvm.org/D67939
  5. Add a missing default parameter to regex::assign. This is LWG3296; reviewed as https://reviews.llvm.org/D67944
Revision 372902 by huihuiz:
[NFC] Add { } to silence compiler warning [-Wmissing-braces].

llvm-project/llvm/unittests/ADT/ArrayRefTest.cpp:254:25: warning: suggest braces around initialization of subobject [-Wmissing-braces]
  std::array<int, 5> A1{42, -5, 0, 1000000, -1000000};
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        {                           }
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/ADT/ArrayRefTest.cpp (diff)llvm.src/unittests/ADT/ArrayRefTest.cpp
Revision 372899 by fhahn:
[InstCombine] Limit FMul constant folding for fma simplifications.

As @reames pointed out post-commit, rL371518 adds additional rounding
in some cases, when doing constant folding of the multiplication.
This breaks a guarantee llvm.fma makes and must be avoided.

This patch reapplies rL371518, but splits off the simplifications not
requiring rounding from SimplifFMulInst as SimplifyFMAFMul.

Reviewers: spatel, lebedev.ri, reames, scanon

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D67434
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/InstructionSimplify.h (diff)llvm.src/include/llvm/Analysis/InstructionSimplify.h
The file was modified/llvm/trunk/lib/Analysis/InstructionSimplify.cpp (diff)llvm.src/lib/Analysis/InstructionSimplify.cpp
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/fma.ll (diff)llvm.src/test/Transforms/InstCombine/fma.ll
Revision 372898 by hliao:
[CUDA][HIP] Enable kernel function return type deduction.

Summary:
- Even though only `void` is still accepted as the deduced return type,
  enabling deduction/instantiation on the return type allows more
  consistent coding.

Reviewers: tra, jlebar

Subscribers: cfe-commits, yaxunl

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68031
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaDeclAttr.cpp (diff)clang.src/lib/Sema/SemaDeclAttr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cpp (diff)clang.src/lib/Sema/SemaExpr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaStmt.cpp (diff)clang.src/lib/Sema/SemaStmt.cpp
The file was modified/cfe/trunk/lib/Sema/SemaTemplateDeduction.cpp (diff)clang.src/lib/Sema/SemaTemplateDeduction.cpp
The file was added/cfe/trunk/test/SemaCUDA/autoret-global.cuclang.src/test/SemaCUDA/autoret-global.cu
Revision 372897 by paquette:
[AArch64][GlobalISel] Choose CCAssignFns per-argument for tail call lowering

When checking for tail call eligibility, we should use the correct CCAssignFn
for each argument, rather than just checking if the caller/callee is varargs or
not.

This is important for tail call lowering with varargs. If we don't check it,
then basically any varargs callee with parameters cannot be tail called on
Darwin, for one thing. If the parameters are all guaranteed to be in registers,
this should be entirely safe.

On top of that, not checking for this could potentially make it so that we have
the wrong stack offsets when checking for tail call eligibility.

Also refactor some of the stuff for CCAssignFnForCall and pull it out into a
helper function.

Update call-translator-tail-call.ll to show that we can now correctly tail call
on Darwin. Also add two extra tail call checks. The first verifies that we still
respect the caller's stack size, and the second verifies that we still don't
tail call when a varargs function has a memory argument.

Differential Revision: https://reviews.llvm.org/D67939
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/CallLowering.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/CallLowering.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CallLowering.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64CallLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64CallLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call.ll (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call.ll
Revision 372896 by marshall:
Add a missing default parameter to regex::assign. This is LWG3296; reviewed as https://reviews.llvm.org/D67944
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/regex (diff)libcxx.src/include/regex
The file was modified/libcxx/trunk/test/std/re/re.regex/re.regex.assign/assign_ptr_size_flag.pass.cpp (diff)libcxx.src/test/std/re/re.regex/re.regex.assign/assign_ptr_size_flag.pass.cpp