FailedChanges

Summary

  1. [X86][SSE] combineTargetShuffle - rearrange shuffle(hop,hop) matching to delay shuffle mask manipulation. NFC. (details)
  2. [X86][SSE] Add single undef element HADD test cases from PR34724 (details)
  3. [SyntaxTree] Implement `NestedNameSpecifier` using the `List` base API (details)
  4. [DebugInfo] Don't error for zero-length arange entries (details)
  5. [ARM] Unrestrict Armv8-a IT when at minsize (details)
  6. [PowerPC] Add option to control PCRel GOT indirect linker optimization (details)
  7. [X86][SSE] Pull out shuffle(hop,hop) combine into combineShuffleWithHorizOp helper. NFC. (details)
  8. [AIX] Static init frontend recovery and backend support (details)
  9. Author: Shuhong Liu <shuhong.liu@ibm.com> (details)
  10. [XCOFF] Adjust .rename emission sequence (details)
  11. [PGO][CUDA][HIP] Skip generating profile on the device stub and wrong-side functions. (details)
  12. [SLP] Regenerate load-merge.ll tests (details)
  13. [X86][SSE] shuffle(hop,hop) - canonicalize unary hop(x,x) shuffle masks (details)
  14. [lld][WebAssembly] Handle weakly referenced symbols when lazy (archive) version is see first (details)
  15. [flang] Version information in flang/f18 (details)
  16. [llvm-symbolizer] Add back --version and add a -v alias (details)
Commit e6dc2c8ce7dbc307c89f9ca5020087a6a6fb15d0 by llvm-dev
[X86][SSE] combineTargetShuffle - rearrange shuffle(hop,hop) matching to delay shuffle mask manipulation. NFC.

Check that we're shuffling hadd/pack ops first before altering shuffle masks.

First step towards adding extra functionality, plus it avoids costly shuffle mask manipulation if not necessary.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit 891ddfc6438028c954b20683b31890e553ac109c by llvm-dev
[X86][SSE] Add single undef element HADD test cases from PR34724
The file was modifiedllvm/test/CodeGen/X86/haddsub-undef.ll (diff)
Commit fdbd5996533dad25f00687f27ce8e7a8b7573ba3 by ecaldas
[SyntaxTree] Implement `NestedNameSpecifier` using the `List` base API
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp (diff)
Commit ca05601cd2a1b75050538ef2e78de205f1300692 by james.henderson
[DebugInfo] Don't error for zero-length arange entries

Although the DWARF specification states that .debug_aranges entries
can't have length zero, these can occur in the wild. There's no
particular reason to enforce this part of the spec, since functionally
they have no impact. The patch removes the error and introduces a new
warning for premature terminator entries which does not stop parsing.

This is a relanding of cb3a598c87db, adding the missing obj2yaml part
that was needed.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46805. See also
https://reviews.llvm.org/D71932 which originally introduced the error.

Reviewed by: ikudrin, dblaikie, Higuoxing

Differential Revision: https://reviews.llvm.org/D85313
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp (diff)
The file was modifiedllvm/tools/obj2yaml/dwarf2yaml.cpp (diff)
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h (diff)
The file was modifiedllvm/test/tools/obj2yaml/ELF/DWARF/debug-aranges.yaml (diff)
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFDebugArangeSetTest.cpp (diff)
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp (diff)
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp (diff)
Commit 4f9f4b21e07ba8137b40659ac5d3955586ce81bb by sam.parker
[ARM] Unrestrict Armv8-a IT when at minsize

IT blocks with more than one instruction were performance deprecated in Armv8
but that doesn't mean we should follow that advise when optimising for size.

Differential Revision: https://reviews.llvm.org/D85638
The file was modifiedllvm/test/CodeGen/ARM/codesize-ifcvt.mir (diff)
The file was modifiedllvm/test/CodeGen/ARM/ifcvt-size.mir (diff)
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp (diff)
Commit 81883ca074556f9598a8a2f43ccfb81489baeb78 by stefanp
[PowerPC] Add option to control PCRel GOT indirect linker optimization

Add a hidden option to the compiler to control a the PC Relative GOT indirect
linker optimization.

If this option is set to false the compiler will no loger produce the
relocations required by the linker to perform the optimization.

Reviewed By: nemanjai, NeHuang, #powerpc

Differential Revision: https://reviews.llvm.org/D85377
The file was modifiedllvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp (diff)
The file was addedllvm/test/CodeGen/PowerPC/pcrel-linkeropt-option.ll
Commit 07e673a02bb163a70b2b5eff8231578646a20120 by llvm-dev
[X86][SSE] Pull out shuffle(hop,hop) combine into combineShuffleWithHorizOp helper. NFC.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit 6ef801aa6bc01fc49a8e83ddb217470b5e2337dd by Xiangling.Liao
[AIX] Static init frontend recovery and backend support

On the frontend side, this patch recovers AIX static init implementation to
use the linkage type and function names Clang chooses for sinit related function.

On the backend side, this patch sets correct linkage and function names on aliases
created for sinit/sterm functions.

Differential Revision: https://reviews.llvm.org/D84534
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/aix-static-init.cpp (diff)
The file was addedllvm/test/CodeGen/PowerPC/aix-static-init-default-priority.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-static-init-non-default-priority.ll
The file was modifiedclang/lib/CodeGen/CodeGenModule.h (diff)
The file was addedclang/test/CodeGenCXX/aix-static-init-temp-spec-and-inline-var.cpp
The file was modifiedclang/unittests/CodeGen/IncrementalProcessingTest.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h (diff)
The file was addedllvm/test/CodeGen/PowerPC/aix-static-init-no-unique-module-id.ll
The file was addedllvm/test/CodeGen/PowerPC/aix-static-init-key-object.ll
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp (diff)
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGDeclCXX.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/aix-static-init-debug-info.cpp (diff)
Commit b129c9d81aff8ece71eb29df1e5f31136a48c040 by shuhong.liu
Author: Shuhong Liu <shuhong.liu@ibm.com>
Date:   Mon Aug 10 10:31:50 2020 +0300

    [AIX][Clang][Driver] Generate reference to the C++ library on the link step

    Have the linker find libc++ on its search path by adding -lc++.

    Reviewed by: daltenty, hubert.reinterpretcast, stevewan

    Differential Revision: https://reviews.llvm.org/D85315
The file was modifiedclang/lib/Driver/ToolChains/AIX.h (diff)
The file was modifiedclang/lib/Driver/ToolChains/AIX.cpp (diff)
The file was modifiedclang/test/Driver/aix-ld.c (diff)
Commit 7866442b3f5d395e7f92a5d6b6ed0df3e4ba429b by jasonliu
[XCOFF] Adjust .rename emission sequence

Summary:
AIX assembler does not generate correct relocation when .rename
appear between tc entry label and .tc directive.
So only emit .rename after .tc/.comm or other linkage is emitted.

