SuccessChanges

Summary

  1. [WebAssembly] Add multivalue and tail-call target features Summary: These features will both be implemented soon, so I thought I would save time by adding the boilerplate for both of them at the same time. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D62047
  2. [FileCheck] Remove llvm:: prefix Summary: Remove all llvm:: prefixes in FileCheck library header and implementation except for calls to make_unique and make_shared since both files already use the llvm namespace. Reviewers: jhenderson, jdenny, probinson, arichardson Subscribers: hiraditya, arichardson, probinson, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62323
  3. [CMake] Copy C++ headers before configuring runtimes build Summary: On some platforms C++ headers are packaged with the compiler not the sysroot. If you don't copy C++ headers into the build include directory during configuraiton of the outer build the C++ check during the runtime configuration may get inaccurate results. Reviewers: phosek, compnerd, smeenai, EricWF Reviewed By: compnerd Subscribers: EricWF, christof, libcxx-commits, mgorny, llvm-commits Tags: #llvm, #libc Differential Revision: https://reviews.llvm.org/D62155
  4. Transforms: lower fadd and fsub atomicrmw instructions `fadd` and `fsub` have recently (r351850) been added as `atomicrmw` operations. This diff adds lowering cases for them to the LowerAtomic transform. Patch by Josh Berdine!
  5. [MCA] Add the ability to compute critical register dependency of an instruction. This patch adds the methods `getCriticalRegDep()` and `computeCriticalRegDep()` to class InstructionBase. The goal is to allow users to obtain information about the critical register dependency that most affects the latency of an instruction. These methods are currently unused. However, the long term plan is to use them in order to allow the computation of a critical-path as part of the bottleneck analysis. So, this is yet another step towards fixing PR37494.
  6. [AsmPrinter] Treat a narrowing PtrToInt like Trunc When printing assembly for PtrToInt, AsmPrinter::lowerConstant incorrectly assumed that if PtrToInt was not converting to an int with exactly the same number of bits, it must be widening to a larger int. But this isn't necessarily true; PtrToInt can also shrink the size, which is useful when you want to produce a known 32-bit pointer on a 64-bit platform (on x86_64 ELF this yields a R_X86_64_32 relocation). The old behavior of falling through to the widening case for a narrowing PtrToInt yields bogus assembly code like this, which fails to assemble because the no-op bit and it accidentally creates is not a valid relocation: ``` .long a&-1 ``` The fix is to treat a narrowing PtrToInt exactly the same as it already treats Trunc: just emit the expression and let the assembler deal with truncating it in the appropriate way. Patch by Mat Hostetter <mjh@fb.com>. Differential Revision: https://reviews.llvm.org/D61325
Revision 361516 by tlively:
[WebAssembly] Add multivalue and tail-call target features

Summary:
These features will both be implemented soon, so I thought I would
save time by adding the boilerplate for both of them at the same time.

Reviewers: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D62047
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Options.tdN/A
The file was modified/cfe/trunk/lib/Basic/Targets/WebAssembly.cppN/A
The file was modified/cfe/trunk/lib/Basic/Targets/WebAssembly.hN/A
The file was modified/cfe/trunk/test/Preprocessor/wasm-target-features.cN/A
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssembly.tdtrunk/lib/Target/WebAssembly/WebAssembly.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrInfo.tdtrunk/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblySubtarget.htrunk/lib/Target/WebAssembly/WebAssemblySubtarget.h
The file was added/llvm/trunk/test/CodeGen/WebAssembly/multivalue.lltrunk/test/CodeGen/WebAssembly/multivalue.ll
The file was added/llvm/trunk/test/CodeGen/WebAssembly/tailcall.lltrunk/test/CodeGen/WebAssembly/tailcall.ll
Revision 361515 by thopre:
[FileCheck] Remove llvm:: prefix

Summary:
Remove all llvm:: prefixes in FileCheck library header and
implementation except for calls to make_unique and make_shared since
both files already use the llvm namespace.

Reviewers: jhenderson, jdenny, probinson, arichardson

Subscribers: hiraditya, arichardson, probinson, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62323
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/FileCheck.htrunk/include/llvm/Support/FileCheck.h
The file was modified/llvm/trunk/lib/Support/FileCheck.cpptrunk/lib/Support/FileCheck.cpp
Revision 361513 by cbieneman:
[CMake] Copy C++ headers before configuring runtimes build

Summary: On some platforms C++ headers are packaged with the compiler not the sysroot. If you don't copy C++ headers into the build include directory during configuraiton of the outer build the C++ check during the runtime configuration may get inaccurate results.

Reviewers: phosek, compnerd, smeenai, EricWF

Reviewed By: compnerd

Subscribers: EricWF, christof, libcxx-commits, mgorny, llvm-commits

Tags: #llvm, #libc

Differential Revision: https://reviews.llvm.org/D62155
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/CMakeLists.txtN/A
The file was modified/llvm/trunk/runtimes/CMakeLists.txttrunk/runtimes/CMakeLists.txt
Revision 361512 by Saleem Abdulrasool:
Transforms: lower fadd and fsub atomicrmw instructions

`fadd` and `fsub` have recently (r351850) been added as `atomicrmw`
operations. This diff adds lowering cases for them to the LowerAtomic
transform.

Patch by Josh Berdine!
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LowerAtomic.cpptrunk/lib/Transforms/Scalar/LowerAtomic.cpp
The file was modified/llvm/trunk/test/Transforms/LowerAtomic/atomic-load.lltrunk/test/Transforms/LowerAtomic/atomic-load.ll
Revision 361509 by adibiagio:
[MCA] Add the ability to compute critical register dependency of an instruction.

This patch adds the methods `getCriticalRegDep()` and `computeCriticalRegDep()` to
class InstructionBase.
The goal is to allow users to obtain information about the critical register
dependency that most affects the latency of an instruction.

These methods are currently unused. However, the long term plan is to use them
in order to allow the computation of a critical-path as part of the bottleneck
analysis. So, this is yet another step towards fixing PR37494.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MCA/Instruction.htrunk/include/llvm/MCA/Instruction.h
The file was modified/llvm/trunk/lib/MCA/Instruction.cpptrunk/lib/MCA/Instruction.cpp
Revision 361508 by smeenai:
[AsmPrinter] Treat a narrowing PtrToInt like Trunc

When printing assembly for PtrToInt, AsmPrinter::lowerConstant
incorrectly assumed that if PtrToInt was not converting to an
int with exactly the same number of bits, it must be widening
to a larger int. But this isn't necessarily true; PtrToInt can
also shrink the size, which is useful when you want to produce
a known 32-bit pointer on a 64-bit platform (on x86_64 ELF
this yields a R_X86_64_32 relocation).

The old behavior of falling through to the widening case for a
narrowing PtrToInt yields bogus assembly code like this, which
fails to assemble because the no-op bit and it accidentally
creates is not a valid relocation:

```
        .long   a&-1
```

The fix is to treat a narrowing PtrToInt exactly the same as
it already treats Trunc: just emit the expression and let
the assembler deal with truncating it in the appropriate way.

Patch by Mat Hostetter <mjh@fb.com>.

Differential Revision: https://reviews.llvm.org/D61325
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpptrunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was added/llvm/trunk/test/CodeGen/X86/ptrtoint-narrow.lltrunk/test/CodeGen/X86/ptrtoint-narrow.ll

Summary

  1. [WebAssembly] Add multivalue and tail-call target features Summary: These features will both be implemented soon, so I thought I would save time by adding the boilerplate for both of them at the same time. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D62047
  2. [LibTooling] Fix dangling references in RangeSelector. Summary: RangeSelector had a number of cases of capturing a StringRef in a lambda, which lead to dangling references. This change converts all uses in the API of `StringRef` to `std::string` to avoid this problem. `std::string` in the API is a reasonable choice, because the combinators are always storing the string beyond the life of the combinator construction. Reviewers: ilya-biryukov, gribozavr Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62328
  3. [Index] Fix reported references in presence of template type aliases Summary: See the added test for an example. Reviewers: kadircet Reviewed By: kadircet Subscribers: jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62303
  4. [CodeComplete] Only show lambda completions if patterns are requested This is a trivial follow-up to r361461, so sending without review.
  5. Ensure builtins use the target default Calling Convention r355317 changed builtins/allocation functions to use the default calling convention in order to support platforms that use non-cdecl calling conventions by default. However the default calling convention is overridable on Windows 32 bit implementations with some of the /G options. The intent is to permit the user to set the calling convention of normal functions, however it should NOT apply to builtins and C++ allocation functions. This patch ensures that the builtin/allocation functions always use the Target specific Calling Convention, ignoring the user overridden version of said default.
Revision 361516 by tlively:
[WebAssembly] Add multivalue and tail-call target features

Summary:
These features will both be implemented soon, so I thought I would
save time by adding the boilerplate for both of them at the same time.

