FailedChanges

Summary

  1. Add support for pretty platform names to `@available`/ `__builtin_available` This commit allows us to use the macOS/iOS/tvOS/watchOS platform names in `@available`/`__builtin_available`. rdar://32067795 Differential Revision: https://reviews.llvm.org/D33000
  2. [Atomic] Remove IsStore/IsLoad in the interface, and pass the instruction instead. NFC. Now both emitLeadingFence and emitTrailingFence take the instruction itself, instead of taking IsLoad/IsStore pairs. Instruction::mayReadFromMemory and Instrucion::mayWriteToMemory are used for determining those two booleans. The instruction argument is also useful for later D32763, in emitTrailingFence. For emitLeadingFence, it seems to have cleaner interface with the proposed change. Differential Revision: https://reviews.llvm.org/D32762
  3. [scudo] CRC32 optimizations Summary: This change optimizes several aspects of the checksum used for chunk headers. First, there is no point in checking the weak symbol `computeHardwareCRC32` everytime, it will either be there or not when we start, so check it once during initialization and set the checksum type accordingly. Then, the loading of `HashAlgorithm` for SSE versions (and ARM equivalent) was not optimized out, while not necessary. So I reshuffled that part of the code, which duplicates a tiny bit of code, but ends up in a much cleaner assembly (and faster as we avoid an extraneous load and some calls). The following code is the checksum at the end of `scudoMalloc` for x86_64 with full SSE 4.2, before: ``` mov rax, 0FFFFFFFFFFFFFFh shl r10, 38h mov edi, dword ptr cs:_ZN7__scudoL6CookieE ; __scudo::Cookie and r14, rax lea rsi, [r13-10h] movzx eax, cs:_ZN7__scudoL13HashAlgorithmE ; __scudo::HashAlgorithm or r14, r10 mov rbx, r14 xor bx, bx call _ZN7__scudo20computeHardwareCRC32Ejm ; __scudo::computeHardwareCRC32(uint,ulong) mov rsi, rbx mov edi, eax call _ZN7__scudo20computeHardwareCRC32Ejm ; __scudo::computeHardwareCRC32(uint,ulong) mov r14w, ax mov rax, r13 mov [r13-10h], r14 ``` After: ``` mov rax, cs:_ZN7__scudoL6CookieE ; __scudo::Cookie lea rcx, [rbx-10h] mov rdx, 0FFFFFFFFFFFFFFh and r14, rdx shl r9, 38h or r14, r9 crc32 eax, rcx mov rdx, r14 xor dx, dx mov eax, eax crc32 eax, rdx mov r14w, ax mov rax, rbx mov [rbx-10h], r14 ``` Reviewers: dvyukov, alekseyshl, kcc Reviewed By: alekseyshl Subscribers: aemerson, rengolin, llvm-commits Differential Revision: https://reviews.llvm.org/D32971
  4. Amend r302535; ifndef and ifdef are different, as it turns out.
  5. [clang-tidy] Allow disabling compatibility check for generated fixes.
  6. ARMRegisterBankInfo.h requires LLVM_BUILD_GLOBAL_ISEL to be defined. If it is not defined, then ARMGenRegisterBank.inc is not table generated and the inclusion of this header causes the build to fail.
  7. Change EOL style to LF. NFC
Revision 302540 by arphaman:
Add support for pretty platform names to `@available`/
`__builtin_available`

This commit allows us to use the macOS/iOS/tvOS/watchOS platform names in
`@available`/`__builtin_available`.

rdar://32067795

Differential Revision: https://reviews.llvm.org/D33000
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/Attr.td (diff)llvm-revision.src/cfe/trunk/include/clang/Basic/Attr.td
The file was modified/cfe/trunk/lib/Parse/ParseExpr.cpp (diff)llvm-revision.src/cfe/trunk/lib/Parse/ParseExpr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclAttr.cpp (diff)llvm-revision.src/cfe/trunk/lib/Sema/SemaDeclAttr.cpp
The file was modified/cfe/trunk/test/FixIt/fixit-availability.c (diff)llvm-revision.src/cfe/trunk/test/FixIt/fixit-availability.c
The file was modified/cfe/trunk/test/FixIt/fixit-availability.mm (diff)llvm-revision.src/cfe/trunk/test/FixIt/fixit-availability.mm
The file was modified/cfe/trunk/test/Parser/objc-available.m (diff)llvm-revision.src/cfe/trunk/test/Parser/objc-available.m
The file was modified/cfe/trunk/test/SemaObjC/unguarded-availability.m (diff)llvm-revision.src/cfe/trunk/test/SemaObjC/unguarded-availability.m
Revision 302539 by timshen:
[Atomic] Remove IsStore/IsLoad in the interface, and pass the instruction instead. NFC.

Now both emitLeadingFence and emitTrailingFence take the instruction
itself, instead of taking IsLoad/IsStore pairs.
Instruction::mayReadFromMemory and Instrucion::mayWriteToMemory are used
for determining those two booleans.

The instruction argument is also useful for later D32763, in
emitTrailingFence. For emitLeadingFence, it seems to have cleaner
interface with the proposed change.

Differential Revision: https://reviews.llvm.org/D32762
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/Instruction.h (diff)llvm-revision.src/llvm/trunk/include/llvm/IR/Instruction.h
The file was modified/llvm/trunk/include/llvm/Target/TargetLowering.h (diff)llvm-revision.src/llvm/trunk/include/llvm/Target/TargetLowering.h
The file was modified/llvm/trunk/lib/CodeGen/AtomicExpandPass.cpp (diff)llvm-revision.src/llvm/trunk/lib/CodeGen/AtomicExpandPass.cpp
The file was modified/llvm/trunk/lib/IR/Instruction.cpp (diff)llvm-revision.src/llvm/trunk/lib/IR/Instruction.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.h (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/ARMISelLowering.h
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h (diff)llvm-revision.src/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h
Revision 302538 by cryptoad:
[scudo] CRC32 optimizations

Summary:
This change optimizes several aspects of the checksum used for chunk headers.

First, there is no point in checking the weak symbol `computeHardwareCRC32`
everytime, it will either be there or not when we start, so check it once
during initialization and set the checksum type accordingly.

Then, the loading of `HashAlgorithm` for SSE versions (and ARM equivalent) was
not optimized out, while not necessary. So I reshuffled that part of the code,
which duplicates a tiny bit of code, but ends up in a much cleaner assembly
(and faster as we avoid an extraneous load and some calls).

The following code is the checksum at the end of `scudoMalloc` for x86_64 with
full SSE 4.2, before:
```
mov     rax, 0FFFFFFFFFFFFFFh
shl     r10, 38h
mov     edi, dword ptr cs:_ZN7__scudoL6CookieE ; __scudo::Cookie
and     r14, rax
lea     rsi, [r13-10h]
movzx   eax, cs:_ZN7__scudoL13HashAlgorithmE ; __scudo::HashAlgorithm
or      r14, r10
mov     rbx, r14
xor     bx, bx
call    _ZN7__scudo20computeHardwareCRC32Ejm ; __scudo::computeHardwareCRC32(uint,ulong)
mov     rsi, rbx
mov     edi, eax
call    _ZN7__scudo20computeHardwareCRC32Ejm ; __scudo::computeHardwareCRC32(uint,ulong)
mov     r14w, ax
mov     rax, r13
mov     [r13-10h], r14
```
After:
```
mov     rax, cs:_ZN7__scudoL6CookieE ; __scudo::Cookie
lea     rcx, [rbx-10h]
mov     rdx, 0FFFFFFFFFFFFFFh
and     r14, rdx
shl     r9, 38h
or      r14, r9
crc32   eax, rcx
mov     rdx, r14
xor     dx, dx
mov     eax, eax
crc32   eax, rdx
mov     r14w, ax
mov     rax, rbx
mov     [rbx-10h], r14
```

Reviewers: dvyukov, alekseyshl, kcc

Reviewed By: alekseyshl

Subscribers: aemerson, rengolin, llvm-commits

Differential Revision: https://reviews.llvm.org/D32971
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/scudo/scudo_allocator.cpp (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_allocator.cpp
The file was modified/compiler-rt/trunk/lib/scudo/scudo_crc32.cpp (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_crc32.cpp
The file was added/compiler-rt/trunk/lib/scudo/scudo_crc32.hllvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_crc32.h
The file was modified/compiler-rt/trunk/lib/scudo/scudo_utils.h (diff)llvm-revision.src/compiler-rt/trunk/lib/scudo/scudo_utils.h
Revision 302537 by aaronballman:
Amend r302535; ifndef and ifdef are different, as it turns out.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
Revision 302536 by alexfh:
[clang-tidy] Allow disabling compatibility check for generated fixes.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (diff)llvm-revision.src/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h (diff)llvm-revision.src/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h
Revision 302535 by aaronballman:
ARMRegisterBankInfo.h requires LLVM_BUILD_GLOBAL_ISEL to be defined. If it is not defined, then ARMGenRegisterBank.inc is not table generated and the inclusion of this header causes the build to fail.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
Revision 302534 by alexfh:
Change EOL style to LF. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (diff)llvm-revision.src/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp
The file was modified/clang-tools-extra/trunk/clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp (diff)llvm-revision.src/clang-tools-extra/trunk/clang-tidy/misc/ForwardingReferenceOverloadCheck.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/misc-non-copyable-objects.c (diff)llvm-revision.src/clang-tools-extra/trunk/test/clang-tidy/misc-non-copyable-objects.c
The file was modified/clang-tools-extra/trunk/test/clang-tidy/misc-static-assert.c (diff)llvm-revision.src/clang-tools-extra/trunk/test/clang-tidy/misc-static-assert.c
The file was modified/clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp (diff)llvm-revision.src/clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp