SuccessChanges

Summary

  1. [AArch64] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after r366857
  2. [SafeStack] Insert the deref before remaining elements This is a follow up to D64971. While we need to insert the deref after the offset, it needs to come before the remaining elements in the original expression since the deref needs to happen before the LLVM fragment if present. Differential Revision: https://reviews.llvm.org/D65172
  3. [Remarks] String tables should be move-only Copying them is expensive. This allows the tables to be moved around at lower cost, and allows a remarks::StringTable to be constructed from a remarks::ParsedStringTable.
  4. [FileCheck] Use ASSERT for fatal unit tests Summary: A number of EXPECT statements in FileCheck's unit tests are dependent from results of other values being tested. This commit changes those earlier test to use ASSERT instead of EXPECT to avoid cascade errors when they are all related to the same issue. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64921
  5. [FileCheck]] Canonicalize caret location testing Summary: Testing of caret location in diagnostic message is currently made with CHECK directive with the following general format: CHECK: {{^ \^$}} James Henderson suggested the following would be more readable: CHECK: {{^}} ^{{$}} and when whole lines can be matched (as is the case for command-line testing where error messages do not include path): CHECK: ^ using the option --match-full-lines. This commit implements these 2 changes on all existing caret position tests. It also aligns the caret to the character it is trying to match in the above line. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64923
  6. FileCheck [8/12]: Define numeric var from expr Summary: This patch is part of a patch series to add support for FileCheck numeric expressions. This specific patch lift the restriction for a numeric expression to either be a variable definition or a numeric expression to try to match. This commit allows a numeric variable to be set to the result of the evaluation of a numeric expression after it has been matched successfully. When it happens, the variable is allowed to be used on the same line since its value is known at match time. It also makes use of this possibility to reuse the parsing code to parse a command-line definition by crafting a mirror string of the -D option with the equal sign replaced by a colon sign, e.g. for option '-D#NUMVAL=10' it creates the string '-D#NUMVAL=10 (parsed as [[#NUMVAL:10]])' where the numeric expression is parsed to define NUMVAL. This result in a few tests needing updating for the location diagnostics on top of the tests for the new feature. It also enables empty numeric expression which match any number without defining a variable. This is done here rather than in commit #5 of the patch series because it requires to dissociate automatic regex insertion in RegExStr from variable definition which would make commit #5 even bigger than it already is. Copyright: - Linaro (changes up to diff 183612 of revision D55940) - GraphCore (changes in later versions of revision D55940 and in new revision created off D55940) Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield Tags: #llvm Differential Revision: https://reviews.llvm.org/D60388
  7. [DWARF] Use 32-bit format specifier for offset This should fix PR42730.
  8. [AArch64][GlobalISel] Add support for s128 loads, stores, extracts, truncs. We need to be able to load and store s128 for memcpy inlining, where we want to generate Q register mem ops. Making these legal also requires that we add some support in other instructions. Regbankselect should also know about these since they have no GPR register class that can hold them, so need special handling to live on the FPR bank. Differential Revision: https://reviews.llvm.org/D65166
  9. Fix "control reaches end of non-void function" warning. NFCI.
  10. [docs] Clarify where the indirect UB due to write-write races comes from This is based on https://bugs.llvm.org/show_bug.cgi?id=42435#c3. Patch by Ralf Jung.
  11. [GlobalISel][AArch64] Save a copy on G_SELECT by fixing condition to GPR The condition can never be fed by FPRs, so it should always be on a GPR. Differential Revision: https://reviews.llvm.org/D65157
  12. [ARM] Add opt-bisect support to ARMParallelDSP.
  13. [Remarks] Introduce a new format: yaml-strtab This exposes better support to use a string table with a format through an actual new remark::Format, called yaml-strtab. This can now be used with -fsave-optimization-record=yaml-strtab.
  14. [Remarks][NFC] Move the YAML serializer to its own header
  15. [PowerPC] Remove redundant load immediate instructions Currently PowerPC backend emits code like this: r3 = li 0 std r3, 264(r1) r3 = li 0 std r3, 272(r1) This patch fixes that and other cases where a register already contains a value that is loaded so we will get: r3 = li 0 std r3, 264(r1) std r3, 272(r1) Differential Revision: https://reviews.llvm.org/D64220
  16. gn build: Merge r366832
  17. ld.lld: Demangle symbols from archives in diagnostics This ports r366573 from COFF to ELF. There are now to toString(Archive::Symbol), one doing MSVC demangling in COFF and one doing Itanium demangling in ELF, so rename these two to toCOFFString() and to toELFString() to not get a duplicate symbol. Nothing ever passes a raw Archive::Symbol to CHECK(), so these not being part of the normal toString() machinery seems ok. There are two code paths in the ELF linker that emits this type of diagnostic: 1. The "normal" one in InputFiles.cpp. This is covered by the tweaked test. 2. An additional one that's only used for libcalls if there's at least one bitcode in the link, and if the libcall symbol is lazy, and lazily loaded from an archive (i.e. not from a lazy .o file). (This code path was added in r339301.) Since all libcall names so far are C symbols and never mangled, the change there is not observable and hence not covered by tests. Differential Revision: https://reviews.llvm.org/D65095
  18. [X86] In lowerVectorShuffle, instead of creating a new node to canonicalize the shuffle mask by commuting, just commute the mask and swap V1/V2. LegalizeDAG tries to legal the DAG by legalizing nodes before their operands. If we create a new node, we end up legalizing it after its operands. This prevents some of the optimizations that can be done when the operand is a build_vector since the build_vector will have been legalized to something else. Differential Revision: https://reviews.llvm.org/D65132
  19. [libFuzzer] Fix __sanitizer_print_memory_profile return type in ExtFunctions.def Summary: Looks like a typo, as that function actually returns void and is used as such in libFuzzer code as well. Reviewers: kcc, Dor1s Reviewed By: Dor1s Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D65160
  20. [Remarks] Add unit tests for YAML serialization Add tests for both the string table and non string table case.
  21. clang-format: Fix namespace end comments for namespaces with attributes and macros. Fixes PR39247. While here, also make C++20 `namespace A::inline B::inline C` nested inline namespaced definitions work. Before: #define DEPRECATE_WOOF [[deprecated("meow")]] namespace DEPRECATE_WOOF woof { void f() {} } // namespace DEPRECATE_WOOFwoof namespace [[deprecated("meow")]] woof { void f() {} } // namespace [[deprecated("meow")]]woof namespace woof::inline bark { void f() {} } // namespace woof::inlinebark Now: #define DEPRECATE_WOOF [[deprecated("meow")]] namespace DEPRECATE_WOOF woof { void f() {} } // namespace woof namespace [[deprecated("meow")]] woof { void f() {} } // namespace woof namespace woof::inline bark { void f() {} } // namespace woof::inline bark (In addition to the fixed namespace end comments, also note the correct indent of the namespace contents.) Differential Revision: https://reviews.llvm.org/D65125
  22. [IndVars] Fix a subtle bug in optimizeLoopExits The original code failed to account for the fact that one exit can have a pointer exit count without all of them having pointer exit counts. This could cause two separate bugs: 1) We might exit the loop early, and leave optimizations undone. This is what triggered the assertion failure in the reported test case. 2) We might optimize one exit, then exit without indicating a change. This could result in an analysis invalidaton bug if no other transform is done by the rest of indvars. Note that the pointer exit counts are a really fragile concept. They show up only when we have a pointer IV w/o a datalayout to provide their size. It's really questionable to me whether the complexity implied is worth it.
  23. Improve clang-format-diff help output The description in clang-format-diff.py is more useful than the one in `clang-format-diff -h`, so use the same description in both places. Differential Revision: https://reviews.llvm.org/D64998
  24. [IR][Verifier] Allow IntToPtrInst to be !dereferenceable Summary: Allow IntToPtrInst to carry !dereferenceable metadata tag. This is valid since !dereferenceable can be only be applied to pointer type values. Change-Id: If8a6e3c616f073d51eaff52ab74535c29ed497b4 Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64954
  25. [RISCV][NFC] Correct RUN in rvi-pseudos-invalid.s This test should test both riscv32 and riscv64.
  26. [clang][NFCI] Fix random typos
Revision 366866 by maskray:
[AArch64] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after r366857
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cpp (diff)llvm.src/lib/Target/AArch64/AArch64InstructionSelector.cpp
Revision 366865 by phosek:
[SafeStack] Insert the deref before remaining elements

This is a follow up to D64971. While we need to insert the deref after
the offset, it needs to come before the remaining elements in the
original expression since the deref needs to happen before the LLVM
fragment if present.

Differential Revision: https://reviews.llvm.org/D65172
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/Local.cpp (diff)llvm.src/lib/Transforms/Utils/Local.cpp
The file was modified/llvm/trunk/test/Transforms/SafeStack/X86/debug-loc2.ll (diff)llvm.src/test/Transforms/SafeStack/X86/debug-loc2.ll
Revision 366864 by thegameg:
[Remarks] String tables should be move-only

Copying them is expensive. This allows the tables to be moved around at
lower cost, and allows a remarks::StringTable to be constructed from
a remarks::ParsedStringTable.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Remarks/RemarkParser.h (diff)llvm.src/include/llvm/Remarks/RemarkParser.h
The file was modified/llvm/trunk/include/llvm/Remarks/RemarkStringTable.h (diff)llvm.src/include/llvm/Remarks/RemarkStringTable.h
The file was modified/llvm/trunk/lib/Remarks/RemarkParser.cpp (diff)llvm.src/lib/Remarks/RemarkParser.cpp
The file was modified/llvm/trunk/lib/Remarks/RemarkStringTable.cpp (diff)llvm.src/lib/Remarks/RemarkStringTable.cpp
The file was modified/llvm/trunk/lib/Remarks/YAMLRemarkParser.cpp (diff)llvm.src/lib/Remarks/YAMLRemarkParser.cpp
The file was modified/llvm/trunk/lib/Remarks/YAMLRemarkParser.h (diff)llvm.src/lib/Remarks/YAMLRemarkParser.h
The file was modified/llvm/trunk/unittests/Remarks/YAMLRemarksParsingTest.cpp (diff)llvm.src/unittests/Remarks/YAMLRemarksParsingTest.cpp
Revision 366862 by thopre:
[FileCheck] Use ASSERT for fatal unit tests

Summary:
A number of EXPECT statements in FileCheck's unit tests are dependent
from results of other values being tested. This commit changes those
earlier test to use ASSERT instead of EXPECT to avoid cascade errors
when they are all related to the same issue.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64921
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/Support/FileCheckTest.cpp (diff)llvm.src/unittests/Support/FileCheckTest.cpp
Revision 366861 by thopre:
[FileCheck]] Canonicalize caret location testing

Summary:
Testing of caret location in diagnostic message is currently made with
CHECK directive with the following general format:
CHECK: {{^         \^$}}

James Henderson suggested the following would be more readable:
CHECK: {{^}}         ^{{$}}

and when whole lines can be matched (as is the case for command-line
testing where error messages do not include path):
CHECK:         ^
using the option --match-full-lines.

This commit implements these 2 changes on all existing caret position
tests. It also aligns the caret to the character it is trying to match
in the above line.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64923
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/FileCheck/check-not-diaginfo.txt (diff)llvm.src/test/FileCheck/check-not-diaginfo.txt
The file was modified/llvm/trunk/test/FileCheck/numeric-defines-diagnostics.txt (diff)llvm.src/test/FileCheck/numeric-defines-diagnostics.txt
The file was modified/llvm/trunk/test/FileCheck/numeric-expression.txt (diff)llvm.src/test/FileCheck/numeric-expression.txt
The file was modified/llvm/trunk/test/FileCheck/string-defines-diagnostics.txt (diff)llvm.src/test/FileCheck/string-defines-diagnostics.txt
The file was modified/llvm/trunk/test/FileCheck/verbose.txt (diff)llvm.src/test/FileCheck/verbose.txt
Revision 366860 by thopre:
FileCheck [8/12]: Define numeric var from expr

Summary:
This patch is part of a patch series to add support for FileCheck
numeric expressions. This specific patch lift the restriction for a
numeric expression to either be a variable definition or a numeric
expression to try to match.

This commit allows a numeric variable to be set to the result of the
evaluation of a numeric expression after it has been matched
successfully. When it happens, the variable is allowed to be used on
the same line since its value is known at match time.

It also makes use of this possibility to reuse the parsing code to
parse a command-line definition by crafting a mirror string of the
-D option with the equal sign replaced by a colon sign, e.g. for option
'-D#NUMVAL=10' it creates the string
'-D#NUMVAL=10 (parsed as [[#NUMVAL:10]])' where the numeric expression
is parsed to define NUMVAL. This result in a few tests needing updating
for the location diagnostics on top of the tests for the new feature.

It also enables empty numeric expression which match any number without
defining a variable. This is done here rather than in commit #5 of the
patch series because it requires to dissociate automatic regex insertion
in RegExStr from variable definition which would make commit #5 even
bigger than it already is.

Copyright:
    - Linaro (changes up to diff 183612 of revision D55940)
    - GraphCore (changes in later versions of revision D55940 and
                 in new revision created off D55940)

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60388
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/FileCheck.rst (diff)llvm.src/docs/CommandGuide/FileCheck.rst
The file was modified/llvm/trunk/include/llvm/Support/FileCheck.h (diff)llvm.src/include/llvm/Support/FileCheck.h
The file was modified/llvm/trunk/lib/Support/FileCheck.cpp (diff)llvm.src/lib/Support/FileCheck.cpp
The file was modified/llvm/trunk/test/FileCheck/numeric-defines-diagnostics.txt (diff)llvm.src/test/FileCheck/numeric-defines-diagnostics.txt
The file was modified/llvm/trunk/test/FileCheck/numeric-defines.txt (diff)llvm.src/test/FileCheck/numeric-defines.txt
The file was modified/llvm/trunk/test/FileCheck/numeric-expression.txt (diff)llvm.src/test/FileCheck/numeric-expression.txt
The file was modified/llvm/trunk/unittests/Support/FileCheckTest.cpp (diff)llvm.src/unittests/Support/FileCheckTest.cpp
Revision 366859 by Jonas Devlieghere:
[DWARF] Use 32-bit format specifier for offset

This should fix PR42730.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
Revision 366857 by aemerson:
[AArch64][GlobalISel] Add support for s128 loads, stores, extracts, truncs.

We need to be able to load and store s128 for memcpy inlining, where we want to
generate Q register mem ops. Making these legal also requires that we add some
support in other instructions. Regbankselect should also know about these since
they have no GPR register class that can hold them, so need special handling to
live on the FPR bank.

Differential Revision: https://reviews.llvm.org/D65166
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cpp (diff)llvm.src/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64LegalizerInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64LegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-extracts.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-inserts.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-inserts.mir
The file was removed/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-store-s128-unaligned.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-load-store-s128-unaligned.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/legalize-load-store.mir
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/regbank-extract.mirllvm.src/test/CodeGen/AArch64/GlobalISel/regbank-extract.mir
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/regbank-trunc-s128.mirllvm.src/test/CodeGen/AArch64/GlobalISel/regbank-trunc-s128.mir
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-extract.mirllvm.src/test/CodeGen/AArch64/GlobalISel/select-extract.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/select-trunc.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/select-trunc.mir
Revision 366856 by rksimon:
Fix "control reaches end of non-void function" warning. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/IR/RemarkStreamer.cpp (diff)llvm.src/lib/IR/RemarkStreamer.cpp
Revision 366855 by efriedma:
[docs] Clarify where the indirect UB due to write-write races comes from

This is based on https://bugs.llvm.org/show_bug.cgi?id=42435#c3.

Patch by Ralf Jung.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/Atomics.rst (diff)llvm.src/docs/Atomics.rst
Revision 366854 by paquette:
[GlobalISel][AArch64] Save a copy on G_SELECT by fixing condition to GPR

The condition can never be fed by FPRs, so it should always be on a GPR.

Differential Revision: https://reviews.llvm.org/D65157
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/regbank-fp-use-def.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/regbank-fp-use-def.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/regbank-select.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/regbank-select.mir
Revision 366851 by efriedma:
[ARM] Add opt-bisect support to ARMParallelDSP.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMParallelDSP.cpp (diff)llvm.src/lib/Target/ARM/ARMParallelDSP.cpp
Revision 366849 by thegameg:
[Remarks] Introduce a new format: yaml-strtab

This exposes better support to use a string table with a format through
an actual new remark::Format, called yaml-strtab.

This can now be used with -fsave-optimization-record=yaml-strtab.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/Remarks.rst (diff)llvm.src/docs/Remarks.rst
The file was modified/llvm/trunk/include/llvm/Remarks/RemarkFormat.h (diff)llvm.src/include/llvm/Remarks/RemarkFormat.h
The file was modified/llvm/trunk/include/llvm/Remarks/RemarkParser.h (diff)llvm.src/include/llvm/Remarks/RemarkParser.h
The file was modified/llvm/trunk/include/llvm/Remarks/RemarkSerializer.h (diff)llvm.src/include/llvm/Remarks/RemarkSerializer.h
The file was modified/llvm/trunk/include/llvm/Remarks/YAMLRemarkSerializer.h (diff)llvm.src/include/llvm/Remarks/YAMLRemarkSerializer.h
The file was modified/llvm/trunk/lib/IR/RemarkStreamer.cpp (diff)llvm.src/lib/IR/RemarkStreamer.cpp
The file was modified/llvm/trunk/lib/Remarks/RemarkFormat.cpp (diff)llvm.src/lib/Remarks/RemarkFormat.cpp
The file was modified/llvm/trunk/lib/Remarks/RemarkParser.cpp (diff)llvm.src/lib/Remarks/RemarkParser.cpp
The file was modified/llvm/trunk/lib/Remarks/YAMLRemarkParser.cpp (diff)llvm.src/lib/Remarks/YAMLRemarkParser.cpp
The file was modified/llvm/trunk/lib/Remarks/YAMLRemarkParser.h (diff)llvm.src/lib/Remarks/YAMLRemarkParser.h
The file was modified/llvm/trunk/lib/Remarks/YAMLRemarkSerializer.cpp (diff)llvm.src/lib/Remarks/YAMLRemarkSerializer.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/remarks-section.ll (diff)llvm.src/test/CodeGen/X86/remarks-section.ll
The file was modified/llvm/trunk/unittests/Remarks/YAMLRemarksParsingTest.cpp (diff)llvm.src/unittests/Remarks/YAMLRemarksParsingTest.cpp
The file was modified/llvm/trunk/unittests/Remarks/YAMLRemarksSerializerTest.cpp (diff)llvm.src/unittests/Remarks/YAMLRemarksSerializerTest.cpp
Revision 366842 by thegameg:
[Remarks][NFC] Move the YAML serializer to its own header
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Remarks/RemarkSerializer.h (diff)llvm.src/include/llvm/Remarks/RemarkSerializer.h
The file was added/llvm/trunk/include/llvm/Remarks/YAMLRemarkSerializer.hllvm.src/include/llvm/Remarks/YAMLRemarkSerializer.h
The file was modified/llvm/trunk/lib/IR/RemarkStreamer.cpp (diff)llvm.src/lib/IR/RemarkStreamer.cpp
The file was modified/llvm/trunk/lib/Remarks/YAMLRemarkSerializer.cpp (diff)llvm.src/lib/Remarks/YAMLRemarkSerializer.cpp
The file was modified/llvm/trunk/unittests/Remarks/YAMLRemarksSerializerTest.cpp (diff)llvm.src/unittests/Remarks/YAMLRemarksSerializerTest.cpp
Revision 366840 by yi-hong.lyu:
[PowerPC] Remove redundant load immediate instructions

Currently PowerPC backend emits code like this:

  r3 = li 0
  std r3, 264(r1)
  r3 = li 0
  std r3, 272(r1)

This patch fixes that and other cases where a register already contains a value that is loaded so we will get:

  r3 = li 0
  std r3, 264(r1)
  std r3, 272(r1)

Differential Revision: https://reviews.llvm.org/D64220
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCPreEmitPeephole.cpp (diff)llvm.src/lib/Target/PowerPC/PPCPreEmitPeephole.cpp
The file was added/llvm/trunk/test/CodeGen/PowerPC/remove-redundant-load-imm.llllvm.src/test/CodeGen/PowerPC/remove-redundant-load-imm.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/remove-redundant-load-imm.mirllvm.src/test/CodeGen/PowerPC/remove-redundant-load-imm.mir
Revision 366837 by nico:
gn build: Merge r366832
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/unittests/Remarks/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/unittests/Remarks/BUILD.gn
Revision 366836 by nico:
ld.lld: Demangle symbols from archives in diagnostics

This ports r366573 from COFF to ELF.

There are now to toString(Archive::Symbol), one doing MSVC demangling
in COFF and one doing Itanium demangling in ELF, so rename these two
to toCOFFString() and to toELFString() to not get a duplicate symbol.

Nothing ever passes a raw Archive::Symbol to CHECK(), so these not
being part of the normal toString() machinery seems ok.

There are two code paths in the ELF linker that emits this type of
diagnostic:

1. The "normal" one in InputFiles.cpp. This is covered by the tweaked test.

2. An additional one that's only used for libcalls if there's at least
   one bitcode in the link, and if the libcall symbol is lazy, and
   lazily loaded from an archive (i.e. not from a lazy .o file).
   (This code path was added in r339301.) Since all libcall names so far
   are C symbols and never mangled, the change there is not observable
   and hence not covered by tests.

Differential Revision: https://reviews.llvm.org/D65095
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/COFF/Driver.cpp (diff)lld.src/COFF/Driver.cpp
The file was modified/lld/trunk/COFF/InputFiles.cpp (diff)lld.src/COFF/InputFiles.cpp
The file was modified/lld/trunk/COFF/Symbols.cpp (diff)lld.src/COFF/Symbols.cpp
The file was modified/lld/trunk/COFF/Symbols.h (diff)lld.src/COFF/Symbols.h
The file was modified/lld/trunk/ELF/InputFiles.cpp (diff)lld.src/ELF/InputFiles.cpp
The file was modified/lld/trunk/ELF/Symbols.cpp (diff)lld.src/ELF/Symbols.cpp
The file was modified/lld/trunk/ELF/Symbols.h (diff)lld.src/ELF/Symbols.h
The file was modified/lld/trunk/test/ELF/archive-thin-missing-member.s (diff)lld.src/test/ELF/archive-thin-missing-member.s
Revision 366835 by ctopper:
[X86] In lowerVectorShuffle, instead of creating a new node to canonicalize the shuffle mask by commuting, just commute the mask and swap V1/V2.

LegalizeDAG tries to legal the DAG by legalizing nodes before
their operands.

If we create a new node, we end up legalizing it after its operands.
This prevents some of the optimizations that can be done when the
operand is a build_vector since the build_vector will have been
legalized to something else.

Differential Revision: https://reviews.llvm.org/D65132
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/oddshuffles.ll (diff)llvm.src/test/CodeGen/X86/oddshuffles.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shift-ashr-sub128.ll (diff)llvm.src/test/CodeGen/X86/vector-shift-ashr-sub128.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-128-v2.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-128-v2.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-zext-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-zext-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-zext.ll (diff)llvm.src/test/CodeGen/X86/vector-zext.ll
Revision 366834 by dor1s:
[libFuzzer] Fix __sanitizer_print_memory_profile return type in ExtFunctions.def

Summary:
Looks like a typo, as that function actually returns void and is used
as such in libFuzzer code as well.

Reviewers: kcc, Dor1s

Reviewed By: Dor1s

Subscribers: delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D65160
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerExtFunctions.def (diff)compiler-rt.src/lib/fuzzer/FuzzerExtFunctions.def
Revision 366832 by thegameg:
[Remarks] Add unit tests for YAML serialization

Add tests for both the string table and non string table case.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Remarks/RemarkStringTable.cpp (diff)llvm.src/lib/Remarks/RemarkStringTable.cpp
The file was modified/llvm/trunk/unittests/Remarks/CMakeLists.txt (diff)llvm.src/unittests/Remarks/CMakeLists.txt
The file was added/llvm/trunk/unittests/Remarks/YAMLRemarksSerializerTest.cppllvm.src/unittests/Remarks/YAMLRemarksSerializerTest.cpp
Revision 366831 by nico:
clang-format: Fix namespace end comments for namespaces with attributes and macros.

Fixes PR39247.

While here, also make C++20 `namespace A::inline B::inline C` nested
inline namespaced definitions work.

Before:
    #define DEPRECATE_WOOF [[deprecated("meow")]]

    namespace DEPRECATE_WOOF woof {
    void f() {}
    } // namespace DEPRECATE_WOOFwoof

    namespace [[deprecated("meow")]] woof {
      void f() {}
    } // namespace [[deprecated("meow")]]woof

    namespace woof::inline bark {
      void f() {}
    } // namespace woof::inlinebark

Now:
    #define DEPRECATE_WOOF [[deprecated("meow")]]

    namespace DEPRECATE_WOOF woof {
    void f() {}
    } // namespace woof

    namespace [[deprecated("meow")]] woof {
    void f() {}
    } // namespace woof

    namespace woof::inline bark {
    void f() {}
    } // namespace woof::inline bark

(In addition to the fixed namespace end comments, also note the correct
indent of the namespace contents.)

Differential Revision: https://reviews.llvm.org/D65125
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/NamespaceEndCommentsFixer.cpp (diff)clang.src/lib/Format/NamespaceEndCommentsFixer.cpp
The file was modified/cfe/trunk/lib/Format/UnwrappedLineParser.cpp (diff)clang.src/lib/Format/UnwrappedLineParser.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTest.cpp (diff)clang.src/unittests/Format/FormatTest.cpp
The file was modified/cfe/trunk/unittests/Format/NamespaceEndCommentsFixerTest.cpp (diff)clang.src/unittests/Format/NamespaceEndCommentsFixerTest.cpp
Revision 366829 by reames:
[IndVars] Fix a subtle bug in optimizeLoopExits

The original code failed to account for the fact that one exit can have a pointer exit count without all of them having pointer exit counts.  This could cause two separate bugs:
1) We might exit the loop early, and leave optimizations undone.  This is what triggered the assertion failure in the reported test case.
2) We might optimize one exit, then exit without indicating a change.  This could result in an analysis invalidaton bug if no other transform is done by the rest of indvars.

Note that the pointer exit counts are a really fragile concept.  They show up only when we have a pointer IV w/o a datalayout to provide their size.  It's really questionable to me whether the complexity implied is worth it.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp (diff)llvm.src/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was added/llvm/trunk/test/Transforms/IndVarSimplify/eliminate-exit-no-dl.llllvm.src/test/Transforms/IndVarSimplify/eliminate-exit-no-dl.ll
Revision 366828 by nico:
Improve clang-format-diff help output

The description in clang-format-diff.py is more useful than the one
in `clang-format-diff -h`, so use the same description in both places.

Differential Revision: https://reviews.llvm.org/D64998
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/tools/clang-format/clang-format-diff.py (diff)clang.src/tools/clang-format/clang-format-diff.py
Revision 366826 by rtayl:
[IR][Verifier] Allow IntToPtrInst to be !dereferenceable

Summary:
Allow IntToPtrInst to carry !dereferenceable metadata tag.
This is valid since !dereferenceable can be only be applied to
pointer type values.

Change-Id: If8a6e3c616f073d51eaff52ab74535c29ed497b4

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64954
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/LangRef.rst (diff)llvm.src/docs/LangRef.rst
The file was modified/llvm/trunk/lib/IR/Value.cpp (diff)llvm.src/lib/IR/Value.cpp
The file was modified/llvm/trunk/lib/IR/Verifier.cpp (diff)llvm.src/lib/IR/Verifier.cpp
The file was modified/llvm/trunk/test/Analysis/ValueTracking/memory-dereferenceable.ll (diff)llvm.src/test/Analysis/ValueTracking/memory-dereferenceable.ll
The file was added/llvm/trunk/test/Verifier/dereferenceable-md-inttoptr.llllvm.src/test/Verifier/dereferenceable-md-inttoptr.ll
The file was modified/llvm/trunk/test/Verifier/dereferenceable-md.ll (diff)llvm.src/test/Verifier/dereferenceable-md.ll
Revision 366825 by lenary:
[RISCV][NFC] Correct RUN in rvi-pseudos-invalid.s

This test should test both riscv32 and riscv64.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/MC/RISCV/rvi-pseudos-invalid.s (diff)llvm.src/test/MC/RISCV/rvi-pseudos-invalid.s
Revision 366823 by Jan Korous:
[clang][NFCI] Fix random typos
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/ASTMatchers/ASTMatchersInternal.h (diff)clang.src/include/clang/ASTMatchers/ASTMatchersInternal.h
The file was modified/cfe/trunk/lib/Index/IndexSymbol.cpp (diff)clang.src/lib/Index/IndexSymbol.cpp
The file was modified/cfe/trunk/lib/Sema/SemaExprCXX.cpp (diff)clang.src/lib/Sema/SemaExprCXX.cpp