SuccessChanges

Summary

  1. [lldb][formatters] Add support for printing NSConstantDate and fix distantPast value (details)
  2. [clang][Driver] Fix tool path priority test failures (details)
  3. AArch64+ARM: make LLVM consider system registers volatile. (details)
  4. Fix typo in identifier in assert. (details)
  5. [clangd] Fix use-after-free in ArgStripper (details)
  6. [Support] Fix Windows directory_iterator_construct out of bounds (details)
  7. [llvm-readobj] - Verify the location of program headers better. (details)
  8. [Matrix] Only pass vector arg as overloaded type in MatrixBuilder. (details)
  9. [yaml2obj] - Rename FileHeader::SH* fields. (details)
  10. [RISCV] Fix RISCVInstrInfo::getInstSizeInBytes for atomics pseudos (details)
  11. [RISCV] Duplicate pseudo expansion comment to RISCVMCCodeEmitter (details)
  12. [LLD][ELF] - Update test after yaml2obj change. NFC. (details)
  13. Bump the trunk major version to 12 (details)
  14. [Analyzer] Report every bug if only uniqueing location differs. (details)
  15. [clangd] Config: also propagate in sync (testing) mode (details)
  16. [MLIR][Shape] Add `shape.shape_eq` operation (details)
  17. [LoopRotate] Remove unnecessary verifyMemorySSA calls. (details)
Commit 001c78de35cc0637eb58b3d855bc9897acccdc64 by Raphael Isemann
[lldb][formatters] Add support for printing NSConstantDate and fix distantPast value

Summary:

Certain `NSDate` constructors return a special `NSConstantDate` class which
currently ends up being unformatted as it's not in the list of supported classes
for the NSDate formatter. This patch adds that class to the supported class list
so LLDB produces a summary for it.

One of these special constructors is `[NSDate distantPast]` which returns the
date for `0001-01-01 00:00:00 UTC`. LLDB has a special case for formatting this
date but for some reason we did hardcode the wrong summary string in that
special case. Maybe the summary string was correct back when the code was
written but it isn't correct anymore (`distantPast` isn't actually defined to be
a special date but just some 'a guaranteed temporal boundary.' so maybe someone
changed the value in the last 10 years).

If someone else is wondering why we even have this special case for
`distantPast` but not for the future. The reason seems to be that our date
formatting for really old dates is off by 24 hours. So for example, adding one
second to `distantPast` will cause LLDB to print `0000-12-30 00:00:01 UTC`
(which is 24 hours behind the expected result). So to make our code appear to be
correct it seems we just hardcoded the most common NSDate result from that time
span. I'll replace that logic with a generic solution in a probably more
invasive follow up patch.

I also took the freedom to replace the magic value `-63114076800` with some
constant + documentation. I heard there are some people that don't know from the
top of their head that there are 63114076800 seconds between 1. Jan 0001 and 1.
January 2001 in whatever calendar system NSDate is using.

Reviewers: mib, davide

Reviewed By: mib

Subscribers: JDevlieghere

Differential Revision: https://reviews.llvm.org/D83217
The file was modifiedlldb/source/Plugins/Language/ObjC/Cocoa.cpp
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
Commit fe5912249efa1ec5e6aa6e565f722dd4d33d1e54 by david.spickett
[clang][Driver] Fix tool path priority test failures

Summary:
Failure type 1:
This test can fail when the path of the build includes the strings
we're checking for. E.g "/gcc" is found in ".../gcc_7.3.0/..."

To correct this look for '"' on the end of all matches. So that we
only match the end of paths printed by clang -###.
(which would be ".../gcc_7.3.0/.../gcc" for the example)

Also look for other gcc names like gcc-x.y.z in the first check.
This confirms that the copy of clang we made is isolated as expected.

Failure type 2:
If you use a triple like "powerpc64le-linux-gnu" clang actually reports
"powerpc64le-unknown-linux-gnu". Then it searches for the
former.

That combined with Mac OS adding a version number to cmake's triple
means we can't trust cmake or clang to give us the one default triple.
To fix the test, write to both names. As they don't overlap with our
fake triple, we're still showing that the lookup works.

Reviewers: MaskRay, stevewan

Reviewed By: stevewan

Subscribers: miyuki, JDevlieghere, steven.zhang, stevewan, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83055
The file was modifiedclang/test/Driver/program-path-priority.c
The file was modifiedclang/test/lit.cfg.py
Commit 5165b2b5fd5fd62c5a34970be81c79231844804c by Tim Northover
AArch64+ARM: make LLVM consider system registers volatile.

Some of the system registers readable on AArch64 and ARM platforms
return different values with each read (for example a timer counter),
these shouldn't be hoisted outside loops or otherwise interfered with,
but the normal @llvm.read_register intrinsic is only considered to read
memory.

This introduces a separate @llvm.read_volatile_register intrinsic and
maps all system-registers on ARM platforms to use it for the
__builtin_arm_rsr calls. Registers declared with asm("r9") or similar
are unaffected.
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedclang/test/CodeGen/builtins-arm.c
The file was addedllvm/test/Transforms/LICM/read-volatile-register.ll
The file was modifiedclang/test/CodeGen/builtins-arm64.c
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit 9697a9e2d316f0d9d588f4de536b0a6bbef2810f by Tim Northover
Fix typo in identifier in assert.
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit f782d9c7002edaaf56c06a6cc1775f8f67713a29 by sam.mccall
[clangd] Fix use-after-free in ArgStripper
The file was modifiedclang-tools-extra/clangd/CompileCommands.h
Commit f6eb5daa16368fb90d5a59b14a72bfd8ddbcd2a0 by andrew.ng
[Support] Fix Windows directory_iterator_construct out of bounds

Fix incorrect use of the size of Path when accessing PathUTF16, as the
UTF-16 path can be shorter. Added unit test for coverage of this test
case.

Thanks to Ding Fei (danix800) for the code fix, see
https://reviews.llvm.org/D83321.

Differential Revision: https://reviews.llvm.org/D83689
The file was modifiedllvm/lib/Support/Windows/Path.inc
The file was modifiedllvm/unittests/Support/Path.cpp
Commit 327c4450353309ea97cbd9f56b46f099f3b0a1f9 by grimar
[llvm-readobj] - Verify the location of program headers better.

This improves condition in the ELFFile::program_headers().
Previously if was possible to read the headers from the wrong place when
the value of e_phoff was so large that computation overflowed.

Differential revision: https://reviews.llvm.org/D83774
The file was modifiedllvm/include/llvm/Object/ELF.h
The file was modifiedllvm/test/tools/llvm-readobj/ELF/gnu-phdrs.test
Commit c872e809d1ac4aa405ae510e271f93d7662e26dd by flo
[Matrix] Only pass vector arg as overloaded type in MatrixBuilder.

In 2b3c505, the pointer arguments for the matrix load and store
intrinsics was changed to always be the element type of the vector
argument.

This patch updates the MatrixBuilder to not add the pointer type to the
overloaded types and adjusts the clang/mlir tests.

This should fix a few build failures on GreenDragon, including
http://green.lab.llvm.org/green/job/test-suite-verify-machineinstrs-x86_64-O0-g/7891/
The file was modifiedclang/test/CodeGen/matrix-type-builtins.c
The file was modifiedclang/test/CodeGenCXX/matrix-type-builtins.cpp
The file was modifiedclang/test/CodeGenObjC/matrix-type-builtins.m
The file was modifiedllvm/include/llvm/IR/MatrixBuilder.h
The file was modifiedmlir/test/Target/llvmir-intrinsics.mlir
Commit 7a587ca93200c49e47fe205ce037895c81c5a542 by grimar
[yaml2obj] - Rename FileHeader::SH* fields.

In D83482 we agreed to name e_* fields that are used for overriding
values (like e_phoff) as EPh* (e.g. EPhOff).

Currently we have a set of e_sh* fields that are named inconsistently
with this rule. This patch renames all of them.

Differential revision: https://reviews.llvm.org/D83766
The file was modifiedllvm/test/tools/llvm-readobj/ELF/invalid-shstrndx.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/gnu-notes.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/hash-table.test
The file was modifiedllvm/test/tools/llvm-readobj/ELF/sections-no-section-header-string-table.test
The file was modifiedllvm/test/tools/yaml2obj/ELF/section-headers.yaml
The file was modifiedllvm/test/tools/llvm-readobj/ELF/symbols.test
The file was modifiedllvm/include/llvm/ObjectYAML/ELFYAML.h
The file was modifiedllvm/test/tools/llvm-readobj/ELF/many-sections.s
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
The file was modifiedllvm/test/Object/invalid.test
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-reloc-no-section-headers.test
The file was modifiedllvm/test/tools/yaml2obj/ELF/header-sh-fields.yaml
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
Commit 3382c243baf2c9761db80e498243f4c57fe64de8 by jrtc27
[RISCV] Fix RISCVInstrInfo::getInstSizeInBytes for atomics pseudos

Summary:
Without these, the generic branch relaxation pass will underestimate the
range required for branches spanning these and we can end up with
"fixup value out of range" errors rather than relaxing the branches.
Some of the instructions in the expansion may end up being compressed
but exactly determining that is awkward, and these conservative values
should be safe, if slightly suboptimal in rare cases.

Reviewers: asb, lenary, luismarques, lewis-revill

Reviewed By: asb, luismarques

Subscribers: hiraditya, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, jfb, PkmX, jocewei, psnobl, benna, Jim, s.egerton, pzheng, sameer.abuasal, apazos, evandro, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77443
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVExpandAtomicPseudoInsts.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
Commit 2dc16fbdf0f24b0b9fd529932e7ee0d1960fc8b0 by jrtc27
[RISCV] Duplicate pseudo expansion comment to RISCVMCCodeEmitter

Follow-on from D77443. Although we're not fixing any of these
pseudo-instructions, the potential for them to be out of sync still
exists.
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
Commit 2e10b7a39b930ef8d9c4362509d8835b221fbc0a by grimar
[LLD][ELF] - Update test after yaml2obj change. NFC.

Names of YAML keys changed in rG7a587ca93200c49e47fe205ce037895c81c5a542
The file was modifiedlld/test/ELF/invalid/invalid-e_shnum.test
Commit 7ab7b979d29e1e43701cf690f5cf1903740f50e3 by hans
Bump the trunk major version to 12

and clear the release notes.
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedclang/docs/analyzer/conf.py
The file was modifiedlld/docs/ReleaseNotes.rst
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedllvm/utils/lit/lit/__init__.py
The file was modifiedlibcxx/include/__config
The file was modifiedlibunwind/CMakeLists.txt
The file was modifiedllvm/CMakeLists.txt
The file was modifiedpolly/docs/conf.py
The file was modifiedclang-tools-extra/docs/conf.py
The file was modifiedpstl/include/pstl/internal/pstl_config.h
The file was modifiedllvm/utils/release/build_llvm_package.bat
The file was modifiedlibunwind/docs/conf.py
The file was modifiedlld/docs/conf.py
The file was modifiedclang/docs/conf.py
The file was modifiedpolly/docs/ReleaseNotes.rst
The file was modifiedlibcxx/docs/conf.py
The file was modifiedlibcxx/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedlibcxx/include/__libcpp_version
The file was modifiedllvm/utils/gn/secondary/llvm/version.gni
The file was modifiedpstl/docs/ReleaseNotes.rst
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedpstl/test/pstl/version.pass.cpp
Commit 22a084cfa337d5e5ea90eba5261f7937e28d250b by 1.int32
[Analyzer] Report every bug if only uniqueing location differs.

Summary:
Two CSA bug reports where only the uniqueing location is different
should be treated as different problems. The role of uniqueing location
is to differentiate bug reports.

Reviewers: Szelethus, baloghadamsoftware, NoQ, vsavchenko, xazax.hun, martong

Reviewed By: NoQ

Subscribers: NoQ, rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83115
The file was modifiedclang/test/Analysis/malloc.c
The file was modifiedclang/lib/Analysis/PathDiagnostic.cpp
The file was modifiedclang/test/Analysis/pr22954.c
Commit cf7160c0b0c1250596cc9b2ba0e41423ac465a8f by sam.mccall
[clangd] Config: also propagate in sync (testing) mode

Summary:
I hit this while trying to add a config-over-LSP lit test, which I think
is an appropriate way to test this feature.

That needs a few more changes though...

Reviewers: kadircet

Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83802
The file was modifiedclang-tools-extra/clangd/TUScheduler.cpp
The file was modifiedclang-tools-extra/clangd/TUScheduler.h
The file was modifiedclang-tools-extra/clangd/unittests/TUSchedulerTests.cpp
Commit 978804821e88a34d484a8ebab72d2888f869a086 by frgossen
[MLIR][Shape] Add `shape.shape_eq` operation

Add `shape.shape_eq` operation to the shape dialect.
The operation allows to test shapes and extent tensors for equality.

Differential Revision: https://reviews.llvm.org/D82528
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
The file was modifiedmlir/test/Dialect/Shape/ops.mlir
Commit 9ea0d8c38fc58ecec2e2f62f3b65e99fcbc2ec4c by flo
[LoopRotate] Remove unnecessary verifyMemorySSA calls.

The actual rotation happens in processLoop, so the second removed
call to verifyMemorySSA was unnecessary.

In fact, processLoop/rotateLoop already verify MemorySSA before
and after transforming each loop. Hence, both calls can be removed.

Pointed out by @lebedev.ri post-commit D51718.
The file was modifiedllvm/lib/Transforms/Utils/LoopRotationUtils.cpp

Summary

  1. Forwarding test size param to CMake (details)
Commit 554f0722ae0daaab3abb7fd2205a9f00ce787cf0 by thomasp
Forwarding test size param to CMake

Without this fix test-size parameter in `lnt runtest test-suite` has no
effect.

Reviewed By: thopre

Differential Revision: https://reviews.llvm.org/D83620
The file was modifiedlnt/tests/test_suite.py (diff)