Changes

Summary

  1. [polly][GPGPU] Fixup related to overloading exponent type in llvm.powi (details)
  2. [InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X) (details)
  3. [libc] Add few macro definitions to make it easy to accommodate Windows. (details)
  4. Revert "[InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X)" (details)
  5. [Demangle][Rust] Parse dot suffix (details)
  6. [libc][Obvious] Add the new header file PlatformDefs.h to the fputil  target. (details)
  7. [Attributor] Don't print the call-graph in a hard-coded file. (details)
  8. [Polly][Isl] Refactoring IslAstInfo::getBuild() and IslAstInfo::IslAstUserPayload::Build to use isl++. NFC (details)
  9. [mlir][linalg] Fix PadTensorOp constructor (details)
  10. [NFC] Assert non-zero factor before division (details)
  11. [llvm][Inliner] Add an optional PriorityInlineOrder (details)
Commit 6aac2773d80b42bcf9da2414bbd410aa9f10095e by bjorn.a.pettersson
[polly][GPGPU] Fixup related to overloading exponent type in llvm.powi

Commit 4c7f820b2b206bb changed the llvm.powi intrinsic to support
different 'int' sizes for the exponent. That happened to break
the IntrinsicToLibdeviceFunc mapping in PPCGCodeGeneration, which
obviously should have been updated as part of commit 4c7f820b2b
(https://reviews.llvm.org/D99439).

The shortcoming was found by buildbots that use
   -DPOLLY_ENABLE_GPGPU_CODEGEN=ON

This patch should fixup the problem.
The file was modifiedpolly/test/GPGPU/libdevice-functions-copied-into-kernel.ll
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp
Commit 31053338c97b36ffb582f9c04a74cec69cce3e70 by vdsered
[InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X)

InstCombine didn't perform (sext bool X) * (sext bool X) --> zext (and X, X) which can result in just (zext X). The patch adds regression tests to check this transformation and adds a check for equality of mul's operands for that case.

Differential Revision: https://reviews.llvm.org/D104193
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit 37afd67c38cf85f1308505892e7999457d8769cd by sivachandra
[libc] Add few macro definitions to make it easy to accommodate Windows.

The new macro definitions have been used to add Windows specific
specializations.
The file was modifiedlibc/utils/FPUtil/Sqrt.h
The file was modifiedlibc/utils/FPUtil/NormalFloat.h
The file was modifiedlibc/utils/FPUtil/ManipulationFunctions.h
The file was modifiedlibc/utils/FPUtil/FPBits.h
The file was modifiedlibc/utils/FPUtil/SqrtLongDoubleX86.h
The file was addedlibc/utils/FPUtil/PlatformDefs.h
Commit 6de741de08a11048027cb4d4e4d5d4bd067319fa by vdsered
Revert "[InstCombine] Fold (sext bool X) * (sext bool X) to zext (and X, X)"

This reverts commit 31053338c97b36ffb582f9c04a74cec69cce3e70.
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
Commit 2a5bb9c877f23224ee6b789054b4edfa17b4fd30 by tomasz.miasko
[Demangle][Rust] Parse dot suffix

Allow mangled names to include an arbitrary dot suffix, akin to vendor
specific suffix in Itanium mangling.

Primary motivation is a support for symbols renamed during ThinLTO
import / promotion (ThinLTO is the default configuration for optimized
builds in rustc).

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D104358
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
The file was modifiedllvm/test/Demangle/rust.test
Commit 7a1e4f18468d0f25407b6ea9f7986cf2a4620f54 by sivachandra
[libc][Obvious] Add the new header file PlatformDefs.h to the fputil  target.
The file was modifiedlibc/utils/FPUtil/CMakeLists.txt
Commit 7670938bbad8755a34a282febc852651255c69b3 by hokein.wu
[Attributor] Don't print the call-graph in a hard-coded file.

This looks like not a practical pattern in our codebase (it could fail
in some sandbox environement).

Instead we print it via standard output, and it is controled by the
-attributor-print-call-graph, this follows a similiar pattern of attributor-print-dep.
The file was modifiedllvm/test/Transforms/Attributor/callgraph.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
Commit 2a629efc74e5ad414f05e293f296b392f724bc9f by patacca
[Polly][Isl] Refactoring IslAstInfo::getBuild() and IslAstInfo::IslAstUserPayload::Build to use isl++. NFC

Polly uses algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++.

Changes made:
- Refactoring the method `IslAstInfo::getBuild()`
- `IslAstInfo::IslAstUserPayload.Build` now uses C++ types instead of C types
- Removing destructor of `IslAstInfo::IslAstUserPayload`

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D104370
The file was modifiedpolly/include/polly/CodeGen/IslAst.h
The file was modifiedpolly/lib/CodeGen/IslNodeBuilder.cpp
The file was modifiedpolly/lib/CodeGen/IslAst.cpp
Commit 6f665cd53dfdb3a23ed10950113fd73a0f53c9e7 by springerm
[mlir][linalg] Fix PadTensorOp constructor

Differential Revision: https://reviews.llvm.org/D104510
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit fa5eb22ad4e127b1fa960b33da890afb5bca3f92 by mkazantsev
[NFC] Assert non-zero factor before division

This is to ensure that zero denominator leads to controlled
assertion failure rather than UB.
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit a740b707d1937621dcf56579001bcad87b81724f by taolq
[llvm][Inliner] Add an optional PriorityInlineOrder

This patch adds an optional PriorityInlineOrder, which uses the heap to order inlining.
The callsite which size is smaller would have a higher priority.

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D104028
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
The file was modifiedllvm/test/Transforms/Inline/inline_call.ll
The file was modifiedllvm/test/Transforms/Inline/last-callsite.ll
The file was modifiedllvm/test/Transforms/Inline/inline_invoke.ll
The file was modifiedllvm/test/Transforms/Inline/monster_scc.ll