SuccessChanges

Summary

  1. [clang] Always allow including builtin headers in [no_undeclared_headers] modules. (details)
  2. [SVE] Fix ubsan issues in DecodeIITType (details)
  3. [VE] Change to use EXTRACT_SUBREG instead of COPY_TO_REGCLASS (details)
  4. [X86] Remove (V)MOVHPDrm patterns that involve bitcast+scalar_to_vec+loadi64. (details)
  5. [Inlining] Introduce -enable-npm-pgo-inline-deferral (details)
  6. [flang] Fix IsConstantExpr for division expressions (details)
  7. [NFCI][CostModel][AMDGPU] Simplify getUserCost (details)
Commit 8d74de9de6d6cca552d7de7d0bfd36b6dd7d58dc by mboehme
[clang] Always allow including builtin headers in [no_undeclared_headers] modules.

Previously, this would fail if the builtin headers had been "claimed" by
a different module that wraps these builtin headers. libc++ does this,
for example.

This change adds a test demonstrating this situation; the test fails
without the fix.
The file was addedclang/test/Modules/Inputs/no-undeclared-includes-builtins/libcxx/module.modulemap
The file was addedclang/test/Modules/Inputs/no-undeclared-includes-builtins/libcxx/stdio.h
The file was modifiedclang/lib/Lex/ModuleMap.cpp
The file was modifiedclang/include/clang/Lex/ModuleMap.h
The file was modifiedclang/lib/Lex/HeaderSearch.cpp
The file was addedclang/test/Modules/Inputs/no-undeclared-includes-builtins/glibc/module.modulemap
The file was addedclang/test/Modules/Inputs/no-undeclared-includes-builtins/libcxx/stddef.h
The file was addedclang/test/Modules/Inputs/no-undeclared-includes-builtins/glibc/stdio.h
The file was addedclang/test/Modules/no-undeclared-includes-builtins.cpp
Commit a3e3986be122bd1cdebe7f7f69c3d1c4c22c4690 by david.sherwood
[SVE] Fix ubsan issues in DecodeIITType

In an earlier patch I removed the need for
IITDescriptor::ScalableVecArgument, which involved changing
DecodeIITType to pull out the last IIT_Info from the list. However,
it turns out this is unsafe and causes ubsan failures. I've tried to
fix this a different way by simply passing the last IIT_Info as an
additional argument to DecodeIITType.

Differential Revision: https://reviews.llvm.org/D81057
The file was modifiedllvm/lib/IR/Function.cpp
Commit 6b461ba4590f531cf3aafca8a1a4bfa896f5e5c8 by simon.moll
[VE] Change to use EXTRACT_SUBREG instead of COPY_TO_REGCLASS

Summary:
Change to use EXTRACT_SUBREG instead of COPY_TO_REGCLASS in order to
remove unnecessary copy instructions.

Differential Revision: https://reviews.llvm.org/D81129
The file was modifiedllvm/lib/Target/VE/VEInstrInfo.td
The file was modifiedllvm/test/CodeGen/VE/fp_div.ll
The file was modifiedllvm/test/CodeGen/VE/constants.ll
The file was modifiedllvm/test/CodeGen/VE/va_caller.ll
The file was modifiedllvm/test/CodeGen/VE/fp_sub.ll
The file was modifiedllvm/test/CodeGen/VE/fp_mul.ll
The file was modifiedllvm/test/CodeGen/VE/fp_add.ll
The file was modifiedllvm/test/CodeGen/VE/fp_to_int.ll
The file was modifiedllvm/test/CodeGen/VE/selectccf32i.ll
The file was modifiedllvm/test/CodeGen/VE/cast.ll
The file was modifiedllvm/test/CodeGen/VE/call.ll
The file was modifiedllvm/test/CodeGen/VE/setccf32i.ll
Commit 7eff1a7136049fd38d779f52f905f88181b03679 by craig.topper
[X86] Remove (V)MOVHPDrm patterns that involve bitcast+scalar_to_vec+loadi64.

I think these are left over from when we used to type legalize
v2f32 loads using bitcast+scalar_to_vec+loadi64 on 64-bit targets.
These days we use loadf64. If this becomes a problem a better
solution would be a DAG combine to turn it into scalar_to_vec+loadf64.
The file was modifiedllvm/lib/Target/X86/X86InstrAVX512.td
The file was modifiedllvm/lib/Target/X86/X86InstrSSE.td
Commit 347a599e5f03ab708943559d0a131127b206b576 by kazu
[Inlining] Introduce -enable-npm-pgo-inline-deferral

Summary:
Experiments show that inline deferral past pre-inlining slightly
pessimizes the performance.

This patch introduces an option to control inline deferral during PGO.
The option defaults to true for now (that is, NFC).

Reviewers: davidxl

Reviewed By: davidxl

Subscribers: eraman, hiraditya, haicheng, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80776
The file was modifiedllvm/include/llvm/Analysis/InlineCost.h
The file was modifiedllvm/lib/Analysis/InlineAdvisor.cpp
The file was modifiedllvm/lib/Analysis/InlineCost.cpp
The file was modifiedllvm/include/llvm/Analysis/InlineAdvisor.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
Commit 62b127eef6b37a57a647050b0e123f6ac928215f by jperier
[flang] Fix IsConstantExpr for division expressions

Summary:
Fortran::evaluate::IsConstantExpr did not check that the numerator
was a constant expression. This patch fixes the issue.

Reviewers: DavidTruby, klausler, schweitz, PeteSteinfeld, jdoerfert, sscalpone

Reviewed By: klausler, PeteSteinfeld, sscalpone

Subscribers: llvm-commits

Tags: #llvm, #flang

Differential Revision: https://reviews.llvm.org/D81096
The file was modifiedflang/test/Semantics/resolve37.f90
The file was modifiedflang/lib/Evaluate/check-expression.cpp
Commit 6f24ebc4badfebce72b6bf06a4dae82ac409da35 by sam.parker
[NFCI][CostModel][AMDGPU] Simplify getUserCost

Casts and intrinsics are now handled by the default implementation
of getUserCost, so remove them from the backends switch statement.

https://reviews.llvm.org/D80994
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp