SuccessChanges

Summary

  1. [lld-macho] Fix invalid-stub test on Windows, take 2 (details)
  2. [HotColdSplit] Fix variable name spelling (details)
  3. [Clang options] Optimize optionMatches() runtime by removing mallocs (details)
  4. Revert "[SCEV] Look through single value PHIs." (details)
  5. [NFC] [PowerPC] Rename SPE strict conversion test (details)
  6. [flang][msvc] Use platform-independent primitives in temporary f18 driver. (details)
Commit 7d32e6e3f0a94ae65ffc19d3948658365584d048 by jezng
[lld-macho] Fix invalid-stub test on Windows, take 2
The file was modifiedlld/test/MachO/invalid/invalid-stub.s
Commit f902a7eccf30a762d9a533c3884edfb692c26a09 by 1894981+hiraditya
[HotColdSplit] Fix variable name spelling
The file was modifiedllvm/lib/Transforms/IPO/HotColdSplitting.cpp
Commit d54c252bc8a15bc80bb9f0a83b3bebc6d211144a by nadav256
[Clang options] Optimize optionMatches() runtime by removing mallocs

The method optionMatches() constructs 9865 std::string instances when comparing different
options. Many of these instances exceed the size of the internal storage and force memory
allocations. This patch adds an early exit check that eliminates most of the string allocations
while keeping the code simple.

Example inputs:
Prefix: /, Name: Fr
Prefix: -, Name: Fr
Prefix: -, Name: fsanitize-address-field-padding=
Prefix: -, Name: fsanitize-address-globals-dead-stripping
Prefix: -, Name: fsanitize-address-poison-custom-array-cookie
Prefix: -, Name: fsanitize-address-use-after-scope
Prefix: -, Name: fsanitize-address-use-odr-indicator
Prefix: -, Name: fsanitize-blacklist=

Differential Revision: D85538
The file was modifiedllvm/lib/Option/OptTable.cpp
Commit 0581c0b0eeba03da590d1176a4580cf9b9e8d1e3 by tamur
Revert "[SCEV] Look through single value PHIs."

This reverts commit e441b7a7a0a72c28daf5a8e594559c667e5b4534.

This patch causes a compile error in tensorflow opensource project. The stack trace looks like:

Point of crash:
llvm/include/llvm/Analysis/LoopInfoImpl.h : line 35

(gdb) ptype *this
type = const class llvm::LoopBase<llvm::BasicBlock, llvm::Loop> [with BlockT = llvm::BasicBlock, LoopT = llvm::Loop]

(gdb) p *this
$1 = {ParentLoop = 0x0, SubLoops = std::vector of length 0, capacity 0, Blocks = std::vector of length 0, capacity 1,
  DenseBlockSet = {<llvm::SmallPtrSetImpl<llvm::BasicBlock const*>> = {<llvm::SmallPtrSetImplBase> = {<llvm::DebugEpochBase> = {Epoch = 3}, SmallArray = 0x1b2bf6c8, CurArray = 0x1b2bf6c8,
        CurArraySize = 8, NumNonEmpty = 0, NumTombstones = 0}, <No data fields>}, SmallStorage = {0xfffffffffffffffe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, IsInvalid = true}

(gdb) p *this->DenseBlockSet->CurArray
$2 = (const void *) 0xfffffffffffffffe

I will try to get a case from tensorflow or use creduce to get a small case.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/funclet.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/solve-quadratic-i1.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/solve-quadratic-overflow.ll
Commit 1ce26c9d658694f640e2b615498f9eeb57612d28 by qiucofan
[NFC] [PowerPC] Rename SPE strict conversion test
The file was addedllvm/test/CodeGen/PowerPC/fp-strict-conv-spe.ll
The file was removedllvm/test/CodeGen/PowerPC/fp-strict-conv.ll
Commit 18e9482e44ed2b59008a8a3b05c6c49ef0243b6d by llvm-project
[flang][msvc] Use platform-independent primitives in temporary f18 driver.

Use functions for process launching, temporary file creation and file deletion from LLVM support library instead of POSIX-specific ones.

This patch is part of the series to [[ http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html | make flang compilable with MS Visual Studio ]].

Reviewed By: DavidTruby

Differential Revision: https://reviews.llvm.org/D85660
The file was modifiedflang/tools/f18-parse-demo/f18-parse-demo.cpp
The file was modifiedflang/tools/f18/f18.cpp