SuccessChanges

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

Summary

  1. SCC: Allow ReplaceNode to safely support insertion (details)
  2. [X86] Directly emit a BROADCAST_LOAD from constant pool in (details)
  3. [ThinLTO] Handle variable with twice promoted name (Rust) (details)
  4. [ELF] Delete the RelExpr member R_HINT. NFC (details)
  5. [ThinLTO/WPD] Remove an overly-aggressive assert (details)
  6. [RISCV] Allow shrink wrapping for RISC-V (details)
Commit f7e9f4f4c50245d10ca9869a9f8f3d431dfb6948 by warren_ristow
SCC: Allow ReplaceNode to safely support insertion
If scc_iterator::ReplaceNode is inserting a new entry in the map, rather
than replacing an existing entry, the possibility of growing the map
could cause a failure.  This change safely implements the insertion.
Reviewed By: probinson
Differential Revision: https://reviews.llvm.org/D72469
The file was modifiedllvm/include/llvm/ADT/SCCIterator.h
Commit 98c54fb1feba081c509f7e389877550df130a80d by craig.topper
[X86] Directly emit a BROADCAST_LOAD from constant pool in
lowerUINT_TO_FP_vXi32 to avoid double loads seen in D71971
By directly emitting the constants as a constant pool load we seem to
avoid the build_vector/extract_subvector combines that resulted in the
duplicate loads we had before.
Differential Revision: https://reviews.llvm.org/D72307
The file was modifiedllvm/test/CodeGen/X86/vec-strict-inttofp-256.ll
The file was modifiedllvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vec_int_to_fp.ll
Commit 7dc4bbf8ab311606388faacca58b6c3e3e508b77 by tejohnson
[ThinLTO] Handle variable with twice promoted name (Rust)
Summary: Ensure that we can internalize values produced from two rounds
of promotion.
Note that this cannot happen currently via clang, but in other use cases
such as the Rust compiler which does a first round of ThinLTO on library
code, producing bitcode, and a second round on the final binary.
In particular this can happen if a function is exported and promoted,
ending up with a ".llvm.${hash}" suffix, and then goes through a round
of optimization creating an internal switch table expansion variable
that is internal and contains the promoted name of the enclosing
function. This variable will be promoted in the second round of ThinLTO
if @foo is imported again, and therefore ends up with two
".llvm.${hash}" suffixes. Only the final one should be stripped when
consulting the index to locate the summary.
Reviewers: wmi
Subscribers: mehdi_amini, inglorion, hiraditya, JDevlieghere, steven_wu,
dexonsmith, arphaman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72711
The file was addedllvm/test/ThinLTO/X86/thinlto-internalize-doublepromoted.ll
The file was addedllvm/test/ThinLTO/X86/Inputs/thinlto-internalize-doublepromoted.ll
The file was modifiedllvm/include/llvm/IR/ModuleSummaryIndex.h
Commit bec1b55c64cf33d5f33c8cb7cc10d02e25811bef by maskray
[ELF] Delete the RelExpr member R_HINT. NFC
R_HINT is ignored like R_NONE. There are no strong reasons to keep
R_HINT. The largest RelExpr member R_RISCV_PC_INDIRECT is 60 now.
Differential Revision: https://reviews.llvm.org/D71822
The file was modifiedlld/ELF/Arch/ARM.cpp
The file was modifiedlld/ELF/Relocations.cpp
The file was modifiedlld/ELF/Relocations.h
Commit 2cefb93951cca01dcdde6fe5c7354dc8bcd796d6 by tejohnson
[ThinLTO/WPD] Remove an overly-aggressive assert
Summary: An assert added to the index-based WPD was trying to verify
that we only have multiple vtables for a given guid when they are all
non-external linkage. This is too conservative because we may have
multiple external vtable with the same guid when they are in comdat.
Remove the assert, as we don't have comdat information in the index, the
linker should issue an error in this case.
See discussion on D71040 for more information.
Reviewers: evgeny777, aganea
Subscribers: mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72648
The file was addedllvm/test/ThinLTO/X86/devirt_external_comdat_same_guid.ll
The file was modifiedllvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
The file was addedllvm/test/ThinLTO/X86/Inputs/devirt_external_comdat_same_guid.ll
Commit cd800f3b226b25142f233beca846715fc601809b by lewis-revill
[RISCV] Allow shrink wrapping for RISC-V
Enabling shrink wrapping requires ensuring the insertion point of the
epilogue is correct for MBBs without a terminator, in which case the
instruction to adjust the stack pointer is the last instruction in the
block.
Differential Revision: https://reviews.llvm.org/D62190
The file was modifiedllvm/lib/Target/RISCV/RISCVFrameLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/shrinkwrap.ll