Progress:
Changes

Summary

  1. [X86] Add mulh test coverage for extension to illegal type (details)
  2. [DebugInfo] Turn instruction referencing on by default for x86 (details)
  3. [BuildLibCalls] Add memset_chk test. (details)
  4. [DSE] Add memset_chk tests. (details)
  5. Test commit (details)
  6. Revert "[DAG] Create fptosi.sat from clamped fptosi" (details)
  7. [clang][dataflow] Add base types for building dataflow analyses (details)
  8. [MC][ELF] Fix accepting abbreviated form with Type change (details)
  9. [fir] Add fir reduction builder (details)
  10. [lld-macho] Mark dylib symbols coming from -weak_framework as weak-ref. (details)
  11. [mlir][linalg] Run CSE after every CodegenStrategy transformation. (details)
  12. [OpenMP] Add RTL function to externalization RAII (details)
  13. [mlir][linalg] Fix windows build issue in hoist padding. (details)
  14. [DAG] Create fptosi.sat from clamped fptosi (details)
  15. [mlir][linalg] Use top down traversal for padding. (details)
  16. [clang][dataflow] Fix broken build in ClangStaticAnalyzer (details)
  17. [mlir][linalg] Support the empty anchor op string when padding. (details)
  18. [DSE] Use optimized access if available for redundant store elimination. (details)
  19. Use VersionTuple for parsing versions in Triple. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible. (details)
  20. [mlir][linalg] Adapt the decompose patterns to use a filter (NFC). (details)
  21. [mlir][linalg] Add decompose to CodegenStrategy. (details)
  22. [fir] Remove unused fct recordTypeCanBeMemCopied (details)
  23. Revert "[fir] Add fir reduction builder" (details)
  24. Code quality: Combine V_RSQ (details)
  25. Fix file extension of alignment-assumption-ignorelist.cppp test (details)
  26. [LV] Remove unneeded cast to Operator [NFC] (details)
  27. [clang][dataflow] Make header parse (details)
  28. [PS4][DWARF] Explicitly set default DWARF version to 4 (details)
  29. [CSSPGO] Sorting nodes in a cycle of profiled call graph. (details)
  30. [JITLink][ELF] Add support for reading extended table (details)
  31. [JITLink][ELF] Don't skip sections of size 0 (details)
Commit 9a86eb5602481fbd7e5d1b1a1c13240e82f273ef by llvm-dev
[X86] Add mulh test coverage for extension to illegal type

Part of D113371 - add test coverage for case where we're truncating from an illegal type
The file was modifiedllvm/test/CodeGen/X86/pmulh.ll
Commit 3c045070882f3f43135da6a40ef3f6508fe43af6 by jeremy.morse
[DebugInfo] Turn instruction referencing on by default for x86

This patch is designed to be reverted -- it activates a reasonably large
block of new-ish code, so some turbulence is likely.

Instruction referencing is best summarised, and it being on-by-default,
is discussed here:

    https://lists.llvm.org/pipermail/llvm-dev/2021-November/153653.html

Differential Revision: https://reviews.llvm.org/D114631
The file was modifiedllvm/lib/CodeGen/CommandFlags.cpp
The file was modifiedllvm/test/DebugInfo/X86/instr-ref-flag.ll
Commit 6f4dd1b2dca8ef877eb2447af8b33ae7e68ba1be by flo
[BuildLibCalls] Add memset_chk test.
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/annotate.ll
Commit 41d59a36459ea99ada4819a26072366f77484f87 by flo
[DSE] Add memset_chk tests.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/libcalls.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/stores-of-existing-values.ll
Commit 0c1b18f0f3e526da7dcbbd5a9e363dca85a90c95 by mateja.marjanovic
Test commit

Change-Id: I1d310a860ed673acdc8177232c91025004b1f3d2
The file was modifiedllvm/test/CodeGen/AMDGPU/load-constant-f32.ll
Commit a87782c34d667d1c1a18fe82a9a7abfc72fd345b by hans
Revert "[DAG] Create fptosi.sat from clamped fptosi"

It causes builds to fail with this assert:

llvm/include/llvm/ADT/APInt.h:990:
bool llvm::APInt::operator==(const llvm::APInt &) const:
Assertion `BitWidth == RHS.BitWidth && "Comparison requires equal bit widths"' failed.

See comment on the code review.

> This adds a fold in DAGCombine to create fptosi_sat from sequences for
> smin(smax(fptosi(x))) nodes, where the min/max saturate the output of
> the fp convert to a specific bitwidth (say INT_MIN and INT_MAX). Because
> it is dealing with smin(/smax) in DAG they may currently be ISD::SMIN,
> ISD::SETCC/ISD::SELECT, ISD::VSELECT or ISD::SELECT_CC nodes which need
> to be handled similarly.
>
> A shouldConvertFpToSat method was added to control when converting may
> be profitable. The original fptosi will have a less strict semantics
> than the fptosisat, with less values that need to produce defined
> behaviour.
>
> This especially helps on ARM/AArch64 where the vcvt instructions
> naturally saturate the result.
>
> Differential Revision: https://reviews.llvm.org/D111976

This reverts commit 52ff3b009388f1bef4854f1b6470b4ec19d10b0e.
The file was modifiedllvm/test/CodeGen/WebAssembly/fpclamptosat_vec.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-fpclamptosat_vec.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/test/CodeGen/X86/fpclamptosat.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was modifiedllvm/test/CodeGen/RISCV/fpclamptosat.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/fpclamptosat.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/fpclamptosat.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/fpclamptosat_vec.ll
The file was modifiedllvm/test/CodeGen/ARM/fpclamptosat.ll
Commit 6e2aecd759dc3f8bf664323388365ac234271e9b by yitzhakm
[clang][dataflow] Add base types for building dataflow analyses

This is part of the implementation of the dataflow analysis framework.
See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.

Reviewed By: ymandel, xazax.hun, gribozavr2

Differential Revision: https://reviews.llvm.org/D114234
The file was modifiedclang/lib/Analysis/CMakeLists.txt
The file was addedclang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
The file was addedclang/lib/Analysis/FlowSensitive/CMakeLists.txt
The file was addedclang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
The file was addedclang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h
The file was addedclang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
The file was addedclang/include/clang/Analysis/FlowSensitive/DataflowLattice.h
Commit c01c62c76c60a5a5da0496e41faae907944c92dd by abidh
[MC][ELF] Fix accepting abbreviated form with Type change

Follow up to D92052 and D94072, exposed due to D107707

Many assemblers to permit that only the first .section contains all
the attributes like '.lds_bss,"w",@nobits' and later section only
use the name ('.lds_bss') inheriting those attributes from the first
section.  I turned out that the case that Type changed was missed
when implementing it - and D107707 make it much more likely to hit
that issue. That's fixed by this commit.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D114717
The file was modifiedllvm/test/MC/ELF/section-omitted-attributes.s
The file was modifiedllvm/lib/MC/MCParser/ELFAsmParser.cpp
Commit cf3422d3df5b00d771bba837b9f51f67ab07eb64 by clementval
[fir] Add fir reduction builder

This patch introduces a bunch of builder functions
to create function calls to runtime reduction functions.

This patch is part of the upstreaming effort from fir-dev branch.

Co-authored-by: Jean Perier <jperier@nvidia.com>
Co-authored-by: mleair <leairmark@gmail.com>

Differential Revision: https://reviews.llvm.org/D114460

Reviewed By: awarzynski
The file was modifiedflang/lib/Optimizer/Builder/CMakeLists.txt
The file was modifiedflang/unittests/Optimizer/Builder/Runtime/RuntimeCallTestBase.h
The file was addedflang/include/flang/Optimizer/Builder/Runtime/Reduction.h
The file was addedflang/lib/Optimizer/Builder/Runtime/Reduction.cpp
The file was modifiedflang/unittests/Optimizer/CMakeLists.txt
The file was addedflang/unittests/Optimizer/Builder/Runtime/ReductionTest.cpp
Commit 74cbd71072de4f20c5cb9852dc4cf96ac7a4b5a4 by vyng
[lld-macho] Mark dylib symbols coming from -weak_framework as weak-ref.

PR:52564

Differential Revision: https://reviews.llvm.org/D114397
The file was modifiedlld/test/MachO/weak-import.s
The file was modifiedlld/MachO/Symbols.h
Commit 914e72d40014de1c61709969666be59f27712e5e by gysit
[mlir][linalg] Run CSE after every CodegenStrategy transformation.

Add CSE after every transformation. Transformations such as tiling introduce redundant computation, for example, one AffineMinOp for every operand dimension pair. Follow up transformations such as Padding and Hoisting benefit from CSE since comparing slice sizes simplifies to comparing SSA values instead of analyzing affine expressions.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D114585
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/test/Dialect/Linalg/codegen-strategy.mlir
Commit 7986a5f23ebbf7fc3c6d667610fd193288dba7ce by jhuber6
[OpenMP] Add RTL function to externalization RAII

This patch adds the `__kmpc_get_warp_size` OpenMP RTL function to the
externalization RAII struct. This was getting optimized out and then
being replaced with an undefined value once added back in, causing bugs
for complex reductions.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D114802
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit 1ae7342a7dd44561c86dcd2de456169185e1ce80 by gysit
[mlir][linalg] Fix windows build issue in hoist padding.

Iterating backwardSlice and removing elements at the same time can fail on windows for specific build configurations (the code was introduced in https://reviews.llvm.org/D114420). This revision introduces a second vector to collect all operations and removes them after finishing the reverse iteration.

Reviewed By: hpmorgan

Differential Revision: https://reviews.llvm.org/D114775
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp
Commit 9e8a71caf02a503006eb08b5cd291adeaa20a9c2 by david.green
[DAG] Create fptosi.sat from clamped fptosi

This adds a fold in DAGCombine to create fptosi_sat from sequences for
smin(smax(fptosi(x))) nodes, where the min/max saturate the output of
the fp convert to a specific bitwidth (say INT_MIN and INT_MAX). Because
it is dealing with smin(/smax) in DAG they may currently be ISD::SMIN,
ISD::SETCC/ISD::SELECT, ISD::VSELECT or ISD::SELECT_CC nodes which need
to be handled similarly.

A shouldConvertFpToSat method was added to control when converting may
be profitable. The original fptosi will have a less strict semantics
than the fptosisat, with less values that need to produce defined
behaviour.

This especially helps on ARM/AArch64 where the vcvt instructions
naturally saturate the result.

Differential Revision: https://reviews.llvm.org/D111976
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/test/CodeGen/X86/fpclamptosat.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/fpclamptosat.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was modifiedllvm/test/CodeGen/AArch64/fpclamptosat_vec.ll
The file was modifiedllvm/test/CodeGen/ARM/fpclamptosat.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/fpclamptosat.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.h
The file was modifiedllvm/test/CodeGen/WebAssembly/fpclamptosat_vec.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-fpclamptosat_vec.ll
The file was modifiedllvm/test/CodeGen/RISCV/fpclamptosat.ll
Commit 7f7103cd06b06f54e69fdb0aa7361b02b7c86177 by gysit
[mlir][linalg] Use top down traversal for padding.

Pad the operation using a top down traversal. The top down traversal unlocks folding opportunities and dim op canonicalizations due to the introduced extract slice operation after the padded operation.

Depends On D114585

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D114689
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/test/Dialect/Linalg/pad.mlir
Commit 3e32f827e2647b6fa8022cbc76eac384b3c4e2b4 by yitzhakm
[clang][dataflow] Fix broken build in ClangStaticAnalyzer

Adds a missing virtual destructor.
The file was modifiedclang/include/clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h
Commit 316e627c2b98bac867836378dd6294ad79f7eb3f by gysit
[mlir][linalg] Support the empty anchor op string when padding.

Add support for an empty anchor op string in vectorization. An empty anchor op string is useful after fusion when there are multiple different operations to vectorize.

Depends On D114689

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D114690
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h
The file was modifiedmlir/test/Dialect/Linalg/codegen-strategy.mlir
Commit c9ad356266f3c91d90bcb149d178423cb3e04c42 by flo
[DSE] Use optimized access if available for redundant store elimination.

Using the optimized access enables additional optimizations in cases
where the defining access is a non-aliasing store.

Alternatively we could also walk upwards and skip non-aliasing defs
here, but my experiments so far showed that this will noticeably
increase compile-time for little extra gain compared to just using the
optimized access.

Improvements of dse.NumRedundantStores on MultiSource/CINT2006/CPF2006
on X86 with -O3:

     test-suite...-typeset/consumer-typeset.test     1.00                  76.00              7500.0%
     test-suite.../Benchmarks/Bullet/bullet.test     3.00                  12.00              300.0%
     test-suite...006/453.povray/453.povray.test     3.00                   6.00              100.0%
     test-suite...telecomm-gsm/telecomm-gsm.test     1.00                   2.00              100.0%
     test-suite...ediabench/gsm/toast/toast.test     1.00                   2.00              100.0%
     test-suite...marks/7zip/7zip-benchmark.test     1.00                   2.00              100.0%
     test-suite...ications/JM/lencod/lencod.test     7.00                  10.00              42.9%
     test-suite...6/464.h264ref/464.h264ref.test     6.00                   8.00              33.3%
     test-suite...ications/JM/ldecod/ldecod.test     6.00                   7.00              16.7%
     test-suite...006/447.dealII/447.dealII.test    33.00                  33.00               0.0%
     test-suite...6/471.omnetpp/471.omnetpp.test    NaN                     1.00               nan%
     test-suite...006/450.soplex/450.soplex.test    NaN                     2.00               nan%
     test-suite.../CINT2006/403.gcc/403.gcc.test    NaN                     7.00               nan%
     test-suite...lications/ClamAV/clamscan.test    NaN                     1.00               nan%
     test-suite...CI_Purple/SMG2000/smg2000.test    NaN                     3.00               nan%

Follow-up to D111727.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D112315
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/stores-of-existing-values.ll
Commit 1e8286467036d8ef1a972de723f805a4981b2692 by jamesfarrell
Use VersionTuple for parsing versions in Triple. This makes it possible to distinguish between "16" and "16.0" after parsing, which previously was not possible.

See also https://github.com/android/ndk/issues/1455.

Differential Revision: https://reviews.llvm.org/D114163
The file was modifiedclang/lib/Basic/Targets/OSTargets.cpp
The file was modifiedclang/test/SemaObjC/unguarded-availability-maccatalyst.m
The file was modifiedclang/test/Sema/attr-availability.c
The file was modifiedllvm/include/llvm/ADT/Triple.h
The file was modifiedclang/test/SemaObjC/unguarded-availability.m
The file was modifiedclang/lib/Basic/Targets/X86.h
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
The file was modifiedclang/lib/ARCMigrate/ARCMT.cpp
The file was modifiedclang/lib/Basic/Targets/OSTargets.h
The file was modifiedllvm/lib/Analysis/TargetLibraryInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.h
The file was modifiedllvm/unittests/ADT/TripleTest.cpp
The file was modifiedclang/test/SemaObjC/property-deprecated-warning.m
The file was modifiedclang/test/Sema/attr-availability-android.c
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp
The file was modifiedclang/test/SemaObjC/attr-availability.m
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.cpp
The file was modifiedclang/lib/Driver/ToolChains/Linux.cpp
The file was modifiedllvm/lib/MC/MCStreamer.cpp
The file was modifiedclang/test/Sema/availability-guard-format.mm
The file was modifiedllvm/lib/Support/Triple.cpp
The file was modifiedllvm/lib/Target/X86/X86Subtarget.h
The file was modifiedclang/lib/Driver/ToolChains/NetBSD.cpp
Commit 98dbcff19cfedb4e27d267310a76d616cd435447 by gysit
[mlir][linalg] Adapt the decompose patterns to use a filter (NFC).

The revision updates the convolution decomposition patterns to take a linalg transformation filter. The transformation filter in a later revision allows use the patterns from CodegenStrategy.

Depends On D114690

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D114797
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Passes.td
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
Commit c8f2139eb0de70eec16901d2a7ddfdec62659685 by gysit
[mlir][linalg] Add decompose to CodegenStrategy.

Add the decompose patterns that lower higher dimensional convolutions to lower dimensional ones to CodegenStrategy and use CodegenStrategy to test the decompose patterns. Additionally, remove the assertion that checks the anchor op name is set in the CodegenStrategyTest pass. Removing the assertion allows us to simplify the pipelines used in the interchange and decompose tests.

Depends On D114797

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D114798
The file was modifiedmlir/test/Dialect/Linalg/interchange.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h
The file was modifiedmlir/test/Dialect/Linalg/decompose-convolution.mlir
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
Commit eb97c89cacb85c462e4e56057ae734716ed22324 by clementval
[fir] Remove unused fct recordTypeCanBeMemCopied

Remove unused fct added with 47f759309eeaf9bd77debe4f6c3e1fe52913b537
The file was modifiedflang/lib/Optimizer/Builder/FIRBuilder.cpp
Commit 3cc21ee6b966204b5d683e715f9e63ae9d63cbd4 by clementval
Revert "[fir] Add fir reduction builder"

This reverts commit cf3422d3df5b00d771bba837b9f51f67ab07eb64.

This fails on some buildbots
The file was modifiedflang/lib/Optimizer/Builder/CMakeLists.txt
The file was modifiedflang/unittests/Optimizer/Builder/Runtime/RuntimeCallTestBase.h
The file was removedflang/lib/Optimizer/Builder/Runtime/Reduction.cpp
The file was removedflang/include/flang/Optimizer/Builder/Runtime/Reduction.h
The file was modifiedflang/unittests/Optimizer/CMakeLists.txt
The file was removedflang/unittests/Optimizer/Builder/Runtime/ReductionTest.cpp
Commit ca57b80cd6767b97477fd157831a2b099b5f8f75 by mateja.marjanovic
Code quality: Combine V_RSQ

Combine V_RCP and V_SQRT into V_RSQ on AMDGPU for GlobalISel.

Change-Id: I93c5dcb412483156a6e8b68c4085cbce83ac9703
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
The file was modifiedllvm/lib/Target/AMDGPU/CaymanInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/R600Instructions.td
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-rsq.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCombine.td
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/combine-rsq.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp
The file was modifiedllvm/lib/Target/AMDGPU/EvergreenInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/SIInstructions.td
Commit 455a2b824d7734939e54cfb3f47c054517f75be8 by hans
Fix file extension of alignment-assumption-ignorelist.cppp test

During the renaming of blacklist to ignorelist this test got renamed
incorrectly.

Differential revision: https://reviews.llvm.org/D114710
The file was removedcompiler-rt/test/ubsan/TestCases/Pointer/alignment-assumption-ignorelist.cppp
The file was addedcompiler-rt/test/ubsan/TestCases/Pointer/alignment-assumption-ignorelist.cpp
Commit c41b318423c4dbf0a65f81e5e9a816c1710ba4f6 by listmail
[LV] Remove unneeded cast to Operator [NFC]
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit fd1d8e45f488b28db8d63ab51733ddd1e37e751c by benny.kra
[clang][dataflow] Make header parse

Looks like this is actually dead code?
The file was modifiedclang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h
Commit b8e03be88dc87303f7401ea7b9906947ac67a6db by paul.robinson
[PS4][DWARF] Explicitly set default DWARF version to 4
The file was modifiedclang/lib/Driver/ToolChains/PS4CPU.h
Commit bf317f66989cac26e17b4cd16ab1c7bdfe73dbe0 by hoy
[CSSPGO] Sorting nodes in a cycle of profiled call graph.

For nodes that are in a cycle of a profiled call graph, the current order the underlying scc_iter computes purely depends on how those nodes are reached from outside the SCC and inside the SCC, based on the Tarjan algorithm. This does not honor profile edge hotness, thus does not gurantee hot callsites to be inlined prior to cold callsites. To mitigate that, I'm adding an extra sorter on top of scc_iter to sort scc functions in the order of callsite hotness, instead of changing the internal of scc_iter.

Sorting on callsite hotness can be optimally based on detecting cycles on a directed call graph, i.e, to remove the coldest edge until a cycle is broken. However, detecting cycles isn't cheap. I'm using an MST-based approach which is faster and appear to deliver some performance wins.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D114204
The file was modifiedllvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h
The file was modifiedllvm/test/Transforms/SampleProfile/profile-context-order.ll
The file was modifiedllvm/include/llvm/ADT/SCCIterator.h
The file was modifiedllvm/lib/Transforms/IPO/SampleProfile.cpp
The file was addedllvm/test/Transforms/SampleProfile/Inputs/profile-context-order-scc.prof
The file was modifiedllvm/tools/llvm-profgen/CSPreInliner.cpp
Commit 5e3200f3ce5ac807fa0fdd2b12484ee1540c6b50 by Steven Wu
[JITLink][ELF] Add support for reading extended table

Add support for reading extended table in ELF object file. This allows
JITLink to support ELF object files with many sections.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D114747
The file was modifiedllvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h
The file was addedllvm/test/ExecutionEngine/JITLink/X86/ELF_shndex.s
Commit c737d4d203210f96919f4406e5b815b0946535ab by Steven Wu
[JITLink][ELF] Don't skip sections of size 0

Size 0 sections can have symbols that have size 0. Build those sections
and symbols into the LinkGraph so they can be used properly if needed.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D114749
The file was modifiedllvm/lib/ExecutionEngine/JITLink/ELFLinkGraphBuilder.h
The file was addedllvm/test/ExecutionEngine/JITLink/X86/ELF_empty_section.s