SuccessChanges

Summary

  1. [MCA] Add flag -show-encoding to llvm-mca. Flag -show-encoding enables the printing of instruction encodings as part of the the instruction info view. Example (with flags -mtriple=x86_64-- -mcpu=btver2): Instruction Info: [1]: #uOps [2]: Latency [3]: RThroughput [4]: MayLoad [5]: MayStore [6]: HasSideEffects (U) [7]: Encoding Size [1] [2] [3] [4] [5] [6] [7] Encodings: Instructions: 1 2 1.00 4 c5 f0 59 d0 vmulps %xmm0, %xmm1, %xmm2 1 4 1.00 4 c5 eb 7c da vhaddps %xmm2, %xmm2, %xmm3 1 4 1.00 4 c5 e3 7c e3 vhaddps %xmm3, %xmm3, %xmm4 In this example, column Encoding Size is the size in bytes of the instruction encoding. Column Encodings reports the actual instruction encodings as byte sequences in hex (objdump style). The computation of encodings is done by a utility class named mca::CodeEmitter. In future, I plan to expose the CodeEmitter to the instruction builder, so that information about instruction encoding sizes can be used by the simulator. That would be a first step towards simulating the throughput from the decoders in the hardware frontend. Differential Revision: https://reviews.llvm.org/D65948
  2. [AArch64] Set pref. func. align to 8 bytes on Neoverse E1 & Cortex-A65 Summary: The Arm Neoverse E1 and Cortex-A65 Software Optimization Guide [1][2], Section "4.7 Branch instruction alignment" state: "It is preferable for branch targets, including subroutine entry points, to be placed on aligned 64-bit boundaries to maximize instruction fetch efficiency." This patch sets the preferred function alignment on Neoverse E1 and Cortex-A65 to 2^3=8B. This was already the case in some Cortex-A CPUs such as Cortex-A53. [1] https://developer.arm.com/docs/swog466751/latest/arm-neoversetm-e1-core-software-optimization-guide [2] https://developer.arm.com/docs/swog010045/latest/arm-cortex-a65-core-software-optimization-guide Reviewers: dmgreen, fhahn, samparker Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65937
  3. [llvm-readobj] - Remove `error(llvm::Expected<T> &&E)` This is a bit strange method. It works like a unwrapOrError, but named error. It does not report an Input name. I removed it. Differential revision: https://reviews.llvm.org/D66000
  4. [llvm-readobj] - Remove deprecated unwrapOrError(Expected<T> EO). This patch changes the code to use a modern unwrapOrError(StringRef Input, Expected<T> EO) version that contains the input source name and removes the deprecated version. Differential revision: https://reviews.llvm.org/D65946
  5. [lldb][NFC] Unify InstrList typedef in IRForTarget
  6. [lldb][NFC] Fix warning about missing switch cases These types were recently added in D62960 but it seems the patch didn't consider LLDB which causes a bunch of compiler warnings about missing enum values. It seems this feature isn't fully implemented yet, so I don't think we can write any test for this. For now lets just add the missing types to our usual list of unsupported types.
  7. AArch64: support TLS on Darwin platforms in GlobalISel. All TLS access on Darwin is in the "general dynamic" form where we call a function to resolve the address, so implementation is pretty simple.
  8. [lldb] Refactor guard variable checks in IRForTarget Not NFC as this will probably fix a wrong guard variable check on Windows. Not sure though what Windows test can now be safely enabled.
  9. Minidump/Windows: Fix module lookup Summary: When opening a minidump, we were failing to find an executable because we were searching for i386-unknown-windows, whereas we recognize the pe/coff files as i386-pc-windows. This fixes the triple computation code in the minidump parser to match pe/coff, and adds an appropriate test. NB: I'm not sure setting the vendor to "pc" is really correct for arm(64) windows, but right now that seems to match what we do in the pe/coff case (ArchSpec.cpp:935). Reviewers: clayborg, amccarth Subscribers: javed.absar, kristof.beyls, rnk, markmentovai, lldb-commits Differential Revision: https://reviews.llvm.org/D65955
  10. [lldb][NFC] Clean up logging in IRForTarget
  11. Add SVE opaque built-in types This patch adds the SVE built-in types defined by the Procedure Call Standard for the Arm Architecture: https://developer.arm.com/docs/100986/0000 It handles the types in all relevant places that deal with built-in types. At the moment, some of these places bail out with an error, including: (1) trying to generate LLVM IR for the types (2) trying to generate debug info for the types (3) trying to mangle the types using the Microsoft C++ ABI (4) trying to @encode the types in Objective C (1) and (2) are fixed by follow-on patches but (unlike this patch) they deal mostly with target-specific LLVM details, so seemed like a logically separate change. There is currently no spec for (3) and (4), so reporting an error seems like the correct behaviour for now. The intention is that the types will become sizeless types: http://lists.llvm.org/pipermail/cfe-dev/2019-June/062523.html The main purpose of the sizeless type extension is to diagnose impossible or dangerous uses of the types, such as any that would require sizeof to have a meaningful defined value. Until then, the patch sets the alignments of the types to the values specified in the link above. It also sets the sizes of the types to zero, which is chosen to be consistently wrong and shouldn't affect correctly-written code (i.e. code that would compile even with the sizeless type extension). The patch adds the common subset of functionality needed to test the sizeless type extension on the one hand and to provide SVE intrinsic functions on the other. After this patch, the two pieces of work are essentially independent. The patch is based on one by Graham Hunter: https://reviews.llvm.org/D59245 Differential Revision: https://reviews.llvm.org/D62960
  12. [llvm-readobj] - Remove unwrapOrError(ErrorOr<T> EO) helper. It is outdated. Using of Expected<> is preferred, also it does not provide a way to report a file name. I updated the code to use the modern version of unwrapOrError instead. Differential revision: https://reviews.llvm.org/D65951
  13. GlobalISel: pack various parameters for lowerCall into a struct. I've now needed to add an extra parameter to this call twice recently. Not only is the signature getting extremely unwieldy, but just updating all of the callsites and implementations is a pain. Putting the parameters in a struct sidesteps both issues.
  14. [lldb][NFC] Remove last C string uses from IRForTarget
  15. [lldb][NFC] Use range-based for-loops in IRForTarget
  16. [ARM][ParallelDSP] Replace SExt uses As loads are combined and widened, we replaced their sext users operands whereas we should have been replacing the uses of the sext. I've added a load of tests, with only a few of them originally causing assertion failures, the rest improve pattern coverage. Differential Revision: https://reviews.llvm.org/D65740
  17. [AST] No longer visiting CXXMethodDecl bodies created by compiler when method was default created. Summary: Clang generates function bodies and puts them in the AST for default methods if it is defaulted outside the class definition. ` struct A { A &operator=(A &&O); }; A &A::operator=(A &&O) = default; ` This will generate a function body for the `A &A::operator=(A &&O)` and put it in the AST. This body should not be visited if implicit code is not visited as it is implicit. This was causing SemanticHighlighting in clangd to generate duplicate tokens and putting them in weird places. Reviewers: hokein, ilya-biryukov, gribozavr Subscribers: mgorny, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65938
  18. [InstSimplify] Report "Changed" also when only deleting dead instructions Summary: Make sure that we report that changes has been made by InstSimplify also in situations when only trivially dead instructions has been removed. If for example a call is removed the call graph must be updated. Bug seem to have been introduced by llvm-svn r367173 (commit 02b9e45a7e4b81), since the code in question was rewritten in that commit. Reviewers: spatel, chandlerc, foad Reviewed By: spatel Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65973
  19. [X86] Remove code that expands truncating stores from combineStore. We shouldn't form trunc stores that need to be expanded now that we are using widening legalization.
  20. Use ASSERT_THAT_ERROR instead of logAllUnhandledErrors/exit Summary: ASSERT_THAT_ERROR looks like the intended helper for use in tests. Reviewers: plotfi, jkorous, compnerd Subscribers: mgorny, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65853
  21. Fix rpath for MacOS/iOS Summary: libs can be installed to ../lib64. Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65972
  22. [X86] Remove stale FIXME from combineMaskedStore. NFC I believe PR34584 was tracking that FIXME, but its since been closed and a test case was added.
  23. [X86] Remove DAG combine expansion of extending masked load and truncating masked store. The only way to generate these was through promoting legalization of narrow vectors, but we widen those types now. So we shouldn't produce these nodes.
