LLVM/llvm 375353zorg/trunk/zorg/buildbot/builders ClangLTOBuilder.py

Handle is_legacy_mode in ClangLTOBuilder. Refactored to simplify the code.

LLVM/llvm 375352meta/trunk github-usernames.txt

Requesting github commit access for rjmccall

LLVM/llvm 375351meta/trunk github-usernames.txt

Request commit access for aaronpuchert

LLVM/llvm 375350lldb/trunk/source/Plugins/ScriptInterpreter/Python PythonDataObjects.h PythonDataObjects.cpp, lldb/trunk/unittests/ScriptInterpreter/Python PythonDataObjectsTests.cpp

eliminate nontrivial Reset(...) from TypedPythonObject

This deletes `Reset(...)`, except for the no-argument form `Reset()`
from `TypedPythonObject`, and therefore from `PythonString`, `PythonList`,

It updates the various callers to use assignment, `As<>`, `Take<>`,
and `Retain<>`, as appropriate.

followon to https://reviews.llvm.org/D69080

Reviewers: JDevlieghere, clayborg, labath, jingham

Reviewed By: labath

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D69133

LLVM/llvm 375349llvm/trunk/lib/Analysis ScalarEvolution.cpp, llvm/trunk/test/Analysis/ScalarEvolution umin-umax-folds.ll sext-mul.ll

[SCEV] Simplify umin/max of zext and sext of the same value

This is a common idiom which arises after induction variables are widened, and we have two 
or more exit conditions.  Interestingly, we don't have instcombine or instsimplify support 
for this either.

Differential Revision: https://reviews.llvm.org/D69006

LLVM/llvm 375348llvm/trunk/lib/Target/X86 X86ISelLowering.cpp

[X86] Pulled out helper to decode target shuffle element sentinel values to 'Zeroable' 
known undef/zero bits. NFCI.

Renamed 'resolveTargetShuffleAndZeroables' to 'resolveTargetShuffleFromZeroables' to 

LLVM/llvm 375347llvm/trunk/include/llvm/CodeGen TargetLowering.h, llvm/trunk/lib/CodeGen/SelectionDAG TargetLowering.cpp

[TargetLowering][DAGCombine][MSP430] add/use hook for Shift Amount Threshold (1/2)

Provides a TLI hook to allow targets to relax the emission of shifts, thus enabling
codegen improvements on targets with no multiple shift instructions and cheap selects
or branches.

Contributes to a Fix for PR43559:

Patch by: @joanlluch (Joan LLuch)

Differential Revision: https://reviews.llvm.org/D69116

LLVM/llvm 375346llvm/trunk/unittests/Target/ARM CMakeLists.txt

[ARM] Add dependency on GlobalISel for unit tests to fix shared libs build

The unit test uses GlobalISel but the dependency is not listed in the
CMakeLists.txt file which causes failures in shared libs build with GCC.

This just adds the dependency.

Differential revision: https://reviews.llvm.org/D69064

LLVM/llvm 375345llvm/trunk/test/CodeGen/MSP430 shift-amount-threshold.ll

[MSP430] Shift Amount Threshold in DAGCombine (Baseline Tests); NFC

Patch by: @joanlluch (Joan LLuch)

Differential Revision: https://reviews.llvm.org/D69099

LLVM/llvm 375344www/trunk/devmtg/2019-10 index.html

Add roundtable.

LLVM/llvm 375343www/trunk/devmtg/2019-10 index.html

Move a roundtable.

LLVM/llvm 375342llvm/trunk/lib/Target/X86 X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 vector-reduce-mul.ll vector-sext.ll

[X86][SSE] lowerV16I8Shuffle - tryToWidenViaDuplication - undef unpack args

tryToWidenViaDuplication lowers using the 
shuffle_v8i16(unpack_v16i8(shuffle_v8i16(x),shuffle_v8i16(x))) pattern, but the unpack 
only needs the even/odd 16i8 args if the original v16i8 shuffle mask references the 
even/odd elements - which isn't true for many extension style shuffles.

LLVM/llvm 375341llvm/trunk/lib/Target/X86 X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 haddsub-3.ll scalar-int-to-fp.ll

[X86][SSE] LowerUINT_TO_FP_i64 - only use HADDPD for size/fast-hops

We were always generating a single source HADDPD, but really we should only do this if 
shouldUseHorizontalOp says its a good idea.

Differential Revision: https://reviews.llvm.org/D69175

LLVM/llvm 375340libcxx/trunk/include __config

Refine check for `_LIBCPP_C_HAS_NO_GETS` on FreeBSD

In D67316 we added `_LIBCPP_C_HAS_NO_GETS` to signal that the C library
does not provide `gets()`, and added a test for FreeBSD 13 or higher,
using the compiler-defined `__FreeBSD__` macro.

Unfortunately this did not work that well for FreeBSD's own CI process,
since the gcc compilers used for some architectures define `__FreeBSD__`
to match the build host, not the target.

Instead, we should use the `__FreeBSD_version` macro from the userland
header `<osreldate.h>`, which is more fine-grained.  See also

Reviewers: EricWF, mclow.lists, emaste, ldionne

Reviewed By: emaste, ldionne

Subscribers: dexonsmith, bsdjhb, krytarowski, christof, ldionne, libcxx-commits

Differential Revision: https://reviews.llvm.org/D69174

LLVM/llvm 375339llvm/trunk/docs CMake.rst

Explicit in the doc the current list of projects (with easy copy and paste)

LLVM/llvm 375338cfe/trunk/docs Modules.rst, cfe/trunk/include/clang/Driver CC1Options.td

Revert "[Implicit Modules] Add -cc1 option -fmodules-strict-context-hash which includes 
search paths and diagnostics." and "[Docs] Fix header level."

The test doesn't work on Windows. I'll fix it and recommit later.

LLVM/llvm 375337llvm/trunk/docs CMake.rst

Make it clear in the doc that 'all' in LLVM_ENABLE_PROJECTS does install ALL projects

LLVM/llvm 375336zorg/trunk/zorg/buildbot/builders LLDPerformanceTestsuite.py

Handle is_legacy_mode in LLDPerformanceTestsuite.

LLVM/llvm 375335www/trunk/devmtg/2019-10 sponsors.incl

Fix some layout issues.

LLVM/llvm 375334lldb/trunk/packages/Python/lldbsuite/test/commands/expression/formatters TestFormatters.py formatters.py, lldb/trunk/scripts/Python python-wrapper.swig

convert LLDBSwigPythonCallTypeScript to ArgInfo::max_positional_args

This patch converts another user of ArgInfo::count over to
use ArgInfo::max_positional_args instead.   I also add a test
to make sure both documented signatures for python type formatters

Reviewers: JDevlieghere, clayborg, labath, jingham

Reviewed By: labath

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D69153

LLVM/llvm 375333lldb/trunk/packages/Python/lldbsuite/test/commands/command/script callables.py py_import, lldb/trunk/scripts/Python python-wrapper.swig

[LLDB] bugfix: command script add -f doesn't work for some callables

When users define a debugger command from python, they provide a callable
object.   Because the signature of the function has been extended, LLDB
needs to inspect the number of parameters the callable can take.

The rule it was using to decide was weird, apparently not tested, and
giving wrong results for some kinds of python callables.

This patch replaces the weird rule with a simple one: if the callable can
take 5 arguments, it gets the 5 argument version of the signature.
Otherwise it gets the old 4 argument version.

It also adds tests with a bunch of different kinds of python callables
with both 4 and 5 arguments.

Reviewers: JDevlieghere, clayborg, labath, jingham

Reviewed By: labath

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D69014

LLVM/llvm 375332www/trunk/devmtg/2019-10 index.html

Add round tables.

LLVM/llvm 375331zorg/trunk/zorg/buildbot/process factory.py

Added the step name param to LLVMBuildFactory.addGetSourcecodeForProject.

LLVM/llvm 375330zorg/trunk/zorg/buildbot/process factory.py

Added zorg to the list of SVN projects.

LLVM/llvm 375329cfe/trunk/lib/StaticAnalyzer/Core BugReporterVisitors.cpp, cfe/trunk/test/Analysis novoidtypecrash.c

[analyzer] PR43551: Do not dereferce void* in UndefOrNullArgVisitor.

Patch by Kristóf Umann!

Differential Revision: https://reviews.llvm.org/D68591

LLVM/llvm 375328cfe/trunk/lib/StaticAnalyzer/Core BugReporterVisitors.cpp, cfe/trunk/test/Analysis track-control-dependency-conditions.m

[analyzer] Fix a crash on tracking Objective-C 'self' as a control dependency.

'self' was previously never tracked, but now it can be tracked
because it may be part of a condition.

LLVM/llvm 375327cfe/trunk/docs Modules.rst

[Docs] Fix header level.

LLVM/llvm 375326cfe/trunk/docs ReleaseNotes.rst, cfe/trunk/include/clang/Basic DiagnosticSemaKinds.td DiagnosticGroups.td

Add -Wbitwise-conditional-parentheses to warn on mixing '|' and '&' with "?:"

Extend -Wparentheses to cover mixing bitwise-and and bitwise-or with the
conditional operator. There's two main cases seen with this:

unsigned bits1 = 0xf0 | cond ? 0x4 : 0x1;
unsigned bits2 = cond1 ? 0xf0 : 0x10 | cond2 ? 0x5 : 0x2;

