Changes

Summary

  1. lldb-sanitized: Move MAX_PARALLEL_TESTS initialization to a place where (details)
Commit 0c746ef9b47dd5f8bd88fcef3d769b4a8ee0bc09 by Adrian Prantl
lldb-sanitized: Move MAX_PARALLEL_TESTS initialization to a place where
it can actually affect the cmake invocation.
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake-sanitized (diff)

Summary

  1. [DWARF] Emit DW_AT_call_return_pc as an address (details)
  2. DebugInfo: Factor out logic to update locations in MD_loop metadata, NFC (details)
  3. Work around PR43337: don't try to use the vec_sel overloads for vector (details)
  4. PR17164: Change clang's default behavior from (details)
  5. [NFC][IndVarSimplify] remove duplicate code in (details)
  6. [mlir] Add shaped container component type interface (details)
  7. [NFC] Refactor InlineResult for readability (details)
  8. [MachineScheduler][NFC] Don't swap when we can't cluster (details)
  9. lldb: Run TestCrossDSOTailCalls.py and TestCrossObjectTailCalls.py on (details)
  10. [libc++] Make SFINAE'd member functions in string mutually exclusive. (details)
  11. [libc++] Explicitly mark basic_string<...>::npos with default (details)
  12. [libc++] Explicitly enumerate std::string external instantiations - (details)
  13. [BasicBlock] add helper getPostdominatingDeoptimizeCall (details)
  14. DWARF: Simplify the way the return PC is attached to call site tags, NFC (details)
  15. [test] Move call-site-entry-linking.test into test/tools/dsymutil/X86 (details)
  16. [libc++] Optimize basic_string::operator=(const basic_string&) for SSO (details)
  17. [libc++] Fix parsing <string> in C++03. (details)
  18. Revert "[OPENMP]Do not use RTTI by default for NVPTX devices." (details)
  19. [lldb/Debugger] Rename IO handler methods to be more meaningful (NFC) (details)
Commit f0120556c7e2ef14ff3da5bd7d5717cedf94b767 by Vedant Kumar
[DWARF] Emit DW_AT_call_return_pc as an address
This reverts D53469, which changed llvm's DWARF emission to emit
DW_AT_call_return_pc as a function-local offset. Such an encoding is not
compatible with post-link block re-ordering tools and isn't standards-
compliant.
In addition to reverting back to the original DW_AT_call_return_pc
encoding, teach lldb how to fix up DW_AT_call_return_pc when the address
comes from an object file pointed-to by a debug map. While doing this I
noticed that lldb's support for tail calls that cross a DSO/object file
boundary wasn't covered, so I added tests for that. This latter case
exercises the newly added return PC fixup.
The dsymutil changes in this patch were originally included in D49887:
the associated test should be sufficient to test DW_AT_call_return_pc
encoding purely on the llvm side.
Differential Revision: https://reviews.llvm.org/D72489
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/main.c
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/Makefile
The file was modifiedlldb/source/Symbol/Function.cpp
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/One/One.c
The file was modifiedllvm/test/DebugInfo/X86/debug_addr.ll
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Makefile
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/TestCrossDSOTailCalls.py
The file was modifiedllvm/include/llvm/CodeGen/DebugHandlerBase.h
The file was modifiedllvm/tools/dsymutil/DwarfLinkerForBinary.cpp
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/One.mk
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/shared.h
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py
The file was modifiedlldb/include/lldb/Symbol/Function.h
The file was addedllvm/test/tools/dsymutil/Inputs/call-site-entry.c
The file was addedllvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/Two.c
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/main.c
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/shared.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Two.mk
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Two/Two.c
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was addedllvm/test/tools/dsymutil/call-site-entry-linking.test
The file was addedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/One.c
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was addedllvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64.o
Commit a2cc80bc95703b99afefddb1d9d545c639ac4ff5 by Vedant Kumar
DebugInfo: Factor out logic to update locations in MD_loop metadata, NFC
Factor out the logic needed to update debug locations contained within
MD_loop metadata.
This refactor is preparation for a future change that also needs to
rewrite MD_loop metadata.
rdar://45507940
The file was modifiedllvm/include/llvm/IR/DebugInfo.h
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was modifiedllvm/lib/IR/DebugInfo.cpp
Commit 388eaa1270c2762d61b756759b6db8cf15bd3a83 by richard
Work around PR43337: don't try to use the vec_sel overloads for vector
long long, since clang's <altivec.h> doesn't provide it yet!
The file was modifiedclang/lib/Headers/ppc_wrappers/emmintrin.h
Commit b72a8c65e4e34779b6bc9e466203f553f5294486 by richard
PR17164: Change clang's default behavior from
-flax-vector-conversions=all to -flax-vector-conversions=integer.
Summary: See proposal on cfe-dev:
http://lists.llvm.org/pipermail/cfe-dev/2019-April/062030.html
Reviewers: SjoerdMeijer, eli.friedman
Subscribers: kristof.beyls, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D67678
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/test/Sema/vector-assign.c
The file was modifiedclang/test/Headers/arm-neon-header.c
The file was modifiedclang/test/Headers/x86intrin.c
The file was modifiedclang/test/Headers/x86intrin-2.c
The file was modifiedclang/test/Headers/x86-intrinsics-headers.c
The file was modifiedclang/test/Headers/altivec-header.c
The file was modifiedclang/test/Sema/vector-ops.c
The file was modifiedclang/docs/CommandGuide/clang.rst
The file was modifiedclang/test/Sema/vector-cast.c
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 34ba96a3d49e14abb2a36114a4ed6f97e1b9a9ee by danilo.carvalho.grael
[NFC][IndVarSimplify] remove duplicate code in
widenWithVariantLoadUseCodegen.
Summary: Duplicate code in widenWithVariantLoadUseCodegen is removed and
also use assert to check unknown extension type as it should be filtered
out by the pre condition check before calling this function.
Reviewers: az, sanjoy, sebpop, efriedma, javed.absar, sanjoy.google
Reviewed By: efriedma
Subscribers: hiraditya, llvm-commits, amehsan
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72652
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit fa26a37d36991dd19276c2112ae03e962debe0e4 by jpienaar
[mlir] Add shaped container component type interface
Summary:
* Add shaped container type interface which allows infering the shape,
element
type and attribute of shaped container type separately. Show usage by
way of
tensor type inference trait which combines the shape & element type in
infering a tensor type;
- All components need not be specified;
- Attribute is added to allow for layout attribute that was previously
   discussed;