Revision 368432 by adibiagio:
[MCA] Add flag -show-encoding to llvm-mca.

Flag -show-encoding enables the printing of instruction encodings as part of the
the instruction info view.

Example (with flags -mtriple=x86_64--  -mcpu=btver2):

Instruction Info:
[1]: #uOps
[2]: Latency
[3]: RThroughput
[4]: MayLoad
[5]: MayStore
[6]: HasSideEffects (U)
[7]: Encoding Size

[1]    [2]    [3]    [4]    [5]    [6]    [7]    Encodings:     Instructions:
1      2     1.00                         4     c5 f0 59 d0    vmulps   %xmm0, %xmm1, %xmm2
1      4     1.00                         4     c5 eb 7c da    vhaddps  %xmm2, %xmm2, %xmm3
1      4     1.00                         4     c5 e3 7c e3    vhaddps  %xmm3, %xmm3, %xmm4

In this example, column Encoding Size is the size in bytes of the instruction
encoding. Column Encodings reports the actual instruction encodings as byte
sequences in hex (objdump style).

The computation of encodings is done by a utility class named mca::CodeEmitter.

In future, I plan to expose the CodeEmitter to the instruction builder, so that
information about instruction encoding sizes can be used by the simulator. That
would be a first step towards simulating the throughput from the decoders in the
hardware frontend.