Reviewers: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D62047
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Options.tdtrunk/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/Basic/Targets/WebAssembly.cpptrunk/lib/Basic/Targets/WebAssembly.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/WebAssembly.htrunk/lib/Basic/Targets/WebAssembly.h
The file was modified/cfe/trunk/test/Preprocessor/wasm-target-features.ctrunk/test/Preprocessor/wasm-target-features.c
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssembly.tdN/A
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrInfo.tdN/A
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblySubtarget.hN/A
The file was added/llvm/trunk/test/CodeGen/WebAssembly/multivalue.llN/A
The file was added/llvm/trunk/test/CodeGen/WebAssembly/tailcall.llN/A
Revision 361514 by ymandel:
[LibTooling] Fix dangling references in RangeSelector.

Summary:
RangeSelector had a number of cases of capturing a StringRef in a lambda, which
lead to dangling references. This change converts all uses in the API of
`StringRef` to `std::string` to avoid this problem. `std::string` in the API is
a reasonable choice, because the combinators are always storing the string
beyond the life of the combinator construction.

Reviewers: ilya-biryukov, gribozavr

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D62328
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Tooling/Refactoring/RangeSelector.htrunk/include/clang/Tooling/Refactoring/RangeSelector.h
The file was modified/cfe/trunk/lib/Tooling/Refactoring/RangeSelector.cpptrunk/lib/Tooling/Refactoring/RangeSelector.cpp
Revision 361511 by ibiryukov:
[Index] Fix reported references in presence of template type aliases

Summary: See the added test for an example.

Reviewers: kadircet

Reviewed By: kadircet

Subscribers: jkorous, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D62303
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Index/IndexTypeSourceInfo.cpptrunk/lib/Index/IndexTypeSourceInfo.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/XRefsTests.cppN/A
Revision 361510 by ibiryukov:
[CodeComplete] Only show lambda completions if patterns are requested

This is a trivial follow-up to r361461, so sending without review.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaCodeComplete.cpptrunk/lib/Sema/SemaCodeComplete.cpp
The file was modified/cfe/trunk/test/CodeCompletion/lambdas.cpptrunk/test/CodeCompletion/lambdas.cpp
Revision 361507 by erichkeane:
Ensure builtins use the target default Calling Convention

r355317 changed builtins/allocation functions to use the default calling
convention in order to support platforms that use non-cdecl calling
conventions by default.

However the default calling convention is overridable on Windows 32 bit
implementations with some of the /G options. The intent is to permit the
user to set the calling convention of normal functions, however it
should NOT apply to builtins and C++ allocation functions.

This patch ensures that the builtin/allocation functions always use the
Target specific Calling Convention, ignoring the user overridden version
of said default.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTContext.htrunk/include/clang/AST/ASTContext.h
The file was modified/cfe/trunk/lib/AST/ASTContext.cpptrunk/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/Sema/SemaExprCXX.cpptrunk/lib/Sema/SemaExprCXX.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/builtin-calling-conv.cpptrunk/test/CodeGenCXX/builtin-calling-conv.cpp

Summary

  1. [Index] Fix reported references in presence of template type aliases Summary: See the added test for an example. Reviewers: kadircet Reviewed By: kadircet Subscribers: jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62303
Revision 361511 by ibiryukov:
[Index] Fix reported references in presence of template type aliases

Summary: See the added test for an example.

Reviewers: kadircet

Reviewed By: kadircet

Subscribers: jkorous, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D62303
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Index/IndexTypeSourceInfo.cppN/A
The file was modified/clang-tools-extra/trunk/clangd/unittests/XRefsTests.cpptrunk/clangd/unittests/XRefsTests.cpp

Summary

  1. [CMake] Copy C++ headers before configuring runtimes build Summary: On some platforms C++ headers are packaged with the compiler not the sysroot. If you don't copy C++ headers into the build include directory during configuraiton of the outer build the C++ check during the runtime configuration may get inaccurate results. Reviewers: phosek, compnerd, smeenai, EricWF Reviewed By: compnerd Subscribers: EricWF, christof, libcxx-commits, mgorny, llvm-commits Tags: #llvm, #libc Differential Revision: https://reviews.llvm.org/D62155
Revision 361513 by cbieneman:
[CMake] Copy C++ headers before configuring runtimes build

Summary: On some platforms C++ headers are packaged with the compiler not the sysroot. If you don't copy C++ headers into the build include directory during configuraiton of the outer build the C++ check during the runtime configuration may get inaccurate results.

Reviewers: phosek, compnerd, smeenai, EricWF

Reviewed By: compnerd

Subscribers: EricWF, christof, libcxx-commits, mgorny, llvm-commits

Tags: #llvm, #libc

Differential Revision: https://reviews.llvm.org/D62155
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/CMakeLists.txttrunk/include/CMakeLists.txt
The file was modified/llvm/trunk/runtimes/CMakeLists.txtN/A