LLVM/llvm 346957cfe/trunk/include/clang/AST Stmt.h

[AST][NFC] Re-add comment in BinaryOperator which was removed by r346954

LLVM/llvm 346956compiler-rt/trunk/lib/sanitizer_common sanitizer_local_address_space_view.h sanitizer_allocator_secondary.h

Start adding the supporting code to perform out-of-process allocator


This patch introduces the local portion (`LocalAddressSpaceView`) of the
`AddressSpaceView` abstraction and modifies the secondary allocator
so that the `ForEachChunk()` method (and its callees) would work in the
out-of-process case when `AddressSpaceView` is `RemoteAddressSpaceView`.

The `AddressSpaceView` abstraction simply maps pointers from a target
process to a pointer in the local process (via its `Load()` method). For
the local (in-process) case this is a no-op. For the remote
(out-of-process) case this is not a no-op. The implementation of the
out-of-process `RemoteAddressSpaceView` is not included in this patch
and will be introduced later.

This patch is considerably simpler than the `ObjectView` abstraction
used in previous patches but lacks the type safety and stricter memory
management of the `ObjectView` abstraction.

This patch does not introduce any tests because with
`LocalAddressSpaceView` it should be a non functional change and unit
tests already cover the secondary allocator.  When
`RemoteAddressSpaceView` is landed tests will be added to ensure that it

    [10 lines not shown]

LLVM/llvm 346955clang-tools-extra/trunk/clangd/index/dex/dexp Dexp.cpp

[clangd] global-symbol-builder => clangd-indexer

LLVM/llvm 346954cfe/trunk/include/clang/AST Expr.h Stmt.h

[AST] Pack BinaryOperator

Use the newly available space in the bit-fields of Stmt.
This saves 8 bytes per BinaryOperator.

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

Reviewed By: dblaikie

LLVM/llvm 346953cfe/trunk/include/clang/AST Expr.h Stmt.h, cfe/trunk/lib/AST Expr.cpp

[AST] Pack MemberExpr

Use the newly available space in the bit-fields of Stmt
to store some data from MemberExpr. This saves
one pointer per MemberExpr.

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

Reviewed By: dblaikie

LLVM/llvm 346952cfe/trunk/include/clang/AST Expr.h

[AST][NFC] Move the friend decls to the top of MemberExpr

The norm is to have them at the top, and having them
at the bottom is painful for the reader.

LLVM/llvm 346951cfe/trunk/include/clang/AST Expr.h Stmt.h

[AST] Pack UnaryOperator

Use the newly available space in the bit-fields of Stmt
to store some data from UnaryOperator.
This saves 8 bytes per UnaryOperator.

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

Reviewed By: dblaikie

LLVM/llvm 346950cfe/trunk/lib/CodeGen CGDecl.cpp

Fix warning about unused variable [NFC]

LLVM/llvm 346949llvm/trunk/lib/Target/MSP430/AsmParser MSP430AsmParser.cpp, llvm/trunk/lib/Target/MSP430/Disassembler MSP430Disassembler.cpp

Add missed files from prev. commit

LLVM/llvm 346948llvm/trunk/lib/Target/MSP430 MSP430InstrInfo.td MSP430InstrFormats.td, llvm/trunk/test/CodeGen/MSP430 cc_args.ll

[MSP430] Add MC layer

Reapply r346374 with the fixes for modules build.

Original summary:

This change implements assembler parser, code emitter, ELF object writer
and disassembler for the MSP430 ISA.  Also, more instruction forms are added
to the target description.

Patch by Michael Skvortsov!

LLVM/llvm 346947clang-tools-extra/trunk/clangd/index/dex/dexp Dexp.cpp

[clangd] Fix no results returned for global symbols in dexp

For symbols in global namespace (without any scope), we need to
add global scope "" to the fuzzy request.

Reviewers: ioeric

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

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

LLVM/llvm 346946llvm/trunk/tools/llvm-objdump ELFDump.cpp

[llvm-objdump] Use `auto` declaration in typecasting

According to `MaskRay`, use `auto` for type inference, according to coding standards.
Delete some comments, because these comments can be easily inferred from codes.

Reviewers: jhenderson, MaskRay

Reviewed By: jhenderson

Subscribers: llvm-commits

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

LLVM/llvm 346945clang-tools-extra/trunk/clangd/index Background.cpp Background.h, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp

Revert "Introduce shard storage to auto-index."

This reverts commit 6dd1f24aead10a8d375d0311001987198d26e900.

LLVM/llvm 346944clang-tools-extra/trunk/clangd/index Background.cpp, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp

Revert "clang-format"

This reverts commit 0a37e9c3d88a2e21863657df2f7735fb7e5f746e.

LLVM/llvm 346943clang-tools-extra/trunk/clangd/index Background.cpp Background.h, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp

Revert "Address comments"

This reverts commit 19a39b14eab2b5339325e276262b177357d6b412.

LLVM/llvm 346942clang-tools-extra/trunk/clangd/index Background.cpp Background.h, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp

Revert "Address comments."

This reverts commit b43c4d1c731e07172a382567f3146b3c461c5b69.

LLVM/llvm 346941clang-tools-extra/trunk/clangd/index Background.cpp Background.h, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp

Address comments.

LLVM/llvm 346940clang-tools-extra/trunk/clangd/index Background.cpp Background.h, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp

Address comments

LLVM/llvm 346939clang-tools-extra/trunk/clangd/index Background.cpp, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp


LLVM/llvm 346938clang-tools-extra/trunk/clangd/index Background.cpp Background.h, clang-tools-extra/trunk/unittests/clangd BackgroundIndexTests.cpp

Introduce shard storage to auto-index.

Reviewers: sammccall, ioeric

Subscribers: ilya-biryukov, jkorous, arphaman, cfe-commits

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

LLVM/llvm 346937llvm/trunk/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp, llvm/trunk/lib/Target/RISCV/Utils RISCVMatInt.cpp RISCVMatInt.h

[RISCV] Introduce the RISCVMatInt::generateInstSeq helper

Logic to load 32-bit and 64-bit immediates is currently present in
RISCVAsmParser::emitLoadImm in order to support the li pseudoinstruction. With
the introduction of RV64 codegen, there is a greater benefit of sharing
immediate materialisation logic between the MC layer and codegen. The
generateInstSeq helper allows this by producing a vector of simple structs
representing the chosen instructions. This can then be consumed in the MC
layer to produce MCInsts or at instruction selection time to produce
appropriate SelectionDAG node. Sharing this logic means that both the li
pseudoinstruction and codegen can benefit from future optimisations, and
that this logic can be used for materialising constants during RV64 codegen.

This patch does contain a behaviour change: addi will now be produced on RV64
when no lui is necessary to materialise the constant. In that case addiw takes
x0 as the source register, so is semantically identical to addi.

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

LLVM/llvm 346936llvm/trunk/test/CodeGen/X86 vector-trunc-widen.ll shuffle-vs-trunc-256-widen.ll

[X86] Add some custom type legalization rules for truncate with 

This avoids some nasty shuffles when we have avx512. It will also prevent using zmm 
truncate instructions when a ymm instruction that zeroes part of an xmm register will do. 
Also avoid using avx512 truncate instructions when the input is 128 bits or less. These 
instructions are 2 uops on skx so we can probably find a better single uop shuffle like 

LLVM/llvm 346935llvm/trunk/test/CodeGen/X86 shuffle-vs-trunc-256-widen.ll shuffle-vs-trunc-512-widen.ll

[X86] Add -x86-experimental-vector-widening-legalization versions of shuffle-vs-trunc 

LLVM/llvm 346934lld/trunk/ELF Target.h

[ELF] Fix compilation with GCC 5

Remove the default initializer for TrapInstr; all subclasses overwrite
the defaults in their constructors anyway.

This fixes compilation errors like these, with GCC 5.4 on Ubuntu 16.04,
present since SVN r346893:

 In file included from ../tools/lld/ELF/Arch/AArch64.cpp:12:0:
 ../tools/lld/ELF/Target.h:125:49: error: array must be initialized with a brace-enclosed 
    std::array<uint8_t, 4> TrapInstr = {0, 0, 0, 0};
 ../tools/lld/ELF/Target.h:125:49: error: too many initializers for ‘std::array<unsigned 
char, 4ul>’

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

LLVM/llvm 346933libcxx/trunk/benchmarks CMakeLists.txt

propagate __config_site includes when building benchmarks

LLVM/llvm 346932lldb/trunk/source/Symbol Variable.cpp

Fix a use-after-free of the ABI plugin.

This was introduced in r346775.  Previously the ABI shared_ptr
was declared as a function local static meaning it would live
forever.  After the change, someone has to create a strong
reference to it or it will go away.  In this code, we were
calling ABI::FindPlugin(...).get(), so it was being immediately
destroyed and we were holding onto a dangling pointer.

LLVM/llvm 346931llvm/trunk/lib/Target/WebAssembly WebAssemblyInstrSIMD.td, llvm/trunk/test/MC/WebAssembly simd-encodings.s

[WebAssembly] Renumber SIMD bitwise instructions

Summary: Changed to match https://github.com/WebAssembly/simd/pull/54.

Reviewers: aheejin

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

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

LLVM/llvm 346930zorg/trunk/buildbot/osuosl/master master.cfg

Cosmetic, NFC.

LLVM/llvm 346929cfe/trunk/lib/Parse ParsePragma.cpp

NFC cleanup: Prefer make_unique over reset(new T())

LLVM/llvm 346928cfe/trunk/lib/Frontend PrintPreprocessedOutput.cpp, cfe/trunk/lib/Lex Pragma.cpp

Fix combining pragma __debug dump & parser_crash with -E

Previously these would be transformed into annotation tokens and the
preprocessor would then assume they were real tokens with source
locations and assert/UB.

Other pragmas that produce annotation tokens aren't a problem because
they aren't handled if the parser isn't hooked up - ParsePragma.cpp
registers those handlers & isn't run for pure preprocessing. So they're
treated as unknown pragmas & printed verbatim by the preprocessor.

Perhaps these pragmas should be treated the same way? But they got mixed
in with other __debug pragmas that do need to be handled during

The third __debug pragma that produces an annotation token is 'captured'
- which had its own fix for this issue - by not inserting the annotation
token in the first place if it detected that it was in preprocessing
mode. I've removed that fix (from Lex/Pragma.cpp) in favor of the more
general one in Frontend/PrintPreprocessedOutput.cpp.

LLVM/llvm 346927cfe/trunk/lib/Driver/ToolChains Clang.cpp

Rewrite-imports on crash: Simplify handling

-frewrite-imports already implies -frewrite-includes (it piggy-backs
on/extends the implementation) so there's no need to conditionally pass
-frewrite-includes when already using -frewrite-imports (& especially I
don't think these would want to be different between crash reporting and
not crash reporting)

LLVM/llvm 346926cfe/trunk/include/clang/AST Stmt.h

Stmt bits: Make ExprBits relative to StmtBits

Seems like it makes it a bit easier to read/validate/update in the

LLVM/llvm 346925llvm/trunk/test/CodeGen/AMDGPU fdot2.ll

AMDGPU: Fix check lines in fdot2 test:

        GCN900 -> GFX900

LLVM/llvm 346924llvm/trunk/test/tools/llvm-objdump symbol-table-elf.test

[commit-test] Add blank line for test/tools/llvm-objdump/symbol-table-elf.test

Summary: Test commit

Reviewers: Higuoxing

Reviewed By: Higuoxing

Subscribers: llvm-commits, Higuoxing

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

LLVM/llvm 346923llvm/trunk/lib/Target/AMDGPU AMDGPU.td, llvm/trunk/test/CodeGen/AMDGPU hsa-note-no-func.ll elf-notes.ll

AMDGPU: Enable code object v3 for AMDHSA only

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

LLVM/llvm 346922www/trunk/devmtg/2018-10 talk-abstracts.html Hong-Lattner-SwiftForTensorFlowGraphProgramExtraction.pdf, www/trunk/devmtg/2018-10/slides Hong-Lattner-SwiftForTensorFlowGraphProgramExtraction.pdf Ruoso-clangmetatool.pdf

Add slide and videos.

LLVM/llvm 346921lldb/trunk/source/Core Debugger.cpp

Fix copy/paste mistake for r346919.

LLVM/llvm 346920lldb/trunk/include/lldb/Target Thread.h, lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/require_hw_breakpoints TestRequireHWBreakpoints.py

Add setting to require hardware breakpoints.

When debugging read-only memory we cannot use software breakpoint. We
already have support for hardware breakpoints and users can specify them
with `-H`. However, there's no option to force LLDB to use hardware
breakpoints internally, for example while stepping.

This patch adds a setting target.require-hardware-breakpoint that forces
LLDB to always use hardware breakpoints. Because hardware breakpoints
are a limited resource and can fail to resolve, this patch also extends
error handling in thread plans, where breakpoints are used for stepping.

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

LLVM/llvm 346919lldb/trunk/include/lldb/Core Debugger.h, lldb/trunk/source/Commands CommandObjectReproducer.cpp

[reproducer] Post-commit cleanup

After committing the initial reproducer feature I noticed a few small
issues which warranted addressing here. It fixes incorrect documentation
in the command object and extract some duplicated code into the debugger

LLVM/llvm 346918lld/trunk/test/wasm shared.ll, lld/trunk/wasm Writer.cpp Driver.cpp

[WebAssembly] Initial support for shared objects (-shared)

Based on the initial spec proposal:

The llvm/codegen side of this is still missing but I believe this change is
still worth landing as an incremental step

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

LLVM/llvm 346917libcxx/trunk/test/libcxx/depr/depr.function.objects depr.adaptors.cxx1z.pass.cpp

Work around C++03 decltype limitations

LLVM/llvm 346916llvm/trunk/lib/Target/X86 X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 shrink_vmul-widen.ll vec_int_to_fp-widen.ll

[X86] Don't mark SEXTLOADS with narrow types as Custom with 

The narrow types end up requesting widening, but generic legalization will end up 
scalaring and using a build_vector to do the widening.

LLVM/llvm 346915cfe/trunk/lib/CodeGen CGDecl.cpp, cfe/trunk/test/CodeGen dump-struct-builtin.c

CGDecl::emitStoresForConstant fix synthesized constant's name

Summary: The name of the synthesized constants for constant initialization was using 
mangling for statics, which isn't generally correct and (in a yet-uncommitted patch) 
causes the mangler to assert out because the static ends up trying to mangle function 
parameters and this makes no sense. Instead, mangle to `"__const." + FunctionName + "." + 

Reviewers: rjmccall

Subscribers: dexonsmith, cfe-commits

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

LLVM/llvm 346914libcxx/trunk/test/libcxx/depr/depr.function.objects depr.adaptors.cxx1z.pass.cpp, libcxx/trunk/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem construct_piecewise_pair.pass.cpp

Get tests compiling with -Wunused-local-typedef

LLVM/llvm 346913llvm/trunk/lib/CodeGen MachineOutliner.cpp

[MachineOutliner][NFC] Check if CandidatesForRepeatedSeq < 2

There's no reason to call getOutliningCandidateInfo with a single candidate.

LLVM/llvm 346912libcxx/trunk/test/std/containers/unord/unord.map/unord.map.modifiers merge.pass.cpp, libcxx/trunk/test/std/containers/unord/unord.multimap/unord.multimap.modifiers merge.pass.cpp

[libcxx] [test] Fix Clang -Wunused-local-typedef warnings.

C++11's [hash.requirements] never required these typedefs from users.

LLVM/llvm 346911libcxx/trunk/test/std/containers/associative/map/map.modifiers merge.pass.cpp, libcxx/trunk/test/std/containers/associative/multimap/multimap.modifiers merge.pass.cpp

[libcxx] [test] Include <cassert> for assert().

This fixes compiler errors with MSVC's STL.

LLVM/llvm 346910libcxx/trunk/test/std/containers/sequences/vector.bool move.pass.cpp

[libcxx] [test] Fix MSVC warning C4800.

This was implicitly converting [1, 3] to bool, which triggers
an MSVC warning. The test should just pass `true`, which is
simpler, has the same behavior, and avoids the warning. (This
is a library test, not a compiler test, and the conversion happens
before calling `push_back`, so passing [1, 3] isn't interesting
in any way. This resembles a previous change to stop passing
`1 == 1` in the `vector<bool>` tests.)

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

[X86] Remove unused variable

LLVM/llvm 346908llvm/trunk/lib/Target/X86 X86ISelLowering.cpp, llvm/trunk/test/CodeGen/X86 vector-idiv-v2i32.ll shrink_vmul-widen.ll

[X86] Support v2i32/v4i16/v8i8 load/store using f64 on 32-bit targets under 

On 64-bit targets the type legalizer will use i64 to legalize these. But when i64 isn't 
legal, the type legalizer won't try an FP type. So do it manually instead.

There are a few regressions in here due to some v2i32 operations like mul and div now 
being reassembled into a full vector just to store instead of storing the pieces. But this 
was already occuring in 64-bit mode so its not a new issue.