Differential Revision: https://reviews.llvm.org/D65948
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/llvm-mca.rstllvm.src/docs/CommandGuide/llvm-mca.rst
The file was added/llvm/trunk/include/llvm/MCA/CodeEmitter.hllvm.src/include/llvm/MCA/CodeEmitter.h
The file was modified/llvm/trunk/lib/MCA/CMakeLists.txtllvm.src/lib/MCA/CMakeLists.txt
The file was added/llvm/trunk/lib/MCA/CodeEmitter.cppllvm.src/lib/MCA/CodeEmitter.cpp
The file was added/llvm/trunk/test/tools/llvm-mca/X86/show-encoding.sllvm.src/test/tools/llvm-mca/X86/show-encoding.s
The file was modified/llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.cppllvm.src/tools/llvm-mca/Views/InstructionInfoView.cpp
The file was modified/llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.hllvm.src/tools/llvm-mca/Views/InstructionInfoView.h
The file was modified/llvm/trunk/tools/llvm-mca/llvm-mca.cppllvm.src/tools/llvm-mca/llvm-mca.cpp
Revision 368431 by pabbar01:
[AArch64] Set pref. func. align to 8 bytes on Neoverse E1 & Cortex-A65

Summary:
The Arm Neoverse E1 and Cortex-A65 Software Optimization Guide [1][2],
Section "4.7 Branch instruction alignment" state:

"It is preferable for branch targets, including subroutine entry points,
to be placed on aligned 64-bit boundaries to maximize instruction fetch
efficiency."

This patch sets the preferred function alignment on Neoverse E1 and
Cortex-A65 to 2^3=8B. This was already the case in some Cortex-A CPUs
such as Cortex-A53.

[1] https://developer.arm.com/docs/swog466751/latest/arm-neoversetm-e1-core-software-optimization-guide
[2] https://developer.arm.com/docs/swog010045/latest/arm-cortex-a65-core-software-optimization-guide

Reviewers: dmgreen, fhahn, samparker

Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65937
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.cppllvm.src/lib/Target/AArch64/AArch64Subtarget.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/preferred-function-alignment.llllvm.src/test/CodeGen/AArch64/preferred-function-alignment.ll
Revision 368430 by grimar:
[llvm-readobj] - Remove `error(llvm::Expected<T> &&E)`

This is a bit strange method. It works like a unwrapOrError,
but named error. It does not report an Input name.
I removed it.

Differential revision: https://reviews.llvm.org/D66000
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-readobj/COFFDumper.cppllvm.src/tools/llvm-readobj/COFFDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/WasmDumper.cppllvm.src/tools/llvm-readobj/WasmDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/llvm-readobj.hllvm.src/tools/llvm-readobj/llvm-readobj.h
Revision 368428 by grimar:
[llvm-readobj] - Remove deprecated unwrapOrError(Expected<T> EO).

This patch changes the code to use a modern unwrapOrError(StringRef Input, Expected<T> EO)
version that contains the input source name and removes the deprecated version.

Differential revision: https://reviews.llvm.org/D65946
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Object/invalid.testllvm.src/test/Object/invalid.test
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-packed-relocs-error1.sllvm.src/test/tools/llvm-readobj/elf-packed-relocs-error1.s
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-packed-relocs-error2.sllvm.src/test/tools/llvm-readobj/elf-packed-relocs-error2.s
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-packed-relocs-error3.sllvm.src/test/tools/llvm-readobj/elf-packed-relocs-error3.s
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-packed-relocs-error4.sllvm.src/test/tools/llvm-readobj/elf-packed-relocs-error4.s
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-packed-relocs-error5.sllvm.src/test/tools/llvm-readobj/elf-packed-relocs-error5.s
The file was modified/llvm/trunk/test/tools/yaml2obj/elf-sht-symtab-shndx.yamlllvm.src/test/tools/yaml2obj/elf-sht-symtab-shndx.yaml
The file was modified/llvm/trunk/tools/llvm-readobj/ARMEHABIPrinter.hllvm.src/tools/llvm-readobj/ARMEHABIPrinter.h
The file was modified/llvm/trunk/tools/llvm-readobj/COFFDumper.cppllvm.src/tools/llvm-readobj/COFFDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cppllvm.src/tools/llvm-readobj/ELFDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/MachODumper.cppllvm.src/tools/llvm-readobj/MachODumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/ObjDumper.cppllvm.src/tools/llvm-readobj/ObjDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/llvm-readobj.hllvm.src/tools/llvm-readobj/llvm-readobj.h
Revision 368425 by Raphael Isemann:
[lldb][NFC] Unify InstrList typedef in IRForTarget
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpplldb.src/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Revision 368424 by Raphael Isemann:
[lldb][NFC] Fix warning about missing switch cases

These types were recently added in D62960 but it seems the patch didn't
consider LLDB which causes a bunch of compiler warnings about
missing enum values. It seems this feature isn't fully implemented yet,
so I don't think we can write any test for this. For now lets just add
the missing types to our usual list of unsupported types.
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/source/Symbol/ClangASTContext.cpplldb.src/source/Symbol/ClangASTContext.cpp
Revision 368418 by Tim Northover:
AArch64: support TLS on Darwin platforms in GlobalISel.

All TLS access on Darwin is in the "general dynamic" form where we call
a function to resolve the address, so implementation is pretty simple.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cppllvm.src/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-tls-darwin.llllvm.src/test/CodeGen/AArch64/arm64-tls-darwin.ll
Revision 368417 by Raphael Isemann:
[lldb] Refactor guard variable checks in IRForTarget

Not NFC as this will probably fix a wrong guard variable check
on Windows. Not sure though what Windows test can now be safely
enabled.
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpplldb.src/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Revision 368416 by labath:
Minidump/Windows: Fix module lookup

Summary:
When opening a minidump, we were failing to find an executable because
we were searching for i386-unknown-windows, whereas we recognize the
pe/coff files as i386-pc-windows. This fixes the triple computation code
in the minidump parser to match pe/coff, and adds an appropriate test.

NB: I'm not sure setting the vendor to "pc" is really correct for
arm(64) windows, but right now that seems to match what we do in the
pe/coff case (ArchSpec.cpp:935).

Reviewers: clayborg, amccarth

Subscribers: javed.absar, kristof.beyls, rnk, markmentovai, lldb-commits

Differential Revision: https://reviews.llvm.org/D65955
Change TypePath in RepositoryPath in Workspace
The file was added/lldb/trunk/lit/Minidump/Windows/Inputslldb.src/lit/Minidump/Windows/Inputs
The file was added/lldb/trunk/lit/Minidump/Windows/Inputs/find-module.dmp.yamllldb.src/lit/Minidump/Windows/Inputs/find-module.dmp.yaml
The file was added/lldb/trunk/lit/Minidump/Windows/Inputs/find-module.exe.yamllldb.src/lit/Minidump/Windows/Inputs/find-module.exe.yaml
The file was added/lldb/trunk/lit/Minidump/Windows/find-module.testlldb.src/lit/Minidump/Windows/find-module.test
The file was modified/lldb/trunk/source/Plugins/Process/minidump/MinidumpParser.cpplldb.src/source/Plugins/Process/minidump/MinidumpParser.cpp
Revision 368415 by Raphael Isemann:
[lldb][NFC] Clean up logging in IRForTarget
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpplldb.src/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Revision 368413 by rsandifo:
Add SVE opaque built-in types

