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
|
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/main.c |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/Makefile |
 | lldb/source/Symbol/Function.cpp |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/One/One.c |
 | llvm/test/DebugInfo/X86/debug_addr.ll |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Makefile |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/TestCrossDSOTailCalls.py |
 | llvm/include/llvm/CodeGen/DebugHandlerBase.h |
 | llvm/tools/dsymutil/DwarfLinkerForBinary.cpp |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/One.mk |
 | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/shared.h |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py |
 | lldb/include/lldb/Symbol/Function.h |
 | llvm/test/tools/dsymutil/Inputs/call-site-entry.c |
 | llvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64 |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/Two.c |
 | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h |
 | llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/main.c |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/shared.h |
 | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Two.mk |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Two/Two.c |
 | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp |
 | llvm/test/tools/dsymutil/call-site-entry-linking.test |
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/One.c |
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
 | llvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64.o |
Commit
a2cc80bc95703b99afefddb1d9d545c639ac4ff5
by Vedant KumarDebugInfo: 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
|
 | llvm/include/llvm/IR/DebugInfo.h |
 | llvm/lib/Transforms/Utils/InlineFunction.cpp |
 | llvm/lib/IR/DebugInfo.cpp |
Commit
388eaa1270c2762d61b756759b6db8cf15bd3a83
by richardWork 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!
|
 | clang/lib/Headers/ppc_wrappers/emmintrin.h |
Commit
b72a8c65e4e34779b6bc9e466203f553f5294486
by richardPR17164: 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
|
 | clang/include/clang/Basic/LangOptions.def |
 | clang/test/Sema/vector-assign.c |
 | clang/test/Headers/arm-neon-header.c |
 | clang/test/Headers/x86intrin.c |
 | clang/test/Headers/x86intrin-2.c |
 | clang/test/Headers/x86-intrinsics-headers.c |
 | clang/test/Headers/altivec-header.c |
 | clang/test/Sema/vector-ops.c |
 | clang/docs/CommandGuide/clang.rst |
 | clang/test/Sema/vector-cast.c |
 | clang/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
|
 | llvm/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
|
 | mlir/test/mlir-tblgen/op-operand.td |
 | mlir/test/mlir-tblgen/op-decl.td |
 | mlir/test/lib/TestDialect/TestPatterns.cpp |
 | mlir/docs/OpDefinitions.md |
 | mlir/include/mlir/Analysis/InferTypeOpInterface.td |
 | mlir/include/mlir/Analysis/InferTypeOpInterface.h |
 | mlir/include/mlir/IR/OpBase.td |
 | mlir/test/lib/TestDialect/TestDialect.cpp |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/lib/Analysis/InferTypeOpInterface.cpp |
 | mlir/test/lib/TestDialect/TestOps.td |
 | mlir/test/mlir-tblgen/op-attribute.td |
 | mlir/docs/ShapeInference.md |
 | mlir/test/mlir-tblgen/op-result.td |
 | mlir/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
|
 | llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPUInline.cpp |
 | llvm/lib/Transforms/IPO/AlwaysInliner.cpp |
 | llvm/lib/Transforms/Utils/InlineFunction.cpp |
 | llvm/lib/CodeGen/SafeStack.cpp |
 | llvm/lib/Transforms/IPO/PartialInlining.cpp |
 | llvm/lib/Analysis/InlineCost.cpp |
 | llvm/include/llvm/Analysis/InlineCost.h |
 | llvm/lib/Transforms/IPO/SampleProfile.cpp |
 | llvm/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
|
 | llvm/lib/CodeGen/MachineScheduler.cpp |
Commit
8d2f252bb8e4d199be8498c4ee2245117ef08fd2
by Vedant Kumarlldb: 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.
|
 | lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py |
 | lldb/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.
|
 | libcxx/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.
|
 | libcxx/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.
|
 | libcxx/include/__string |
 | libcxx/include/__config |
 | libcxx/include/string |
 | libcxx/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
|
 | llvm/lib/IR/BasicBlock.cpp |
 | llvm/include/llvm/IR/BasicBlock.h |
 | llvm/lib/Transforms/Scalar/LoopPredication.cpp |
Commit
43464509fcedef667aee17b74c19cc08b65aa0ae
by Vedant KumarDWARF: Simplify the way the return PC is attached to call site tags, NFC This cleanup was suggested by Djordje in D72489.
|
 | llvm/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.
|
 | llvm/test/tools/dsymutil/Inputs/call-site-entry.c |
 | llvm/test/tools/dsymutil/X86/Inputs/call-site-entry.macho.x86_64 |
 | llvm/test/tools/dsymutil/call-site-entry-linking.test |
 | llvm/test/tools/dsymutil/X86/Inputs/call-site-entry.macho.x86_64.o |
 | llvm/test/tools/dsymutil/X86/call-site-entry-linking.test |
 | llvm/test/tools/dsymutil/X86/Inputs/call-site-entry.c |
 | llvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64 |
 | llvm/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
|
 | libcxx/include/string |
Commit
313d89724ce3ccf66c1c51849903e1e6d184dd85
by eric[libc++] Fix parsing <string> in C++03. Specifically, add a space between >> when closing templates.
|
 | libcxx/include/string |
Commit
6b29aa21180cf14bfb619d38fc4826913cabfb66
by a.bataevRevert "[OPENMP]Do not use RTTI by default for NVPTX devices." This reverts commit 23058f9dd4d7e18239fd63b6da52549514b45fda. It breaks builds of cuda code somehow in some cases.
|
 | clang/lib/Driver/ToolChain.cpp |
 | clang/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.
|
 | lldb/source/Expression/REPL.cpp |
 | lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp |
 | lldb/source/Interpreter/CommandInterpreter.cpp |
 | lldb/include/lldb/Core/Debugger.h |
 | lldb/source/Commands/CommandObjectExpression.cpp |
 | lldb/source/Commands/CommandObjectGUI.cpp |
 | lldb/source/Target/Process.cpp |
 | lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp |
 | lldb/source/Core/Debugger.cpp |
 | lldb/source/Commands/CommandObjectCommands.cpp |