Displaying 1 50 of 295,223 commits (0.019s)

LLVM — lldb/trunk/include/lldb lldb-enumerations.h, lldb/trunk/lit/Breakpoint single-file-split-dwarf.test

[LLDB] - Support the single file split DWARF.

DWARF5 spec describes a single file split dwarf case
(when .dwo sections are in the .o files).

Problem is that LLDB does not work correctly in that case.
The issue is that, for example, both .debug_info and .debug_info.dwo
has the same type: eSectionTypeDWARFDebugInfo. And when code searches
section by type it might find the regular debug section
and not the .dwo one.

The patch fixes that. With it, LLDB is able to work with
output compiled with -gsplit-dwarf=single flag correctly.

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

LLVM — cfe/trunk/include/clang/AST ASTContext.h RecursiveASTVisitor.h, cfe/trunk/lib/AST ASTContext.cpp

[AST] Allow limiting the scope of common AST traversals (getParents, RAV).

The goal is to allow analyses such as clang-tidy checks to run on a
subset of the AST, e.g. "only on main-file decls" for interactive tools.

Today, these become "problematically global" by running RecursiveASTVisitors
rooted at the TUDecl, or by navigating up via ASTContext::getParent().

The scope is restricted using a set of top-level-decls that RecursiveASTVisitors
should be rooted at. This also applies to the visitor that populates the
parent map, and so the top-level-decls are considered to have no parents.

This patch makes the traversal scope a mutable property of ASTContext.
The more obvious way to do this is to pass the top-level decls to
relevant functions directly, but this has some problems:
 - it's error-prone: accidentally mixing restricted and unrestricted
   scopes is a performance trap. Interleaving multiple analyses is
   common (many clang-tidy checks run matchers or RAVs from matcher callbacks)
 - it doesn't map well to the actual use cases, where we really do want
   *all* traversals to be restricted.
 - it involves a lot of plumbing in parts of the code that don't care
   about traversals.
This approach was tried out in D54259 and D54261, I wanted to like it
but it feels pretty awful in practice.

    [10 lines not shown]

LLVM — lld/trunk/COFF Writer.cpp

[COFF] Fix a longstanding typo in a variable name. NFC.
Delta File
+5 -5 lld/trunk/COFF/Writer.cpp
+5 -5 1 file

LLVM — llvm/trunk/test/MC/WebAssembly event-section.ll

[WebAssembly] Make sure event-section XFAILs for build options

rL346840 temporarily marked event-section.ll as XFAIL because it was
failing for builds with LLVM_ENABLE_EXPENSIVE_CHECKS turned on, but
to make sure it XFAILs even without LLVM_ENABLE_EXPENSIVE_CHECKS on we
need this `-verify-machineinstrs` flag, which was missing in the
previous commit.

LLVM — llvm/trunk/lib/IR IRPrintingPasses.cpp, llvm/trunk/test/Other 2010-05-06-Printer.ll

Print newline after banner for ModulePass

Before this commit, `llc -print-after-all` would print something like:

  *** IR Dump After Pre-ISel Intrinsic Lowering ***; ModuleID = ...

Emit a newline such that ModuleID appears on a line by its own.

LLVM — llvm/trunk/lib/Transforms/Scalar CallSiteSplitting.cpp, llvm/trunk/test/Other new-pm-lto-defaults.ll opt-O3-pipeline.ll

Recommit r346483: [CallSiteSplitting] Only record conditions up to the IDom(call site).

The underlying problem causing the expensive-check failure was fixed in

LLVM — lld/trunk/test/ELF gdb-index-multiple-cu-2.s gdb-index-multiple-cu.s

Fix r346747 and r346796

Require x86 for the tests in order to fix non-x86 bots. This seems to be
the case for all other tests in that directory.

LLVM — lldb/trunk/source/Plugins/Language/ObjC Cocoa.cpp

Suppress a "-Wliteral-conversion" compiler warning.

error: implicit conversion from 'double' to 'uint64_t' (aka 'unsigned long') changes value 
from -0 to 0 [-Werror,-Wliteral-conversion]

LLVM — llvm/trunk/test/MC/WebAssembly event-section.ll

[WebAssembly] Temporarily disable event-section.ll

This test is failing in builds with LLVM_ENABLE_EXPENSIVE_CHECKS after
rL346825 not because of the patch but due to a pre-existing codegen
problem. Marking this as XFAIL temporarily until the bug is fixed.

LLVM — lldb/trunk/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp, lldb/trunk/source/Utility Reproducer.cpp

Fix the "make_unique is ambiguous" compiler error.

LLVM — cfe/trunk/lib/CodeGen CGBuiltin.cpp, cfe/trunk/test/CodeGenOpenCL cl20-device-side-enqueue.cl

[OpenCL] Fix invalid address space generation for clk_event_t

Addrspace(32) was generated when putting 0 in clk_event_t * event_ret
parameter for enqueue_kernel function.

Patch by Viktoria Maksimova

Reviewers: Anastasia, yaxunl, AlexeySotkin

Reviewed By:  Anastasia, AlexeySotkin

Subscribers: cfe-commits

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

LLVM — cfe/trunk/include/clang/Driver CC1Options.td Options.td, cfe/trunk/include/clang/Frontend CodeGenOptions.def CodeGenOptions.h

[Clang] - Add '-gsplit-dwarf[=split,=single]' version for '-gsplit-dwarf' option.

The DWARF5 specification says(Appendix F.1):

"The sections that do not require relocation, however, can be
written to the relocatable object (.o) file but ignored by the
linker or they can be written to a separate DWARF object (.dwo)
file that need not be accessed by the linker."

The first part describes a single file split DWARF feature and there
is no way to trigger this behavior atm. 
Fortunately, no many changes are required to keep *.dwo sections
in a .o, the patch does that.

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

LLVM — llvm/trunk/test/CodeGen/X86 pmulh.ll

[X86] Add -x86-experimental-vector-widening command lines to pmulh.ll

I've only added sse2 and sse4.1 variants as I'm only interested in the two v4i16 tests and 
I don't expect that to different with AVX other than a v prefix.
Delta File
+83 -43 llvm/trunk/test/CodeGen/X86/pmulh.ll
+83 -43 1 file

LLVM — llvm/trunk/include/llvm/ADT iterator.h, llvm/trunk/unittests/ADT IteratorTest.cpp

Correctly instantiate `iterator_adaptor_base` when defining `pointer_iterator`

The definition of `pointer_iterator` omits what should be a 
`iterator_traits::<>::iterator_category` parameter from `iterator_adaptor_base`. As a 
result, iterators based on `pointer_iterator` always have defaulted value types and the 
wrong iterator category.

The definition of `pointee_iterator` just a few lines above does this correctly.

This resolves [[ https://bugs.llvm.org/show_bug.cgi?id=39617 | bug 39617 ]].

Patch by Dylan MacKenzie!

Reviewers: dblaikie

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

LLVM — cfe/trunk/lib/Driver Driver.cpp, cfe/trunk/test/Driver cuda-phases.cu

[HIP] Fix device only compilation

Fix a bug causing host code being compiled when --cude-device-only is set.

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

LLVM — cfe/trunk/cmake/caches Fuchsia-stage2.cmake

[CMake] Include clang-apply-replacements in Fuchsia toolchain

This is needed for run-clang-tidy.py.

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

LLVM — libcxx/trunk/test/std/containers/sequences/deque/deque.modifiers erase_iter.pass.cpp erase_iter_iter.pass.cpp, libcxx/trunk/test/std/containers/views types.pass.cpp

[libcxx] [test] Strip trailing whitespace. NFC.

LLVM — llvm/trunk/include/llvm/BinaryFormat Wasm.h WasmRelocs.def, llvm/trunk/include/llvm/CodeGen WasmEHFuncInfo.h

[WebAssembly] Add support for the event section

This adds support for the 'event section' specified in the exception
handling proposal. (This was named 'exception section' first, but later
renamed to 'event section' to take possibilities of other kinds of
events into consideration. But currently we only store exception info in
this section.)

The event section is added between the global section and the export
section. This is for ease of validation per request of the V8 team.

This patch:
- Creates the event symbol type, which is a weak symbol
- Makes 'throw' instruction take the event symbol '__cpp_exception'
- Adds relocation support for events
- Adds WasmObjectWriter / WasmObjectFile (Reader) support
- Adds obj2yaml / yaml2obj support
- Adds '.eventtype' printing support

Reviewers: dschuff, sbc100, aardappel

Subscribers: jgravelle-google, sunfish, llvm-commits

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

LLVM — llvm/trunk/lib/Target/PowerPC PPCInstrVSX.td PPCInstrAltivec.td, llvm/trunk/test/CodeGen/PowerPC vec_select.ll

[PowerPC] Enhance the selection(ISD::VSELECT) of vector type

To make ISD::VSELECT available(legal) so long as there are altivec instruction, otherwise 
it's default behavior is expanding,
which is legalized at type-legalization phase. Use xxsel to match vselect if vsx is open, 
or use vsel.

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

LLVM — llvm/trunk/lib/Transforms/Utils LoopUtils.cpp, llvm/trunk/test/Transforms/LoopSimplify preserve-llvm-loop-metadata2.ll

Revert r346810 "Preserve loop metadata when splitting exit blocks"

It broke the Windows self-host:

LLVM — cfe/trunk/lib/Lex HeaderSearch.cpp, cfe/trunk/test/Modules subdirectory-module-maps-working-dir.m

[HeaderSearch] loadSubdirectoryModuleMaps should respect -working-directory

Include search paths can be relative paths. The loadSubdirectoryModuleMaps function
should account for that and respect the -working-directory parameter given to Clang.


Differential Revision: https://reviews.llvm.org/D54503
Delta File
+13 -0 cfe/trunk/test/Modules/subdirectory-module-maps-working-dir.m
+5 -0 cfe/trunk/test/Modules/Inputs/subdirectory-module-maps-working-dir/subdir_module/module.map
+3 -1 cfe/trunk/lib/Lex/HeaderSearch.cpp
+1 -0 cfe/trunk/test/Modules/Inputs/subdirectory-module-maps-working-dir/subdir_module/h1.h
+0 -0 cfe/trunk/test/Modules/Inputs/subdirectory-module-maps-working-dir/
+0 -0 cfe/trunk/test/Modules/Inputs/subdirectory-module-maps-working-dir/subdir_module/
+22 -1 6 files

LLVM — llvm/trunk/lib/CodeGen MachineBasicBlock.cpp, llvm/trunk/test/CodeGen/ARM load_store_opt_clobber_cpsr.mir

[CodeGen] Fix forward scan in MachineBasicBlock::computeRegisterLiveness.

The scan was incorrectly skipping the first instruction, so a register
could appear to be dead when it was actually live. This eventually leads
to a machine verifier failure and miscompile in arm-ldst-opt.

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

LLVM — cfe/trunk CodeGen Headers

Complete reverting r346191
Delta File
+0 -0 cfe/trunk/CodeGen/
+0 -0 cfe/trunk/Headers/
+0 -0 2 files

LLVM — cfe/trunk clang

Complete reverting r346191
Delta File
+0 -0 cfe/trunk/clang/
+0 -0 1 file

LLVM — lld/trunk/COFF PDB.cpp

[PDB] Simplify symbol handling code, NFC

- Make mergeSymbolRecords a method of PDBLinker to reduce the number of
parameters it needs.

- Remove a stale FIXME comment about error handling. We already drop
unknown symbol records, log them, and continue.

- Update a comment about why we're copying the symbol record. We do it
to realign the record. We can already mutate the symbol record memory,
it's memory allocated by relocateDebugChunk.

- Avoid the extra `CVSymbol NewSym` variable. We can mutate Sym in
place, which is best, since we're mutating the underlying record anyway.
Delta File
+22 -25 lld/trunk/COFF/PDB.cpp
+22 -25 1 file

LLVM — llvm/trunk/lib/Target/AArch64 AArch64InstrInfo.cpp

[MachineOutliner][NFC] Use flags set in all candidates to check for calls

If we keep track of if the ContainsCalls bit is set in the MBB flags for each
candidate, then we have a better chance of not checking the candidate for calls
at all.

This saves quite a few checks in some CTMark tests (~200 in Bullet, for

LLVM — llvm/trunk/test/tools/dsymutil/Inputs lc_build_version.x86_64, llvm/trunk/test/tools/dsymutil/X86 lc_build_version.test

Make dsymutil more robust when parsing load commands.


LLVM — llvm/trunk/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/trunk/test/Transforms/InstCombine fsh.ll

[InstCombine] fold funnel shift amount based on demanded bits

The shift amount of a funnel shift is modulo the scalar bitwidth:
...so we can use demanded bits analysis on that operand to simplify it
when we have a power-of-2 bitwidth.

This is another step towards canonicalizing {shift/shift/or} to the 
intrinsics in IR.

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

LLVM — llvm/trunk/unittests/Support Path.cpp

Make the ExpandTilde unit test expect "\" (not "/") on Win32

LLVM — lldb/trunk/lit/Modules lc_build_version_notools.yaml lc_build_version.yaml, lldb/trunk/source/Plugins/ObjectFile/Mach-O ObjectFileMachO.cpp

Fix a bug in the parsing of the LC_BUILD_VERSION Mach-O load command.

LC_BUILD_VERSION records are of variable length. The original code
would use uninitialized memory when the size of a record was exactly 24.


LLVM — libcxx/trunk CMakeLists.txt, libcxx/trunk/benchmarks CMakeLists.txt

Add cxx-benchmark-unittests target

This patch adds the cxx-benchmark-unittests target so we can start
getting test coverage on the benchmarks, including building with
sanitizers. Because we're only looking for test-coverage, the benchmarks
run for the shortest time possible, and in parallel.

The target is excluded from all by default. It only
builds and runs the libcxx configurations of the benchmarks, and not
any versions built against the systems native standard library.

LLVM — llvm/trunk/lib/Transforms/Utils LoopUtils.cpp, llvm/trunk/test/Transforms/LoopSimplify preserve-llvm-loop-metadata2.ll

Preserve loop metadata when splitting exit blocks

LoopUtils.cpp contains a utility that splits an loop exit block, so that the new block 
contains only edges coming from the loop. In the case of nested loops, the exit path for 
the inner loop might also be the back-edge of the outer loop. The new block which is 
inserted on this path, is now a latch for the outer loop, and it needs to hold the loop 
metadata for the outer loop. (The test case gives a more concrete view of the situation.)

Patch by Chang Lin (clin1)

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

LLVM — llvm/trunk/include/llvm/CodeGen MachineOutliner.h, llvm/trunk/lib/CodeGen MachineOutliner.cpp

[MachineOutliner][NFC] Use MBB flags to avoid call checks in getOutliningInfo

We already determine a bunch of information about an MBB in
getMachineOutlinerMBBFlags. We can reuse that information to avoid calculating
things that must be false/true.

The first thing we can easily check is if an outlined sequence could ever
contain calls. There's no reason to walk over the outlined range, checking for
calls, if we already know that there are no calls in the block containing the

LLVM — libcxx/trunk/benchmarks function.bench.cpp

Fix "use of" uninitialized memory in benchmark.

An argument to DoNotOptimize was not fully initialized, which caused
msan to complain.

LLVM — llvm/trunk/lib/Transforms/InstCombine InstCombineSelect.cpp, llvm/trunk/test/Transforms/InstCombine rotate.ll

[InstCombine] canonicalize rotate patterns with cmp/select

The cmp+branch variant of this pattern is shown in:
...and as discussed there, we probably can't transform
that without a rotate intrinsic. We do have that now
via funnel shift, but we're not quite ready to 
canonicalize IR to that form yet. The case with 'select'
should already be transformed though, so that's this patch.

The sequence with negation followed by masking is what we
use in the backend and partly in clang (though that part 
should be updated).

  %cmp = icmp eq i32 %shamt, 0
  %sub = sub i32 32, %shamt
  %shr = lshr i32 %x, %shamt
  %shl = shl i32 %x, %sub
  %or = or i32 %shr, %shl
  %r = select i1 %cmp, i32 %x, i32 %or
  %neg = sub i32 0, %shamt
  %masked = and i32 %shamt, 31
  %maskedneg = and i32 %neg, 31

    [3 lines not shown]

LLVM — cfe/trunk/include/clang/AST FormatString.h, cfe/trunk/lib/AST PrintfFormatString.cpp FormatString.cpp

OpenCL: Don't warn on v printf modifier

This avoids spurious warnings, but could use
a lot of work. For example the number of vector
elements is not verified, and the passed
value type is not checked.

Fixes bug 39486

LLVM — libcxx/trunk/www cxx2a_status.html

Mark #2184 as complete; the tests are fine. (I thought that they were wrong before)

LLVM — llvm/trunk/lib/CodeGen MachineOutliner.cpp, llvm/trunk/lib/Target/AArch64 AArch64InstrInfo.cpp

[MachineOutliner][NFC] Exit getOutliningType if there are < 2 candidates

Since we never outline anything with fewer than 2 occurrences, there's no
reason to compute cost model information if there's less than that.

LLVM — cfe/trunk/lib/Driver/ToolChains Linux.cpp, cfe/trunk/test/Driver linux-header-search.cpp

[Driver] Support g++ headers in include/g++

ray's gcc installation puts C++ headers in PREFIX/include/g++ without
indicating a gcc version at all. Typically this is because the version
is encoded somewhere in PREFIX.

Differential Revision: https://reviews.llvm.org/D53770
Delta File
+12 -0 cfe/trunk/test/Driver/linux-header-search.cpp
+3 -0 cfe/trunk/lib/Driver/ToolChains/Linux.cpp
+0 -0 cfe/trunk/test/Driver/Inputs/cray_suse_gcc_tree/
+0 -0 cfe/trunk/test/Driver/Inputs/cray_suse_gcc_tree/opt/gcc/
+0 -0 cfe/trunk/test/Driver/Inputs/cray_suse_gcc_tree/opt/gcc/8.2.0/
+0 -0 cfe/trunk/test/Driver/Inputs/cray_suse_gcc_tree/opt/gcc/8.2.0/snos/
+0 -0 20 files not shown
+15 -0 26 files

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

[AST] Revert r346793 and r346781

This somehow breaks the msan bots. Revert while I figure it out.

LLVM — llvm/trunk/lib/Target/AMDGPU SIISelLowering.cpp, llvm/trunk/test/CodeGen/AMDGPU extract_vector_dynelt.ll indirect-addressing-si.ll

[AMDGPU] combine extractelement into several selects

An extractelement with non-constant index will be lowered either to
scratch or movrel loop in most cases. This patch converts such
instruction into a set of selects if vector size is not too big.

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

LLVM — libcxx/trunk/www cxx2a_status.html

[NFC] Mark LWG3128 and LWG3132 as requiring no work

Those LWG issues were adopted in San Diego and require no work
on our side.

LLVM — llvm/trunk/lib/Analysis MemorySSA.cpp

[MemorySSA] Create query after checking if instruction is a fence.

The alternative is checking if I is a fence in the Query constructor, so
as to not attempt to get a non-existent MemoryLocation.

LLVM — llvm/trunk/test/DebugInfo/X86 gnu-public-names.ll

[AsmPrinter] Fix DebugInfo/X86/gnu-public-names.ll after rL346790

LLVM — lld/trunk/test/ELF gdb-index-multiple-cu-2.s gdb-index-multiple-cu.s, lld/trunk/test/ELF/Inputs gdb-index-multiple-cu-2.s

[ELF] Add a better test for the multi-CU .gdb_index bug that D54361 fixed

gdb-index-multiple-cu-2.s puts the symbol in question to another object file %t1.o, so 
that its CuIndex is affected by the number of CUs in %t.o

Also change `Kind:` in a comment to `Attributes:` as a follow-up of D54480 and D54481

LLVM — llvm/trunk/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp, llvm/trunk/test/CodeGen/AMDGPU extract_vector_dynelt.ll

Fixed DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT i1 handling

Legalizer used to request an ext load from i8 to i1 when promoting
vector element type to i8. Fixed.

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

LLVM — lld/trunk/ELF SyntheticSections.cpp SyntheticSections.h

[ELF] Rename NameTypeEntry to NameAttrEntry and its field "Type" to CuIndexAndAttrs

NameTypeEntry::Type is a bit-packed value of CU index+attributes 
(https://sourceware.org/gdb//onlinedocs/gdb/Index-Section-Format.html), which is named 
cu_index_and_attrs in a local variable in gdb/dwarf2read.c:dw2_symtab_iter_next

The new name CuIndexAndAttrs is more meaningful.

Reviewers: ruiu, dblaikie, espindola

Reviewed By: dblaikie

Subscribers: emaste, aprantl, arichardson, JDevlieghere, arphaman, llvm-commits

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

LLVM — cfe/trunk/include/clang/AST Stmt.h

[AST][NFC] Order the bit-field classes of Stmt like in StmtNodes.td

Reorder the bit-field classes and the members of the anonymous union
so that they both match the order in StmtNodes.td.

There is already a fair amount of them, and this is not going to
improve. Therefore lets try to keep some order here.

Strictly NFC.
Delta File
+80 -63 cfe/trunk/include/clang/AST/Stmt.h
+80 -63 1 file

LLVM — llvm/trunk/lib/Demangle MicrosoftDemangleNodes.cpp, llvm/trunk/test/Demangle ms-nested-scopes.test ms-templates-memptrs.test

[MS Demangler] Print public:, protected:, private: if set in FunctionClass or a variable's 

undname prints them, and the information is in the decorated name, so we probably 
shouldn't lose it when undecorating.

I spot-checked a few of the funnier-looking outputs, and undname has the same output.

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

LLVM — llvm/trunk/lib/CodeGen/AsmPrinter DwarfDebug.cpp, llvm/trunk/test/DebugInfo/X86 gnu-public-names.ll

[AsmPrinter] Rename a comment of .debug_gnu_pubnames entry

The comment refers to the field as "Kind:". However, in gdb,

https://sourceware.org/gdb//onlinedocs/gdb/Index-Section-Format.html names it 
gdb/dwarf2read.c:dw2_symtab_iter_next refers to the whole value as "cu_index_and_attrs"

Change it to `Attributes:` for consistency.

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: aprantl, JDevlieghere, arphaman, llvm-commits

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