Commit
39eb2324f7ec48bd455c370dcb26ffcf9f8dfc48
by spatel[InstCombine] canonicalize a scalar-select-of-vectors to vector select This pattern may arise more frequently with an enhancement to SLP vectorization suggested in PR42755: https://bugs.llvm.org/show_bug.cgi?id=42755 ...but we should handle this pattern to make things easier for the backend either way. For all in-tree targets that I looked at, codegen for typical vector sizes looks better when we change to a vector select, so this is safe to do without a cost model (in other words, as a target-independent canonicalization). For example, if the condition of the select is a scalar, we end up with something like this on x86: vpcmpgtd %xmm0, %xmm1, %xmm0 vpextrb $12, %xmm0, %eax testb $1, %al jne LBB0_2 ## %bb.1: vmovaps %xmm3, %xmm2 LBB0_2: vmovaps %xmm2, %xmm0 Rather than the splat-condition variant: vpcmpgtd %xmm0, %xmm1, %xmm0 vpshufd $255, %xmm0, %xmm0 ## xmm0 = xmm0[3,3,3,3] vblendvps %xmm0, %xmm2, %xmm3, %xmm0 Differential Revision: https://reviews.llvm.org/D66095 llvm-svn: 369140
|
 | llvm/test/Transforms/InstCombine/select-extractelement.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp |
Commit
9bb9a0c10b21cdddea593bad20d955ced9118b19
by Lang Hames[ORC] Remove some stray debugging output accidentally left in r368707 llvm-svn: 369141
|
 | llvm/lib/ExecutionEngine/Orc/Core.cpp |
Commit
fe6dbadc0d53efdc34c096dd1695f23467ea6591
by jdoerfert[Attributor] Introduce initialize calls and move code to keep attributes concise Summary: This patch should not change the behavior except that the added initialize methods might indicate an optimistic fixpoint earlier. The code movement is done to keep the attribute definitions in a single block where it makes sense. No functional changes intended there. Reviewers: uenoku, sstefan1 Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66258 llvm-svn: 369142
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
66cf87e29090737acfbaa66f15464ee2f6c93e21
by jdoerfert[Attributor][NFC] Introduce aliases for call site attributes Until we have call site specific liveness and/or value information there is no need to do call site specific deduction. Though, we need the symbols in follow up patches that make Attributor::getAAFor return a reference. llvm-svn: 369143
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
234eda563df3c207ed641c0ee550d73e10577d82
by jdoerfert[Attributor] Towards a more structured deduction pattern Summary: This is the first commit aiming to structure the attribute deduction. The base idea is that we have default propagation patterns as listed below on top of which we can add specific, e.g., context sensitive, logic. Deduction patterns used in this patch: - argument states are determined from call site argument states, see AAAlignArgument and AAArgumentFromCallSiteArguments. - call site argument states are determined as if they were floating values, see AAAlignCallSiteArgument and AAAlignFloating. - floating value states are determined by traversing the def-use chain and combining the states determined for the leaves, see AAAlignFloating and genericValueTraversal. - call site return states are determined from function return states, see AAAlignCallSiteReturned and AACallSiteReturnedFromReturned. - function return states are determined from returned value states, see AAAlignReturned and AAReturnedFromReturnedValues. Through this strategy all logic for alignment is concentrated in the AAAlignFloating::updateImpl method. Note: This commit works on its own but is part of a larger change that involves "on-demand" creation of abstract attributes that will participate in the fixpoint iteration. Without this part, we sometimes do not have an AAAlign abstract attribute to query, loosing information we determined before. All tests have appropriate FIXMEs and the information will be recovered once we added all parts. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66126 llvm-svn: 369144
|
 | llvm/test/Transforms/FunctionAttrs/align.ll |
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/test/Transforms/FunctionAttrs/noalias_returned.ll |
Commit
2e3ed4a852d07ef2d329fbb391a8d1c5bec337d2
by richard-llvmStop abusing SuppressAllDiagnostics when speculatively determining whether an expression would be valid during error recovery. llvm-svn: 369145
|
 | clang/lib/Sema/SemaOpenMP.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/lib/Parse/ParseExpr.cpp |
Commit
217ff1e445605077622fac73c56887c85fa44a6f
by a.bataev[OPENMP5.0]Diagnose global variables in lambda not marked as declare target. According to OpenMP 5.0, if a lambda declaration and definition appears between a declare target directive and the matching end declare target directive, all variables that are captured by the lambda expression must also appear in a to clause. llvm-svn: 369146
|
 | clang/lib/Sema/SemaOpenMP.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/OpenMP/declare_target_messages.cpp |
Commit
f4cf3b959333f62b7a7b2d7771f7010c9d8da388
by caij2003[ARM] push LR before __gnu_mcount_nc Push LR register before calling __gnu_mcount_nc as it expects the value of LR register to be the top value of the stack on ARM32. Differential Revision: https://reviews.llvm.org/D65019 llvm-svn: 369147
|
 | llvm/include/llvm/IR/IntrinsicsARM.td |
 | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp |
 | llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp |
 | llvm/lib/Target/ARM/ARMInstrInfo.td |
 | clang/lib/Basic/Targets/ARM.cpp |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/lib/Target/ARM/ARMInstrThumb.td |
 | llvm/lib/Target/ARM/ARMISelLowering.h |
 | llvm/test/CodeGen/ARM/gnu_mcount_nc.ll |
Commit
856608c30a8b9f28333e0d1b9cacc19db6d688e8
by troyj[Test Commit] Fix typo in diagtool.rst Test commit after obtaining commit access. llvm-svn: 369148
|
 | clang/docs/CommandGuide/diagtool.rst |
Commit
2d957cfe02a1b4c82068d1a0bf22bcffbba72a8a
by caij2003Revert "[ARM] push LR before __gnu_mcount_nc" This reverts commit f4cf3b959333f62b7a7b2d7771f7010c9d8da388. llvm-svn: 369149
|
 | llvm/lib/Target/ARM/ARMInstrInfo.td |
 | llvm/test/CodeGen/ARM/gnu_mcount_nc.ll |
 | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp |
 | llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp |
 | llvm/lib/Target/ARM/ARMInstrThumb.td |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | clang/lib/Basic/Targets/ARM.cpp |
 | llvm/include/llvm/IR/IntrinsicsARM.td |
 | llvm/lib/Target/ARM/ARMISelLowering.h |
Commit
8191585b36eb4963002cce43fb2e79e7fb05c3d6
by jlettner[TSan] Don't guard #include <xpc/xpc.h> The xpc_connection_* APIs that we are intercepting are available starting at macOS 10.7. This is old enough so that we don't need to guard them. llvm-svn: 369150
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp |
Commit
a17d1d2250448a8dcffc3c7be3a70eb24309537e
by craig.topper[X86] Use Register/MCRegister in more places in X86 This was a quick pass through some obvious places. I haven't tried the clang-tidy check. I also replaced the zeroes in getX86SubSuperRegister with X86::NoRegister which is the real sentinel name. Differential Revision: https://reviews.llvm.org/D66363 llvm-svn: 369151
|
 | llvm/lib/Target/X86/X86InstrInfo.h |
 | llvm/lib/Target/X86/X86RegisterInfo.cpp |
 | llvm/lib/Target/X86/X86FrameLowering.cpp |
 | llvm/lib/Target/X86/X86FixupBWInsts.cpp |
 | llvm/lib/Target/X86/AsmParser/X86Operand.h |
 | llvm/lib/Target/X86/X86InstrInfo.cpp |
 | llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp |
 | llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h |
 | llvm/lib/Target/X86/X86FixupLEAs.cpp |
Commit
250aafa2c4a1bc2395edfe8d4365545bbe56fffe
by troyj[X86] Support -mlong-double-80 Add an option group for all of the -mlong-double-* options and make -mlong-double-80 restore the default long double behavior for X86. The motivations are that GNU accepts the -mlong-double-80 option and that complex Makefiles often need a way of undoing earlier options. Prior to this commit, if one chooses 64-bit or 128-bit long double for X86, there is no way to undo that choice and restore the 80-bit behavior. Differential Revision: https://reviews.llvm.org/D66055 llvm-svn: 369152
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/Driver/mlong-double-128.c |
 | clang/include/clang/Driver/Options.td |
Commit
3af3f1e8e253d93cb655388af69f4ed1722b4f51
by Jonas Devlieghere[Utility] Reimplement RegularExpression on top of llvm::Regex Originally I wanted to remove the RegularExpression class in Utility and replace it with llvm::Regex. However, during that transition I noticed that there are several places where need the regular expression string. So instead I propose to keep the RegularExpression class and make it a thin wrapper around llvm::Regex. This patch also removes the workaround for empty regular expressions. The result is that we are now (more or less) POSIX conformant. Differential revision: https://reviews.llvm.org/D66174 llvm-svn: 369153
|
 | lldb/source/Core/Disassembler.cpp |
 | lldb/source/Symbol/ObjectFile.cpp |
 | lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp |
 | lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp |
 | lldb/source/Commands/CommandObjectFrame.cpp |
 | lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp |
 | lldb/include/lldb/Breakpoint/BreakpointResolverFileRegex.h |
 | lldb/source/Interpreter/CommandObject.cpp |
 | lldb/source/Host/common/Socket.cpp |
 | lldb/unittests/Utility/NameMatchesTest.cpp |
 | lldb/unittests/Utility/RegularExpressionTest.cpp |
 | lldb/source/Interpreter/OptionArgParser.cpp |
 | lldb/include/lldb/Core/AddressResolverName.h |
 | lldb/source/Core/AddressResolverName.cpp |
 | lldb/unittests/Utility/CMakeLists.txt |
 | lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp |
 | lldb/source/Target/ThreadPlanStepInRange.cpp |
 | lldb/source/Commands/CommandObjectBreakpoint.cpp |
 | lldb/source/Utility/RegularExpression.cpp |
 | lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp |
 | lldb/source/Interpreter/OptionValueRegex.cpp |
 | lldb/source/Symbol/Variable.cpp |
 | lldb/include/lldb/Interpreter/OptionValueRegex.h |
 | lldb/include/lldb/Breakpoint/BreakpointResolverName.h |
 | lldb/include/lldb/Utility/RegularExpression.h |
 | lldb/source/Interpreter/CommandObjectRegexCommand.cpp |
 | lldb/source/Breakpoint/BreakpointResolverName.cpp |
Commit
f4bdbea02ff507bceb2c519ce01d92ed5b7f8bde
by Jonas Devlieghere[RWMutex] Simplify availability check Check for the actual version number for the scenarios where the macOS version isn't available (__MAC_10_12). llvm-svn: 369154
|
 | llvm/include/llvm/Support/RWMutex.h |
 | llvm/lib/Support/RWMutex.cpp |
Commit
6dedc78d9ddd117a4a39ec626c5641c698b8600e
by jdoerfert[Attributor] Add all missing attribute definitions/symbols As a preparation to "on-demand" abstract attribute generation we need implementations for all attributes (as they can be queried and then created on-demand where we now fail to find one). Reviewers: uenoku, sstefan1 Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66129 llvm-svn: 369155
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
8341a847a22800056aa9a7bf446f47f1a530668f
by spatel[CodeGenPrepare] fix RUN line settings I'm not sure if this was running as expected with a broken triple. llvm-svn: 369156
|
 | llvm/test/Transforms/CodeGenPrepare/sink-shift-and-trunc.ll |
Commit
ac67414618df9fdc24754b05cf438f8f7568f04a
by owenpiano[clang-format] Fix the bug that joins template closer and > or >> Also fixes a buggy test case. See PR42404 Differential Revision: https://reviews.llvm.org/D66332 llvm-svn: 369157
|
 | clang/unittests/Format/FormatTest.cpp |
 | clang/lib/Format/TokenAnnotator.cpp |
Commit
17cb91853638facffe4a26fbf632c845a9830359
by jdoerfert[CaptureTracking] Allow null to be in either icmp operand Summary: Before we required the comparison against null to be "canonical", hence null to be operand #1. This patch allows null to be in either operand, similar to the handling of loaded globals that follows. Reviewers: sanjoy, hfinkel, aykevl, sstefan1, uenoku Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66321 llvm-svn: 369158
|
 | llvm/test/Transforms/FunctionAttrs/nocapture.ll |
 | llvm/lib/Analysis/CaptureTracking.cpp |
Commit
cbaf1fdea2de891bdbc49cdec89ae2077e6b9ed0
by jdoerfert[Attributor] Fix: Make sure we set the changed flag The flag was updated *before* we actually run the visitor callback so we might miss updates. llvm-svn: 369159
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
f72d9b1c97b41fff48ad1eecbba59a29c171bff4
by jdoerfert[Attributor] Fix: Do not partially resolve returned calls. By partially resolving returned calls we did not record that they were not fully resolved which caused odd behavior down the line. We could also end up with some, but not all, returned values of the callee in the returned values map of the caller, another odd behavior we want to avoid. llvm-svn: 369160
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
87869b398dbe525658d5ccfe2e9edd2cdf342662
by richard-llvm[doc] Fix some minor formatting issues. llvm-svn: 369161
|
 | clang/docs/LanguageExtensions.rst |
Commit
eaff844fe9584be189ce66214efdf8ce1eceeb5b
by efriedma[ARM] Preserve liveness in ARMConstantIslands. We currently don't use liveness information after this point, but it can be useful to catch bugs using -verify-machineinstrs, and optimizations could potentially use this information in the future. Differential Revision: https://reviews.llvm.org/D66319 llvm-svn: 369162
|
 | llvm/lib/Target/ARM/ARMConstantIslandPass.cpp |
 | llvm/test/CodeGen/ARM/constant-island-movwt.mir |
Commit
97176bd2bce003353b23e554e95a52780cb0f87c
by lebedev.ri[InstCombine][NFC] Revisit tests in reuse-constant-from-select-in-icmp.ll llvm-svn: 369163
|
 | llvm/test/Transforms/InstCombine/reuse-constant-from-select-in-icmp.ll |
Commit
4a9b747bfb5579f69514a13b643684714343d4e7
by jlettner[TSan] Add interceptors for os_unfair_lock llvm-svn: 369164
|
 | compiler-rt/test/tsan/Darwin/os_unfair_lock.c |
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp |
Commit
0c2f26d664020e50b096a927d22c1085679c022e
by jlettnerRevert "[TSan] Don't guard #include <xpc/xpc.h>" This reverts commit 8191585b36eb4963002cce43fb2e79e7fb05c3d6. llvm-svn: 369165
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cpp |
Commit
515ad8fe4acbfcd0eb6c179a61e2acb134495843
by lebedev.ri[InstCombine][NFC] reuse-constant-from-select-in-icmp.ll - check branch_weights too llvm-svn: 369166
|
 | llvm/test/Transforms/InstCombine/reuse-constant-from-select-in-icmp.ll |
Commit
d0797ece4641580d0c2c4a60ff3d6696b657a2e5
by rupprechtRevert [X86] SimplifyDemandedVectorElts - attempt to recombine target shuffle using DemandedElts mask (reapplied) This reverts r368662 (git commit 1a8d790cf5f89c1df718844f13e934e39bef6ef5) The compile-time regression repro is in https://bugs.llvm.org/show_bug.cgi?id=43024 llvm-svn: 369167
|
 | llvm/test/CodeGen/X86/shrink_vmul.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/vec_umulo.ll |
 | llvm/test/CodeGen/X86/vec_smulo.ll |
 | llvm/test/CodeGen/X86/avx512-intrinsics-fast-isel.ll |
Commit
acceedb15f52108d0e36d8090cb25fcdf34a4fc1
by spatel[CodeGenPrepare] Fix use-after-free If OptimizeExtractBits() encountered a shift instruction with no operands at all, it would erase the instruction, but still return false. This previously didn’t matter because its caller would always return after processing the instruction, but https://reviews.llvm.org/D63233 changed the function’s caller to fall through if it returned false, which would then cause a use-after-free detectable by ASAN. This change makes OptimizeExtractBits return true if it removes a shift instruction with no users, terminating processing of the instruction. Patch by: @brentdax (Brent Royal-Gordon) Differential Revision: https://reviews.llvm.org/D66330 llvm-svn: 369168
|
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
 | llvm/test/Transforms/CodeGenPrepare/sink-shift-and-trunc.ll |
Commit
7da81b5e4d2b9cb389cff28c1cc144abcf986f66
by phosek[llvm-readobj] Fallback to PT_NOTE if file doesn't have sections This is useful when trying to read notes from stripped files and matches the behavior of GNU readelf and eu-readelf. Differential Revision: https://reviews.llvm.org/D66358 llvm-svn: 369169
|
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/gnu-notes.test |
Commit
0dd9494d4701de60479d03db9012a5524a39932a
by troyjRevert "[X86] Support -mlong-double-80" This reverts commit 250aafa2c4a1bc2395edfe8d4365545bbe56fffe. Caused buildbot failures -- still investigating. llvm-svn: 369170
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/include/clang/Driver/Options.td |
 | clang/test/Driver/mlong-double-128.c |
Commit
8e2837e549dba107f8dcac0cd33d855ffecb40e6
by Lang Hames[ORC] Re-introduce self-dependence accidentally dropped from a unit test. llvm-svn: 369171
|
 | llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp |
Commit
57ec292ab80002b8dbc3e9b201be5d4e22917449
by Amara Emerson[AArch64][GlobalISel] Fix an assertion during G_UNMERGE selection for s128 types. llvm-svn: 369172
|
 | llvm/test/CodeGen/AArch64/GlobalISel/select-unmerge.mir |
 | llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp |
Commit
16fa8b09702378bacfa3d07081afe6b353b99e60
by caij2003Reland "[ARM] push LR before __gnu_mcount_nc" This relands r369147 with fixes to unit tests. https://reviews.llvm.org/D65019 llvm-svn: 369173
|
 | llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | clang/test/Frontend/gnu-mcount.c |
 | llvm/test/Transforms/EntryExitInstrumenter/mcount.ll |
 | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp |
 | clang/lib/Basic/Targets/ARM.cpp |
 | llvm/lib/Target/ARM/ARMISelLowering.h |
 | llvm/test/CodeGen/ARM/gnu_mcount_nc.ll |
 | llvm/include/llvm/IR/IntrinsicsARM.td |
 | llvm/lib/Target/ARM/ARMInstrInfo.td |
 | llvm/lib/Target/ARM/ARMInstrThumb.td |
Commit
a53ad0e157d19487e2baab9e7bd02bdf1e353782
by spatelRevert r367891 - "[InstCombine] combine mul+shl separated by zext" This reverts commit 5dbb90bfe14ace30224239cac7c61a1422fa5144. As noted in the post-commit thread for r367891, this can create a multiply that is lowered to a libcall that may not exist. We need to improve the backend decomposition for integer multiply before trying to re-land this (if it's still worthwhile after doing the backend work). llvm-svn: 369174
|
 | llvm/test/Transforms/InstCombine/shift.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp |
Commit
43c8b19546ae646630898a7b0fe0a517633410de
by Adrian PrantlAdd LLDB dataformatters for llvm::StringRef and lldb_private::ConstString These data formatters make the string value appear in Xcode's variables view (and on the command line) without having to expand the data structure. Differential Revision: https://reviews.llvm.org/D66354 llvm-svn: 369175
|
 | llvm/utils/lldbDataFormatters.py |
Commit
0b5ecef299fd7b430ddaace420cb2f10f1846873
by phosek[llvm-readobj] Unwrap the value first to avoid the error This addresses the issue introduced in r369169, we need to unwrap the value first before we can check whether it's empty. This also swaps the two branches to put the common path first which should be NFC. llvm-svn: 369177
|
 | llvm/test/tools/llvm-readobj/gnu-notes.test |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
Commit
69cef325a337bb1a498689a95dd17de4d4a074cc
by Adrian PrantlSimplify code (NFC). llvm-svn: 369179
|
 | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp |
Commit
edf504f5038b573a3e2f0eedfa7de69ec0ab9e7f
by phosek[Fuchsia] Create the VMO during initialization, not during exit We want to avoid doing expensive work during atexit since the process might be terminated before we can publish the VMO and write out the symbolizer markup, so move the VMO creation to the initialization phase and only write data during the atexit phase. Differential Revision: https://reviews.llvm.org/D66323 llvm-svn: 369180
|
 | compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c |
Commit
f92109dc01b831304bedc990c41d8ea4bfd0a277
by asbirlea[MemorySSA] Loop passes should mark MSSA preserved when available. This patch applies only to the new pass manager. Currently, when MSSA Analysis is available, and pass to each loop pass, it will be preserved by that loop pass. Hence, mark the analysis preserved based on that condition, vs the current `EnableMSSALoopDependency`. This leaves the global flag to affect only the entry point in the loop pass manager (in FunctionToLoopPassAdaptor). llvm-svn: 369181
|
 | llvm/lib/Transforms/Scalar/LICM.cpp |
 | llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp |
 | llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp |
 | llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp |
 | llvm/lib/Transforms/Scalar/LoopRotation.cpp |
Commit
ee6700f69766b57849f483f471387229e495e311
by diegoaat97[clang-doc] Fix casting not working in gcc 5.4.0 An implicit cast of std::string to llvm::SmallString<> was breaking GCC 5.4.0 builder. A pair using llvm::SmallString<> now uses std::string. Differential Revision: https://reviews.llvm.org/D66378 llvm-svn: 369182
|
 | clang-tools-extra/clang-doc/HTMLGenerator.cpp |
Commit
c0d70bca0f9f421db80c8e96a4b5dda12de46f2f
by troyj[X86] Support -mlong-double-80 Add an option group for all of the -mlong-double-* options and make -mlong-double-80 restore the default long double behavior for X86. The motivations are that GNU accepts the -mlong-double-80 option and that complex Makefiles often need a way of undoing earlier options. Prior to this commit, if one chooses 64-bit or 128-bit long double for X86, there is no way to undo that choice and restore the 80-bit behavior. Differential Revision: https://reviews.llvm.org/D66055 llvm-svn: 369183
|
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/Driver/mlong-double-128.c |
 | clang/include/clang/Driver/Options.td |
Commit
d5d79dfd563d45eabfe9b8f5967e5ccfa5755e5c
by maskray[ELF][PPC] Fix getRelExpr for R_PPC64_REL16_HI Fixes https://github.com/ClangBuiltLinux/linux/issues/640 R_PPC64_REL16_HI was incorrectly computed as an R_ABS relocation. rLLD368964 made it a linker failure. Change it to use R_PC to fix the failures. Add ppc64-reloc-rel.s for these R_PPC64_REL* tests. llvm-svn: 369184
|
 | lld/ELF/Arch/PPC64.cpp |
 | lld/test/ELF/ppc64-relocs.s |
 | lld/test/ELF/ppc64-reloc-rel.s |
Commit
93c7a4a47cc2f69e5bda9f80f86182d0ac29bcbd
by paul.walkerRevert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instructions. This reverts r369133 (git commit 2632c677f85cba1ac2aef5d68aaf8af0f5b3c944) llvm-svn: 369185
|
 | llvm/lib/Target/AArch64/AArch64InstrInfo.cpp |
 | llvm/test/CodeGen/AArch64/branch-relax-block-size.mir |
Commit
26295676a44d1d805f8fe3f4e5c6196d3d8fd74e
by paul.walkerRevert Revert [AArch64InstrInfo] Stop getInstSizeInBytes returning non-zero for meta instructions. This reverts r369132 (git commit 19301d75f086caae1a495d267f5d0264b225942d) llvm-svn: 369186
|
 | llvm/lib/Target/AArch64/AArch64InstrInfo.cpp |
 | llvm/test/CodeGen/AArch64/branch-relax-block-size.mir |
Commit
a560bbf7a0374a6d1b9e8b6284037778cb135f1e
by maskray[ELF] Replace local variable hasExportDynamic with config->exportDynamic. NFC llvm-svn: 369187
|
 | lld/ELF/Driver.cpp |
Commit
30cde4e2e6a5b31e8246ad3fbc30d2e37ee04798
by troyj[circular_raw_ostream] Delegate is_displayed to contained stream raw_ostream has an is_displayed() member function that determines if the stream is connected to a console for display or is connected to a file/pipe. By default, is_displayed() returns false, and derived classes like raw_fd_ostream override it. Because circular_raw_ostream wraps another stream, its result for is_displayed() should be the same as that stream. Differential Revision: https://reviews.llvm.org/D66026 llvm-svn: 369188
|
 | llvm/include/llvm/Support/circular_raw_ostream.h |
Commit
50166f81072c8aba7690b0a57e751393732b64e8
by grimar[test] - Remove precomiled openbsd-phdrs.elf-x86-64 objects. There are 2 similar openbsd-phdrs.elf-x86-64 objects committed and used in test/Object and test/tools/llvm-objdump test cases. There is no reason to have them, we can use YAML instead. Patch does that. Differential revision: https://reviews.llvm.org/D66342 llvm-svn: 369189
|
 | llvm/test/tools/llvm-objdump/X86/openbsd-headers.test |
 | llvm/test/tools/llvm-readobj/program-headers.test |
 | llvm/test/Object/Inputs/openbsd-phdrs.elf-x86-64 |
 | llvm/test/tools/llvm-objdump/X86/Inputs/openbsd-phdrs.elf-x86-64 |
 | llvm/test/tools/llvm-objdump/openbsd-headers.test |
Commit
bb56755f153a83387fa6c7fa0a6d7d540da41633
by grimar[llvm-readobj/llvm-readelf] - Improve/cleanup the error reporting API. urrently we have the following functions for error reporting: -- LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg); void reportError(Error Err, StringRef Input); void reportWarning(Twine Msg); void reportWarning(StringRef Input, Error Err); void warn(llvm::Error Err); void error(std::error_code EC); --- Problems are: naming is inconsistent, arguments order is inconsistent, some of the functions looks excessive. After applying this patch we have: --- LLVM_ATTRIBUTE_NORETURN void reportError(Error Err, StringRef Input); LLVM_ATTRIBUTE_NORETURN void reportError(std::error_code EC, StringRef Input); void reportWarning(Error Err, StringRef Input); --- I'd be happy to remove reportError(std::error_code EC, StringRef Input) too, but it is used by COFF heavily. Test cases were updated, they show an improvement introduced. Differential revision: https://reviews.llvm.org/D66286 llvm-svn: 369190
|
 | llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h |
 | llvm/test/Object/invalid.test |
 | llvm/test/tools/llvm-readobj/elf-broken-dynsym-link.test |
 | llvm/test/tools/llvm-readobj/mips-got.test |
 | llvm/test/tools/llvm-readobj/string-dump.test |
 | llvm/tools/llvm-readobj/COFFDumper.cpp |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/hex-dump.test |
 | llvm/test/tools/llvm-readobj/elf-malformed-pt-dynamic.test |
 | llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test |
 | llvm/tools/llvm-readobj/MachODumper.cpp |
 | llvm/test/tools/llvm-readobj/note-core-ntfile-bad.test |
 | llvm/tools/llvm-readobj/ObjDumper.cpp |
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
 | llvm/tools/llvm-readobj/llvm-readobj.h |
 | llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test |
 | llvm/test/tools/llvm-readobj/elf-non-dynamic-in-pt-dynamic.test |
Commit
b3d258fc44b588f06eb35f8e4b9a6d1fc859acec
by shkzhang[CodeGen] Do the Simple Early Return in block-placement pass to optimize the blocks Summary: Fix a bug of preducessors. In `block-placement` pass, it will create some patterns for unconditional we can do the simple early retrun. But the `early-ret` pass is before `block-placement`, we don't want to run it again. This patch is to do the simple early return to optimize the blocks at the last of `block-placement`. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D63972 llvm-svn: 369191
|
 | llvm/lib/CodeGen/MachineBlockPlacement.cpp |
 | llvm/test/CodeGen/PowerPC/block-placement.mir |
Commit
e9f28133a9fb42156a76f03e8beb85be93b793d2
by grimar[llvm-readobj] - An attemp to fix BB after r369191. Few BB failed with the following error: Command Output (stderr): -- /home/buildbots/ppc64be-clang-lnt-test/clang-ppc64be-lnt/llvm/test/tools/llvm-readobj/stack-sizes.test:263:19: error: BADSECTION-OUT: expected string not found in input # BADSECTION-OUT: 8 ? ^ <stdin>:4:1: note: scanning from here ^ It doesn't reproduce on ubuntu/windows I have. Also, seems many of the bots are happy too. This slightly reorders the code to make fouts().flush() call earlier, like it was before the r369191. llvm-svn: 369192
|
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
Commit
c35d4c900d209b57f8cf8fe9030ecda054488b71
by grimarRevert r369190, r369192 ([llvm-readobj/llvm-readelf] - Improve/cleanup the error reporting API.) It caused multiple BB failtures: http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/9743/steps/stage%201%20check/logs/stdio http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/26042/steps/ninja%20check%201/logs/FAIL%3A%20LLVM%3A%3Astack-sizes.test llvm-svn: 369193
|
 | llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h |
 | llvm/test/tools/llvm-readobj/elf-non-dynamic-in-pt-dynamic.test |
 | llvm/test/tools/llvm-readobj/hex-dump.test |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/Object/invalid.test |
 | llvm/tools/llvm-readobj/llvm-readobj.h |
 | llvm/test/tools/llvm-readobj/elf-malformed-pt-dynamic.test |
 | llvm/tools/llvm-readobj/COFFDumper.cpp |
 | llvm/tools/llvm-readobj/MachODumper.cpp |
 | llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test |
 | llvm/test/tools/llvm-readobj/mips-got.test |
 | llvm/test/tools/llvm-readobj/elf-broken-dynsym-link.test |
 | llvm/test/tools/llvm-readobj/note-core-ntfile-bad.test |
 | llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test |
 | llvm/test/tools/llvm-readobj/string-dump.test |
 | llvm/tools/llvm-readobj/ObjDumper.cpp |
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
Commit
e3fb2d549b6820ab60806240cbf69e7447e71a86
by grimarRecommit r369190 "[llvm-readobj/llvm-readelf] - Improve/cleanup the error reporting API." Fix: Add a `consumeError` call removed by mistake to 'printStackSize', this should fix the "Expected<T> must be checked before access or destruction." reported by following bot: http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/9743/steps/stage%201%20check/logs/stdio Original commit message: Currently we have the following functions for error reporting: LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg); void reportError(Error Err, StringRef Input); void reportWarning(Twine Msg); void reportWarning(StringRef Input, Error Err); void warn(llvm::Error Err); void error(std::error_code EC); Problems are: naming is inconsistent, arguments order is inconsistent, some of the functions looks excessive. After applying this patch we have: void reportError(Error Err, StringRef Input); void reportError(std::error_code EC, StringRef Input); void reportWarning(Error Err, StringRef Input); I'd be happy to remove reportError(std::error_code EC, StringRef Input) too, but it is used by COFF heavily. Test cases were updated, they show an improvement introduced. Differential revision: https://reviews.llvm.org/D66286 llvm-svn: 369194
|
 | llvm/test/tools/llvm-readobj/elf-non-dynamic-in-pt-dynamic.test |
 | llvm/test/tools/llvm-readobj/elf-dynamic-not-in-pt-dynamic.test |
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
 | llvm/tools/llvm-readobj/MachODumper.cpp |
 | llvm/test/tools/llvm-readobj/mips-got.test |
 | llvm/tools/llvm-readobj/COFFDumper.cpp |
 | llvm/test/tools/llvm-readobj/elf-broken-dynsym-link.test |
 | llvm/tools/llvm-readobj/ELFDumper.cpp |
 | llvm/test/tools/llvm-readobj/string-dump.test |
 | llvm/tools/llvm-readobj/llvm-readobj.h |
 | llvm/test/tools/llvm-readobj/hex-dump.test |
 | llvm/tools/llvm-readobj/ObjDumper.cpp |
 | llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test |
 | llvm/test/Object/invalid.test |
 | llvm/test/tools/llvm-readobj/elf-malformed-pt-dynamic.test |
 | llvm/test/tools/llvm-readobj/note-core-ntfile-bad.test |
 | llvm/tools/llvm-readobj/DwarfCFIEHPrinter.h |
Commit
032e1fdcd47ef98936c88aa30571c6a713179a46
by dkszelethus[analyzer] Turn an assert into an if condition Shocker, turns out that terminator conditions that are binary operators aren't always logical operators. llvm-svn: 369195
|
 | clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp |
 | clang/test/Analysis/track-control-dependency-conditions.cpp |
Commit
8fd6aa5ed2d61d6ebba1185f59fe0e57fd218429
by cpplearner[SemaDeclCXX] Allow inheriting constructor declaration to specify a cv-qualified type Differential Revision: https://reviews.llvm.org/D47419 llvm-svn: 369196
|
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/test/CXX/special/class.inhctor/elsewhere.cpp |
Commit
e8f666f48d87e3d61ae3f68ed96d280805707a22
by lebedev.ri[NFC][InstCombine] Some tests for 'shift amount reassoc in bit test - trunc-of-lshr' (PR42399) Finally, the fold i was looking forward to :) The legality check is muddy, i doubt i've groked the full generalization, but it handles all the cases i care about, and can come up with: https://rise4fun.com/Alive/26j https://bugs.llvm.org/show_bug.cgi?id=42399 llvm-svn: 369197
|
 | llvm/test/Transforms/InstCombine/shift-amount-reassociation-in-bittest-with-truncation-lshr.ll |
Commit
37a928efd9f579126d5290f1ebb830eac053739a
by Raphael Isemann[lldb][NFC] Remove unused MaterializeInitializer and MaterializeInternalVariable llvm-svn: 369198
|
 | lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h |
 | lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp |
Commit
a8dad5c79b64523e4c39d2ee32739f8894d40129
by yhs[BPF] Fix bpf llvm-objdump issues. Commit https://reviews.llvm.org/D57939 ("[DWARF] Refactor RelocVisitor and fix computation of SHT_RELA-typed relocation entries) made a change for relocation resolution when operating on an object file. The change unfortunately broke BPF as given SymbolValue (S) and Addent (A), previously relocation is resolved to S + A and after the change, it is resolved to S This patch fixed the issue by resolving relocation correctly. It looks not all relocation resolution reaches here and I did not trace down exactly when. But I do find if the object file includes codes in two different ELF sections than default ".text", the above bug will be triggered. This patch included a trivial two function source code to demonstrate this issue. The relocation for .debug_loc is resolved incorrectly due to this and llvm-objdump cannot display source annotated assembly. Differential Revision: https://reviews.llvm.org/D66372 llvm-svn: 369199
|
 | llvm/test/CodeGen/BPF/objdump_two_funcs.ll |
 | llvm/lib/Object/RelocationResolver.cpp |
Commit
31f829f0cd4dbc00066ff0c5929f07a46e204102
by craig.topper[X86] Add a one use check to the combineStore code that handles v16i16->v16i8 truncate+store by extending to v16i32 and then emitting a v16i32->v16i8 truncstore. This prevent us from emitting a separate truncate and a truncating store instruction. llvm-svn: 369200
|
 | llvm/test/CodeGen/X86/avx512-trunc.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
8651ec6a84498f8b81a74a1f89ce60c29a2984bf
by Matthew.ArsenaultTableGen: Revert changes from r369038 These aren't needed for a specific use yet, and I meant to not commit these. llvm-svn: 369201
|
 | llvm/utils/TableGen/IntrinsicEmitter.cpp |
Commit
cfdc2b9bd92bb27fd8d69a47158731e03b5ad769
by Matthew.ArsenaultAMDGPU: Disambiguate v3f16 format in load/store tables Currently the searchable tables report the number of dwords. These round to the same number for 3 and 4 component d16 instructions. Change this to report the number of elements so this isn't ambiguous. llvm-svn: 369202
|
 | llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp |
 | llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h |
 | llvm/lib/Target/AMDGPU/SIInstrInfo.td |
 | llvm/lib/Target/AMDGPU/BUFInstructions.td |
 | llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp |
Commit
479f3bdb2c87838e5edd57e8bf7718f8307cf935
by Matthew.ArsenaultAMDGPU: Fix iterator error when lowering SI_END_CF If the instruction is the last in the block, there is no next instruction but the iteration still needs to look at the new block. llvm-svn: 369203
|
 | llvm/test/CodeGen/AMDGPU/si-lower-control-flow.mir |
 | llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp |
Commit
f43106e341d16448921b2186ae225a859c7b5aa8
by craig.topper[SelectionDAG] Add a node creation debug message to getMachineNode. llvm-svn: 369204
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp |
Commit
74168ded0399a30fe9cf4d73a28a6045cc685088
by craig.topper[TargetLowering] Teach computeRegisterProperties to only widen v3i16/v3f16 vectors to the next power of 2 type if that's legal. These were recently made simple types. This restores their behavior back to something like their EVT legalization. We might be able to fix the code in type legalization where the assert was failing, but I didn't investigate too much as I had already looked at the computeRegisterProperties code during the review for v3i16/v3f16. Most of the test changes restore the X86 codegen back to what it looked like before the recent change. The test case in vec_setcc.ll and is a reduced version of the reproducer from the fuzzer. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=16490 llvm-svn: 369205
|
 | llvm/test/CodeGen/X86/vec_setcc.ll |
 | llvm/lib/CodeGen/TargetLoweringBase.cpp |
 | llvm/test/CodeGen/X86/vec_cast.ll |
 | llvm/test/CodeGen/X86/promote-vec3.ll |
 | llvm/test/CodeGen/X86/widen_load-2.ll |
Commit
b4806822d2d52e0e7a29ba1c15a435e2e97a82e7
by david.bolvansky[Diagnostics] Improve -Wsizeof-pointer-div Emit diag note with a location of pointer declaration. Revisited/added tests. llvm-svn: 369206
|
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/Sema/div-sizeof-ptr.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
Commit
9b957d332171d4daadf1906b18646f05366584d4
by lebedev.ri[InstCombine] Cherry-pick NFC cleanups of foldShiftIntoShiftInAnotherHandOfAndInICmp() from D66383 llvm-svn: 369207
|
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
Commit
000dfdab2dfcac736ce7ccb01029c862b338b346
by llvm-dev[MC] MCFixup - Fix cppcheck + MSVC analyzer uninitialized member variable warnings. NFCI. llvm-svn: 369208
|
 | llvm/include/llvm/MC/MCFixup.h |
Commit
133e2d7bf83c8423f03c5fab58c7ac48dbfc9e0a
by llvm-dev[X86][SSE] Improve PACKSS shuffle tests to better match codegen from D61129 D61129 creates 'concat + trunc' style patterns (at the 128-bit subvector level) llvm-svn: 369209
|
 | llvm/test/CodeGen/X86/packss.ll |
Commit
a66edd86e27a59b78588169b060e2f032fdb16ae
by llvm-dev[X86] isTargetShuffleEquivalent - early out on illegal shuffle masks. NFCI. Simplifies shuffle mask comparisons by just bailing out if the shuffle mask has any out of range values - will make an upcoming patch much simpler. llvm-svn: 369211
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
fee2546f3f2ea003cd09970d71ff729dc8c76b3c
by llvm-dev[X86] isTargetShuffleEquivalent - add BUILD_VECTOR matching Add similar functionality to isShuffleEquivalent - if the mask elements don't match, try matching the BUILD_VECTOR scalars instead. As target shuffles need to handle SM_Sentinel values, this can get a bit tricky, so commit just adds actual mask element index handling - full SM_SentinelZero support will be added when the need arises. Also, enables support in matchVectorShuffleWithPACK llvm-svn: 369212
|
 | llvm/test/CodeGen/X86/packss.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
63b3c56fca6d727feeb66ad5796e392ecd314443
by llvm-devFix signed/unsigned comparison warning. NFCI. llvm-svn: 369213
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
37860d524e86488e683bb04064ec34cebb4c74c3
by owenpiano[clang-format] Fix a bug that joins template closer and = Also fixes the documentation for SpaceBeforeAssignmentOperators. See discussions at https://reviews.llvm.org/D66332 Differential Revision: https://reviews.llvm.org/D66384 llvm-svn: 369214
|
 | clang/include/clang/Format/Format.h |
 | clang/lib/Format/TokenAnnotator.cpp |
 | clang/unittests/Format/FormatTest.cpp |
 | clang/docs/ClangFormatStyleOptions.rst |
Commit
9e074c06fe08c6b2da3d119c7aa7e6724a8d13ab
by craig.topper[X86] Improve lower1BitShuffle handling for KSHIFTL on narrow vectors. We can insert the value into a larger legal type and shift that by the desired amount. llvm-svn: 369215
|
 | llvm/test/CodeGen/X86/kshift.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
c944438dfdbd6de9785f4652244e80d194f40b92
by d4m1887[Docs] Test commit Fixes typo - Removes extra space between last word of sentence and period. llvm-svn: 369216
|
 | llvm/docs/TestingGuide.rst |
Commit
920890e26812f808a74c60ebc14cc636dac661c1
by david.bolvansky[Diagnostics] Diagnose misused xor as pow Summary: Motivation: https://twitter.com/jfbastien/status/1139298419988549632 https://twitter.com/mikemx7f/status/1139335901790625793 https://codesearch.isocpp.org/cgi-bin/cgi_ppsearch?q=10+%5E&search=Search Reviewers: jfb, rsmith, regehr, aaron.ballman Reviewed By: aaron.ballman Subscribers: lebedev.ri, Quuxplusone, erik.pilkington, riccibruno, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63423 llvm-svn: 369217
|
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/test/SemaCXX/warn-xor-as-pow.cpp |
 | clang/include/clang/Basic/DiagnosticGroups.td |
 | clang/lib/Sema/SemaExpr.cpp |
Commit
a264b6074a4f8cf9b2eddeda9f636b3b150502c1
by Lang Hames[ORC] Remove some dead code. llvm-svn: 369218
|
 | llvm/include/llvm/ExecutionEngine/Orc/Speculation.h |
Commit
cf276ba82e815fe171b3858a0b06d8f0f6c86fa2
by Lang Hames[ORC] Make sure we linker-mangle symbol names in the SpeculationLayer. If mangling is not performed then speculative lookups will fail. llvm-svn: 369219
|
 | llvm/include/llvm/ExecutionEngine/Orc/Speculation.h |
 | llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp |
Commit
45e598d1357c4436f5a13afa5e57c3600e13f2c1
by Jonas Devlieghere[CMake] Update CMAKE_OSX_DEPLOYMENT_TARGET to 10.12. After LLVM moved to C++14, the RWMutex implementation was removed in favor of std::shared_timed_mutex, which is only available on macOS 10.12 and later. As a workaround for older deployment targets, I added the original RWMutexImpl again, guarded by the deployment target. When doing a standalone build of LLDB using the Xcode generator, the CMake cache specifies a minimum deployment target. However, LLVM and Clang might have been built with a different minimum deployment target. This is exactly what happened for the Xcode build. LLVM was built with a minimum deployment target newer than 10.12, using std::shared_timed_mutex. LLDB on the other hand was built with a minimum deployment target of 10.11, using the old RWMutexImpl, resulting in undefined symbols at link-time. This patch changes the minimum deployment target for the Xcode build to 10.12 to work around this problem. A better solution would involve synchronizing the minimum deployment or even not setting one at all. llvm-svn: 369220
|
 | lldb/cmake/caches/Apple-lldb-Xcode.cmake |
Commit
c313944da629acf66669b6bb76d33304d2dda483
by hubert.reinterpretcast[cmake] Move blocks out of redundant else( MSVC ); NFC Address post-commit comment on D66256 regarding the `else( MSVC )` block containing only blocks guarded with `LLVM_COMPILER_IS_GCC_COMPATIBLE`, which would imply `NOT MSVC`. llvm-svn: 369221
|
 | llvm/cmake/modules/HandleLLVMOptions.cmake |
Commit
388b8dd94a470e589f5c01d27a38eb4c741db3b7
by craig.topper[X86] Replace uses of getZeroVector for vXi1 vectors with DAG.getConstant. vXi1 vectors don't need special handling. llvm-svn: 369222
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
6bd2e8eff817daa26d26a6f00f220b357857aa75
by craig.topper[X86] Add test cases for suboptimal insertion of a vXi1 vector into a larger vector with zeros in the lower elements and undef upper elements. Currently we generate kshifts to clear both the upper and lower elements, but we only need one kshift. llvm-svn: 369223
|
 | llvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll |
Commit
2ee46c7c4be1be5fa48af39232f62cf26d742efa
by craig.topper[X86] Add a special case to LowerCONCAT_VECTORSvXi1 to handle concatenating zero vectors followed by one non-zero vector followed by undef vectors. For such a case we should only need a KSHIFTL, but we were previously generating a KSHIFTL followed by a KSHIFTR because we mistakenly believed we need to zero the undef elements. llvm-svn: 369224
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll |
Commit
c9ee4c7c2207e48c5afaf4de7e2cb241a6837681
by craig.topper[X86] Add test case for missed opportunity to recognize a vXi1 shuffle as an insert into a zero vector. We are currently missing this because shuffle canonicalization puts the zero vector as V1 and the subvector as V2. Our current code doesn't recognize this case. llvm-svn: 369225
|
 | llvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll |
Commit
2eb7951da39287ff12be9def2f0b08535c25a799
by craig.topper[X86] Teach lower1BitShuffle to recognize padding a subvector with zeros with V2 as the source and V1 as the zero vector. Shuffle canonicalization can swap the sources so the zero vector might be V1 and the subvector that's being padded can be V2. llvm-svn: 369226
|
 | llvm/test/CodeGen/X86/avx512-skx-insert-subvec.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
269c6b1c15a7d105aa39de728e293614de18f973
by craig.topper[X86] Teach lower1BitShuffle to match KSHIFTR that doesn't use Zeroable and only relies on undef. This allows us to widen the type when the KSHIFTR instruction doesn't exist for the type. If we need to shift in zeroes into the upper elements we would need more work to guarantee zeroes when widening. llvm-svn: 369227
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/kshift.ll |
Commit
e47437a6effcbfce191f6a37f6e421624426201e
by craig.topper[X86] Fix the lower1BitShuffle code added in r369215 to correctly pass the widened vector to the KSHIFT node. Not sure how to test this as we have tests that exercise this code, but nothing failed for the types not matching. Since all the k-registers use equivalent register classes everything just ends up working. llvm-svn: 369228
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
dfe5f3eb0a0055244d019ede9214e7df8b7a9cca
by zeratul976[clangd] Update features table in the docs with links to LSP extension proposals Also update the semantic coloring entry to reflect it being supported in clangd now. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65373 llvm-svn: 369229
|
 | clang-tools-extra/docs/clangd/Features.rst |
Commit
4a198a7f990812f6a64ecb2d20d3503c66b5dea2
by nuta[llvm-objcopy][MachO] Support load commands used in executables/shared libraries Summary: This patch implements copying some load commands that appear in executables/shared libraries such as the indirect symbol table. I don't add tests intentionally because this patch is incomplete: we need a layout algorithm for executables/shared libraries. I'll submit it as a separate patch with tests. Reviewers: alexshap, rupprecht, jhenderson, compnerd Reviewed By: alexshap Subscribers: abrachet, mgorny, mgrang, MaskRay, mtrent, jakehehrlich, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63395 llvm-svn: 369230
|
 | llvm/tools/llvm-objcopy/MachO/MachOReader.h |
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOReader.cpp |
 | llvm/tools/llvm-objcopy/MachO/Object.h |
 | llvm/tools/llvm-objcopy/CMakeLists.txt |
 | llvm/tools/llvm-objcopy/MachO/MachOWriter.h |
 | llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.h |
 | llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp |
Commit
dee9546b8f8386223769e96becc2e24ddcc39de7
by nuta[llvm-objcopy][MachO] Implement a layout algorithm for executables Summary: The layout algorithm for relocatable objects and for executable are somewhat different. This patch implements the latter one based on the algorithm in LLD (MachOFileLayout). Reviewers: alexshap, rupprecht, jhenderson Reviewed By: alexshap Subscribers: jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65539 llvm-svn: 369231
|
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp |
 | llvm/test/tools/llvm-objcopy/MachO/basic-executable-copy.test |
Commit
ebb7ddc6330b28b8c7e53d4c68d3684c127a41c1
by craig.topper[X86] Teach lower1BitShuffle to match right shifts with upper zero elements on types that don't natively support KSHIFT. We can support these by widening to a supported type, then shifting all the way to the left and then back to the right to ensure that we shift in zeroes. llvm-svn: 369232
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/kshift.ll |
Commit
38426c114f6e50f8638bdd656f2f423151bc8eca
by maskray[MC] Don't emit .symver redirected symbols to the symbol table GNU as keeps the original symbol in the symbol table for defined @ and @@, but suppresses it in other cases (@@@ or undefined). The original symbol is usually undesired: In a shared object, the original symbol can be localized with a version script, but it is hard to remove/localize in an archive: 1) a post-processing step removes the undesired original symbol 2) consumers (executable) of the archive are built with the version script Moreover, it can cause linker issues like binutils PR/18703 if the original symbol name and the base name of the versioned symbol is the same (both ld.bfd and gold have some code to work around defined @ and @@). In lld, if it sees f and f@v1: --version-script =(printf 'v1 {};') => f and f@v1 --version-script =(printf 'v1 { f; };') => f@v1 and f@@v1 It can be argued that @@@ added on 2000-11-13 corrected the @ and @@ mistake. This patch catches some more multiple version errors (defined @ and @@), and consistently suppress the original symbol. This addresses all the problems listed above. If the user wants other aliases to the versioned symbol, they can copy the original symbol to other symbol names with .set directive, e.g. .symver f, f@v1 # emit f@v1 but not f into .symtab .set f_impl, f # emit f_impl into .symtab llvm-svn: 369233
|
 | llvm/lib/MC/ELFObjectWriter.cpp |
 | llvm/test/MC/ELF/multiple-different-symver.s |
 | llvm/test/MC/ELF/symver.s |
 | llvm/test/MC/ELF/symver-multiple-version.s |
 | llvm/test/MC/PowerPC/ppc64-localentry-symbols.s |
 | llvm/test/MC/ARM/arm-elf-symver.s |
 | llvm/test/LTO/X86/symver-asm.ll |
 | llvm/test/LTO/X86/symver-asm2.ll |
Commit
1e335611adc863201a3522705d30b989e76d2b66
by nutaRevert r369230 and r369231 Looks these commits break CI builds: - http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-gn/builds/4159 This commit reverts r369230 and r369231 (git coommit: 4a198a7 and dee9546). llvm-svn: 369234
|
 | llvm/tools/llvm-objcopy/MachO/MachOWriter.h |
 | llvm/tools/llvm-objcopy/CMakeLists.txt |
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp |
 | llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.h |
 | llvm/tools/llvm-objcopy/MachO/MachOReader.cpp |
 | llvm/tools/llvm-objcopy/MachO/Object.h |
 | llvm/test/tools/llvm-objcopy/MachO/basic-executable-copy.test |
 | llvm/tools/llvm-objcopy/MachO/MachOReader.h |
Commit
0697bcd1276111e2917b090cde8535ee2f61fbe0
by jan.kratochvil[lldb] Remove unused inheritance in RegularExpression D66174 left inherited llvm::Regex which is now a member variable there. Approved as a part of: https://reviews.llvm.org/D66392#1634575 llvm-svn: 369235
|
 | lldb/include/lldb/Utility/RegularExpression.h |
Commit
b1752f670f3d6393306dd5d37546b6e23384d8a2
by dljRevert [Attributor] Fix: Do not partially resolve returned calls. This reverts r369160 (git commit f72d9b1c97b41fff48ad1eecbba59a29c171bff4) r369160 caused some tests to fail under UBSAN. See thread on llvm-commits. llvm-svn: 369236
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
21599876be328ff6b5c6cf09544ade7e337cb48d
by Raphael Isemann[lldb][NFC] Address review comments to StringList for-loop support llvm-svn: 369237
|
 | lldb/source/Commands/CommandObjectType.cpp |
 | lldb/include/lldb/Utility/StringList.h |
 | lldb/source/Utility/StringList.cpp |
 | lldb/unittests/Utility/StringListTest.cpp |
Commit
17587b36d1928c3399d4d9af6daa052c0cdd6327
by jvikstrom[clangd] Added special HighlightingKind for function parameters. Summary: This means that function parameters are no longer highlighted as variable.other.cpp but instead as variable.parameter.cpp which is the more "correct" TextMate scope for them. Reviewers: hokein, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66335 llvm-svn: 369238
|
 | clang-tools-extra/clangd/test/semantic-highlighting.test |
 | clang-tools-extra/clangd/SemanticHighlighting.cpp |
 | clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp |
 | clang-tools-extra/clangd/SemanticHighlighting.h |
Commit
b127771f7d2972acad81550e03cc4e1e3c1fcd1c
by maskray[MC] Delete unnecessary diagnostic: "No relocation available to represent this relative expression" Replace - error: No relocation available to represent this relative expression with + error: symbol 'undef' can not be undefined in a subtraction expression or + error: Cannot represent a difference across sections Keep !IsPcRel as an assertion after the two diagnostic checks are done. llvm-svn: 369239
|
 | llvm/test/MC/ELF/bad-expr2.s |
 | llvm/lib/MC/ELFObjectWriter.cpp |
 | llvm/test/MC/AArch64/error-location.s |
 | llvm/test/MC/AArch64/adr-diagnostics.s |
 | llvm/test/MC/ARM/error-location.s |
Commit
81094aad617468208084b574ed7063ed7af7b227
by Raphael Isemann[lldb][NFC] Use GetMaxStringLength in CommandObjectApropos::DoExecute llvm-svn: 369240
|
 | lldb/source/Commands/CommandObjectApropos.cpp |
Commit
cedd0d9a6e4b433e1cd6585d1d4d152eb5e60b11
by dljRevert [Attributor] Fix: Make sure we set the changed flag This reverts r369159 (git commit cbaf1fdea2de891bdbc49cdec89ae2077e6b9ed0) r369160 caused a test to fail under UBSAN. See thread on llvm-commits. llvm-svn: 369241
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
b8639f5c0fd82d4c29eb55590e1dfaf0a54dbb94
by Raphael Isemann[lldb][NFC] Remove StringList::AutoComplete We don't need this very specific function in StringList that we only call once in LLDB. llvm-svn: 369242
|
 | lldb/source/Commands/CommandCompletions.cpp |
 | lldb/source/Utility/StringList.cpp |
 | lldb/include/lldb/Utility/StringList.h |
Commit
b58ba8aae710cba925e3c59accde6695c1d40aa3
by jeremy.morse.llvm[DebugInfo] Test for variable range un-coalescing LiveDebugVariables can coalesce ranges of variable locations across multiple basic blocks. However when it recreates DBG_VALUE instructions, it has to recreate one DBG_VALUE per block, otherwise it doesn't represent the pre-regalloc layout and variable assignments can go missing. This feature works -- however while mucking around with LiveDebugVariables, I commented the relevant code it out and no tests failed. Thus, here's a test that checks LiveDebugVariables preserves DBG_VALUEs across block boundaries. Differential Revision: https://reviews.llvm.org/D66347 llvm-svn: 369243
|
 | llvm/test/DebugInfo/MIR/X86/livedebugvars-crossbb-interval.mir |
Commit
2bfc13fde1296a63dba5d5589aac9aa5ae45949e
by david.green[ARM] MVE sext costs This adds some sext costs for MVE, taken from the length of assembly sequences that we currently generate. Differential Revision: https://reviews.llvm.org/D66010 llvm-svn: 369244
|
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/ARM/cast.ll |
Commit
f312c1ecf4bc7003f4b10231a3147d004a39bfae
by sam.tebbs[ARM] Add support for MVE vaddv This patch adds vecreduce_add and the relevant instruction selection for vaddv. Differential revision: https://reviews.llvm.org/D66085 llvm-svn: 369245
|
 | llvm/lib/Target/ARM/ARMInstrMVE.td |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.h |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/test/CodeGen/Thumb2/mve-vaddv.ll |
 | llvm/include/llvm/Target/TargetSelectionDAG.td |
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
Commit
2cafd872fb97f2899ac0f1b01ed82ee88581c86d
by peter.smith[ELF][ARM] Add a test that maxes out the thunk convergence limit Add a test that takes the maximum amount of passes permitted to converge. This will make sure that any symbol defined in a linker script gets the correct value and that any other convergence limit involving symbol address doesn't restrict Thunk convergence. Differential Revision: https://reviews.llvm.org/D66346 llvm-svn: 369246
|
 | lld/test/ELF/arm-thunk-many-passes.s |
Commit
176bbd5cde362ad965dcda5cc72b655117685a5a
by jeremy.morse.llvm[DebugInfo] Make postra sinking of DBG_VALUEs subregister-safe Currently the machine instruction sinker identifies DBG_VALUE insts that also need to sink by comparing register numbers. Unfortunately this isn't safe, because (after register allocation) a DBG_VALUE may read a register that aliases what's being sunk. To fix this, identify the DBG_VALUEs that need to sink by recording & examining their register units. Register units gives us the following guarantee: "Two registers overlap if and only if they have a common register unit" [MCRegisterInfo.h] Thus we can always identify aliasing DBG_VALUEs if the set of register units read by the DBG_VALUE, and the register units of the instruction being sunk, intersect. (MachineSink already uses classes like "LiveRegUnits" for determining sinking validity anyway). The test added checks for super and subregister DBG_VALUE reads of a sunk copy being sunk as well. Differential Revision: https://reviews.llvm.org/D58191 llvm-svn: 369247
|
 | llvm/lib/CodeGen/MachineSink.cpp |
 | llvm/test/DebugInfo/MIR/X86/postra-subreg-sink.mir |
Commit
d9a071c54be5531ea0b0b949a15497a9c7733755
by maskray[MC] Simplify ELFObjectWriter::recordRelocation. NFC llvm-svn: 369248
|
 | llvm/lib/MC/ELFObjectWriter.cpp |
Commit
fb443746a89d26987e03d1828a9e0d274de6f78a
by Raphael Isemann[lldb][NFC] Add a few more completion tests to increase test coverage These tests are mostly trying to reach the different completion functions in CommandCompletions.cpp (::ArchitectureNames, ::DiskFiles, ::Modules). llvm-svn: 369249
|
 | lldb/packages/Python/lldbsuite/test/functionalities/completion/TestCompletion.py |
Commit
b38bac3699d6a9377254899b84edc483d495b302
by spatel[SLP] reduce duplicated code; NFC llvm-svn: 369250
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
Commit
eb801abd581730d532eee7d02abb41ede72e1e2b
by anastasia.stulova[OpenCL] Fix addr space deduction for pointers/references to arrays. Rewrite the logic for detecting if we are deducing addr space of a pointee type to take into account special logic for arrays. For pointers/references to arrays we can have any number of parentheses expressions as well as nested pointers. Differential Revision: https://reviews.llvm.org/D66137 llvm-svn: 369251
|
 | clang/lib/Sema/SemaType.cpp |
 | clang/test/SemaOpenCLCXX/address-space-deduction.cl |
Commit
0684132107e51b506b31e3be7dc2e3181b90a4b4
by Raphael Isemann[lldb][NFC] Use CompletionRequest in Variable::AutoComplete llvm-svn: 369252
|
 | lldb/source/Symbol/Variable.cpp |
Commit
b21a3654f0b916e885c6e55af36fecefdd2569b5
by sven.vanhaastregt[OpenCL] Add generic type handling for builtin functions Generic types are an abstraction of type sets. It mimics the way functions are defined in the OpenCL specification. For example, floatN can abstract all the vector sizes of the float type. This allows to * stick more closely to the specification, which uses generic types; * factorize definitions of functions with numerous prototypes in the tablegen file; and * reduce the memory impact of functions with many overloads. Patch by Pierre Gondois and Sven van Haastregt. Differential Revision: https://reviews.llvm.org/D65456 llvm-svn: 369253
|
 | clang/lib/Sema/OpenCLBuiltins.td |
 | clang/lib/Sema/SemaLookup.cpp |
 | clang/test/SemaOpenCL/fdeclare-opencl-builtins.cl |
 | clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp |
Commit
6520ba3e94eb219a779c4e69d15f0464c325fb97
by maskray[llvm-readobj] unwrapOrError: remove unnecessary llvm_unreachable after r369194 llvm-svn: 369254
|
 | llvm/tools/llvm-readobj/llvm-readobj.h |
Commit
0f9b5f86f1cd06c4a7fc9679d44f334796be653f
by spatel[SLP] add test that requires shuffle of scalars; NFC llvm-svn: 369255
|
 | llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll |
Commit
88df53e6eaf355271e90fa928df53ab6ea244a69
by david.stenberg[DebugInfo] Allow bundled calls in the MIR's call site info Summary: Extend the MIR parser and writer so that the call site information can refer to calls that are bundled. Reviewers: aprantl, asowda, NikolaPrica, djtodoro, ivanbaev, vsk Reviewed By: aprantl Subscribers: arsenm, hiraditya, llvm-commits Tags: #debug-info, #llvm Differential Revision: https://reviews.llvm.org/D66145 llvm-svn: 369256
|
 | llvm/lib/CodeGen/MIRParser/MIRParser.cpp |
 | llvm/lib/CodeGen/MIRPrinter.cpp |
 | llvm/test/CodeGen/MIR/Hexagon/bundled-call-site-info.mir |
Commit
1c1f8f215d89f1946ec4942c0d4ce8d4bd4f33f3
by asb[RISCV] Don't force absolute FK_Data_X fixups to relocs The current behavior of shouldForceRelocation forces relocations for the majority of fixups when relaxation is enabled. This makes sense for fixups which incorporate symbols but is unnecessary for simple data fixups where the fixup target is already resolved to an absolute value. Differential Revision: https://reviews.llvm.org/D63404 Patch by Edward Jones. llvm-svn: 369257
|
 | llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp |
 | llvm/test/MC/RISCV/fde-reloc.s |
 | llvm/test/MC/RISCV/linker-relaxation.s |
Commit
a0a4c6b7224e029d736c0e2f58df1493770d93c4
by sidneym[lld][Hexagon] Add GOTREL relocations. Add GOTREL relocation support. (S + A - GOT) Differential Revision: https://reviews.llvm.org/D66260 llvm-svn: 369258
|
 | lld/test/ELF/hexagon-gotrel.s |
 | lld/ELF/Arch/Hexagon.cpp |
Commit
b6ab533b93420e828ea6f555bc7d34d91cb07a34
by aaronDon't keep stale pointers to LoopInfos. CGLoopInfo was keeping pointers to parent loop LoopInfos, but when the loop info vector grew, it reallocated the storage and invalidated all of the parent pointers, causing use-after-free. Manage the lifetimes of the LoopInfos separately so that the pointers aren't stale. Patch by Bevin Hansson. llvm-svn: 369259
|
 | clang/lib/CodeGen/CGLoopInfo.cpp |
 | clang/test/CodeGen/loop-info-asan.c |
 | clang/lib/CodeGen/CGLoopInfo.h |
Commit
c8a1dfc484c94238c01567247c0cf83584f8719c
by maskray[ELF][Hexagon] Improve error message for unknown relocations Like rLLD354040 Previously, for unknown relocation types, in -no-pie/-pie mode, we got something like: foo.o: unrecognized relocation ... In -shared mode: error: can't create dynamic relocation ... against symbol: yyy in readonly segment Delete the default case from Hexagon::getRelExpr and add the error there. We will get consistent error message like `error: unknown relocation (1024) against symbol foo` Reviewed By: sidneym Differential Revision: https://reviews.llvm.org/D66275 llvm-svn: 369260
|
 | lld/ELF/Arch/Hexagon.cpp |
Commit
0776da5236e032d8b2419f56ceff990a668c7d89
by Jinsong Ji[PeepholeOptimizer] Don't assume bitcast def always has input Summary: If we have a MI marked with bitcast bits, but without input operands, PeepholeOptimizer might crash with assert. eg: If we apply the changes in PPCInstrVSX.td as in this patch: [(set v4i32:$XT, (bitconvert (v16i8 immAllOnesV)))]>; We will get assert in PeepholeOptimizer. ``` llvm-lit llvm-project/llvm/test/CodeGen/PowerPC/build-vector-tests.ll -v llvm-project/llvm/include/llvm/CodeGen/MachineInstr.h:417: const llvm::MachineOperand &llvm::MachineInstr::getOperand(unsigned int) const: Assertion `i < getNumOperands() && "getOperand() out of range!"' failed. ``` The fix is to abort if we found out of bound access. Reviewers: qcolombet, MatzeB, hfinkel, arsenm Reviewed By: qcolombet Subscribers: wdng, arsenm, steven.zhang, wuzish, nemanjai, hiraditya, kbarton, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65542 llvm-svn: 369261
|
 | llvm/lib/Target/PowerPC/PPCInstrVSX.td |
 | llvm/lib/CodeGen/PeepholeOptimizer.cpp |
 | llvm/test/CodeGen/PowerPC/bitcast-peephole.mir |
Commit
ac0e6c6502f0bf2456cab6671b4a40c999781438
by maskray[ELF] Move (copy relocation/canonical PLT) before error checking In processRelocAux(), we handle errors before copy relocation/canonical PLT. This makes error checking a bit complex because we have to check for conditions that will be allowed by copy relocation/canonical PLT. Instead, move copy relocation/canonical PLT before error checking. This simplifies the previous clumsy error checking code `config->shared || (config->pie && expr == R_ABS && type != target->symbolicRel)` to the simple `config->isPic`. Some diagnostics can be reported in different ways. The code motion changes diagnostics for some contrived test cases: * copy-rel-pie-error.s -> copy-rel-pie2.s: It was rejected before but accepted now. ld.bfd also accepts the case. * copy-errors.s: "cannot preempt symbol" changes to "symbol 'bar' has no type" * got32{,x}-i386.s: the suggestion changes from "-fPIC or -Wl,-z,notext" to "-fPIE" * x86-64-dyn-rel-error5.s: one diagnostic changes for -pie case Reviewed By: peter.smith Differential Revision: https://reviews.llvm.org/D66007 llvm-svn: 369262
|
 | lld/test/ELF/copy-rel-pie2.s |
 | lld/test/ELF/got32-i386.s |
 | lld/test/ELF/x86-64-dyn-rel-error5.s |
 | lld/test/ELF/copy-errors.s |
 | lld/test/ELF/copy-rel-pie-error.s |
 | lld/ELF/Relocations.cpp |
 | lld/test/ELF/got32x-i386.s |
Commit
9d5e8a476ff5e5823a2d34274dbcaa8d200e9f85
by grimar[Object/COFF.h] - Stop returning std::error_code in a few methods. NFCI. There are 4 methods that return std::error_code now, though they do not have to because they are always succeed. I refactored them. This allows to simplify the code in tools a bit. llvm-svn: 369263
|
 | llvm/tools/llvm-readobj/COFFDumper.cpp |
 | llvm/include/llvm/Object/COFF.h |
 | llvm/tools/obj2yaml/coff2yaml.cpp |
 | llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp |
 | llvm/tools/llvm-objcopy/COFF/Reader.cpp |
 | llvm/lib/Object/COFFObjectFile.cpp |
 | llvm/tools/llvm-objdump/COFFDump.cpp |
Commit
81301541159280ae66eeeda32786c474ff76264c
by deadalnixAutomatically generate AVX512 test cases. NFC llvm-svn: 369264
|
 | llvm/test/CodeGen/X86/avx512-mask-spills.ll |
 | llvm/test/CodeGen/X86/avx512-inc-dec.ll |
 | llvm/test/CodeGen/X86/avx512-memfold.ll |
 | llvm/test/CodeGen/X86/avx512-nontemporal.ll |
 | llvm/test/CodeGen/X86/avx512-scalar_mask.ll |
 | llvm/test/CodeGen/X86/avx512-fma-commute.ll |
 | llvm/test/CodeGen/X86/avx512vl-nontemporal.ll |
 | llvm/test/CodeGen/X86/avx512-bugfix-25270.ll |
 | llvm/test/CodeGen/X86/avx512-intel-ocl.ll |
Commit
42336682b211e7d9909a6e9077e0bd87e8085122
by grimar[llvm-objdump] - Restore lost comment. It was removed by mistake in r369263 (D66417). llvm-svn: 369265
|
 | llvm/tools/llvm-objdump/COFFDump.cpp |
Commit
a023d6b7de784719398cfd81b9f2fe871fa35293
by sguelton[nfc] Silent gcc warning llvm-svn: 369266
|
 | llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp |
Commit
6632ad5851d6f404193a81c15664425ec5706e4a
by Raphael Isemann[lldb][NFC] Stop using GetNumberOfMatches in CompletionRequest test This function is just a wrapper for GetNumberOfResults and will be removed soon. This patch just changes all calls to GetNumberOfResults where possible (which is currently just the unit test). llvm-svn: 369267
|
 | lldb/unittests/Utility/CompletionRequestTest.cpp |
Commit
edfaee08115376467d1c95573de991aebfdaeb42
by lebedev.ri[TargetLowering] x s% C == 0 fold: vector divisor with INT_MIN handling Summary: The general fold is only valid for positive divisors. Which effectively means, it is invalid for `INT_MIN` divisors, and we currently bailout if we see them. But that is too strict, we can just fix-up the results. For that, let's do a second computation 'in parallel': ``` Name: srem -> and Pre: isPowerOf2(C) %o = srem i8 %X, C %r = icmp eq %o, 0 => %n = and i8 %X, C-1 %r = icmp eq %n, 0 ``` https://rise4fun.com/Alive/Sup And then just blend results: if the divisor was `INT_MIN`, pick the value we got via bit-test, else pick the value from general fold. There's interesting observation - `ISD::ROTR` is set to `LegalizeAction::Expand` before AVX512, so we should not treat `INT_MIN` divisor as even; and as it can be seen while `@test_srem_odd_even_one` improves on all run-lines, `@test_srem_odd_even_INT_MIN` only improves for AVX512. Reviewers: RKSimon, craig.topper, spatel Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66300 llvm-svn: 369268
|
 | llvm/test/CodeGen/X86/srem-seteq-vec-nonsplat.ll |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
Commit
08c77b97c0620b3d8e058e4780bb4f62d81c5958
by pavelFilesystem/Windows: fix inconsistency in readNativeFileSlice API Summary: The windows version implementation of readNativeFileSlice, was trying to match the POSIX behavior of not treating EOF as an error, but it was only handling the case of reading from a pipe. Attempting to read past the end of a regular file returns a slightly different error code, which needs to be handled too. This patch adds ERROR_HANDLE_EOF to the list of error codes to be treated as an end of file, and adds some unit tests for the API. This issue was found while attempting to land D66224, which caused a bunch of lldb tests to start failing on windows. Reviewers: rnk, aganea Subscribers: kristina, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66344 llvm-svn: 369269
|
 | llvm/lib/Support/Windows/Path.inc |
 | llvm/unittests/Support/Path.cpp |
Commit
471bbb6e72830ad24d8079c5ee2acf0ec1fac961
by z.zoelec2[libc++] reverts commit a5f5aad568bb7a91ceee47641f3076ac339ef8c7. The commit being reverted caused segfaults when building with libc++ and GCC (and possibly other configurations). Differential Revision: https://reviews.llvm.org/D62868 llvm-svn: 369270
|
 | libcxx/include/memory |
Commit
ec4540d8a62cfef017173ce7309adcb9beca4e53
by maskray[ELF] Simplify processRelocAux and allow a corner-case error After D66007/r369262, if the control flow reaches `if (sym.isUndefined())`, we know: * The relocation is not a link-time constant => symbol is preemptable => Undefined or SharedSymbol * Not an undef weak. * -no-pie. * The symbol type is neither STT_OBJECT nor STT_FUNC. ld.lld --export-dynamic --unresolved-symbols=ignore-all %t.o can satisfy these conditions. Delete the isUndefined() test so that we error `symbol '...' has no type`, because we don't know the type to make the decision to create copy relocation/canonical PLT. llvm-svn: 369271
|
 | lld/test/ELF/x86-64-dyn-rel-error.s |
 | lld/ELF/Relocations.cpp |
Commit
8880ac648ceb337868b7c4949776e50f5fd1cad0
by Jonas Devlieghere[dotest] Add --dwarf-version to override the tested DWARF version. On the matrix bot on GreenDragon [1] we want to run the test suite against different DWARF versions. The idea here is not to replace targeted tests for certain DWARF features, but rather to provide an easy way to support this configuration. [1] http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-matrix/ Differential revision: https://reviews.llvm.org/D66370 llvm-svn: 369272
|
 | lldb/packages/Python/lldbsuite/test/dotest.py |
 | lldb/packages/Python/lldbsuite/test/configuration.py |
 | lldb/packages/Python/lldbsuite/test/decorators.py |
 | lldb/packages/Python/lldbsuite/test/dotest_args.py |
 | lldb/packages/Python/lldbsuite/test/lldbtest.py |
Commit
f497da304161c58388d2cc1e09507cde87d51eaa
by jvikstrom[clangd] Added highlighting for tokens that are macro arguments. Summary: Adds semantic highlighting for tokens that are a macro argument. Example: ``` D_V(SomeVar); ``` The "SomeVar" inside the macro is highlighted as a variable now. Tokens that are in a macro body expansion are ignored in this patch for three reasons. * The spelling loc is inside the macro "definition" meaning it would highlight inside the macro definition (could probably easily be fixed by using getExpansionLoc instead of getSpellingLoc?) * If wanting to highlight the macro definition this could create duplicate tokens. And if the tokens are of different types there would be conflicts (tokens in the same range but with different types). Say a macro defines some name and both a variable declaration and a function use this, there would be two tokens in the macro definition but one with Kind "Variable" and the other with Kind "Function". * Thirdly, macro body expansions could come from a file that is not the main file (easily fixed, just check that the Loc is in the main file and not even a problem if we wanted to highlight the actual macro "invocation") Reviewers: hokein, sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64741 llvm-svn: 369275
|
 | clang-tools-extra/clangd/SemanticHighlighting.cpp |
 | clang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp |
Commit
e8e914e6404b3402ca80aa75f3944e8fee662de6
by sbc[lld][WebAssembly] Honor --no-export-dynamic even with -shared Differential Revision: https://reviews.llvm.org/D66359 llvm-svn: 369276
|
 | lld/wasm/Driver.cpp |
 | lld/test/wasm/shared-export-dynamic.ll |
Commit
8682281063d6477e01aaa5f06832e03d3b8a702f
by sstipanovic[Attributor] -attributor-verify has false positives. Temporarily remove it, until resolved. llvm-svn: 369277
|
 | llvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll |
Commit
ecbaba672e18a5d321b80dbfde9f56770469fd6e
by Andrea_DiBiagio[X86] Added extensive scheduling model tests for all the CMPXCHG variants. NFC Addresses a review comment in D66424 llvm-svn: 369279
|
 | llvm/test/tools/llvm-mca/X86/SandyBridge/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Znver1/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Broadwell/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Haswell/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/SLM/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/BtVer2/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Barcelona/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Generic/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Atom/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-cmpxchg.s |
Commit
296757c07ccc66a5d5a8f3f7cbc769faef49cfd9
by Louis Dionne[libc++] Add XFAIL for is_base_of test on AppleClang 11 llvm-svn: 369280
|
 | libcxx/test/std/utilities/meta/meta.rel/is_base_of_union.pass.cpp |
Commit
62b072d413eed260fb526df5edd87691a66f0c60
by erich.keaneImplement P1668R1 Allow inline assembly statements in unexecuted branches of constexpr functions. llvm-svn: 369281
|
 | clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp |
 | clang/test/Lexer/cxx-features.cpp |
 | clang/test/SemaCXX/cxx1z-constexpr-lambdas.cpp |
 | clang/lib/Sema/SemaDeclCXX.cpp |
 | clang/lib/Frontend/InitPreprocessor.cpp |
Commit
ab00f237ac9db0fb91120bf4a5454f44ad31cf7a
by erich.keaneUpdate cxx_status.html with P1668 status. llvm-svn: 369282
|
 | clang/www/cxx_status.html |
Commit
93c27871936c797380aef9d47a969c088edb0bff
by craig.topper[CGP] Remove ModifiedDT from the makeBitReverse loop I don't think anything in this loop modifies the control flow and we don't restart any iteration after setting the flag. This code was added in http://reviews.llvm.org/D16893 but looking at the test case added there the code that caused the dominator tree to change was merging blocks with their predecessor not the bitreverse optimization. Differential Revision: https://reviews.llvm.org/D66366 llvm-svn: 369283
|
 | llvm/lib/CodeGen/CodeGenPrepare.cpp |
Commit
f04d246d7d13868e2d0922b9743d0b3f4c76c515
by erich.keaneFix test where diagnostics changed in P1668 implementation llvm-svn: 369284
|
 | clang/test/SemaCXX/cxx1z-constexpr-lambdas.cpp |
Commit
949f1908102ee6ae66e439909ded0fe6e8c5d695
by David CARLIER[Sanitizer] arc4random interception on Mac Reviewers: yln,vitalybuka Reviewed By: yln Differential Revision: https://reviews.llvm.org/D66391 llvm-svn: 369285
|
 | compiler-rt/test/sanitizer_common/TestCases/Posix/arc4random.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h |
Commit
a8abe1f82899847e29c4f1d66c32fad17dacb62f
by erich.keaneFix poorly formatted HTML in the cxx_status.html file caused by adding 1668. llvm-svn: 369286
|
 | clang/www/cxx_status.html |
Commit
a0d92c72620c49aa36b1738a272a2715f7909a6a
by craig.topper[X86] Teach lowerV4I32Shuffle to only use broadcasts if the mask has more than one undef element. Prioritize shifts over broadcast in lowerV8I16Shuffle. The motivating case are the changes in vector-reduce-add.ll where we were doing extra work in the scalar domain instead of shuffling. There may be some one use check that needs to be looked into there, but this patch sidesteps the issue by avoiding broadcasts that aren't really broadcasting. Differential Revision: https://reviews.llvm.org/D66071 llvm-svn: 369287
|
 | llvm/test/CodeGen/X86/insertelement-shuffle.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/vector-shuffle-512-v16.ll |
 | llvm/test/CodeGen/X86/vector-shuffle-combining.ll |
 | llvm/test/CodeGen/X86/vector-reduce-add.ll |
 | llvm/test/CodeGen/X86/vector-shuffle-128-v8.ll |
 | llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll |
 | llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll |
 | llvm/test/CodeGen/X86/avg.ll |
 | llvm/test/CodeGen/X86/sse41.ll |
 | llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll |
Commit
bf989187c30f37cfb1bb1496c06fe6047ee15202
by Andrea_DiBiagio[X86] Move scheduling tests for CMPXCHG to the corresponding resources-x86_64.s files. NFC In D66424 it has been requested to move all the new tests added by r369278 into resources-x86_64.s. That is because only the 8b/16 ops should be tested by resources-cmpxchg.s. This partially reverts r369278. llvm-svn: 369288
|
 | llvm/test/tools/llvm-mca/X86/Generic/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/Barcelona/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/Haswell/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/SLM/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/SandyBridge/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Znver1/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Broadwell/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Haswell/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/BdVer2/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/Atom/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/BtVer2/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Generic/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/Znver1/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/BdVer2/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/BtVer2/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/SLM/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Atom/resources-x86_64.s |
 | llvm/test/tools/llvm-mca/X86/Barcelona/resources-cmpxchg.s |
 | llvm/test/tools/llvm-mca/X86/Broadwell/resources-x86_64.s |
Commit
e644d5e230ef34c04e9ed198a9dcc9178721a142
by jlettner[TSan] Rename file to make it clear that it defines interceptors Rename file `tsan_libdispatch.cpp -> tsan_libdispatch_interceptors.cpp` to make it clear that it's main purpose is defining interceptors. llvm-svn: 369289
|
 | compiler-rt/lib/tsan/rtl/tsan_libdispatch_interceptors.cpp |
 | compiler-rt/lib/tsan/CMakeLists.txt |
 | compiler-rt/lib/tsan/rtl/tsan_libdispatch.cpp |
Commit
4340c2cf8fa79731d19a8a94cee87bb280c5b8aa
by peterBuild symbolizer runtime with C++14. Should hopefully fix sanitizer-x86_64-linux bot. llvm-svn: 369290
|
 | compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh |
Commit
1a3fdaf6a6ee0d4ff0bb5daf80c54a9fa5594467
by asbirlea[MemorySSA] Rename uses when inserting memory uses. Summary: When inserting uses from outside the MemorySSA creation, we don't normally need to rename uses, based on the assumption that there will be no inserted Phis (if Def existed that required a Phi, that Phi already exists). However, when dealing with unreachable blocks, MemorySSA will optimize away Phis whose incoming blocks are unreachable, and these Phis end up being re-added when inserting a Use. There are two potential solutions here: 1. Analyze the inserted Phis and clean them up if they are unneeded (current method for cleaning up trivial phis does not cover this) 2. Leave the Phi in place and rename uses, the same way as whe inserting defs. This patch use approach 2. Resolves first test in PR42940. Reviewers: george.burgess.iv Subscribers: Prazek, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66033 llvm-svn: 369291
|
 | llvm/lib/Transforms/Scalar/LICM.cpp |
 | llvm/include/llvm/Analysis/MemorySSAUpdater.h |
 | llvm/lib/Analysis/MemorySSA.cpp |
 | llvm/lib/Analysis/MemorySSAUpdater.cpp |
 | llvm/test/Analysis/MemorySSA/PR42940.ll |
Commit
19bf637eb12c119cdda9fae818813084a9cf2b2a
by sbc[WebAssembly][MC] Allow empty assembly functions Differential Revision: https://reviews.llvm.org/D66434 llvm-svn: 369292
|
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp |
 | llvm/test/MC/WebAssembly/basic-assembly.s |
Commit
0f4e9835c98ae68d53ebd05ac40ada41ddae68aa
by Raphael Isemann[lldb] Make TestIOHandlerCompletion more stable and document it Instead of relying that three tabs show all completions, we should show all remaining completions which will always stop the mode where we show completions. Should fix this test on systems that somehow have more completions that our normal LLDB (as they would end up being stuck in the mode where we show completions). llvm-svn: 369293
|
 | lldb/packages/Python/lldbsuite/test/iohandler/completion/TestIOHandlerCompletion.py |
Commit
056f1b5cc7c2133f0cb3e30e7f24808d321096d7
by jdoerfertRe-apply fixed "[Attributor] Fix: Make sure we set the changed flag" This reverts commit cedd0d9a6e4b433e1cd6585d1d4d152eb5e60b11. Re-apply the original commit but make sure the variables are initialized (even if they are not used) so UBSan is not complaining. llvm-svn: 369294
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
Commit
928071ae4ef5e2e6342afb126518a79fde81cf8b
by benny.kra[Support] Replace sys::Mutex with their standard equivalents. Only use a recursive mutex if it can be locked recursively. llvm-svn: 369295
|
 | llvm/lib/Support/ManagedStatic.cpp |
 | llvm/lib/Support/CrashRecoveryContext.cpp |
 | llvm/lib/Support/Unix/Process.inc |
Commit
3b4ce731fbcc6490da95d8091b384c3ddb3c70d9
by apl[lldb-vscode] add `launchCommands` to handle launch specific commands Summary: This can help `lldb-vscode` handle launch commands associate with remote platform attach request have field `attachCommands` to handle attach specific commands add a corresponding one for launch request if no launch command is provided, create a new target and launch; otherwise, execute the launch command Differential Revision: https://reviews.llvm.org/D65363 Patch by Wanyi Ye <kusmour@gmail.com> llvm-svn: 369296
|
 | lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py |
 | lldb/tools/lldb-vscode/lldb-vscode.cpp |
 | lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py |
 | lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/launch/TestVSCode_launch.py |