Reviewed By: daltenty, hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D85317
The file was modifiedllvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp (diff)
The file was modifiedllvm/lib/MC/MCAsmStreamer.cpp (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-symbol-rename.ll (diff)
Commit c7b683c126b849dab5c81e7deecfc1e61f8563a0 by michael.hliao
[PGO][CUDA][HIP] Skip generating profile on the device stub and wrong-side functions.

- Skip generating profile data on `__global__` function in the host
  compilation. It's a host-side stub function only and don't have
  profile instrumentation generated on the real function body. The extra
  profile data results in the malformed instrumentation profile data.
- Skip generating region mapping on functions in the wrong-side, i.e.,
  + For the device compilation, skip host-only functions; and,
  + For the host compilation, skip device-only functions (including
    `__global__` functions.)
- As the device-side profiling is not ready yet, only host-side profile
  code generation is checked.

Differential Revision: https://reviews.llvm.org/D85276
The file was addedclang/test/CodeGenCUDA/profile-coverage-mapping.cu
The file was modifiedclang/lib/CodeGen/CodeGenPGO.cpp (diff)
Commit 90f721404ff84d904085687bcb58ae798b5d5209 by llvm-dev
[SLP] Regenerate load-merge.ll tests

Noticed this NFC change in D57779
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/load-merge.ll (diff)
Commit 9a368d2b0088a8b7209c4a435427dfe8ad62744f by llvm-dev
[X86][SSE] shuffle(hop,hop) - canonicalize unary hop(x,x) shuffle masks

If a shuffle is referring to both the lower and upper half lanes of an unary horizontal op, then canonicalize the mask to only refer to the lower half.
The file was modifiedllvm/test/CodeGen/X86/haddsub-undef.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit b34ec5969f1ad27f48ebc0d35a3fe37e810a8a32 by sbc
[lld][WebAssembly] Handle weakly referenced symbols when lazy (archive) version is see first

When a weak reference of a lazy symbol occurs we were not correctly
updating the lazy symbol.  We need to tag the existing lazy symbol
as weak and, in the case of a function symbol, give it a signature.

Without the signature we can't then create the dummy function which
is needed when an weakly undefined function is called.

We had tests for weakly referenced lazy symbols but we were only
tests in the case where the reference was seen before the lazy
symbol.

See: https://github.com/WebAssembly/wasi-libc/pull/214

Differential Revision: https://reviews.llvm.org/D85567
The file was modifiedlld/test/wasm/archive-weak-undefined.ll (diff)
The file was modifiedlld/wasm/Symbols.h (diff)
The file was modifiedlld/wasm/SymbolTable.cpp (diff)
The file was modifiedlld/wasm/Symbols.cpp (diff)
Commit 89a9db438f85c6d4c0f11ecd0448bb71e1deac24 by richard.barton
[flang] Version information in flang/f18

Fixed some version information in flang/f18:

  - fixed the behavior of the -v switch: this flag enables verbosity with used with arguments, but just displays the version when used alone (related to this bug: https://bugs.llvm.org/show_bug.cgi?id=46017)
- added __FLANG, __FLANG_MAJOR__, __FLANG_MINOR__ and __FLANG_PATCHLEVEL__ (similar to their __F18* counterparts) for compatibility purpose

Reviewed By: sscalpone, AlexisPerry, richard.barton.arm, tskeith

Differential Revision: https://reviews.llvm.org/D84334
The file was modifiedflang/tools/f18/f18.cpp (diff)
The file was addedflang/tools/f18/f18_version.h.in
The file was modifiedflang/test/Driver/version_test.f90 (diff)
The file was addedflang/test/Preprocessing/compiler_defined_macros.F90
The file was modifiedflang/tools/f18/CMakeLists.txt (diff)
Commit 0b7f12521966e04bd60df3e7a5327556631d2057 by i
[llvm-symbolizer] Add back --version and add a -v alias

The switch from llvm::cl to OptTable (D83530) dropped --version, which
is needed by some users.

This patch also adds a -v alias, which is available in GNU addr2line.

The version dumping is similar to llvm-objcopy --version (exotic):

```
llvm-symbolizer
LLVM (http://llvm.org/):
  LLVM version 12.0.0git
  Optimized build with assertions.
  Default target: x86_64-unknown-linux-gnu
  Host CPU: skylake-avx512
```

Reviewed By: dyung, jhenderson

Differential Revision: https://reviews.llvm.org/D85624
The file was modifiedllvm/tools/llvm-symbolizer/Opts.td (diff)
The file was modifiedllvm/tools/llvm-symbolizer/llvm-symbolizer.cpp (diff)
The file was addedllvm/test/tools/llvm-symbolizer/version.test
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst (diff)