SuccessChanges

Summary

  1. Mips: Remove immarg from copy and insert intrinsics These intrinsics do in fact work with non-constant index arguments. These are lowered to either the generic ISD::INSERT_VECTOR_ELT/ISD::EXTRACT_VECTOR_ELT, or to VEXTRACT_SEXT_ELT. The handling of these all accept variable indexes. Turning these into generic instructions which do allow variables introduces complications in a future change to immarg handling. Since these just turn into generic instructions, these are kind of pointless and should probably just be autoupgraded to extractelement/insertelement.
  2. [RISCV] Set correct encodings for DWARF exception handling This patch sets correct encodings for DWARF exception handling for RISC-V (other than call site encoding, which must be udata4 rather than uleb128 and is handled by D63415). This has the same intend as D63409, except this version matches GCC/binutils behaviour which uses the same encodings regardless of PIC/non-PIC and medlow/medany code model.
  3. [RISCV][NFC] Add tests that capture current encodings for DWARF EH Items which are known to be wrong/different vs GCC are marked as TODO and will be address in follow-up patches.
  4. [ASTImporter] Fix LLDB lookup in transparent ctx and with ext src Summary: With LLDB we use localUncachedLookup(), however, that fails to find Decls when a transparent context is involved and the given DC has external lexical storage. The solution is to use noload_lookup, which works well with transparent contexts. But, we cannot use only the noload_lookup since the slow case of localUncachedLookup is still needed in some other cases. These other cases are handled in ASTImporterLookupTable, but we cannot use that with LLDB since that traverses through the AST which initiates the load of external decls again via DC::decls(). We must avoid loading external decls during the import becuase ExternalASTSource is implemented with ASTImporter, so external loads during import results in uncontrolled and faulty import. Reviewers: shafik, teemperor, jingham, clayborg, a_sidorin, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits, lldb-commits Tags: #clang, #lldb Differential Revision: https://reviews.llvm.org/D61333
  5. [llvm-ar][test] \r\n -> \n Also simplify some empty output tests with 'count 0'
  6. [AMDGPU] Optimize atomic AND/OR/XOR Summary: Extend the atomic optimizer to handle AND, OR and XOR. Reviewers: arsenm, sheredom Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64809
  7. [AArch64] Add support for Transactional Memory Extension (TME) TME is a future architecture technology, documented in https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools https://developer.arm.com/docs/ddi0601/a More about the future architectures: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/new-technologies-for-the-arm-a-profile-architecture This patch adds support for the TME instructions TSTART, TTEST, TCOMMIT, and TCANCEL and the target feature/arch extension "tme". It also implements TME builtin functions, defined in ACLE Q2 2019 (https://developer.arm.com/docs/101028/latest) Patch by Javed Absar and Momchil Velikov Differential Revision: https://reviews.llvm.org/D64416
Revision 366328 by arsenm:
Mips: Remove immarg from copy and insert intrinsics

These intrinsics do in fact work with non-constant index arguments.

These are lowered to either the generic
ISD::INSERT_VECTOR_ELT/ISD::EXTRACT_VECTOR_ELT, or to
VEXTRACT_SEXT_ELT. The handling of these all accept variable
indexes. Turning these into generic instructions which do allow
variables introduces complications in a future change to immarg
handling.

Since these just turn into generic instructions, these are kind of
pointless and should probably just be autoupgraded to
extractelement/insertelement.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsMips.td (diff)llvm.src/include/llvm/IR/IntrinsicsMips.td
Revision 366327 by asb:
[RISCV] Set correct encodings for DWARF exception handling

This patch sets correct encodings for DWARF exception handling for RISC-V
(other than call site encoding, which must be udata4 rather than uleb128 and
is handled by D63415).

This has the same intend as D63409, except this version matches GCC/binutils
behaviour which uses the same encodings regardless of PIC/non-PIC and
medlow/medany code model.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)llvm.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/dwarf-eh.ll (diff)llvm.src/test/CodeGen/RISCV/dwarf-eh.ll
Revision 366326 by asb:
[RISCV][NFC] Add tests that capture current encodings for DWARF EH

Items which are known to be wrong/different vs GCC are marked as TODO and will
be address in follow-up patches.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/RISCV/dwarf-eh.llllvm.src/test/CodeGen/RISCV/dwarf-eh.ll
The file was added/llvm/trunk/test/DebugInfo/RISCV/eh-frame.sllvm.src/test/DebugInfo/RISCV/eh-frame.s
The file was added/llvm/trunk/test/MC/RISCV/fde-reloc.sllvm.src/test/MC/RISCV/fde-reloc.s
Revision 366325 by martong:
[ASTImporter] Fix LLDB lookup in transparent ctx and with ext src

Summary:
With LLDB we use localUncachedLookup(), however, that fails to find
Decls when a transparent context is involved and the given DC has
external lexical storage.  The solution is to use noload_lookup, which
works well with transparent contexts.  But, we cannot use only the
noload_lookup since the slow case of localUncachedLookup is still needed
in some other cases.

These other cases are handled in ASTImporterLookupTable, but we cannot
use that with LLDB since that traverses through the AST which initiates
the load of external decls again via DC::decls().

We must avoid loading external decls during the import becuase
ExternalASTSource is implemented with ASTImporter, so external loads
during import results in uncontrolled and faulty import.

Reviewers: shafik, teemperor, jingham, clayborg, a_sidorin, a.sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits, lldb-commits

Tags: #clang, #lldb

Differential Revision: https://reviews.llvm.org/D61333
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTImporter.cpp (diff)clang.src/lib/AST/ASTImporter.cpp
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cpp (diff)clang.src/unittests/AST/ASTImporterTest.cpp
The file was modified/lldb/trunk/packages/Python/lldbsuite/test/lang/c/modules/TestCModules.py (diff)N/A
The file was modified/lldb/trunk/packages/Python/lldbsuite/test/lang/c/modules/main.c (diff)N/A
The file was modified/lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp (diff)N/A
Revision 366324 by maskray:
[llvm-ar][test] \r\n -> \n

Also simplify some empty output tests with 'count 0'
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-ar/create.test (diff)llvm.src/test/tools/llvm-ar/create.test
The file was modified/llvm/trunk/test/tools/llvm-ar/dash-before-letter.test (diff)llvm.src/test/tools/llvm-ar/dash-before-letter.test
The file was modified/llvm/trunk/test/tools/llvm-ar/delete.test (diff)llvm.src/test/tools/llvm-ar/delete.test
The file was modified/llvm/trunk/test/tools/llvm-ar/insert-after.test (diff)llvm.src/test/tools/llvm-ar/insert-after.test
The file was modified/llvm/trunk/test/tools/llvm-ar/insert-before.test (diff)llvm.src/test/tools/llvm-ar/insert-before.test
The file was modified/llvm/trunk/test/tools/llvm-ar/move-after.test (diff)llvm.src/test/tools/llvm-ar/move-after.test
The file was modified/llvm/trunk/test/tools/llvm-ar/move-before.test (diff)llvm.src/test/tools/llvm-ar/move-before.test
The file was modified/llvm/trunk/test/tools/llvm-ar/move.test (diff)llvm.src/test/tools/llvm-ar/move.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-addlib.test (diff)llvm.src/test/tools/llvm-ar/mri-addlib.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-addmod.test (diff)llvm.src/test/tools/llvm-ar/mri-addmod.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-comments.test (diff)llvm.src/test/tools/llvm-ar/mri-comments.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-end.test (diff)llvm.src/test/tools/llvm-ar/mri-end.test
The file was modified/llvm/trunk/test/tools/llvm-ar/quick-append.test (diff)llvm.src/test/tools/llvm-ar/quick-append.test
The file was modified/llvm/trunk/test/tools/llvm-ar/read-only-archive.test (diff)llvm.src/test/tools/llvm-ar/read-only-archive.test
The file was modified/llvm/trunk/test/tools/llvm-ar/replace-update.test (diff)llvm.src/test/tools/llvm-ar/replace-update.test
The file was modified/llvm/trunk/test/tools/llvm-ar/replace.test (diff)llvm.src/test/tools/llvm-ar/replace.test
The file was modified/llvm/trunk/test/tools/llvm-ar/symtab.test (diff)llvm.src/test/tools/llvm-ar/symtab.test
Revision 366323 by foad:
[AMDGPU] Optimize atomic AND/OR/XOR

Summary: Extend the atomic optimizer to handle AND, OR and XOR.

Reviewers: arsenm, sheredom

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64809
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll (diff)llvm.src/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
Revision 366322 by chill:
[AArch64] Add support for Transactional Memory Extension (TME)

TME is a future architecture technology, documented in

https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools
https://developer.arm.com/docs/ddi0601/a

More about the future architectures:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/new-technologies-for-the-arm-a-profile-architecture

This patch adds support for the TME instructions TSTART, TTEST, TCOMMIT, and
TCANCEL and the target feature/arch extension "tme".

It also implements TME builtin functions, defined in ACLE Q2 2019
(https://developer.arm.com/docs/101028/latest)

Patch by Javed Absar and Momchil Velikov

Differential Revision: https://reviews.llvm.org/D64416
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAArch64.def (diff)clang.src/include/clang/Basic/BuiltinsAArch64.def
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.cpp (diff)clang.src/lib/Basic/Targets/AArch64.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.h (diff)clang.src/lib/Basic/Targets/AArch64.h
The file was modified/cfe/trunk/lib/Headers/arm_acle.h (diff)clang.src/lib/Headers/arm_acle.h
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cpp (diff)clang.src/lib/Sema/SemaChecking.cpp
The file was added/cfe/trunk/test/CodeGen/aarch64-tme-tcancel-arg.cppclang.src/test/CodeGen/aarch64-tme-tcancel-arg.cpp
The file was added/cfe/trunk/test/CodeGen/aarch64-tme.cclang.src/test/CodeGen/aarch64-tme.c
The file was added/cfe/trunk/test/Sema/aarch64-tme-errors.cclang.src/test/Sema/aarch64-tme-errors.c
The file was added/cfe/trunk/test/Sema/aarch64-tme-tcancel-const-error.cclang.src/test/Sema/aarch64-tme-tcancel-const-error.c
The file was added/cfe/trunk/test/Sema/aarch64-tme-tcancel-range-error.cclang.src/test/Sema/aarch64-tme-tcancel-range-error.c
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAArch64.td (diff)llvm.src/include/llvm/IR/IntrinsicsAArch64.td
The file was modified/llvm/trunk/include/llvm/Support/AArch64TargetParser.def (diff)llvm.src/include/llvm/Support/AArch64TargetParser.def
The file was modified/llvm/trunk/include/llvm/Support/AArch64TargetParser.h (diff)llvm.src/include/llvm/Support/AArch64TargetParser.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64.td (diff)llvm.src/lib/Target/AArch64/AArch64.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h (diff)llvm.src/lib/Target/AArch64/AArch64Subtarget.h
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-tcancel.llllvm.src/test/CodeGen/AArch64/tme-tcancel.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-tcommit.llllvm.src/test/CodeGen/AArch64/tme-tcommit.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-tstart.llllvm.src/test/CodeGen/AArch64/tme-tstart.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-ttest.llllvm.src/test/CodeGen/AArch64/tme-ttest.ll
The file was added/llvm/trunk/test/MC/AArch64/tme-error.sllvm.src/test/MC/AArch64/tme-error.s
The file was added/llvm/trunk/test/MC/AArch64/tme.sllvm.src/test/MC/AArch64/tme.s
The file was added/llvm/trunk/test/MC/Disassembler/AArch64/tme.txtllvm.src/test/MC/Disassembler/AArch64/tme.txt
The file was modified/llvm/trunk/unittests/Support/TargetParserTest.cpp (diff)llvm.src/unittests/Support/TargetParserTest.cpp