// Intended order of evaluation:
unsigned bits1 = 0xf0 | (cond ? 0x4 : 0x1);
unsigned bits2 = (cond1 ? 0xf0 : 0x10) | (cond2 ? 0x5 : 0x2);

// Actual order of evaluation:
unsigned bits1 = (0xf0 | cond) ? 0x4 : 0x1;
unsigned bits2 = cond1 ? 0xf0 : ((0x10 | cond2) ? 0x5 : 0x2);

Differential Revision: https://reviews.llvm.org/D66043

LLVM/llvm 375325llvm/trunk/include/llvm/DebugInfo/CodeView SymbolRecord.h, llvm/trunk/include/llvm/MC MCStreamer.h

Avoid including CodeView/SymbolRecord.h from MCStreamer.h

Move the types needed out so they can be forward declared instead.

LLVM/llvm 375324meta/trunk github-usernames.txt

Request access for malaperle

LLVM/llvm 375323www/trunk/devmtg/2019-10 sponsors.incl, www/trunk/devmtg/2019-10/logos xilinx-logo-red-black.png

Update sponsor logo.

LLVM/llvm 375322cfe/trunk/docs Modules.rst, cfe/trunk/include/clang/Driver CC1Options.td

[Implicit Modules] Add -cc1 option -fmodules-strict-context-hash which includes search 
paths and diagnostics.

Differential Revision: https://reviews.llvm.org/D68528

LLVM/llvm 375321llvm/trunk/test/CodeGen/AMDGPU extract-subvector-equal-length.ll

AMDGPU: Remove optnone from a test

It's not clear why the test had this. I'm unable to break the original
case with the original patch reverted with or without optnone.

This avoids a failure in a future commit.

LLVM/llvm 375320llvm/trunk/include/llvm/CodeGen FunctionLoweringInfo.h TargetInstrInfo.h, llvm/trunk/lib/CodeGen SwiftErrorValueTracking.cpp

Prune a LegacyDivergenceAnalysis and MachineLoopInfo include each

Now X86ISelLowering doesn't depend on many IR analyses.

LLVM/llvm 375319llvm/trunk/include/llvm/CodeGen SelectionDAGISel.h ScheduleDAGInstrs.h, llvm/trunk/lib/CodeGen DFAPacketizer.cpp ScheduleDAGInstrs.cpp

Prune Analysis includes from SelectionDAG.h

Only forward declarations are needed here. Follow-on to r375311.

LLVM/llvm 375318cfe/trunk/docs ReleaseNotes.rst, cfe/trunk/include/clang/Basic DiagnosticSemaKinds.td

New tautological warning for bitwise-or with non-zero constant always true.

Taking a value and the bitwise-or it with a non-zero constant will always
result in a non-zero value. In a boolean context, this is always true.

if (x | 0x4) {}  // always true, intended '&'

This patch creates a new warning group -Wtautological-bitwise-compare for this
warning. It also moves in the existing tautological bitwise comparisons into
this group. A few other changes were needed to the CFGBuilder so that all bool
contexts would be checked. The warnings in -Wtautological-bitwise-compare will
be off by default due to using the CFG.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=42666
Differential Revision: https://reviews.llvm.org/D66046

LLVM/llvm 375317compiler-rt/trunk/test/profile/Posix instrprof-get-filename-merge-mode.c

[profile] Use -fPIC -shared in a test instead of -dynamiclib

This is more portable than -dynamiclib. Also, fix the path to an input
file that broke when the test was moved in r375315.

LLVM/llvm 375316lldb/trunk/include/lldb/Utility UUID.h, llvm/trunk/include/llvm/Support Host.h SwapByteOrder.h

Move endian constant from Host.h to SwapByteOrder.h, prune include

Works on this dependency chain:
  ArrayRef.h ->
  Hashing.h -> --CUT--
  Host.h ->
  StringMap.h / StringRef.h

ArrayRef is very popular, but Host.h is rarely needed. Move the
IsBigEndianHost constant to SwapByteOrder.h. Clients of that header are
more likely to need it.

LLVM/llvm 375315compiler-rt/trunk/test/profile instrprof-get-filename-merge-mode.c, compiler-rt/trunk/test/profile/Posix instrprof-get-filename-merge-mode.c

[profile] Disable instrprof-get-filename-merge-mode.c on Windows

The Windows bots are failing with:

clang: warning: argument unused during compilation: '-dynamiclib' 

LLVM/llvm 375314meta/trunk github-usernames.txt

Request commit access for diamond.

LLVM/llvm 375313cfe/trunk/include/clang/Sema Sema.h, cfe/trunk/lib/Sema SemaOverload.cpp SemaInit.cpp

Sema: Create a no-op implicit cast for lvalue function conversions.

This fixes an assertion failure in the case where an implicit conversion for a
function call involves an lvalue function conversion, and makes the AST for
initializations involving implicit lvalue function conversions more accurate.

Differential Revision: https://reviews.llvm.org/D66437

LLVM/llvm 375312lldb/trunk/packages/Python/lldbsuite/test/iohandler/completion TestIOHandlerCompletion.py

Skip (more) PExpect tests under ASAN, I can't get them to work reliably.

LLVM/llvm 375311llvm/trunk/include/llvm/CodeGen MachineInstr.h TargetFrameLowering.h, llvm/trunk/lib/CodeGen TargetFrameLoweringImpl.cpp MachineInstr.cpp

Prune two MachineInstr.h includes, fix up deps

MachineInstr.h included AliasAnalysis.h, which includes a world of IR
constructs mostly unneeded in CodeGen. Prune it. Same for

Noticed with -ftime-trace.

LLVM/llvm 375310cfe/trunk/lib/Driver Driver.cpp

[clang][driver] Print compilation phases with indentation.

Reviewers: tra, sfantao, echristo

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D69124

LLVM/llvm 375309cfe/trunk/include/clang/AST DeclCXX.h, cfe/trunk/include/clang/Sema Sema.h

[hip][cuda] Fix the extended lambda name mangling issue.

- HIP/CUDA host side needs to use device kernel symbol name to match the
  device side binaries. Without a consistent naming between host- and
  device-side compilations, it's risky that wrong device binaries are
  executed. Consistent naming is usually not an issue until unnamed
  types are used, especially the lambda. In this patch, the consistent
  name mangling is addressed for the extended lambdas, i.e. the lambdas
  annotated with `__device__`.
- In [Itanium C++ ABI][1], the mangling of the lambda is generally
  unspecified unless, in certain cases, ODR rule is required to ensure
  consisent naming cross TUs. The extended lambda is such a case as its
  name may be part of a device kernel function, e.g., the extended
  lambda is used as a template argument and etc. Thus, we need to force
  ODR for extended lambdas as they are referenced in both device- and
  host-side TUs. Furthermore, if a extended lambda is nested in other
  (extended or not) lambdas, those lambdas are required to follow ODR
  naming as well. This patch revises the current lambda mangle numbering
  to force ODR from an extended lambda to all its parent lambdas.
- On the other side, the aforementioned ODR naming should not change
  those lambdas' original linkages, i.e., we cannot replace the original
  `internal` with `linkonce_odr`; otherwise, we may violate ODR in
  general. This patch introduces a new field `HasKnownInternalLinkage`
  in lambda data to decouple the current linkage calculation based on

    [11 lines not shown]

LLVM/llvm 375308cfe/trunk/test/Analysis track-control-dependency-conditions.cpp ctu-main.cpp, cfe/trunk/test/Analysis/inlining placement-new-fp-suppression.cpp

[analyzer] Specify the C++ standard in more tests.

Makes life easier for downstream developers with different default standard.

LLVM/llvm 375307libcxx/trunk/include __config type_traits, libcxx/trunk/test/std/utilities/meta/meta.trans/meta.trans.other result_of11.pass.cpp

P1152R4: Fix deprecation warnings in libc++ testsuite and in uses of is_invocable that 
would internally conjure up a deprecated function type.

Summary: The implementation of P1152R4 in Clang has resulted in some deprecation warnings 
appearing in the libc++ and libc++abi test suite. Fix or suppress these warnings.

Reviewers: mclow.lists, EricWF

Subscribers: christof, ldionne, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D68879

LLVM/llvm 375306cfe/trunk/include/clang/AST ExprCXX.h, cfe/trunk/include/clang/Sema Overload.h

[c++20] Add rewriting from comparison operators to <=> / ==.

This adds support for rewriting <, >, <=, and >= to a normal or reversed
call to operator<=>, for rewriting != to a normal or reversed call to
operator==, and for rewriting <=> and == to reversed forms of those same

Note that this is a breaking change for various C++17 code patterns,
including some in use in LLVM. The most common patterns (where an
operator== becomes ambiguous with a reversed form of itself) are still
accepted under this patch, as an extension (with a warning). I'm hopeful
that we can get the language rules fixed before C++20 ships, and the
extension warning is aimed primarily at providing data to inform that

LLVM/llvm 375305cfe/trunk/include/clang/AST ExprCXX.h, cfe/trunk/lib/AST ExprCXX.cpp ItaniumMangle.cpp

[c++20] Add CXXRewrittenBinaryOperator to represent a comparison
operator that is rewritten as a call to multiple other operators.

No functionality change yet: nothing creates these expressions.

LLVM/llvm 375304cfe/trunk/lib/AST TypePrinter.cpp, cfe/trunk/lib/CodeGen CGDebugInfo.cpp

DebugInfo: Render the canonical name of a class template specialization, even when nested 
in another class template specialization

Differential Revision: https://reviews.llvm.org/D63031