LLVM/llvm 356552llvm/trunk/lib/CodeGen/SelectionDAG DAGCombiner.cpp

Remove out of date comment. NFCI.

DAGCombiner::convertBuildVecZextToZext just requires the extractions to be sequential, 
they don't have to start from 0'th index.

LLVM/llvm 356551cfe/trunk/include/clang/Basic AttrDocs.td

Correct this attribute group documentation to have a heading, which fixes the docs 

LLVM/llvm 356550llvm/trunk/lib/CodeGen ExpandMemCmp.cpp, llvm/trunk/test/CodeGen/X86 memcmp-optsize.ll

[ExpandMemCmp] Trigger on bcmp too.

Summary: Fixes 41150.

Reviewers: gchatelet

Subscribers: hiraditya, llvm-commits, ckennelly, sbenza, jyknight

Tags: #llvm

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

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

[X86] Use getConstantOperandAPInt to detect out-of-range shifts.

LLVM/llvm 356548clang-tools-extra/trunk/clang-tidy/tool clang-tidy-diff.py

[clang-tidy] Cosmetic fix

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

LLVM/llvm 356547clang-tools-extra/trunk/clang-tidy/tool clang-tidy-diff.py

[clang-tidy] Parallelize clang-tidy-diff.py

This patch has 2 rationales:

- large patches lead to long command lines and often cause max command line length 
restrictions imposed by OS;
- clang-tidy runs on modified files are independent and can be done in parallel, the same 
as done for run-clang-tidy.

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

LLVM/llvm 356546llvm/trunk/lib/Target/X86 X86ISelLowering.cpp X86ISelLowering.h

[X86] Remove X86 specific dag nodes for RDTSC/RDTSCP/RDPMC. NFCI

This patch removes the following dag node opcodes from namespace X86ISD:


The logic that expands RDTSC/RDPMC/XGETBV intrinsics is basically the same. The
only differences are:

    RDTSC/RDTSCP don't implicitly read ECX.
    RDTSCP also implicitly writes ECX.

I moved the common expansion logic into a helper function with the goal to get
rid of code repetition. That helper is now used for the expansion of

No functional change intended.

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

LLVM/llvm 356545test-suite/trunk/utils compare.py

Add geomean summary row to output from utils/compare.py.

This change adds a summary row with the geometric mean of the selected
metric to the output of utils/compare.py. The 'rhs' values are
normalized to the 'lhs' values and the geometric mean of the results
is computed.

This should be similar to the geomean row in the LNT HTML UI and allow
to compare 2 sets of runs.

Reviewers: anemet, MatzeB, cmatthews, serge-sans-paille

Reviewed By: anemet

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

LLVM/llvm 356544www/trunk index.html header.incl

Update links etc. for the 8.0.0 release

LLVM/llvm 356543cfe/trunk/include/clang/Tooling FixIt.h

Fix -Wdocumentation warning. NFCI.

LLVM/llvm 356542llvm/trunk/lib/ExecutionEngine/PerfJITEvents PerfJITEventListener.cpp

[perf][DebugInfo] follow up for "add SectionedAddress to DebugInfo interfaces"

Summary: Fix the build failure when perf jit is enabled

Reviewers: avl, dblaikie

Reviewed By: avl

Subscribers: modocache, llvm-commits

Tags: #llvm

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

LLVM/llvm 356541cfe/trunk/lib/AST TypePrinter.cpp, clang-tools-extra/trunk/clangd AST.cpp

[clangd] Print arguments in template specializations

Reviewers: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

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

LLVM/llvm 356540llvm/trunk/lib/Target/AMDGPU SIISelLowering.cpp, llvm/trunk/test/CodeGen/AMDGPU img-nouse-adjust.ll

[AMDGPU] Allow MIMG with no uses in adjustWritemask in isel

If an MIMG instruction has managed to get through to adjustWritemask in isel but
has no uses (and doesn't enable TFC) then prevent an assertion by not attempting
to adjust the writemask.

The instruction will be removed anyway.

Change-Id: I9a5dba6bafe1f35ac99c1b73df390936e2ac27a7

Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, tpr, t-tye, llvm-commits

Tags: #llvm

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

LLVM/llvm 356539www-releases/trunk/8.0.0/docs LangRef.html, www-releases/trunk/8.0.0/docs/_sources LangRef.rst.txt

Check in the 8.0.0 release

LLVM/llvm 356538lld/trunk/utils benchmark.py

Python 2/3 compatibility

This should be the only change required to have lld's python code base compatible with 
both Python 2 and Python 3

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

LLVM/llvm 356537cfe/trunk/include/clang/Basic X86Target.def, cfe/trunk/lib/Basic/Targets X86.cpp

[X86] Separate PentiumPro and i686. They aren't aliases in the backend.

PentiumPro has HasNOPL set in the backend. i686 does not.

Despite having a function that looks like it canonicalizes alias names. It
doesn't seem to be called. So I don't think this is a functional change. But its
good to be consistent between the backend and frontend.

LLVM/llvm 356536llvm/trunk/lib/Transforms/InstCombine InstCombineCalls.cpp

[instcombine] Add todos describing missing transforms for masked.* intrinsics

LLVM/llvm 356535llvm/trunk/test/CodeGen/X86 atomic64.ll

[X86] Remove X32 check lines from a test that doesn't have an X32 FileCheck prefix. 
Regenerate the test using update_llc_test_checks. NFC

LLVM/llvm 356534llvm/trunk/include/llvm/Remarks Remark.h, llvm/trunk/lib/Remarks RemarkParserImpl.h

Retry to add workaround to build scoped enums with VS2015. NFCI.

We need this as we still have internal build bots on VS2015.

LLVM/llvm 356533llvm/trunk/include/llvm/Remarks Remark.h, llvm/trunk/lib/Remarks RemarkParserImpl.h

Revert "Add workaround to build scoped enums with VS2015. NFCI."

This reverts commit 6080a6fb1949a2bdf053245d6062c7bf58dae7a6 (r356532).

Clang does not accept this syntax, so reverting this until I can find something that works 
across all compilers.

LLVM/llvm 356532llvm/trunk/include/llvm/Remarks Remark.h, llvm/trunk/lib/Remarks RemarkParserImpl.h

Add workaround to build scoped enums with VS2015. NFCI.

We need this as we still have internal build bots on VS2015.

LLVM/llvm 356531llvm/trunk/lib/Target/X86 X86InstrCompiler.td X86InstrInfo.td, llvm/trunk/test/MC/X86 x86_errors.s

[X86] Re-disable cmpxchg16b for 32-bit mode assembly parsing.

This was broken recently when I factored the 64 bit mode check into hasCmpxchg16 without 
thinking about the AssemblerPredicate.

LLVM/llvm 356530cfe/trunk/include/clang/Basic TokenKinds.def, cfe/trunk/lib/Lex Preprocessor.cpp PPDirectives.cpp

Replace tok::angle_string_literal with new tok::header_name.

Use the new kind for both angled header-name tokens and for
double-quoted header-name tokens.

This is in preparation for C++20's context-sensitive header-name token
formation rules.

LLVM/llvm 356529compiler-rt/trunk/lib/builtins divdf3.c divsf3.c, compiler-rt/trunk/test/builtins/Unit divdf3_test.c divsf3_test.c

[builtins] Divide shouldn't underflow if rounded result would be normal.

We were treating certain edge cases that are actually normal as denormal
results, and flushing them to zero; we shouldn't do that. Not sure this
is the cleanest way to implement this edge case, but I wanted to avoid
adding any code on the common path.

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

LLVM/llvm 356528libcxx/trunk/test/std/utilities/time/time.clock/time.clock.file consistency.pass.cpp

[libc++] Flag file_clock test as expected to fail with ASAN

This silences a known issue, as can be seen by looking at similar
tests for other clocks, like time.clock.steady/consistency.pass.cpp.

LLVM/llvm 356527llvm/trunk/lib/Target/ARM ARMFrameLowering.cpp ARMMachineFunctionInfo.h, llvm/trunk/test/CodeGen/Thumb large-fn-switch.ll

[ARM] Make sure to save/restore LR when we use tBfar.

This change does two things. One, it ensures compilation will abort
instead of miscompiling if ARMFrameLowering::determineCalleeSaves
chooses not to save LR in a case where it's necessary.  Two, it changes
the way we estimate the size of a function to be more conservative in
the presence of constant pool entries and jump tables.

EstimateFunctionSizeInBytes probably still isn't really conservative
enough, but I'm not sure how we can come up with a reliable estimate
before constant islands runs.

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

LLVM/llvm 356526llvm/trunk/lib/Target/AArch64 AArch64InstructionSelector.cpp, llvm/trunk/test/CodeGen/AArch64/GlobalISel opt-shuffle-splat.mir

[AArch64][GlobalISel] Add an optimization to select vector DUP instructions.

This adds pattern matching for the insert+shufflevector sequence so we can
generate dup instructions instead of the current TBL sequence.

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

LLVM/llvm 356525llvm/trunk/lib/Target/AArch64 AArch64LegalizerInfo.cpp, llvm/trunk/test/CodeGen/AArch64/GlobalISel legalize-undef.mir

[AArch64][GlobalISel] Make v4s32 G_IMPLICIT_DEF legal.

LLVM/llvm 356524llvm/trunk/include/llvm-c Target.h

Remove MSVC compat hack since the inline keyword was added in 2015

Our minimum MSVC toolchain requirement is greater than 2015, so we don't
need this conditional macro anymore.  New versions of MSVC apparently
have a header, xkeycheck.h, to check that keywords haven't been

Fixes PR41144

LLVM/llvm 356523libcxx/trunk/lib/abi CHANGELOG.TXT

[libc++] Complete the ABI changelog after landing <filesystem> in the dylib

LLVM/llvm 356522llvm/trunk/lib/Remarks YAMLRemarkParser.cpp

LLVM/llvm 356521llvm/trunk/test/MC/X86 dwarf-size-field-overflow.test

[DwarfDebug] Add triple to test.

LLVM/llvm 356520llvm/trunk/test/Transforms/InstSimplify icmp-abs-nabs.ll

[InstSimplify] Add additional cmp of abs without nsw tests; NFC

LLVM/llvm 356519llvm/trunk/include/llvm-c Remarks.h, llvm/trunk/lib/Remarks RemarkParser.cpp YAMLRemarkParser.cpp

Reland "[Remarks] Add a new Remark / RemarkParser abstraction"

This adds a Remark class that allows us to share code when working with

The C API has been updated to reflect this. Instead of the parser
generating C structs, it's now using a C++ object that is used through
opaque pointers in C. This gives us much more flexibility on what
changes we can make to the internal state of the object and interacts
much better with scenarios where the library is used through dlopen.

* C API updates:
  * move from C structs to opaque pointers and functions
  * the remark type is now an enum instead of a string
* unit tests updates:
  * use mostly the C++ API
  * keep one test for the C API
  * rename to YAMLRemarksParsingTest
* a typo was fixed: AnalysisFPCompute -> AnalysisFPCommute.
* a new error message was added: "expected a remark tag."
* llvm-opt-report has been updated to use the C++ parser instead of the

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

Original llvm-svn: 356491

LLVM/llvm 356518libcxx/trunk CMakeLists.txt, libcxx/trunk/docs UsingLibcxx.rst

[libc++] Build <filesystem> support as part of the dylib

This patch treats <filesystem> as a first-class citizen of the dylib,
like all other sub-libraries (e.g. <chrono>). As such, it also removes
all special handling for installing the filesystem library separately
or disabling part of the test suite from the lit command line.

Unlike the previous attempt (r356500), this doesn't remove all the
filesystem tests.

Reviewers: mclow.lists, EricWF, serge-sans-paille

Subscribers: mgorny, christof, jkorous, dexonsmith, jfb, jdoerfert, libcxx-commits

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

LLVM/llvm 356517cfe/trunk/test/CodeGen arm64-microsoft-status-reg.cpp

Fix CodeGen/arm64-microsoft-status-reg.cpp test

Summary: This test is failing after r356499 (verified with `ninja check-clang-codegen`). 
Update the register selection used in the test from x0 to x8.

Reviewers: arsenm, MatzeB, efriedma

Reviewed By: efriedma

Subscribers: efriedma, wdng, javed.absar, kristof.beyls, cfe-commits

Tags: #clang

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

LLVM/llvm 356516llvm/trunk/lib/Passes PassBuilder.cpp, llvm/trunk/lib/Transforms/IPO PassManagerBuilder.cpp

Revert r356511 "[TailCallElim] Add tailcall elimination pass to LTO pipelines"

Due to buildbot failures (LLD tests).

LLVM/llvm 356515cfe/trunk/include/clang/Basic AttrDocs.td Attr.td, cfe/trunk/lib/AST MicrosoftMangle.cpp ItaniumMangle.cpp

Add a spelling of pass_object_size that uses __builtin_dynamic_object_size

The attribute pass_dynamic_object_size(n) behaves exactly like
pass_object_size(n), but instead of evaluating __builtin_object_size on calls,
it evaluates __builtin_dynamic_object_size, which has the potential to produce
runtime code when the object size can't be determined statically.

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

LLVM/llvm 356514llvm/trunk/lib/CodeGen/AsmPrinter DwarfDebug.cpp, llvm/trunk/test/MC/X86 dwarf-size-field-overflow.test

[DwarfDebug] Skip entries to big for 16 bit size field in Dwarf < 5.

Nothing prevents entries from being bigger than the 16 bit size field in
Dwarf < 5. For entries that are too big, just emit an empty entry
instead of crashing.

This fixes PR41038.

Reviewers: probinson, aprantl, davide

Reviewed By: probinson

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

LLVM/llvm 356513cfe/trunk/include/clang/Basic DiagnosticSemaKinds.td, cfe/trunk/lib/Sema SemaOpenMP.cpp

[OPENMP]Warn if the different allocator is used for the variable.

If the allocator was specified for the variable and next one is found
with the different allocator, the warning is emitted, and the allocator
is ignored.

LLVM/llvm 356512libcxx/trunk/src/support/win32 locale_win32.cpp

[libc++] Speed up certain locale functions on Windows

The issue is that __libcpp_locale_guard makes some slow calls to setlocale().
This change avoids using __libcpp_locale_guard in snprintf_l().

Fixes https://bugs.llvm.org/show_bug.cgi?id=41131

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

LLVM/llvm 356511llvm/trunk/lib/Passes PassBuilder.cpp, llvm/trunk/lib/Transforms/IPO PassManagerBuilder.cpp

[TailCallElim] Add tailcall elimination pass to LTO pipelines

LTO provides additional opportunities for tailcall elimination due to
link-time inlining and visibility of nocapture attribute. Testing showed
negligible impact on compilation times.

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

LLVM/llvm 356510llvm/trunk/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/trunk/test/Transforms/InstCombine masked_intrinsics.ll

Demanded elements support for masked.load and masked.gather

Teach instcombine to propagate demanded elements through a masked load or masked gather 
instruction. This is in the broader context of improving vector pointer instcombine under 

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

LLVM/llvm 356509lldb/trunk/source/Plugins/SymbolFile/DWARF DWARFDebugArangeSet.cpp DWARFDebugInfoEntry.cpp

Delete more dead code.

All of this is code that is unreferenced.  Removing as much of
this as possible makes it more easy to determine what functionality
is missing and/or shared between LLVM and LLDB's DWARF interfaces.

LLVM/llvm 356508cfe/trunk CMakeLists.txt, cfe/trunk/include/clang/Basic DiagnosticDriverKinds.td

Add --unwindlib=[libgcc|compiler-rt] to parallel --rtlib= [take 2]

"clang++ hello.cc --rtlib=compiler-rt"

now can works without specifying additional unwind or exception
handling libraries.

This reworked version of the feature no longer modifies today's default
unwind library for compiler-rt: which is nothing. Rather, a user
can specify -DCLANG_DEFAULT_UNWINDLIB=libunwind when configuring
the compiler.

This should address the issues from the previous version.

Update tests for new --unwindlib semantics.

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

LLVM/llvm 356507cfe/trunk/test/Driver hip-toolchain-mllvm.hip

Move options to separate checks that do not need to immediately follow the previous 
option. NFCI

LLVM/llvm 356506llvm/trunk/include/llvm/CodeGen TargetPassConfig.h, llvm/trunk/lib/CodeGen TargetPassConfig.cpp

CodeGen: Refactor regallocator command line and target selection

This will allow targets more flexibility to replace the
register allocator core passes. In a future commit,
AMDGPU will run the core register assignment passes
twice, and will also want to disallow using the
standard -regalloc option.

LLVM/llvm 356505libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods refresh.pass.cpp, libcxx/trunk/test/std/input.output/filesystems/class.path/path.member path.concat.pass.cpp path.append.pass.cpp

Revert "[libc++] Build <filesystem> support as part of the dylib"

When I applied r356500 (https://reviews.llvm.org/D59152), I somehow
deleted all of filesystem's tests. I will revert r356500 and re-apply
it properly.

LLVM/llvm 356504libcxx/trunk/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t assign2.pass.cpp compare.pass.cpp

Fix char.traits.specializations.char8_t main return

LLVM/llvm 356503libcxx/trunk/lib/abi x86_64-unknown-linux-gnu.v1.abilist

Fixup ABI lists on Linux after adding <filesystem> to the dylib.