This patch adds the SVE built-in types defined by the Procedure Call
Standard for the Arm Architecture:

   https://developer.arm.com/docs/100986/0000

It handles the types in all relevant places that deal with built-in types.
At the moment, some of these places bail out with an error, including:

   (1) trying to generate LLVM IR for the types
   (2) trying to generate debug info for the types
   (3) trying to mangle the types using the Microsoft C++ ABI
   (4) trying to @encode the types in Objective C

(1) and (2) are fixed by follow-on patches but (unlike this patch)
they deal mostly with target-specific LLVM details, so seemed like
a logically separate change.  There is currently no spec for (3) and
(4), so reporting an error seems like the correct behaviour for now.

The intention is that the types will become sizeless types:

   http://lists.llvm.org/pipermail/cfe-dev/2019-June/062523.html

The main purpose of the sizeless type extension is to diagnose
impossible or dangerous uses of the types, such as any that would
require sizeof to have a meaningful defined value.

Until then, the patch sets the alignments of the types to the values
specified in the link above.  It also sets the sizes of the types to
zero, which is chosen to be consistently wrong and shouldn't affect
correctly-written code (i.e. code that would compile even with the
sizeless type extension).

The patch adds the common subset of functionality needed to test the
sizeless type extension on the one hand and to provide SVE intrinsic
functions on the other.  After this patch, the two pieces of work are
essentially independent.

The patch is based on one by Graham Hunter:

   https://reviews.llvm.org/D59245

Differential Revision: https://reviews.llvm.org/D62960
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTContext.hclang.src/include/clang/AST/ASTContext.h
The file was modified/cfe/trunk/include/clang/AST/Type.hclang.src/include/clang/AST/Type.h
The file was added/cfe/trunk/include/clang/Basic/AArch64SVEACLETypes.defclang.src/include/clang/Basic/AArch64SVEACLETypes.def
The file was modified/cfe/trunk/include/clang/Basic/TargetInfo.hclang.src/include/clang/Basic/TargetInfo.h
The file was modified/cfe/trunk/include/clang/Serialization/ASTBitCodes.hclang.src/include/clang/Serialization/ASTBitCodes.h
The file was modified/cfe/trunk/lib/AST/ASTContext.cppclang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/AST/ASTImporter.cppclang.src/lib/AST/ASTImporter.cpp
The file was modified/cfe/trunk/lib/AST/ExprConstant.cppclang.src/lib/AST/ExprConstant.cpp
The file was modified/cfe/trunk/lib/AST/ItaniumMangle.cppclang.src/lib/AST/ItaniumMangle.cpp
The file was modified/cfe/trunk/lib/AST/MicrosoftMangle.cppclang.src/lib/AST/MicrosoftMangle.cpp
The file was modified/cfe/trunk/lib/AST/NSAPI.cppclang.src/lib/AST/NSAPI.cpp
The file was modified/cfe/trunk/lib/AST/PrintfFormatString.cppclang.src/lib/AST/PrintfFormatString.cpp
The file was modified/cfe/trunk/lib/AST/Type.cppclang.src/lib/AST/Type.cpp
The file was modified/cfe/trunk/lib/AST/TypeLoc.cppclang.src/lib/AST/TypeLoc.cpp
The file was modified/cfe/trunk/lib/Basic/TargetInfo.cppclang.src/lib/Basic/TargetInfo.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.cppclang.src/lib/Basic/Targets/AArch64.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGDebugInfo.cppclang.src/lib/CodeGen/CGDebugInfo.cpp
The file was modified/cfe/trunk/lib/CodeGen/CodeGenTypes.cppclang.src/lib/CodeGen/CodeGenTypes.cpp
The file was modified/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cppclang.src/lib/CodeGen/ItaniumCXXABI.cpp
The file was modified/cfe/trunk/lib/Index/USRGeneration.cppclang.src/lib/Index/USRGeneration.cpp
The file was modified/cfe/trunk/lib/Sema/Sema.cppclang.src/lib/Sema/Sema.cpp
The file was modified/cfe/trunk/lib/Sema/SemaExpr.cppclang.src/lib/Sema/SemaExpr.cpp
The file was modified/cfe/trunk/lib/Serialization/ASTCommon.cppclang.src/lib/Serialization/ASTCommon.cpp
The file was modified/cfe/trunk/lib/Serialization/ASTReader.cppclang.src/lib/Serialization/ASTReader.cpp
The file was added/cfe/trunk/test/AST/ast-dump-aarch64-sve-types.cclang.src/test/AST/ast-dump-aarch64-sve-types.c
The file was added/cfe/trunk/test/CodeGen/aarch64-sve.cclang.src/test/CodeGen/aarch64-sve.c
The file was added/cfe/trunk/test/CodeGenCXX/aarch64-mangle-sve-vectors-msvc.cppclang.src/test/CodeGenCXX/aarch64-mangle-sve-vectors-msvc.cpp
The file was added/cfe/trunk/test/CodeGenCXX/aarch64-mangle-sve-vectors.cppclang.src/test/CodeGenCXX/aarch64-mangle-sve-vectors.cpp
The file was added/cfe/trunk/test/CodeGenCXX/aarch64-sve-typeinfo.cppclang.src/test/CodeGenCXX/aarch64-sve-typeinfo.cpp
The file was added/cfe/trunk/test/CodeGenObjC/aarch64-sve-types.mclang.src/test/CodeGenObjC/aarch64-sve-types.m
The file was added/cfe/trunk/test/PCH/aarch64-sve-types.cclang.src/test/PCH/aarch64-sve-types.c
The file was added/cfe/trunk/test/Sema/aarch64-sve-types.cclang.src/test/Sema/aarch64-sve-types.c
The file was added/cfe/trunk/test/SemaObjC/aarch64-sve-types.mclang.src/test/SemaObjC/aarch64-sve-types.m
The file was modified/cfe/trunk/tools/libclang/CIndex.cppclang.src/tools/libclang/CIndex.cpp
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cppclang.src/unittests/AST/ASTImporterTest.cpp
Revision 368410 by grimar:
[llvm-readobj] - Remove unwrapOrError(ErrorOr<T> EO) helper.