* Expand the test driver to make it easier to test new creation
instances
(adding new operands or ops with attributes or regions would trigger
build
functions/type inference methods);
- The verification part will be moved out of the test and to verify
method
   instead of ops implementing the type inference interface in a follow
up;
* Add MLIRContext as arg to possible to create type for ops without
arguments,
region or location;
* Also move out the section in OpDefinitions doc to separate
ShapeInference doc
where the shape function requirements can be captured;
- Part of this would move to the shape dialect and/or shape dialect ops
be
   included as subsection of this doc;
* Update ODS's variable usage to match camelBack format for builder,
state and arg variables;
- I could have split this out, but I had to make some changes around
   these and the inconsistency bugged me :)
Differential Revision: https://reviews.llvm.org/D72432
The file was modifiedmlir/test/mlir-tblgen/op-operand.td
The file was modifiedmlir/test/mlir-tblgen/op-decl.td
The file was modifiedmlir/test/lib/TestDialect/TestPatterns.cpp
The file was modifiedmlir/docs/OpDefinitions.md
The file was modifiedmlir/include/mlir/Analysis/InferTypeOpInterface.td
The file was modifiedmlir/include/mlir/Analysis/InferTypeOpInterface.h
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/test/lib/TestDialect/TestDialect.cpp
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/lib/Analysis/InferTypeOpInterface.cpp
The file was modifiedmlir/test/lib/TestDialect/TestOps.td
The file was modifiedmlir/test/mlir-tblgen/op-attribute.td
The file was addedmlir/docs/ShapeInference.md
The file was modifiedmlir/test/mlir-tblgen/op-result.td
The file was modifiedmlir/test/mlir-tblgen/return-types.mlir
Commit 5466597fee379b44f643cee0e0632fdef8fb6b21 by mtrofin
[NFC] Refactor InlineResult for readability
Summary: InlineResult is used both in APIs assessing whether a call site
is inlinable (e.g. llvm::isInlineViable) as well as in the function
inlining utility (llvm::InlineFunction). It means slightly different
things (can/should inlining happen, vs did it happen), and the implicit
casting may introduce ambiguity (casting from 'false' in InlineFunction
will default a message about hight costs, which is incorrect here).
The change renames the type to a more generic name, and disables
implicit constructors.
Reviewers: eraman, davidxl
Reviewed By: davidxl
Subscribers: kerbowa, arsenm, jvesely, nhaehnle, eraman, hiraditya,
haicheng, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72744
The file was modifiedllvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInline.cpp
The file was modifiedllvm/lib/Transforms/IPO/AlwaysInliner.cpp
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was modifiedllvm/lib/CodeGen/SafeStack.cpp
The file was modifiedllvm/lib/Transforms/IPO/PartialInlining.cpp
The file was modifiedllvm/lib/Analysis/InlineCost.cpp
The file was modifiedllvm/include/llvm/Analysis/InlineCost.h
The file was modifiedllvm/lib/Transforms/IPO/SampleProfile.cpp
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
Commit c65ac2ba784dd1bb7778294bd04c143c0181542a by Jinsong Ji
[MachineScheduler][NFC] Don't swap when we can't cluster
https://reviews.llvm.org/D72706 tried to reduce reordering due to mem op
clustering. This patch avoid doing the swap when we can't cluster.
Reviewed By: rampitec
Differential Revision: https://reviews.llvm.org/D72800
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp
Commit 8d2f252bb8e4d199be8498c4ee2245117ef08fd2 by Vedant Kumar
lldb: Run TestCrossDSOTailCalls.py and TestCrossObjectTailCalls.py on
Darwin only
See https://bugs.llvm.org/show_bug.cgi?id=44561, these tests are failing
on an aarch64/Linux bot:
http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu/builds/655
For some reason the backtrace the tests are expecting to find is
incomplete.
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py
The file was modifiedlldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/TestCrossDSOTailCalls.py
Commit 24d2a015eade6e71e7c684c69510f067bdd55892 by eric
[libc++] Make SFINAE'd member functions in string mutually exclusive.
This patch is needed in order to work around a GCC bug that fails to
explicitly instantiate a non-template function of a class template when
there is another overload that's a function template.
(See https://godbolt.org/z/4bUQ_b)
This patch SFINAE's away the function templates when the argument is a
basic_string.
The file was modifiedlibcxx/include/string
Commit 2d8f23f571635c1fb983b40c4c2548716a5b65b6 by eric
[libc++] Explicitly mark basic_string<...>::npos with default
visibility.
This ensures that the version compiled into the library isn't
accidentally hidden.
The file was modifiedlibcxx/include/string
Commit 288a1436392f1fbee2e647cb057086fe700f9c7e by eric
[libc++] Explicitly enumerate std::string external instantiations -
Attempt 2
  The GCC build failures have been addressed, and the LLDB failures were
fixed by LLDB.
   I have also verified that the apple-clang 9.0 segfault no longer
  occurs.
Original Message:
The external instantiation of std::string is a problem for libc++.
   Additions and removals of inline functions in string can cause ABI
   breakages, including introducing new symbols.
    This patch aims to:
     (1) Make clear which functions are explicitly instatiated.
     (2) Prevent new functions from being accidentally instantiated.
     (3) Allow a migration path for adding or removing functions from
the
     explicit instantiation over time.
    Although this new formulation is uglier, it is preferable from a
   maintainability and readability standpoint because it explicitly
   enumerates the functions we've chosen to expose in our ABI. Changing
   this list is non-trivial and requires thought and planning.
    (3) is achieved by making it possible to control the extern template
declaration
   separately from it's definition. Meaning we could add a new
definition to
   the dylib, wait for it to roll out, then add the extern template
   declaration to the header. Similarly, we could remove existing extern
   template declarations while still keeping the definition to prevent
ABI
   breakages.
The file was modifiedlibcxx/include/__string
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/include/string
The file was modifiedlibcxx/src/string.cpp
Commit 8a4d12ae5b3e6b2ef7c851c6865c04d5a84e05f1 by fedor.sergeev
[BasicBlock] add helper getPostdominatingDeoptimizeCall
It appears to be rather useful when analyzing Loops with multiple
deoptimizing exits, perhaps merged ones. For now it is used in
LoopPredication, will be adding more uses in other loop passes.
Reviewers: asbirlea, fhahn, skatkov, spatel, reames Reviewed By: reames
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72754
The file was modifiedllvm/lib/IR/BasicBlock.cpp
The file was modifiedllvm/include/llvm/IR/BasicBlock.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopPredication.cpp
Commit 43464509fcedef667aee17b74c19cc08b65aa0ae by Vedant Kumar
DWARF: Simplify the way the return PC is attached to call site tags, NFC
This cleanup was suggested by Djordje in D72489.
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
Commit 5aeb6798f268f74dc8b0bf5bb75b9c57ec938548 by Vedant Kumar
[test] Move call-site-entry-linking.test into test/tools/dsymutil/X86
This should fix a failure on the clang-cmake-armv7-quick bot.
The file was removedllvm/test/tools/dsymutil/Inputs/call-site-entry.c
The file was addedllvm/test/tools/dsymutil/X86/Inputs/call-site-entry.macho.x86_64
The file was removedllvm/test/tools/dsymutil/call-site-entry-linking.test
The file was addedllvm/test/tools/dsymutil/X86/Inputs/call-site-entry.macho.x86_64.o
The file was addedllvm/test/tools/dsymutil/X86/call-site-entry-linking.test
The file was addedllvm/test/tools/dsymutil/X86/Inputs/call-site-entry.c
The file was removedllvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64
The file was removedllvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64.o
Commit 58c7fa5adeb218737f10ffeaeed0d9eb21f4a2f0 by eric
[libc++] Optimize basic_string::operator=(const basic_string&) for SSO
assignments
This change optimizes the operator=() assignment for short strings by
direcly copying the raw data from the source into the current instance.
This creates an optimized / inlined mempcy up to over 2X faster for
short string assignments. With inlining enabled for operator=,
performance is up to 6X faster.
Benchmarks 'as is': name                                    old time/op
new time/op    delta BM_StringAssignStr_Empty_Opaque         6.05ns ±
2%   3.59ns ± 0%  -40.67% BM_StringAssignStr_Empty_Transparent    5.15ns
± 0%   3.08ns ± 0%  -40.12% BM_StringAssignStr_Small_Opaque       
7.71ns ± 0%   3.59ns ± 0%  -53.45% BM_StringAssignStr_Small_Transparent
  7.66ns ± 0%   3.09ns ± 0%  -59.66% BM_StringAssignStr_Large_Opaque   
    24.1ns ± 0%   24.9ns ± 0%   +3.22%
BM_StringAssignStr_Large_Transparent    22.2ns ± 0%   22.8ns ± 0% 
+2.77% BM_StringAssignStr_Huge_Opaque           315ns ± 6%    320ns ± 5%
    ~ BM_StringAssignStr_Huge_Transparent      318ns ± 5%    321ns ± 4%
   ~
Benchmarks with partial inlining operator=(): name                     
             old time/op   new time/op    delta
BM_StringAssignStr_Empty_Opaque         5.94ns ± 2%   1.95ns ± 0%
-67.21% BM_StringAssignStr_Empty_Transparent    5.14ns ± 0%   1.04ns ±
1%  -79.73% BM_StringAssignStr_Small_Opaque         7.69ns ± 0%   1.96ns
± 0%  -74.48% BM_StringAssignStr_Small_Transparent    7.65ns ± 0% 
1.04ns ± 0%  -86.40% BM_StringAssignStr_Large_Opaque         24.1ns ± 0%
  24.5ns ± 0%   +1.61% BM_StringAssignStr_Large_Transparent    22.2ns ±
0%   21.1ns ± 0%   -4.70% BM_StringAssignStr_Huge_Opaque           317ns
± 5%    323ns ± 4%     ~ BM_StringAssignStr_Huge_Transparent      318ns
± 5%    320ns ± 5%     ~
Patch by Martijn Vels (mvels@google.com) Reviewed as
https://reviews.llvm.org/D72704
The file was modifiedlibcxx/include/string
Commit 313d89724ce3ccf66c1c51849903e1e6d184dd85 by eric
[libc++] Fix parsing <string> in C++03.
Specifically, add a space between >> when closing templates.
The file was modifiedlibcxx/include/string
Commit 6b29aa21180cf14bfb619d38fc4826913cabfb66 by a.bataev
Revert "[OPENMP]Do not use RTTI by default for NVPTX devices."
This reverts commit 23058f9dd4d7e18239fd63b6da52549514b45fda. It breaks
builds of cuda code somehow in some cases.
The file was modifiedclang/lib/Driver/ToolChain.cpp
The file was removedclang/test/Driver/openmp-offload-gpu.cpp
Commit 7ce2de2ce4e7d4dd8e1e5a7a5b35c0f98e46681d by Jonas Devlieghere
[lldb/Debugger] Rename IO handler methods to be more meaningful (NFC)
Make it clear form the method names whether they are synchronous or
asynchronous.
The file was modifiedlldb/source/Expression/REPL.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp
The file was modifiedlldb/source/Interpreter/CommandInterpreter.cpp
The file was modifiedlldb/include/lldb/Core/Debugger.h
The file was modifiedlldb/source/Commands/CommandObjectExpression.cpp
The file was modifiedlldb/source/Commands/CommandObjectGUI.cpp
The file was modifiedlldb/source/Target/Process.cpp
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
The file was modifiedlldb/source/Core/Debugger.cpp
The file was modifiedlldb/source/Commands/CommandObjectCommands.cpp

Summary

  1. lldb-sanitized: Move MAX_PARALLEL_TESTS initialization to a place where (details)
Commit 0c746ef9b47dd5f8bd88fcef3d769b4a8ee0bc09 by Adrian Prantl
lldb-sanitized: Move MAX_PARALLEL_TESTS initialization to a place where
it can actually affect the cmake invocation.
The file was modifiedzorg/jenkins/jobs/jobs/lldb-cmake-sanitized