It is outdated. Using of Expected<> is preferred, also it does
not provide a way to report a file name.

I updated the code to use the modern version of unwrapOrError instead.

Differential revision: https://reviews.llvm.org/D65951
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-readobj/COFFDumper.cppllvm.src/tools/llvm-readobj/COFFDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/llvm-readobj.hllvm.src/tools/llvm-readobj/llvm-readobj.h
Revision 368408 by Tim Northover:
GlobalISel: pack various parameters for lowerCall into a struct.

I've now needed to add an extra parameter to this call twice recently. Not only
is the signature getting extremely unwieldy, but just updating all of the
callsites and implementations is a pain. Putting the parameters in a struct
sidesteps both issues.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/CallLowering.hllvm.src/include/llvm/CodeGen/GlobalISel/CallLowering.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CallLowering.cppllvm.src/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cppllvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64CallLowering.cppllvm.src/lib/Target/AArch64/AArch64CallLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64CallLowering.hllvm.src/lib/Target/AArch64/AArch64CallLowering.h
The file was modified/llvm/trunk/lib/Target/ARM/ARMCallLowering.cppllvm.src/lib/Target/ARM/ARMCallLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMCallLowering.hllvm.src/lib/Target/ARM/ARMCallLowering.h
The file was modified/llvm/trunk/lib/Target/Mips/MipsCallLowering.cppllvm.src/lib/Target/Mips/MipsCallLowering.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsCallLowering.hllvm.src/lib/Target/Mips/MipsCallLowering.h
The file was modified/llvm/trunk/lib/Target/X86/X86CallLowering.cppllvm.src/lib/Target/X86/X86CallLowering.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86CallLowering.hllvm.src/lib/Target/X86/X86CallLowering.h
Revision 368406 by Raphael Isemann:
[lldb][NFC] Remove last C string uses from IRForTarget
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpplldb.src/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Revision 368405 by Raphael Isemann:
[lldb][NFC] Use range-based for-loops in IRForTarget
Change TypePath in RepositoryPath in Workspace
The file was modified/lldb/trunk/source/Plugins/ExpressionParser/Clang/IRForTarget.cpplldb.src/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
Revision 368404 by sam_parker:
[ARM][ParallelDSP] Replace SExt uses

As loads are combined and widened, we replaced their sext users
operands whereas we should have been replacing the uses of the sext.
I've added a load of tests, with only a few of them originally
causing assertion failures, the rest improve pattern coverage.

Differential Revision: https://reviews.llvm.org/D65740
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMParallelDSP.cppllvm.src/lib/Target/ARM/ARMParallelDSP.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/ParallelDSP/blocks.llllvm.src/test/CodeGen/ARM/ParallelDSP/blocks.ll
The file was added/llvm/trunk/test/CodeGen/ARM/ParallelDSP/exchange.llllvm.src/test/CodeGen/ARM/ParallelDSP/exchange.ll
The file was added/llvm/trunk/test/CodeGen/ARM/ParallelDSP/overlapping.llllvm.src/test/CodeGen/ARM/ParallelDSP/overlapping.ll
Revision 368402 by jvikstrom:
[AST] No longer visiting CXXMethodDecl bodies created by compiler when method was default created.

Summary:
Clang generates function bodies and puts them in the AST for default methods if it is defaulted outside the class definition.

`
struct A {
   A &operator=(A &&O);
};

A &A::operator=(A &&O) = default;
`

This will generate a function body for the `A &A::operator=(A &&O)` and put it in the AST. This body should not be visited if implicit code is not visited as it is implicit.

This was causing SemanticHighlighting in clangd to generate duplicate tokens and putting them in weird places.

Reviewers: hokein, ilya-biryukov, gribozavr

Subscribers: mgorny, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65938
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/RecursiveASTVisitor.hclang.src/include/clang/AST/RecursiveASTVisitor.h
The file was modified/cfe/trunk/unittests/Tooling/CMakeLists.txtclang.src/unittests/Tooling/CMakeLists.txt
The file was added/cfe/trunk/unittests/Tooling/RecursiveASTVisitorTests/CXXMethodDecl.cppclang.src/unittests/Tooling/RecursiveASTVisitorTests/CXXMethodDecl.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/SemanticHighlightingTests.cppN/A
Revision 368401 by bjope:
[InstSimplify] Report "Changed" also when only deleting dead instructions

Summary:
Make sure that we report that changes has been made
by InstSimplify also in situations when only trivially
dead instructions has been removed. If for example a call
is removed the call graph must be updated.

Bug seem to have been introduced by llvm-svn r367173
(commit 02b9e45a7e4b81), since the code in question
was rewritten in that commit.

Reviewers: spatel, chandlerc, foad

Reviewed By: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65973
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/InstSimplifyPass.cppllvm.src/lib/Transforms/Scalar/InstSimplifyPass.cpp
The file was added/llvm/trunk/test/Transforms/InstSimplify/remove-dead-call.llllvm.src/test/Transforms/InstSimplify/remove-dead-call.ll
Revision 368400 by ctopper:
[X86] Remove code that expands truncating stores from combineStore.

We shouldn't form trunc stores that need to be expanded now that
we are using widening legalization.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 368399 by gribozavr:
Use ASSERT_THAT_ERROR instead of logAllUnhandledErrors/exit

Summary: ASSERT_THAT_ERROR looks like the intended helper for use in tests.

Reviewers: plotfi, jkorous, compnerd

Subscribers: mgorny, dexonsmith, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65853
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/unittests/DirectoryWatcher/CMakeLists.txtclang.src/unittests/DirectoryWatcher/CMakeLists.txt
The file was modified/cfe/trunk/unittests/DirectoryWatcher/DirectoryWatcherTest.cppclang.src/unittests/DirectoryWatcher/DirectoryWatcherTest.cpp
Revision 368398 by hhb:
Fix rpath for MacOS/iOS

Summary: libs can be installed to ../lib64.

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D65972
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/AddLLVM.cmakellvm.src/cmake/modules/AddLLVM.cmake
Revision 368397 by ctopper:
[X86] Remove stale FIXME from combineMaskedStore. NFC

I believe PR34584 was tracking that FIXME, but its since been
closed and a test case was added.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 368396 by ctopper:
[X86] Remove DAG combine expansion of extending masked load and truncating masked store.

The only way to generate these was through promoting legalization
of narrow vectors, but we widen those types now. So we shouldn't
produce these nodes.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cppllvm.src/lib/Target/X86/X86ISelLowering.cpp