Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull down from intel branch #19

Closed
wants to merge 2,769 commits into from
Closed

Pull down from intel branch #19

wants to merge 2,769 commits into from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jan 31, 2019

  1. [llvm-objcopy] Skip --localize-symbol for undefined symbols

    Summary:
    Include the symbol being defined in the list of requirements for using --localize-symbol.
    
    This is used, for example, when someone is depending on two different projects that have the same (or close enough) method defined in each library, and using "-L sym" for a conflicting symbol in one of the libraries so that the definition from the other one is used. However, the library may have internal references to the symbol, which cause program crashes when those are used, i.e.:
    
    ```
    $ cat foo.c
    int foo() { return 5; }
    $ cat bar.c
    int foo();
    int bar() { return 2 * foo(); }
    $ cat foo2.c
    int foo() { /* Safer implementation */ return 42; }
    $ cat main.c
    int bar();
    int main() {
      __builtin_printf("bar = %d\n", bar());
      return 0;
    }
    $ ar rcs libfoo.a foo.o bar.o
    $ ar rcs libfoo2.a foo2.o
    # Picks the wrong foo() impl
    $ clang main.o -lfoo -lfoo2 -L. -o main
    # Picks the right foo() impl
    $ objcopy -L foo libfoo.a && clang main.o -lfoo -lfoo2 -L. -o main
    # Links somehow, but crashes at runtime
    $ llvm-objcopy -L foo libfoo.a && clang main.o -lfoo -lfoo2 -L. -o main
    ```
    
    Reviewers: jhenderson, alexshap, jakehehrlich, espindola
    
    Subscribers: emaste, arichardson
    
    Differential Revision: https://reviews.llvm.org/D57417
    
    llvm-svn: 352767
    rupprecht committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    bd7735f View commit details
    Browse the repository at this point in the history
  2. Revert "[ThinLTO] Rename COMDATs for COFF when promoting/renaming COM…

    …DAT leader"
    
    This reverts commit r352763.
    
    Causing a couple bot failures, root cause pointed to by sanitizer bot:
    http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/28909/steps/annotate/logs/stdio
    
    Use after free. I understand the issue but will revert and test with fix
    before recommitting.
    
    llvm-svn: 352768
    teresajohnson committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    4877715 View commit details
    Browse the repository at this point in the history
  3. revert r352766: [PatternMatch] add special-case uaddo matching for in…

    …crement-by-one
    
    Missed some regression test updates when testing this.
    
    llvm-svn: 352769
    rotateright committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    4ec1599 View commit details
    Browse the repository at this point in the history
  4. Recommit "[ThinLTO] Rename COMDATs for COFF when promoting/renaming C…

    …OMDAT leader"
    
    Recommit of r352763 with fix for use after free.
    
    llvm-svn: 352770
    teresajohnson committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    f59242e View commit details
    Browse the repository at this point in the history
  5. [CallSite removal] Remove CallSite uses from InstCombine.

    Reviewers: chandlerc
    
    Reviewed By: chandlerc
    
    Subscribers: llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57494
    
    llvm-svn: 352771
    topperc committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    c1892ec View commit details
    Browse the repository at this point in the history
  6. Fix use of non-existing variable in crashlog.py

    Summary:
    The method find_matching_slice(self) uses uuid_str on one of the paths but the variable does not exist and so this results in a NameError exception if we take that path.
    
    Differential Revision: https://reviews.llvm.org/D57467
    
    llvm-svn: 352772
    shafik committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    d03bf06 View commit details
    Browse the repository at this point in the history
  7. [X86][AVX] insert_subvector(bitcast(v), bitcast(s), c1) -> bitcast(in…

    …sert_subvector(v,s,c2))
    
    Similar to what we already do in DAGCombiner, but this version also handles bitcasts from types with different scalar sizes, which x86 is better at handling.
    
    Differential Revision: https://reviews.llvm.org/D57514
    
    llvm-svn: 352773
    RKSimon committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    d04a2d2 View commit details
    Browse the repository at this point in the history
  8. [X86][AVX] Fold concat(broadcast(x),broadcast(x)) -> broadcast(x)

    Differential Revision: https://reviews.llvm.org/D57514
    
    llvm-svn: 352774
    RKSimon committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    eb6aef6 View commit details
    Browse the repository at this point in the history
  9. Trim trailing whitespace. NFCI.

    llvm-svn: 352775
    RKSimon committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    00cefe1 View commit details
    Browse the repository at this point in the history
  10. [ADT] Fix a typo in isOSVersionLT that breaks the Micro version check

    The original commit of this function (r129800 in 2011) had a typo where
    part of the "Micro" version check was actually comparing against the "Minor"
    version number.
    
    llvm-svn: 352776
    bob-wilson committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    9f4563b View commit details
    Browse the repository at this point in the history
  11. GlobalISel: Fix handling of vectors of pointers in clamp{Min,Max}NumE…

    …lements
    
    This avoids hitting the assert added in r352636 in a future commit.
    
    llvm-svn: 352777
    arsenm committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    4b94d25 View commit details
    Browse the repository at this point in the history
  12. [libFuzzer] relax a flaky test

    llvm-svn: 352778
    kcc committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    02a86e6 View commit details
    Browse the repository at this point in the history
  13. Lower widenable_conditions in CGP

    This ensures that if we make it to the backend w/o lowering widenable_conditions first, that we generate correct code. Doing it in CGP - instead of isel - let's us fold control flow before hitting block local instruction selection.
    
    Differential Revision: https://reviews.llvm.org/D57473
    
    llvm-svn: 352779
    preames committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    ede49dd View commit details
    Browse the repository at this point in the history
  14. [unittest] Fix scalar unit test.

    The test was using ASSERT_EQ instead of ASSERT_STREQ which meant we were
    comparing string addresses instead of the actual string. This caused the
    test to fail with with the sanitizers enabled.
    
    llvm-svn: 352780
    JDevlieghere committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    043ff33 View commit details
    Browse the repository at this point in the history
  15. Fix a bit of libc++-specific behavior in the regex tests; add a missi…

    …ng test. Reviewed as https://reviews.llvm.org/D57391 Thanks to Andrey Maksimov for the patch
    
    llvm-svn: 352781
    mclow committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    dd426c2 View commit details
    Browse the repository at this point in the history
  16. Revert "[X86] Mark EMMS and FEMMS as clobbering MM0-7 and ST0-7."

    This is causing a failure in chromium
    
    llvm-svn: 352782
    topperc committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    a8f0745 View commit details
    Browse the repository at this point in the history
  17. [Intrinsic] Expand SMULFIX to MUL, MULH[US], or [US]MUL_LOHI on vecto…

    …r arguments
    
    r zero scale SMULFIX, expand into MUL which produces better code for X86.
    
    For vector arguments, expand into MUL if SMULFIX is provided with a zero scale.
    Otherwise, expand into MULH[US] or [US]MUL_LOHI.
    
    Differential Revision: https://reviews.llvm.org/D56987
    
    llvm-svn: 352783
    PiJoules committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    ae527ac View commit details
    Browse the repository at this point in the history
  18. [DAG] Aggressively cleanup dangling node in CombineZExtLogicopShiftLoad.

    While dangling nodes will eventually be pruned when they are
    considered, leaving them disables combines requiring single-use.
    
    Reviewers: Carrot, spatel, craig.topper, RKSimon, efriedma
    
    Subscribers: hiraditya, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57520
    
    llvm-svn: 352784
    niravhdave committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    4061b44 View commit details
    Browse the repository at this point in the history
  19. [ELF] Return the section name when calling getSymbolName on a section…

    … symbol.
    
    Summary:
    Previously, llvm-nm would report symbols for .debug and .note sections as: '?' with an empty  section name:
    
    ```
    00000000 ?
    00000000 ?
    ...
    ```
    
    With this patch the output more closely resembles GNU nm:
    ```
    00000000 N .debug_abbrev
    00000000 n .note.GNU-stack
    ...
    ```
    
    This patch calls `getSectionName` for sections that belong to symbols of type `ELF::STT_SECTION`, which returns the name of the section from the section string table.
    
    Reviewers: Bigcheese, davide, jhenderson
    
    Reviewed By: davide, jhenderson
    
    Subscribers: rupprecht, jhenderson, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57105
    
    llvm-svn: 352785
    Matt Davis authored and Matt Davis committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    82937e4 View commit details
    Browse the repository at this point in the history
  20. [DAG][SystemZ] Define unwrapAddress for PCREL_WRAPPER.

    Summary:
    Like with X86, this allows better DAG-level alias analysis and
    alignment inference for wrapped addresses.
    
    Reviewers: jonpa, uweigand
    
    Reviewed By: uweigand
    
    Subscribers: hiraditya, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57407
    
    llvm-svn: 352786
    niravhdave committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    b792299 View commit details
    Browse the repository at this point in the history
  21. [MemorySSA] Extend removeMemoryAccess API to optimize MemoryPhis.

    Summary:
    EarlyCSE needs to optimize MemoryPhis after an access is removed and has
    special handling for it. This should be handled by MemorySSA instead.
    The default remains that MemoryPhis are *not* optimized after an access
    is removed.
    
    Reviewers: george.burgess.iv
    
    Subscribers: sanjoy, jlebar, llvm-commits, Prazek
    
    Differential Revision: https://reviews.llvm.org/D57199
    
    llvm-svn: 352787
    alinas committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    240a90a View commit details
    Browse the repository at this point in the history
  22. [CodeComplete] Propagate preferred types through parser in more cases

    Preferred types are used by code completion for ranking. This commit
    considerably increases the number of points in code where those types
    are propagated.
    
    In order to avoid complicating signatures of Parser's methods, a
    preferred type is kept as a member variable in the parser and updated
    during parsing.
    
    Differential revision: https://reviews.llvm.org/D56723
    
    llvm-svn: 352788
    ilya-biryukov committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    4f9543b View commit details
    Browse the repository at this point in the history
  23. [fuzzer] Use RawPrint instead of Printf for instrumentation warning

    Summary:
    Use RawPrint instead of Printf for instrumentation warning because
    Printf doesn't work on Win when instrumentation is being
    initialized (since OutputFile is not yet initialized).
    
    Reviewers: kcc
    
    Reviewed By: kcc
    
    Differential Revision: https://reviews.llvm.org/D57531
    
    llvm-svn: 352789
    jonathanmetzman committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    fc7faec View commit details
    Browse the repository at this point in the history
  24. [cmake] Note future cleanup in comment. NFC

    CMake 3.6 introduced CMAKE_TRY_COMPILE_PLATFORM_VARIABLES, which solves
    precisely the problem that necessitated init_user_prop, so we can switch
    over whenever we bump our minimum CMake requirement.
    
    llvm-svn: 352790
    smeenai committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    e1b332e View commit details
    Browse the repository at this point in the history
  25. [opaque pointer types] Add a FunctionCallee wrapper type, and use it.

    The FunctionCallee type is effectively a {FunctionType*,Value*} pair,
    and is a useful convenience to enable code to continue passing the
    result of getOrInsertFunction() through to EmitCall, even once pointer
    types lose their pointee-type.
    
    Then:
    - update the CallInst/InvokeInst instruction creation functions to
      take a Callee,
    - modify getOrInsertFunction to return FunctionCallee, and
    - update all callers appropriately.
    
    One area of particular note is the change to the sanitizer
    code. Previously, they had been casting the result of
    `getOrInsertFunction` to a `Function*` via
    `checkSanitizerInterfaceFunction`, and storing that. That would report
    an error if someone had already inserted a function declaraction with
    a mismatching signature.
    
    However, in general, LLVM allows for such mismatches, as
    `getOrInsertFunction` will automatically insert a bitcast if
    needed. As part of this cleanup, cause the sanitizer code to do the
    same. (It will call its functions using the expected signature,
    however they may have been declared.)
    
    Finally, in a small number of locations, callers of
    `getOrInsertFunction` actually were expecting/requiring that a brand
    new function was being created. In such cases, I've switched them to
    Function::Create instead.
    
    Differential Revision: https://reviews.llvm.org/D57315
    
    llvm-svn: 352791
    jyknight committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    f47d6b3 View commit details
    Browse the repository at this point in the history
  26. [DAGCombine] Avoid CombineZExtLogicopShiftLoad if there is free ZEXT

    This patch fixes pr39098.
    
    For the attached test case, CombineZExtLogicopShiftLoad can optimize it to
    
    t25: i64 = Constant<1099511627775>
    t35: i64 = Constant<0>
      t0: ch = EntryToken
    t57: i64,ch = load<(load 4 from `i40* undef`, align 8), zext from i32> t0, undef:i64, undef:i64
        t58: i64 = srl t57, Constant:i8<1>
      t60: i64 = and t58, Constant:i64<524287>
    t29: ch = store<(store 5 into `i40* undef`, align 8), trunc to i40> t57:1, t60, undef:i64, undef:i64
    
    But later visitANDLike transforms it to
    
    t25: i64 = Constant<1099511627775>
    t35: i64 = Constant<0>
      t0: ch = EntryToken
    t57: i64,ch = load<(load 4 from `i40* undef`, align 8), zext from i32> t0, undef:i64, undef:i64
          t61: i32 = truncate t57
        t63: i32 = srl t61, Constant:i8<1>
      t64: i32 = and t63, Constant:i32<524287>
    t65: i64 = zero_extend t64
        t58: i64 = srl t57, Constant:i8<1>
      t60: i64 = and t58, Constant:i64<524287>
    t29: ch = store<(store 5 into `i40* undef`, align 8), trunc to i40> t57:1, t60, undef:i64, undef:i64
    
    And it triggers CombineZExtLogicopShiftLoad again, causes a dead loop.
    
    Both forms should generate same instructions, CombineZExtLogicopShiftLoad generated IR looks cleaner. But it looks more difficult to prevent visitANDLike to do the transform, so I prevent CombineZExtLogicopShiftLoad to do the transform if the ZExt is free.
    
    Differential Revision: https://reviews.llvm.org/D57491
    
    llvm-svn: 352792
    weiguozhi committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    0bed9e0 View commit details
    Browse the repository at this point in the history
  27. [WebAssembly] Add bulk memory target feature

    Summary: Also clean up some preexisting target feature code.
    
    Reviewers: aheejin
    
    Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, jfb
    
    Differential Revision: https://reviews.llvm.org/D57495
    
    llvm-svn: 352793
    tlively committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    88058d4 View commit details
    Browse the repository at this point in the history
  28. [EarlyCSE & MSSA] Cleanup special handling for removing MemoryAccesses.

    Summary: Moving special handling to MemorySSAUpdater in D57199.
    
    Reviewers: gberry, george.burgess.iv
    
    Subscribers: sanjoy, jlebar, Prazek, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57200
    
    llvm-svn: 352794
    alinas committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    e271889 View commit details
    Browse the repository at this point in the history
  29. Fix compilation error with GCC after r352791.

    llvm-svn: 352795
    jyknight committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    0bd6b91 View commit details
    Browse the repository at this point in the history
  30. [clangd] A code action to swap branches of an if statement

    Reviewers: sammccall
    
    Reviewed By: sammccall
    
    Subscribers: llvm-commits, mgorny, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D56611
    
    llvm-svn: 352796
    ilya-biryukov committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    4399878 View commit details
    Browse the repository at this point in the history
  31. [CUDA] Propagate detected version of CUDA to cc1

    ..and use it to control that parts of CUDA compilation
    that depend on the specific version of CUDA SDK.
    
    This patch has a placeholder for a 'new launch API' support
    which is in a separate patch. The list will be further
    extended in the upcoming patch to support CUDA-10.1.
    
    Differential Revision: https://reviews.llvm.org/D57487
    
    llvm-svn: 352798
    Artem-B committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    8fa28a0 View commit details
    Browse the repository at this point in the history
  32. [CUDA] add support for the new kernel launch API in CUDA-9.2+.

    Instead of calling CUDA runtime to arrange function arguments,
    the new API constructs arguments in a local array and the kernels
    are launched with __cudaLaunchKernel().
    
    The old API has been deprecated and is expected to go away
    in the next CUDA release.
    
    Differential Revision: https://reviews.llvm.org/D57488
    
    llvm-svn: 352799
    Artem-B committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    c62214d View commit details
    Browse the repository at this point in the history
  33. Revert "[opaque pointer types] Add a FunctionCallee wrapper type, and…

    … use it."
    
    This reverts commit f47d6b3 (r352791).
    
    Seems to run into compilation failures with GCC (but not clang, where
    I tested it). Reverting while I investigate.
    
    llvm-svn: 352800
    jyknight committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    fadf250 View commit details
    Browse the repository at this point in the history
  34. Do not copy long double and 128-bit fp format from aux target for AMDGPU

    rC352620 caused regressions because it copied floating point format from
    aux target.
    
    floating point format decides whether extended long double is supported.
    It is x86_fp80 on x86 but IEEE double on amdgcn.
    
    Document usage of long doubel type in HIP programming guide 
    ROCm/HIP#890
    
    Differential Revision: https://reviews.llvm.org/D57527
    
    llvm-svn: 352801
    yxsamliu committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    277e064 View commit details
    Browse the repository at this point in the history
  35. [Hexagon] Rename textually included file from .h to .inc

    llvm-svn: 352802
    Weverything committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    8f6182f View commit details
    Browse the repository at this point in the history
  36. Make clang/test/Index/pch-from-libclang.c pass in more places

    - fixes the test on macOS with LLVM_ENABLE_PIC=OFF
    - together with D57343, gets the test to pass on Windows
    - makes it run everywhere (it seems to just pass on Linux)
    
    The main change is to pull out the resource directory computation into a
    function shared by all 3 places that do it. In CIndexer.cpp, this now works no
    matter if libclang is in lib/ or bin/ or statically linked to a binary in bin/.
    
    
    Differential Revision: https://reviews.llvm.org/D57345
    
    llvm-svn: 352803
    nico committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    0abcafd View commit details
    Browse the repository at this point in the history
  37. [ASTDump] Make template specialization tests more exact

    Reviewers: aaron.ballman
    
    Subscribers: cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57502
    
    llvm-svn: 352804
    steveire committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    9560b79 View commit details
    Browse the repository at this point in the history
  38. [x86] add test for missed opportunity to use 'inc'; NFC

    llvm-svn: 352805
    rotateright committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    d16ca2f View commit details
    Browse the repository at this point in the history
  39. [WebAssembly] MC: Fix for outputing wasm object to /dev/null

    Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57479
    
    llvm-svn: 352806
    sbc100 committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    c0affde View commit details
    Browse the repository at this point in the history
  40. [RISCV] Add RV64F codegen support

    This requires a little extra work due tothe fact i32 is not a legal type. When
    call lowering happens post-legalisation (e.g. when an intrinsic was inserted
    during legalisation). A bitcast from f32 to i32 can't be introduced. This is
    similar to the challenges with RV32D. To handle this, we introduce
    target-specific DAG nodes that perform bitcast+anyext for f32->i64 and
    trunc+bitcast for i64->f32.
    
    Differential Revision: https://reviews.llvm.org/D53235
    
    llvm-svn: 352807
    asb committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    d834d83 View commit details
    Browse the repository at this point in the history
  41. Re-disable pch-from-libclang.c after 352803, some buildbots are still…

    … unhappy
    
    llvm-svn: 352809
    nico committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    c944462 View commit details
    Browse the repository at this point in the history
  42. Fixed hasLinkerPrivateGlobalPrefix treating StringRef as C String.

    Reviewers: jgravelle-google, sbc100
    
    Subscribers: aheejin, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57545
    
    llvm-svn: 352810
    aardappel committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    5f563f0 View commit details
    Browse the repository at this point in the history
  43. Bump minimum toolchain version

    Summary:
    The RFC on moving past C++11 got good traction:
      http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html
    
    This patch therefore bumps the toolchain versions according to our policy:
      llvm.org/docs/DeveloperPolicy.html#toolchain
    
    Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane
    
    Differential Revision: https://reviews.llvm.org/D57264
    
    llvm-svn: 352811
    jfbastien committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    62bb58a View commit details
    Browse the repository at this point in the history
  44. DeveloperPolicy: update toolchain with sample RFC / patch

    As was suggested when the policy originally went in.
    
    llvm-svn: 352812
    jfbastien committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    d5dbe83 View commit details
    Browse the repository at this point in the history
  45. [WebAssembly] Fix a regression selecting negative build_vector lanes

    Summary:
    The custom lowering introduced in rL352592 creates build_vector nodes
    with negative i32 operands, but these operands did not meet the value
    range constraints necessary to match build_vector nodes. This CL fixes
    the issue by removing the unnecessary constraints.
    
    Reviewers: aheejin
    
    Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish
    
    Differential Revision: https://reviews.llvm.org/D57481
    
    llvm-svn: 352813
    tlively committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    9a48438 View commit details
    Browse the repository at this point in the history
  46. Revert "Bump minimum toolchain version"

    A handful of bots are still breaking, either because I missed them in my audit,
    they were offline, or something else. I'm contacting their authors, but I'll
    revert for now and re-commit later.
    
    llvm-svn: 352814
    jfbastien committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    e2dedd5 View commit details
    Browse the repository at this point in the history
  47. [libFuzzer][Windows] Temporarily disable value-profile-cmp2.test on Win

    Summary:
    Temporarily disable value-profile-cmp2.test on Win.
    https://reviews.llvm.org/D57465 causes the test to fail on Win.
    However, it seems that the behavior of libFuzzer on Win was broken
    before that patch. It crashes in the exit handler when not used with
    ASAN. Prior to the patch, the crash handler would run, tricking the
    test into thinking libFuzzer on Win had exited properly.
    
    Reviewers: morehouse, vitalybuka
    
    Reviewed By: morehouse
    
    Subscribers: yln
    
    Differential Revision: https://reviews.llvm.org/D57551
    
    llvm-svn: 352815
    jonathanmetzman committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    6f94a03 View commit details
    Browse the repository at this point in the history
  48. hwasan: Add __hwasan_init_static() function.

    This function initializes enough of the runtime to be able to run
    instrumented code in a statically linked executable. It replaces
    __hwasan_shadow_init() which wasn't doing enough initialization for
    instrumented code that uses either TLS or IFUNC to work.
    
    Differential Revision: https://reviews.llvm.org/D57490
    
    llvm-svn: 352816
    pcc committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    886b7cc View commit details
    Browse the repository at this point in the history
  49. GlobalISel: Fix MMO creation with non-power-of-2 mem size

    It should probably just be mandatory for getTgtMemIntrinsic to return
    the alignment.
    
    llvm-svn: 352817
    arsenm committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    50d6579 View commit details
    Browse the repository at this point in the history
  50. [sanitizer-coverage] prune trace-cmp instrumentation for CMP isntruct…

    …ions that feed into the backedge branch. Instrumenting these CMP instructions is almost always useless (and harmful) for fuzzing
    
    llvm-svn: 352818
    kcc committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    a78a44d View commit details
    Browse the repository at this point in the history
  51. [libFuzzer] make a test for exploding dfsan labels more agressive

    llvm-svn: 352819
    kcc committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    ae667c4 View commit details
    Browse the repository at this point in the history
  52. [x86] add test for missed opportunity to use 'inc'; NFC

    Another pattern exposed in D57516.
    
    llvm-svn: 352820
    rotateright committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    da45d68 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2019

  1. [x86] adjust test to show both add/inc options; NFC

    If we're optimizing for size, that overrides the subtarget
    feature, so we would always produce 'inc' if we matched
    this pattern.
    
    llvm-svn: 352821
    rotateright committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    ef9a388 View commit details
    Browse the repository at this point in the history
  2. Revert "[Sema] Make canPassInRegisters return true if the CXXRecordDe…

    …cl passed"
    
    This reverts commit r350920 as it is not clear whether we should force a
    class to be returned in registers when copy and move constructors are
    both deleted.
    
    For more background, see the following discussion:
    http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20190128/259907.html
    
    llvm-svn: 352822
    ahatanaka committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    9e67183 View commit details
    Browse the repository at this point in the history
  3. Mark __rela_iplt_{start,end} as weak.

    Should fix non-lld links.
    
    llvm-svn: 352823
    pcc committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    6fa43f8 View commit details
    Browse the repository at this point in the history
  4. [analyzer] [RetainCountChecker] Fix object type for CF/Obj-C bridged …

    …casts
    
    Having an incorrect type for a cast causes the checker to incorrectly
    dismiss the operation under ARC, leading to a false positive
    use-after-release on the test.
    
    rdar://47709885
    
    Differential Revision: https://reviews.llvm.org/D57557
    
    llvm-svn: 352824
    George Karpenkov committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    b6c6ab3 View commit details
    Browse the repository at this point in the history
  5. Fix names of functions in TargetOptionsCommandFlags.h. NFC.

    Differential Revision: https://reviews.llvm.org/D57555
    
    llvm-svn: 352825
    sbc100 committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    dfbd190 View commit details
    Browse the repository at this point in the history
  6. [ELF] Support --{,no-}allow-shlib-undefined

    Summary:
    In ld.bfd/gold, --no-allow-shlib-undefined is the default when linking
    an executable. This patch implements a check to error on undefined
    symbols in a shared object, if all of its DT_NEEDED entries are seen.
    
    Our approach resembles the one used in gold, achieves a good balance to
    be useful but not too smart (ld.bfd traces all DSOs and emulates the
    behavior of a dynamic linker to catch more cases).
    
    The error is issued based on the symbol table, different from undefined
    reference errors issued for relocations. It is most effective when there
    are DSOs that were not linked with -z defs (e.g. when static sanitizers
    runtime is used).
    
    gold has a comment that some system libraries on GNU/Linux may have
    spurious undefined references and thus system libraries should be
    excluded (https://sourceware.org/bugzilla/show_bug.cgi?id=6811). The
    story may have changed now but we make --allow-shlib-undefined the
    default for now. Its interaction with -shared can be discussed in the
    future.
    
    Reviewers: ruiu, grimar, pcc, espindola
    
    Reviewed By: ruiu
    
    Subscribers: joerg, emaste, arichardson, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57385
    
    llvm-svn: 352826
    MaskRay committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    b4744d3 View commit details
    Browse the repository at this point in the history
  7. [opaque pointer types] Add a FunctionCallee wrapper type, and use it.

    Recommit r352791 after tweaking DerivedTypes.h slightly, so that gcc
    doesn't choke on it, hopefully.
    
    Original Message:
    The FunctionCallee type is effectively a {FunctionType*,Value*} pair,
    and is a useful convenience to enable code to continue passing the
    result of getOrInsertFunction() through to EmitCall, even once pointer
    types lose their pointee-type.
    
    Then:
    - update the CallInst/InvokeInst instruction creation functions to
      take a Callee,
    - modify getOrInsertFunction to return FunctionCallee, and
    - update all callers appropriately.
    
    One area of particular note is the change to the sanitizer
    code. Previously, they had been casting the result of
    `getOrInsertFunction` to a `Function*` via
    `checkSanitizerInterfaceFunction`, and storing that. That would report
    an error if someone had already inserted a function declaraction with
    a mismatching signature.
    
    However, in general, LLVM allows for such mismatches, as
    `getOrInsertFunction` will automatically insert a bitcast if
    needed. As part of this cleanup, cause the sanitizer code to do the
    same. (It will call its functions using the expected signature,
    however they may have been declared.)
    
    Finally, in a small number of locations, callers of
    `getOrInsertFunction` actually were expecting/requiring that a brand
    new function was being created. In such cases, I've switched them to
    Function::Create instead.
    
    Differential Revision: https://reviews.llvm.org/D57315
    
    llvm-svn: 352827
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    1368022 View commit details
    Browse the repository at this point in the history
  8. [WebAssembly] Support imports from custom module names

    Fixes: https://bugs.llvm.org/show_bug.cgi?id=37168
    
    This is only a first pass at supporting these custom import
    modules.  In the long run we most likely want to treat these
    kinds of symbols very differently.  For example, it should not
    be possible to resolve such as symbol at static link type.
    
    Differential Revision: https://reviews.llvm.org/D45796
    
    llvm-svn: 352828
    sbc100 committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    7cc0753 View commit details
    Browse the repository at this point in the history
  9. [Sanitizers] UBSan unreachable incompatible with ASan in the presence…

    … of `noreturn` calls
    
    Summary:
    UBSan wants to detect when unreachable code is actually reached, so it
    adds instrumentation before every unreachable instruction. However, the
    optimizer will remove code after calls to functions marked with
    noreturn. To avoid this UBSan removes noreturn from both the call
    instruction as well as from the function itself. Unfortunately, ASan
    relies on this annotation to unpoison the stack by inserting calls to
    _asan_handle_no_return before noreturn functions. This is important for
    functions that do not return but access the the stack memory, e.g.,
    unwinder functions *like* longjmp (longjmp itself is actually
    "double-proofed" via its interceptor). The result is that when ASan and
    UBSan are combined, the noreturn attributes are missing and ASan cannot
    unpoison the stack, so it has false positives when stack unwinding is
    used.
    
    Changes:
    Clang-CodeGen now directly insert calls to `__asan_handle_no_return`
    when a call to a noreturn function is encountered and both
    UBsan-unreachable and ASan are enabled. This allows UBSan to continue
    removing the noreturn attribute from functions without any changes to
    the ASan pass.
    
    Previously generated code:
    ```
      call void @longjmp
      call void @__asan_handle_no_return
      call void @__ubsan_handle_builtin_unreachable
    ```
    
    Generated code (for now):
    ```
      call void @__asan_handle_no_return
      call void @longjmp
      call void @__asan_handle_no_return
      call void @__ubsan_handle_builtin_unreachable
    ```
    
    rdar://problem/40723397
    
    Reviewers: delcypher, eugenis, vsk
    
    Differential Revision: https://reviews.llvm.org/D57278
    
    > llvm-svn: 352690
    
    llvm-svn: 352829
    yln committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    b6c06dc View commit details
    Browse the repository at this point in the history
  10. Fix compilation of examples after 1368022 / r352827

    Who knew...they're not built by default or as part of the tests.
    
    llvm-svn: 352830
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    473e342 View commit details
    Browse the repository at this point in the history
  11. [SemaCXX] Param diagnostic matches overload logic

    Summary:
    Given the following test program:
    
    ```
    class C {
    public:
      int A(int a, int& b);
    };
    
    int C::A(const int a, int b) {
      return a * b;
    }
    ```
    
    Clang would produce an error message that correctly diagnosed the
    redeclaration of `C::A` to not match the original declaration (the
    parameters to the two declarations do not match -- the original takes an
    `int &` as its 2nd parameter, but the redeclaration takes an `int`). However,
    it also produced a note diagnostic that inaccurately pointed to the
    first parameter, claiming that `const int` in the redeclaration did not
    match the unqualified `int` in the original. The diagnostic is
    misleading because it has nothing to do with why the program does not
    compile.
    
    The logic for checking for a function overload, in
    `Sema::FunctionParamTypesAreEqual`, discards cv-qualifiers before
    checking whether the types are equal. Do the same when producing the
    overload diagnostic.
    
    Reviewers: rsmith
    
    Reviewed By: rsmith
    
    Subscribers: cpplearner, cfe-commits
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57032
    
    llvm-svn: 352831
    modocache committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    3aba9fd View commit details
    Browse the repository at this point in the history
  12. [SelectionDAG] Support promotion of the FPOWI integer operand

    For targets where i32 is not a legal type (e.g. 64-bit RISC-V),
    LegalizeIntegerTypes must promote the integer operand of ISD::FPOWI. As this
    is a signed value, this should be sign-extended.
    
    This patch enables all tests in test/CodeGen/RISCVfloat-intrinsics.ll for
    RV64, as prior to this patch that file couldn't be compiled for RV64 due to an
    assertion when performing codegen for fpowi.
    
    Differential Revision: https://reviews.llvm.org/D54574
    
    llvm-svn: 352832
    asb committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    32b7738 View commit details
    Browse the repository at this point in the history
  13. [RISCV] Implement RV64D codegen

    This patch:
    * Adds necessary RV64D codegen patterns
    * Modifies CC_RISCV so it will properly handle f64 types (with soft float ABI)
    
    Note that in general there is no reason to try to select fcvt.w[u].d rather than fcvt.l[u].d for i32 conversions because fptosi/fptoui produce poison if the input won't fit into the target type.
    
    Differential Revision: https://reviews.llvm.org/D53237
    
    llvm-svn: 352833
    asb committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    7539fa2 View commit details
    Browse the repository at this point in the history
  14. Bump minimum toolchain version

    Summary:
    The RFC on moving past C++11 got good traction:
      http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html
    
    This patch therefore bumps the toolchain versions according to our policy:
      llvm.org/docs/DeveloperPolicy.html#toolchain
    
    Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane
    
    Differential Revision: https://reviews.llvm.org/D57264
    
    llvm-svn: 352834
    jfbastien committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    77074f9 View commit details
    Browse the repository at this point in the history
  15. Revert "Bump minimum toolchain version"

    Looks like we still have a few bots that are sad. Let try to get them fixed!
    
    llvm-svn: 352835
    jfbastien committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    c6931dd View commit details
    Browse the repository at this point in the history
  16. [clangd] Fix crash in applyTweak, remove TweakID alias.

    Strings are complicated, giving them opaque names makes us forget
    they're complicated.
    
    llvm-svn: 352837
    sam-mccall committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    8a32f3b View commit details
    Browse the repository at this point in the history
  17. Fix isInSystemMacro to handle pasted macros

    Token pasted by the preprocessor (through ##) have a Spelling pointing to scratch buffer.
    As a result they are not recognized at system macro, even though the pasting happened in
    a system macro. Fix that by looking into the parent macro if the original lookup finds a
    scratch buffer.
    
    Differential Revision: https://reviews.llvm.org/D55782
    
    This effectively fixes https://bugs.llvm.org/show_bug.cgi?id=35268,
    
    llvm-svn: 352838
    Serge Guelton committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    5ef88bd View commit details
    Browse the repository at this point in the history
  18. [SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI.

    Indices are checked as they are generated. No need to fill the whole array of indices.
    
    Differential Revision: https://reviews.llvm.org/D57144
    
    llvm-svn: 352839
    Yevgeny Rouban committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    4cdd783 View commit details
    Browse the repository at this point in the history
  19. [obj2yaml] - Merge dumpRelSection and dumpRelaSection. NFC.

    These methods are very similar, patch merge them into one.
    
    Differential revision: https://reviews.llvm.org/D57461
    
    llvm-svn: 352840
    George Rimar committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    afe8a04 View commit details
    Browse the repository at this point in the history
  20. [clangd] Fix -DBUILD_SHARED_LIBS=ON build - SwapIfBranches needs clan…

    …gAST.
    
    Else, fails with:
    
    [1/2] Linking CXX executable bin/clangd
    FAILED: bin/clangd
    : && /usr/bin/g++  -pipe -O2 -g0 -UNDEBUG -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -pipe -O2 -g0 -UNDEBUG  -fuse-ld=lld -Wl,--color-diagnostics -Wl,-allow-shlib-undefined     -Wl,-O3 -Wl,--gc-sections tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/SwapIfBranches.cpp.o tools/clang/tools/extra/clangd/tool/CMakeFiles/clangd.dir/ClangdMain.cpp.o  -o bin/clangd  -Wl,-rpath,"\$ORIGIN/../lib" lib/libLLVMSupport.so.9svn -lpthread lib/libclangBasic.so.9svn lib/libclangTidy.so.9svn lib/libclangDaemon.so.9svn lib/libclangFormat.so.9svn lib/libclangFrontend.so.9svn lib/libclangSema.so.9svn lib/libclangTooling.so.9svn lib/libclangToolingCore.so.9svn && :
    ld.lld: error: undefined symbol: clang::FunctionDecl::getBody(clang::FunctionDecl const*&) const
    >>> referenced by SwapIfBranches.cpp
    >>>               tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/SwapIfBranches.cpp.o:(clang::FunctionDecl::getBody() const)
    
    and so on.
    
    llvm-svn: 352841
    LebedevRI committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    11f7969 View commit details
    Browse the repository at this point in the history
  21. Test commit: fix typo

    llvm-svn: 352842
    smateo committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    f3e00fe View commit details
    Browse the repository at this point in the history
  22. [clangd] clangDaemonTweaks - fix -DBUILD_SHARED_LIBS=ON build

    Followup for rL352841.
    
    llvm-svn: 352843
    LebedevRI committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    3440c33 View commit details
    Browse the repository at this point in the history
  23. [CodeGen] Don't scavenge non-saved regs in exception throwing functions

    Previously, LiveRegUnits was assuming that if a block has no successors
    and does not return, then no registers are live at the end of it
    (because the end of the block is unreachable). This was causing the
    register scavenger to use callee-saved registers to materialise stack
    frame addresses without saving them in the prologue. This would normally
    be fine, because the end of the block is unreachable, but this is not
    legal if the block ends by throwing a C++ exception. If this happens,
    the scratch register will be modified, but its previous value won't be
    preserved, so it doesn't get restored by the exception unwinder.
    
    Differential revision: https://reviews.llvm.org/D57381
    
    llvm-svn: 352844
    ostannard committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    bac1151 View commit details
    Browse the repository at this point in the history
  24. [PDB] Fix location retrieval for function local variables and argumen…

    …ts that are
    
    stored relative to VFRAME
    
    Summary:
    This patch makes LLDB able to retrieve proper values for function arguments and
    local variables stored in PDB relative to VFRAME register.
    
    Patch contains retrieval of corresponding FPO table entries from PDB and a
    generic translator from FPO programs to DWARF expressions to get correct VFRAME
    value.
    
    Patch also improves variables-locations.test and makes this test passable on
    x86.
    
    Patch By: leonid.mashinsky
    
    Reviewers: zturner, asmith, stella.stamenova, aleksandr.urakov
    
    Reviewed By: zturner
    
    Subscribers: arphaman, labath, mgorny, aprantl, JDevlieghere, lldb-commits
    
    Tags: #lldb
    
    Differential Revision: https://reviews.llvm.org/D55122
    
    llvm-svn: 352845
    Aleksandr Urakov committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    758657e View commit details
    Browse the repository at this point in the history
  25. [doc]Update String Error documentation in Programmer Manual

    A while back, createStringError was added to provide easier construction
    of StringError instances, especially with formatting options. Prior to
    this patch, that the documentation only mentions the standard method of
    using it. Since createStringError is slightly shorter to type, and also
    provides the formatting options, this patch updates the Programmer's
    Manual to use the new function in its examples, and to mention the
    printf formatting options. It also fixes a small typo in one of the
    examples and removes the unnecessary make_error_code call.
    
    llvm-svn: 352846
    jh7370 committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    fb3ca13 View commit details
    Browse the repository at this point in the history
  26. [llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer

    Prior to this change, there are a few tests called llvm-symbolizer* in
    the DebugInfo test area. These really were testing either the DebugInfo
    or Symbolizer library, rather than the llvm-symbolizer tool itself, so
    this patch renames them to be clearer that they aren't explicitly tests
    for llvm-symbolizer (such tests belong in test/tools/llvm-symbolizer).
    
    This patch also reinstates the copying of a DWO file, removed previously
    in r352752. The test needs this so that it could possibly fail.
    
    Finally, some of the tests have been simplified slightly by removing
    unnecessary switches and/or unused check-prefixes.
    
    Reviewed by: dblaikie
    
    Differential Revision: https://reviews.llvm.org/D57518
    
    llvm-svn: 352847
    jh7370 committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    563a29d View commit details
    Browse the repository at this point in the history
  27. Revert r352750.

    This was causing a build bot failure:
    http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/15346/
    
    llvm-svn: 352848
    jh7370 committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    212833c View commit details
    Browse the repository at this point in the history
  28. Provide reason messages for unviable inlining

    InlineCost's isInlineViable() is changed to return InlineResult
    instead of bool. This provides messages for failure reasons and
    allows to get more specific messages for cases where callsites
    are not viable for inlining.
    
    Reviewed By: xbolva00, anemet
    
    Differential Revision: https://reviews.llvm.org/D57089
    
    llvm-svn: 352849
    Yevgeny Rouban committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    15b17d0 View commit details
    Browse the repository at this point in the history
  29. [clangd] Unbreak fuzzer target

    llvm-svn: 352857
    sam-mccall committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    554644e View commit details
    Browse the repository at this point in the history
  30. [PDB] Fix build after r352845

    llvm-svn: 352858
    Aleksandr Urakov committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    2c15fc5 View commit details
    Browse the repository at this point in the history
  31. [X86][BdVer2] Transfer delays from the integer to the floating point …

    …unit.
    
    Summary:
    I'm unable to find this number in the "AMD SOG for family 15h".
    llvm-exegesis measures the latencies of these instructions as `2`,
    which matches the latencies specified in "AMD SOG for family 15h".
    
    However if we look at Agner, Microarchitecture, "AMD Bulldozer, Piledriver,
    Steamroller and Excavator pipeline", "Data delay between different execution
    domains", the int->ivec transfer is listed as `8`..`10`cy of additional latency.
    
    Also, Agner's "Instruction tables", for Piledriver, lists their latencies as `12`,
    which is consistent with `2cy` from exegesis / AMD SOG + `10cy` transfer delay.
    
    Additional data point comes from the fact that Agner's "Instruction tables",
    for Jaguar, lists their latencies as `8`; and "AMD SOG for family 16h" does
    state the `+6cy` int->ivec delay, which is consistent with instr latency of `1` or `2`.
    
    Reviewers: andreadb, RKSimon, craig.topper
    
    Reviewed By: andreadb
    
    Subscribers: gbedwell, courbet, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57300
    
    llvm-svn: 352861
    LebedevRI committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    7857215 View commit details
    Browse the repository at this point in the history
  32. Disable tidy checks with too many hits

    Summary:
    Some tidy checks have too many hits in the codebase, making it hard to spot
    other results from clang-tidy, therefore rendering the tool less useful.
    
    Two checks were disabled:
      - misc-non-private-member-variable-in-classes in the whole LLVM monorepo,
        it is very common to have those in LLVM and the style guide does not forbid
        them.
      - readability-identifier-naming in the clang subtree. There are thousands of
        violations in 'Sema.h' alone.
    
    Before the change, 'Sema.h' had >1000 tidy warnings, after the change the number
    dropped to 3 warnings (unterminated namespace comments).
    
    Reviewers: alexfh, hokein
    
    Reviewed By: hokein
    
    Subscribers: llvm-commits, cfe-commits
    
    Tags: #clang, #llvm
    
    Differential Revision: https://reviews.llvm.org/D57573
    
    llvm-svn: 352862
    ilya-biryukov committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    d226bc8 View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    b34fca6 View commit details
    Browse the repository at this point in the history
  34. [clangd] Implement textDocument/declaration from LSP 3.14

    Summary:
    LSP now reflects the declaration/definition distinction.
    
    Language server changes:
     - textDocument/definition now returns a definition if one is found, otherwise
       the declaration. It no longer returns declaration + definition if they are
       distinct.
     - textDocument/declaration returns the best declaration we can find.
     - For macros, the active macro definition is returned for both methods.
     - For include directive, the top of the target file is returned for both.
    There doesn't appear to be a discovery mechanism (we can't return everything to
    clients that only know about definition), so this changes existing behavior.
    In practice, it should greatly reduce the fraction of the time we need to show
    the user a menu of options.
    
    C++ API changes:
     - findDefinitions is replaced by locateSymbolAt, which returns a
       vector<LocatedSymbol> - one for each symbol under the cursor.
     - this contains the preferred declaration, the definition (if found), and
       the symbol name
    This API enables some potentially-neat extensions, like swapping between decl
    and def, and exposing the symbol name to the UI in the case of multiple symbols.
    
    Reviewers: hokein
    
    Subscribers: ilya-biryukov, javed.absar, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57388
    
    llvm-svn: 352864
    sam-mccall committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    866ba2c View commit details
    Browse the repository at this point in the history
  35. [CUDA] Relax lit test condition after r352798.

    Clang executable doesn't match clang.* in all test environment.
    
    llvm-svn: 352865
    Eric Liu committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    f4b19c0 View commit details
    Browse the repository at this point in the history
  36. [AArch64] Optimize floating point materialization

    This patch changes isFPImmLegal to return if the value can be enconded
    as the immediate operand of a logical instruction besides checking if
    for immediate field for fmov.
    
    This optimizes some floating point materization, inclusive values
    used on isinf lowering.
    
    Reviewed By: rengolin, efriedma, evandro
    
    Differential Revision: https://reviews.llvm.org/D57044
    
    llvm-svn: 352866
    zatrazz committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    b3ccc55 View commit details
    Browse the repository at this point in the history
  37. [clangd] Penalize file-scope symbols in the ranking for non-completio…

    …n queries
    
    Patch by Nathan Ridge!
    
    Differential Revision: https://reviews.llvm.org/D56653
    
    llvm-svn: 352868
    sam-mccall committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    a4cf26b View commit details
    Browse the repository at this point in the history
  38. [CMake] Add install targets for utilities to LLVM exports if LLVM_INS…

    …TALL_UTILS=ON
    
    Summary: D56606 was only appending target names to the `LLVM_EXPORTS`/`LLVM_EXPORTS_BUILDTREE_ONLY` properties. Targets showed up correctly in the build-tree `LLVMExports.cmake`, but they were missing in the installed one (as we found in https://bugs.llvm.org/show_bug.cgi?id=40443), because install did not register them explicitly.
    
    Reviewers: mgorny, smeenai, beanz, gottesmm, dschuff, tstellar, serge-sans-paille
    
    Reviewed By: smeenai
    
    Subscribers: llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57383
    
    llvm-svn: 352869
    weliveindetail committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    d9e66e1 View commit details
    Browse the repository at this point in the history
  39. [InstCombine] try to reduce x86 addcarry to generic uaddo intrinsic

    If we can reduce the x86-specific intrinsic to the generic op, it allows existing 
    simplifications and value tracking folds. AFAICT, this always results in identical 
    x86 codegen in the non-reduced case...which should be true because we semi-generically 
    (too aggressively IMO) convert to llvm.uadd.with.overflow in CGP, so the DAG/isel must 
    already combine/lower this intrinsic as expected.
    
    This isn't quite what was requested in:
    https://bugs.llvm.org/show_bug.cgi?id=40486
    ...but we want to have these kinds of folds early for efficiency and to enable greater 
    simplifications. For the case in the bug report where we have:
    _addcarry_u64(0, ahi, 0, &ahi)
    ...this gets completely simplified away in IR.
    
    Differential Revision: https://reviews.llvm.org/D57453
    
    llvm-svn: 352870
    rotateright committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    be23a91 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    8495aab View commit details
    Browse the repository at this point in the history
  41. [libclang] Fix -DBUILD_SHARED_LIBS=on build after rC352803

    llvm-svn: 352872
    MaskRay committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    4fb0a2c View commit details
    Browse the repository at this point in the history
  42. [InstCombine] reduce duplicate code; NFC

    An unused variable problem was introduced with rL352870 
    and stubbed out with rL352871, but we can make a better
    fix by actually using the local variable in code rather 
    than just the assert.  
    
    llvm-svn: 352873
    rotateright committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    fbcbac7 View commit details
    Browse the repository at this point in the history
  43. [clangd] Lib to compute and represent selection under cursor.

    Summary:
    The primary problem this solves is to expose the codeAction selection to
    AST-based refactorings in a way that makes it easy and efficient for them to
    bind to the right parts of the AST.
    
    It should also allow us to make XRefs based features (textDocument/definition)
    more robust, more easily implement textDocument/typeDefinition etc.
    As an example, template parameter references can be identified without special
    handling.
    There should be slight speedup too: we can prune most of the AST traversal
    in most cases.
    
    Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection.
    That captures a smaller set of AST nodes, has a slightly different way of
    representing selections, and generally has mare features and does more work.
    The overall shape is pretty similar, and yet I can't quite get to behave as I
    expect.
    
    Reviewers: ilya-biryukov, kadircet
    
    Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57562
    
    llvm-svn: 352874
    sam-mccall committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    3186e3c View commit details
    Browse the repository at this point in the history
  44. [clangd] Lib to compute and represent selection under cursor.

    Summary:
    The primary problem this solves is to expose the codeAction selection to
    AST-based refactorings in a way that makes it easy and efficient for them to
    bind to the right parts of the AST.
    
    It should also allow us to make XRefs based features (textDocument/definition)
    more robust, more easily implement textDocument/typeDefinition etc.
    As an example, template parameter references can be identified without special
    handling.
    There should be slight speedup too: we can prune most of the AST traversal
    in most cases.
    
    Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection.
    That captures a smaller set of AST nodes, has a slightly different way of
    representing selections, and generally has mare features and does more work.
    The overall shape is pretty similar, and yet I can't quite get to behave as I
    expect.
    
    Reviewers: ilya-biryukov, kadircet
    
    Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57562
    
    llvm-svn: 352875
    sam-mccall committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    2048f22 View commit details
    Browse the repository at this point in the history
  45. [clangd] Expose SelectionTree to code tweaks, and use it for swap if …

    …branches.
    
    Summary:
    This reduces the per-check implementation burden and redundant work.
    It also makes checks range-aware by default (treating the commonAncestor
    as if it were a point selection should be good baseline behavior).
    
    Reviewers: ilya-biryukov
    
    Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57570
    
    llvm-svn: 352876
    sam-mccall committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    9c8f432 View commit details
    Browse the repository at this point in the history
  46. [llvm-objcopy][NFC] Propagate errors in removeSymbols/removeSectionRe…

    …ferences
    
    Reviewers: jhenderson, alexshap, jakehehrlich, espindola
    
    Reviewed By: jhenderson
    
    Subscribers: emaste, arichardson, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57543
    
    llvm-svn: 352877
    rupprecht committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    971d476 View commit details
    Browse the repository at this point in the history
  47. [llvm-strip] Implement --keep-file-symbols

    Differential revision: https://reviews.llvm.org/D57582
    
    llvm-svn: 352878
    eleviant committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    05a3f99 View commit details
    Browse the repository at this point in the history
  48. [X86][AVX] Combine INSERT_SUBVECTOR(SRC0, BITCAST(SHUFFLE(EXTRACT_SUB…

    …VECTOR(SRC1)))
    
    Enable peeking through one use bitcasts to the subvector shuffle.
    
    This still depends on the subvector being the same scalar-size but D57514 has already helped with the more tricky patterns
    
    llvm-svn: 352879
    RKSimon committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    1a529f5 View commit details
    Browse the repository at this point in the history
  49. [TargetLowering] try harder to determine undef elements of vector binops

    This might be the start of tracking all vector element constants generally if we take it to its 
    logical conclusion, but let's stop here and make sure this is correct/beneficial so far.
    
    The affected tests require a convoluted path before they get simplified currently because we 
    don't call SimplifyDemandedVectorElts() from binops directly and don't modify the binop operands 
    directly in SimplifyDemandedVectorElts().
    
    That's why the tests all have a trailing shuffle to induce a chain reaction of transforms. So 
    something like this is happening:
    
    1. Improve the knowledge of undefs in the binop via a SimplifyDemandedVectorElts() call that 
       originates from a shuffle.
    2. Transfer that undef knowledge back to the shuffle mask user as more undef lanes.
    3. Combine the modified shuffle by calling SimplifyDemandedVectorElts() again.
    4. Translate the improved shuffle mask as undemanded lanes of build vector constants causing 
       those to become full undef constants.
    5. Simplify the binop now that it has a full undef operand.
    
    As we can see from the unchanged 'and' and 'or' tests, tracking undefs alone isn't a full solution. 
    We would need to track zero and all-ones constants to improve those opcodes. We'd probably need to 
    track NaN for FP ops too (assuming we don't have fast-math-flags set).
    
    Differential Revision: https://reviews.llvm.org/D57066
    
    llvm-svn: 352880
    rotateright committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    0279b5b View commit details
    Browse the repository at this point in the history
  50. [CMake] External compiler-rt-configure requires LLVMTestingSupport wh…

    …en including tests
    
    Summary:
    Apparently `LLVMTestingSupport` must be built before `llvm-config` can be asked for it. Symptom with `LLVM_INCLUDE_TESTS=ON` is:
    ```
    $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport
    -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names
    llvm-config: error: component libraries and shared library
    
    llvm-config: error: missing: /path/to/llvm-build/lib/libLLVMTestingSupport.a
    ```
    
    With `LLVMTestingSupport` as dependency of `compiler-rt-configure` we get the expected behavior:
    ```
    $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport
    -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names
    -lLLVMTestingSupport -lLLVMSupport -lLLVMDemangle
    ```
    
    Reviewers: ab, beanz
    
    Subscribers: dberris, mgorny, erik.pilkington, llvm-commits, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57521
    
    llvm-svn: 352881
    weliveindetail committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    f869996 View commit details
    Browse the repository at this point in the history
  51. [AST][OpenMP] OpenMP Sections / Section constructs contain Structured…

    … blocks
    
    Summary:
    I'm working on a clang-tidy check, much like existing [[ http://clang.llvm.org/extra/clang-tidy/checks/bugprone-exception-escape.html | bugprone-exception-escape ]],
    to detect when an exception might escape out of an OpenMP construct it isn't supposed to escape from.
    For that i will be using the `nothrow` bit of `CapturedDecl`s.
    
    While that bit is already correctly set for some constructs, e.g. `#pragma omp parallel`: https://godbolt.org/z/2La7pv
    it isn't set for the `#pragma omp sections`, or `#pragma omp section`: https://godbolt.org/z/qZ-EbP
    
    If i'm reading [[ https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf | `OpenMP Application Programming Interface Version 5.0 November 2018` ]] correctly,
    they should be, as per `2.8.1 sections Construct`, starting with page 86:
    * The sections construct is a non-iterative worksharing construct that contains a set of **structured blocks**
      that are to be distributed among and executed by the threads in a team. Each **structured block** is executed
      once by one of the threads in the team in the context of its implicit task.
    * The syntax of the sections construct is as follows:
      #pragma omp sections [clause[ [,] clause] ... ] new-line
        {
          [#pragma omp section new-line]
            **structured-block**
       ...
    * Description
      Each **structured block** in the sections construct is preceded by a section directive except
      possibly **the first block**, for which a preceding section directive is optional.
    
    * Restrictions
      • The code enclosed in a sections construct must be a **structured block**.
      * A throw executed inside a sections region must cause execution to resume within the same
        section of the sections region, and the same thread that threw the exception must catch it.
    
    Reviewers: ABataev, #openmp
    
    Reviewed By: ABataev
    
    Subscribers: guansong, openmp-commits, cfe-commits
    
    Tags: #clang, #openmp
    
    Differential Revision: https://reviews.llvm.org/D57585
    
    llvm-svn: 352882
    LebedevRI committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    9fb113e View commit details
    Browse the repository at this point in the history
  52. [X86][SSE] Use PSLLDQ/PSRLDQ to mask out zeroable ends of a shuffle

    As suggested on PR40318, this patch uses PSLLDQ/PSRLDQ to lower shuffles to zero out the ends of a vector, leaving a sequential inner section.
    
    For pre-SSSE3 we do this for shuffles with zeros at either end (requiring up to 3 shifts), but once PSHUFB is available I've limited this to shuffles with a single zeroable end (2 shifts).
    
    Differential Revision: https://reviews.llvm.org/D56784
    
    llvm-svn: 352883
    RKSimon committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    8518401 View commit details
    Browse the repository at this point in the history
  53. [SDAG] improve variable names; NFC

    The version of FoldConstantArithmetic() that takes arbitrary nodes
    was confusingly naming those nodes as constants when they might
    not be; also "Cst" reads like "Cast".
    
    llvm-svn: 352884
    rotateright committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    6502b14 View commit details
    Browse the repository at this point in the history
  54. [AMDGPU] Fix for vector element insertion

    Summary:
    Incorrect code was generated when lowering insertelement operations
    for vectors with 8 or 16 bit elements.  The value being inserted was
    not adjusted for the position of the element within the 32 bit word
    and so only the low element within each 32 bit word could receive
    the intended value.
    
    Fixed by simply replicating the value to each element of a
    congruent vector before the mask and or operation used to
    update the intended element.
    
    A number of affected LIT tests have been updated appropriately.
    
    before the mask & or into the intended
    
    Reviewers: arsenm, nhaehnle
    
    Reviewed By: arsenm
    
    Subscribers: llvm-commits, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57588
    
    llvm-svn: 352885
    Tim Corringham committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    fa3e4e5 View commit details
    Browse the repository at this point in the history
  55. [InstCombine] Refactor test checks (NFC)

    llvm-svn: 352886
    Evandro Menezes committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    3724d15 View commit details
    Browse the repository at this point in the history
  56. Fix some sphinx doc errors.

    llvm-svn: 352887
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    94b9709 View commit details
    Browse the repository at this point in the history
  57. [llvm-objcopy][NFC] More error propagation (executeObjcopyOnArchive)

    Summary:
    Replace some reportError() calls with error propagation that was missed from rL352625.
    
    Note this also adds an error check during Archive iteration that was being hidden by a different error check before:
    
    ```
      for (const Archive::Child &Child : Ar.children(Err)) {
        Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary();
        if (!ChildOrErr)
          // This aborts, so Err is never checked
          reportError(Ar.getFileName(), ChildOrErr.takeError());
    ```
    
    Err is being checked after the loop, so during happy runs, everything is fine. But when reportError is changed to return the error instead of aborting, the fact that Err is never checked is now noticed in tests that trigger an error during the loop.
    
    Reviewers: jhenderson, dblaikie, alexshap
    
    Reviewed By: dblaikie
    
    Subscribers: llvm-commits, lhames, jakehehrlich
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57462
    
    llvm-svn: 352888
    rupprecht committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    18886db View commit details
    Browse the repository at this point in the history
  58. [DWARF v5] Fix DWARF emitter and consumer to produce/expect a uleb fo…

    …r a location description's length.
    
    Reviewer: davide, JDevliegere
    
    Differential Revision: https://reviews.llvm.org/D57550
    
    llvm-svn: 352889
    wolfy1961 committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    58513b7 View commit details
    Browse the repository at this point in the history
  59. Update SanitizerCoverage doc regarding the issue with pc-table and gc…

    …-sections.
    
    Summary:
    There is a bug for this: https://bugs.llvm.org/show_bug.cgi?id=34636
    But it would be also helpful to leave a note in the docs to prevent users from
    running into issues, e.g. https://crbug.com/926588.
    
    Reviewers: morehouse
    
    Reviewed By: morehouse
    
    Subscribers: cfe-commits, llvm-commits, kcc
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57474
    
    llvm-svn: 352890
    Dor1s committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    1238838 View commit details
    Browse the repository at this point in the history
  60. [llvm-nm] Report '.comment' ELF sections as 'n' instead of '?'

    Summary:
    The previous implementation reported `.comment` sections as '?'
    GNU uses 'n' which means  "The symbol is a debugging symbol."  `.note`  sections are represented as 'n' too.
    
    The test related to this change was updated to CHECK-NEXT to ensure
    order and that we did not miss any symbols in the dump.
    
    Reviewers: jhenderson
    
    Reviewed By: jhenderson
    
    Subscribers: rupprecht, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57544
    
    llvm-svn: 352891
    Matt Davis authored and Matt Davis committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    68fad50 View commit details
    Browse the repository at this point in the history
  61. [InstCombine] Expand Windows test (NFC)

    Add checks for Win64 to existing cases.
    
    llvm-svn: 352892
    Evandro Menezes committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    743ba66 View commit details
    Browse the repository at this point in the history
  62. gn build: Add a missing dependency from llvm/test to llvm-lit

    check-llvm already listed llvm-lit as script which counts as a dep, so running
    check-llvm worked fine, but `ninja -C out/gn llvm/test` didn't build llvm-lit
    before if it wasn't already there.
    
    llvm-svn: 352893
    nico committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    186fcdb View commit details
    Browse the repository at this point in the history
  63. Fix the xcode build for r352845.

    llvm-svn: 352894
    jimingham committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    5c65444 View commit details
    Browse the repository at this point in the history
  64. [InstCombine] Refactor test checks (NFC)

    llvm-svn: 352895
    Evandro Menezes committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    25b4c4c View commit details
    Browse the repository at this point in the history
  65. [llvm-readobj] Add a flag to dump just the section-to-segment mapping.

    Summary:
    The following patch introduces a new function `printSectionMapping` which is responsible for dumping just the section-to-segment mapping.
    This patch also introduces a n option `-section-mapping` that outputs that mapping without the program headers.
    
    Previously, this functionality was controlled by `printProgramHeaders`, and the output from `-program-headers` has not been changed.  I am happy to change the option name, I copied  the name that was displayed when outputting the mapping table.
    
    Reviewers: khemant, jhenderson, grimar, rupprecht
    
    Reviewed By: jhenderson, grimar, rupprecht
    
    Subscribers: rupprecht, jhenderson, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57365
    
    llvm-svn: 352896
    Matt Davis authored and Matt Davis committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    50ca8ed View commit details
    Browse the repository at this point in the history
  66. test commit (add blank line) NFC

    llvm-svn: 352897
    RolandF77 committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    7f29195 View commit details
    Browse the repository at this point in the history
  67. Fix a bug in the definition of isUnordered on MachineMemOperand

    Background: At the moment, we record the AtomicOrdering of an access in the MMO, but also mark any atomic access as volatile in SelectionDAG. GlobalISEL keeps the two separate, but currently doesn't know how to lower an atomic G_LOAD at all. See https://reviews.llvm.org/D57601 for context.
    
    The definition used for unordered was only checking volatility, not atomicity. As noted above, all atomic MMOs are currently also volatile, so this is a latent bug only. Copy the definition used in IR, after auditing the two (2) uses of the function to be sure the desired semantics are the same.
    
    Differential Revision: https://reviews.llvm.org/D57593
    
    llvm-svn: 352898
    preames committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    5503e4f View commit details
    Browse the repository at this point in the history
  68. [lldb] Relax libc++ ABI version checking

    libc++ has programmable ABI versioning controllable with the _LIBCPP_ABI_VERSION
    macro.  Currently there are at least 3 settings used in real systems (1 as the
    default, ndk1 for Anroid, Cr for Chromium).
    
    Only the 1 and ndk1 cases were handled.  This change relaxes the check to allow
    any ABI version.
    
    Differential Revision: https://reviews.llvm.org/D57466
    
    llvm-svn: 352899
    tanderson-google committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    7ba2d3e View commit details
    Browse the repository at this point in the history
  69. [llvm-objdump] - llvm-objdump can skip bytes at the end of a section.

    Differential Revision: https://reviews.llvm.org/D57549
    
    llvm-svn: 352900
    Sid Manning committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    5d9c8ad View commit details
    Browse the repository at this point in the history
  70. Revert "Fix the xcode build for r352845."

    This reverts commit 72c1213a5e901b80c0f1d2794e5088d7f71a3632.
    
    llvm-svn: 352901
    weliveindetail committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    5c49a3f View commit details
    Browse the repository at this point in the history
  71. Fix the xcode build for r352845, attempt #2

    llvm-svn: 352902
    weliveindetail committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    da8fe66 View commit details
    Browse the repository at this point in the history
  72. Hopefully fix a couple more sphinx doc errors.

    These seem to only appear on the buildbot runner, and it looks like we
    tried to suppress them, but it's not working. Not sure why.
    
    llvm-svn: 352903
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    6e75c7e View commit details
    Browse the repository at this point in the history
  73. [InstCombine] Extra null-checking on TFE/LWE support

    - If that operand is not ConstantInt, skip enabling TFE/LWE.
    
    Differential Revision: https://reviews.llvm.org/D57539
    
    llvm-svn: 352904
    darkbuck committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    8b323f5 View commit details
    Browse the repository at this point in the history
  74. [libc++] Disentangle the 3 implementations of type_info

    Summary:
    We currently have effectively 3 implementations of type_info: one for
    the Microsoft ABI, one that does not assume that there's a unique copy
    of each RTTI in a progran, and one that assumes a unique copy.
    
    Those 3 implementations are entangled into the same class with nested
    ifdefs, which makes it very difficult to understand. Furthermore, the
    benefit of doing this is rather small since the code that is duplicated
    across implementations is just a couple of trivial lines.
    
    This patch stamps out the 3 versions of type_info explicitly to increase
    readability. It also explains what's going on with short comments, because
    it's far from obvious.
    
    Reviewers: EricWF, mclow.lists
    
    Subscribers: christof, jkorous, dexonsmith
    
    Differential Revision: https://reviews.llvm.org/D57606
    
    llvm-svn: 352905
    ldionne committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    6b653fc View commit details
    Browse the repository at this point in the history
  75. [OpenMP 5.0] Parsing/sema support for "omp declare mapper" directive.

    This patch implements parsing and sema for "omp declare mapper"
    directive. User defined mapper, i.e., declare mapper directive, is a new
    feature in OpenMP 5.0. It is introduced to extend existing map clauses
    for the purpose of simplifying the copy of complex data structures
    between host and device (i.e., deep copy). An example is shown below:
    
        struct S {  int len;  int *d; };
        #pragma omp declare mapper(struct S s) map(s, s.d[0:s.len]) // Memory region that d points to is also mapped using this mapper.
    
    Contributed-by: Lingda Li <lildmh@gmail.com>
    
    Differential Revision: https://reviews.llvm.org/D56326
    
    llvm-svn: 352906
    Meinersbur committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    251e148 View commit details
    Browse the repository at this point in the history
  76. gn build: Create regular archives for the sanitizer runtimes.

    We'll need to do this eventually if we create an installable package.
    For now, this lets me use the archives to build Android, whose build
    system wants to copy the archives to another location.
    
    Differential Revision: https://reviews.llvm.org/D57607
    
    llvm-svn: 352907
    pcc committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    a18761a View commit details
    Browse the repository at this point in the history
  77. [InstCombine] Expand Windows test (NFC)

    Run checks for Win64 as well.
    
    llvm-svn: 352908
    Evandro Menezes committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    c456309 View commit details
    Browse the repository at this point in the history
  78. [opaque pointer types] Pass function types to CallInst creation.

    This cleans up all CallInst creation in LLVM to explicitly pass a
    function type rather than deriving it from the pointer's element-type.
    
    Differential Revision: https://reviews.llvm.org/D57170
    
    llvm-svn: 352909
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    7976eb5 View commit details
    Browse the repository at this point in the history
  79. [opaque pointer types] Pass function types to InvokeInst creation.

    This cleans up all InvokeInst creation in LLVM to explicitly pass a
    function type rather than deriving it from the pointer's element-type.
    
    Differential Revision: https://reviews.llvm.org/D57171
    
    llvm-svn: 352910
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    d9e85a0 View commit details
    Browse the repository at this point in the history
  80. [opaque pointer types] Pass value type to LoadInst creation.

    This cleans up all LoadInst creation in LLVM to explicitly pass the
    value type rather than deriving it from the pointer's element-type.
    
    Differential Revision: https://reviews.llvm.org/D57172
    
    llvm-svn: 352911
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    14359ef View commit details
    Browse the repository at this point in the history
  81. [opaque pointer types] Pass value type to GetElementPtr creation.

    This cleans up all GetElementPtr creation in LLVM to explicitly pass a
    value type rather than deriving it from the pointer's element-type.
    
    Differential Revision: https://reviews.llvm.org/D57173
    
    llvm-svn: 352913
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    7716075 View commit details
    Browse the repository at this point in the history
  82. [opaque pointer types] Pass function type for CallBase::setCalledFunc…

    …tion.
    
    Differential Revision: https://reviews.llvm.org/D57174
    
    llvm-svn: 352914
    jyknight committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    291f791 View commit details
    Browse the repository at this point in the history
  83. [DebugInfo] Don't use realpath when looking up debug binary locations.

    Summary:
    Using realpath makes assumptions about build systems that do not always hold true. The debug binary referred to from the .gnu_debuglink should exist in the same directory (or in a .debug directory, etc.), but the files may only exist as symlinks to a differently named files elsewhere, and using realpath causes that lookup to fail.
    
    This was added in r189250, and this is basically a revert + regression test case.
    
    Reviewers: dblaikie, samsonov, jhenderson
    
    Reviewed By: dblaikie
    
    Subscribers: llvm-commits, hiraditya
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57609
    
    llvm-svn: 352916
    rupprecht committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    835df27 View commit details
    Browse the repository at this point in the history
  84. [InstCombine] Expand Windows test (NFC)

    Run checks for Win32 as well.
    
    llvm-svn: 352917
    Evandro Menezes committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    d91776a View commit details
    Browse the repository at this point in the history
  85. [DebugInfo] Fix mkdir use in test

    llvm-svn: 352918
    rupprecht committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    614dd19 View commit details
    Browse the repository at this point in the history
  86. Configuration menu
    Copy the full SHA
    de9ffab View commit details
    Browse the repository at this point in the history
  87. [AMDGPU] Mark test functions with hidden visibility

    Prepare for future patch which affects codegen for calls to preemptible
    functions.
    
    Differential Revision: https://reviews.llvm.org/D57605
    
    llvm-svn: 352920
    scott-linder committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    afc24ed View commit details
    Browse the repository at this point in the history
  88. [ubsan] Make suppressions.cpp test pass for me on Windows

    The test seems to be failing because the module suppression file
    contains a colon. I found that it was sufficient to just use the
    basename of the suppression file.
    
    While I was here, I noticed that we don't implement IsAbsolutePath for
    Windows, so I added it.
    
    llvm-svn: 352921
    rnk committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    33706e3 View commit details
    Browse the repository at this point in the history
  89. [X86][AVX] Add VMOVDDUP-VPBROADCASTQ execution domain mapping

    Noticed in D57514.
    
    Differential Revision: https://reviews.llvm.org/D57519
    
    llvm-svn: 352922
    RKSimon committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    e95550f View commit details
    Browse the repository at this point in the history
  90. [COFF, ARM64] Fix localaddress to handle stack realignment and variab…

    …le size objects
    
    Summary: This fixes using the correct stack registers for SEH when stack realignment is needed or when variable size objects are present.
    
    Reviewers: rnk, efriedma, ssijaric, TomTan
    
    Reviewed By: rnk, efriedma
    
    Subscribers: javed.absar, kristof.beyls, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57183
    
    llvm-svn: 352923
    Mandeep Singh Grang committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    70d484d View commit details
    Browse the repository at this point in the history
  91. Factor out duplication between ExprIterator and ConstExprIterator.

    This also exposes a more general iterator cast mechanism suitable for
    use in http://reviews.llvm.org/D56571.
    
    llvm-svn: 352925
    zygoloid committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    259e1bd View commit details
    Browse the repository at this point in the history
  92. add a test and a couple minor bug fixes for the implicit-signed-integ…

    …er-truncation sanitizer. This is PR#40566
    
    llvm-svn: 352926
    mclow committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    2e719bc View commit details
    Browse the repository at this point in the history
  93. Improve diagnostic to tell you a type is incomplete.

    I recently ran into this code:
    ```
    \#include <iostream>
    void foo(const std::string &s, const std::string& = "");
    \#include <string>
    void test() { foo(""); }
    ```
    
    The diagnostic produced said it can't bind char[1] to std::string
    const&. It didn't mention std::string is incomplete. The user had to
    infer that.
    
    This patch causes the diagnostic to now say "incomplete type".
    
    llvm-svn: 352927
    EricWF committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    1147f71 View commit details
    Browse the repository at this point in the history
  94. [COFF] Fix crashes when writing a PDB after adding thunks.

    When writing a PDB, the OutputSection of all chunks need to be set.
    The thunks are added directly to OutputSection after the normal
    machinery that sets it for all other chunks.
    
    This fixes part of PR40467.
    
    Differential Revision: https://reviews.llvm.org/D57574
    
    llvm-svn: 352928
    mstorsjo committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    b2b0cab View commit details
    Browse the repository at this point in the history
  95. [COFF] Create range extension thunks for ARM64

    On ARM64, this is normally necessary only after a module exceeds
    128 MB in size (while the limit for thumb is 16 MB). For conditional
    branches, the range limit is only 1 MB though (the same as for thumb),
    and for the tbz instruction, the range is only 32 KB, which allows for
    a test much smaller than the full 128 MB.
    
    This fixes PR40467.
    
    Differential Revision: https://reviews.llvm.org/D57575
    
    llvm-svn: 352929
    mstorsjo committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    c9f4d25 View commit details
    Browse the repository at this point in the history
  96. [WebAssembly] Add an import_field function attribute

    This is similar to import_module, but sets the import field name
    instead.
    
    By default, the import field name is the same as the C/asm/.o symbol
    name. However, there are situations where it's useful to have it be
    different. For example, suppose I have a wasm API with a module named
    "pwsix" and a field named "read". There's no risk of namespace
    collisions with user code at the wasm level because the generic name
    "read" is qualified by the module name "pwsix". However in the C/asm/.o
    namespaces, the module name is not used, so if I have a global function
    named "read", it is intruding on the user's namespace.
    
    With the import_field module, I can declare my function (in libc) to be
    "__read", and then set the wasm import module to be "pwsix" and the wasm
    import field to be "read". So at the C/asm/.o levels, my symbol is
    outside the user namespace.
    
    Differential Revision: https://reviews.llvm.org/D57602
    
    llvm-svn: 352930
    Dan Gohman committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    cae8459 View commit details
    Browse the repository at this point in the history
  97. [WebAssembly] Add codegen support for the import_field attribute

    This adds the LLVM side of https://reviews.llvm.org/D57602 -- the
    import_field attribute. See that patch for details.
    
    Differential Revision: https://reviews.llvm.org/D57603
    
    llvm-svn: 352931
    Dan Gohman committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    f726e44 View commit details
    Browse the repository at this point in the history
  98. [Test] Update file w/update_test_checks.py to make a follow on change…

    … obvious
    
    llvm-svn: 352932
    preames committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    05fc7ed View commit details
    Browse the repository at this point in the history
  99. Revert "[AST][OpenMP] OpenMP Sections / Section constructs contain St…

    …ructured blocks"
    
    Further reviews (D57594, D57615) have revealed that this was not reviewed,
    and that the differential's description was not read during the review,
    thus rendering this commit invalid.
    
    This reverts commit r352882.
    
    llvm-svn: 352933
    LebedevRI committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    a21f342 View commit details
    Browse the repository at this point in the history
  100. [InstCombine] Refactor test checks (NFC)

    llvm-svn: 352935
    Evandro Menezes committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    39ad187 View commit details
    Browse the repository at this point in the history
  101. [WebAssembly] Fix ImportName's position in this test.

    This is a follow-up to r352930.
    
    llvm-svn: 352936
    Dan Gohman committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    b392ac9 View commit details
    Browse the repository at this point in the history
  102. [CodeGen] Be as conservative about atomic accesses as for volatile

    Background: At the moment, we record the AtomicOrdering of an access in the MMO, but also mark any atomic access as volatile in SelectionDAG. I'm working towards separating that. See https://reviews.llvm.org/D57601 for context.
    
    Update all usages of isVolatile in lib/CodeGen to preserve behaviour once atomic MMOs stop being also volatile. This is NFC in it's current form, but is essential for correctness once we make that final change.
    
    It useful to keep in mind that AtomicSDNode is not a parent of LoadSDNode, StoreSDNode, or LSBaseSDNode. As a result, any call to isVolatile on one of those static types doesn't need a companion isAtomic check.  We should probably adjust that class hierarchy long term, but for now, that seperation is useful.
    
    I'm deliberately being conservative about handling. I want the change to stop adding volatile to be NFC itself, and then will work through places where we can be less conservative for atomics one by one in separate changes w/tests.
    
    Differential Revision: https://reviews.llvm.org/D57596
    
    llvm-svn: 352937
    preames committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    00056ed View commit details
    Browse the repository at this point in the history
  103. [analyzer] Hotfix for RetainCountChecker: assert was too strong.

    Bridged casts can happen to non-CF objects as well.
    
    llvm-svn: 352938
    George Karpenkov committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    77b3530 View commit details
    Browse the repository at this point in the history
  104. [BPF] [BTF] Process FileName with absolute path correctly

    In IR, sometimes the following attributes for DIFile may be
    generated:
      filename: /home/yhs/test.c
      directory: /tmp
    The /tmp may represent the working directory of the compilation
    process.
    
    In such cases, since filename is with absolute path,
    the directory should be ignored by BTF. The filename alone is
    enough to get the source.
    
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Yonghong Song <yhs@fb.com>
    llvm-svn: 352939
    yonghong-song committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    5233fb8 View commit details
    Browse the repository at this point in the history
  105. [AArch64] Fix unused variable [NFC]

    llvm-svn: 352940
    Mandeep Singh Grang committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    dc1e778 View commit details
    Browse the repository at this point in the history
  106. Revert "[BPF] [BTF] Process FileName with absolute path correctly"

    This reverts commit r352939.
    
    Some tests failed. Revert to unblock others.
    
    llvm-svn: 352941
    yonghong-song committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    329010e View commit details
    Browse the repository at this point in the history
  107. Handle cases where the dirent::d_type macros aren't defined

    llvm-svn: 352942
    EricWF committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    1bccafe View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2019

  1. [ELF] Default to --no-allow-shlib-undefined for executables

    Summary:
    This follows the ld.bfd/gold behavior.
    
    The error check is useful as it captures a common type of ld.so undefined symbol errors as link-time errors:
    
        // a.cc => a.so (not linked with -z defs)
        void f(); // f is undefined
        void g() { f(); }
    
        // b.cc => executable with a DT_NEEDED entry on a.so
        void g();
        int main() { g(); }
    
        // ld.so errors when g() is executed (lazy binding) or when the program is started (-z now)
        // symbol lookup error: ... undefined symbol: f
    
    Reviewers: ruiu, grimar, pcc, espindola
    
    Reviewed By: ruiu
    
    Subscribers: llvm-commits, emaste, arichardson
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57569
    
    llvm-svn: 352943
    MaskRay committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    ae02943 View commit details
    Browse the repository at this point in the history
  2. [llvm-objcopy] Add ability to copy MachO object files

    This diff implements first bits for copying (without modification) MachO object files.
    
    Test plan: make check-all
    
    Differential revision: https://reviews.llvm.org/D54674
    
    llvm-svn: 352944
    alexander-shaposhnikov committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    d911ed1 View commit details
    Browse the repository at this point in the history
  3. [AutoUpgrade] Fix AutoUpgrade for x86.seh.recoverfp

    Summary: This fixes the bug in https://reviews.llvm.org/D56747#inline-502711.
    
    Reviewers: efriedma
    
    Reviewed By: efriedma
    
    Subscribers: javed.absar, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57614
    
    llvm-svn: 352945
    Mandeep Singh Grang committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    2be4eab View commit details
    Browse the repository at this point in the history
  4. Remove redundant FunctionDecl argument from a couple functions.

    This argument was added in r254554 in order to support the
    pass_object_size attribute. However, in r296076, the attribute's
    presence is now also represented in FunctionProtoType's
    ExtParameterInfo, and thus it's unnecessary to pass along a separate
    FunctionDecl.
    
    The functions modified are:
     RequiredArgs::forPrototype{,Plus}, and
     CodeGenTypes::ConvertFunctionType.
    
    After this, it's also (again) unnecessary to have a separate
    ConvertFunctionType function ConvertType, so convert callers back to
    the latter, leaving the former as an internal helper function.
    
    llvm-svn: 352946
    jyknight committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    916db65 View commit details
    Browse the repository at this point in the history
  5. [llvm-objcopy] Fix triples in macho tests.

    Update triples used by the macho tests to fix some buildbots.
    
    llvm-svn: 352947
    alexander-shaposhnikov committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    7d53675 View commit details
    Browse the repository at this point in the history
  6. [ASan] Do not instrument other runtime functions with `__asan_handle_…

    …no_return`
    
    Summary:
    Currently, ASan inserts a call to `__asan_handle_no_return` before every
    `noreturn` function call/invoke. This is unnecessary for calls to other
    runtime funtions. This patch changes ASan to skip instrumentation for
    functions calls marked with `!nosanitize` metadata.
    
    Reviewers: TODO
    
    Differential Revision: https://reviews.llvm.org/D57489
    
    llvm-svn: 352948
    yln committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    f82d892 View commit details
    Browse the repository at this point in the history
  7. [Sema][ObjC] Allow declaring ObjC pointer members with non-trivial

    ownership qualifications in C++ unions under ARC.
    
    An ObjC pointer member with non-trivial ownership qualifications causes
    all of the defaulted special functions of the enclosing union to be
    defined as deleted, except when the member has an in-class initializer,
    the default constructor isn't defined as deleted.
    
    rdar://problem/34213306
    
    Differential Revision: https://reviews.llvm.org/D57438
    
    llvm-svn: 352949
    ahatanaka committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    a504897 View commit details
    Browse the repository at this point in the history
  8. [llvm-objcopy] Temporarily limit one test to darwin

    Some triples in llvm-mc appear to be unavailable on some buildbots.
    To please those buildbots we temporarily limit the test to darwin 
    (where the required triple is guranteed to be available)
    until we find the right solution.
    
    llvm-svn: 352950
    alexander-shaposhnikov committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    d078b4e View commit details
    Browse the repository at this point in the history
  9. Bump minimum toolchain version

    Summary:
    The RFC on moving past C++11 got good traction:
      http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html
    
    This patch therefore bumps the toolchain versions according to our policy:
      llvm.org/docs/DeveloperPolicy.html#toolchain
    
    Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane
    
    Differential Revision: https://reviews.llvm.org/D57264
    
    llvm-svn: 352951
    jfbastien committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    c9a69ac View commit details
    Browse the repository at this point in the history
  10. [BPF] [BTF] Process FileName with absolute path correctly

    In IR, sometimes the following attributes for DIFile may be
    generated:
      filename: /home/yhs/test.c
      directory: /tmp
    The /tmp may represent the working directory of the compilation
    process.
    
    In such cases, since filename is with absolute path,
    the directory should be ignored by BTF. The filename alone is
    enough to get the source.
    
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Yonghong Song <yhs@fb.com>
    llvm-svn: 352952
    yonghong-song committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    fa36540 View commit details
    Browse the repository at this point in the history
  11. [Clangd] textDocument/definition and textDocument/declaration "bounce…

    …" between definition and declaration location when they are distinct.
    
    Summary:
    This helps minimize the disruption of not returning declarations as part of
    a find-definition response (r352864).
    
    Reviewers: hokein
    
    Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, ilya-biryukov
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57580
    
    llvm-svn: 352953
    sam-mccall committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    0dbab7f View commit details
    Browse the repository at this point in the history
  12. Revert "Bump minimum toolchain version"

    Reverting D57264 again, it looks like we're down to two bots that need fixing:
    
    polly-amd64-linux
    polly-arm-linux
    
    They both have old versions of libstdc++ and recent clang.
    
    llvm-svn: 352954
    jfbastien committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    115b64b View commit details
    Browse the repository at this point in the history
  13. [X86][SSE]: Adding full coverage of MC encoding tests for the SSE isa…

    … sets.<NFC>
    
    Summary:
    NFC.
    Adding MC regressions tests to cover all the SSE ISA sets as follows:
    SSE, SSE2, SSE3, SSE4, SSE42, SSEMXCSR, SSE_PREFETCH, SSSE3
    
    This patch is part of a larger task to cover MC encoding of all X86 ISA Sets.
    See revision: https://reviews.llvm.org/D39952
    
    Patch by Gadi Haber and Wang Tianqing
    
    Reviewers: RKSimon, zvi, craig.topper, AndreiGrischenko, gadi.haber, LuoYuanke
    
    Reviewed By: craig.topper
    
    Subscribers: jfb, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D40387
    
    llvm-svn: 352955
    topperc committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    d3107a7 View commit details
    Browse the repository at this point in the history
  14. [ASTImporter] Fix up test that only works on X86.

    The test will fail if the default target triple is not X86,
    even if the host platform is. So move the check into the
    test at runtime.
    
    llvm-svn: 352956
    davemgreen committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    1be906a View commit details
    Browse the repository at this point in the history
  15. [clangd] Fix heap-use-after-free after r352868

    llvm-svn: 352957
    Eric Liu committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    44d6f9e View commit details
    Browse the repository at this point in the history
  16. [LCSSA] Add expensive verification of LCSSA form for sub-loops.

    This assertion makes sure all sub-loops are in LCSSA form before
    bringing their parent in LCSSA form. This precondition was added to
    formLCSSA in D56848.
    
    Reviewers: davide, efriedma, mzolotukhin
    
    Reviewed By: davide
    
    Differential Revision: https://reviews.llvm.org/D56921
    
    llvm-svn: 352958
    fhahn committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    509b48a View commit details
    Browse the repository at this point in the history
  17. [analyzer][UninitializedObjectChecker] New flag to ignore guarded uni…

    …nitialized fields
    
    This patch is an implementation of the ideas discussed on the mailing list[1].
    
    The idea is to somewhat heuristically guess whether the field that was confirmed
    to be uninitialized is actually guarded with ifs, asserts, switch/cases and so
    on. Since this is a syntactic check, it is very much prone to drastically
    reduce the amount of reports the checker emits. The reports however that do not
    get filtered out though have greater likelihood of them manifesting into actual
    runtime errors.
    
    [1] http://lists.llvm.org/pipermail/cfe-dev/2018-September/059255.html
    
    Differential Revision: https://reviews.llvm.org/D51866
    
    llvm-svn: 352959
    Szelethus committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    ffe93a1 View commit details
    Browse the repository at this point in the history
  18. [LCSSA] Handle case with single new PHI faster.

    If there is only a single available value, all uses must be dominated by
    the single value and there is no need to search for a reaching
    definition.
    
    This drastically speeds up LCSSA in some cases. For the test case
    from PR37202, it speeds up LCSSA construction by 4 times.
    
    Time-passes without this patch for test case from PR37202:
    
        Total Execution Time: 29.9285 seconds (29.9276 wall clock)
    
        ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
        5.2786 ( 17.7%)   0.0021 (  1.2%)   5.2806 ( 17.6%)   5.2808 ( 17.6%)  Unswitch loops
        4.3739 ( 14.7%)   0.0303 ( 18.1%)   4.4042 ( 14.7%)   4.4042 ( 14.7%)  Loop-Closed SSA Form Pass
        4.2658 ( 14.3%)   0.0192 ( 11.5%)   4.2850 ( 14.3%)   4.2851 ( 14.3%)  Loop-Closed SSA Form Pass #2
        2.2307 (  7.5%)   0.0013 (  0.8%)   2.2320 (  7.5%)   2.2318 (  7.5%)  Loop Invariant Code Motion
        2.0888 (  7.0%)   0.0012 (  0.7%)   2.0900 (  7.0%)   2.0897 (  7.0%)  Unroll loops
        1.6761 (  5.6%)   0.0013 (  0.8%)   1.6774 (  5.6%)   1.6774 (  5.6%)  Value Propagation
        1.3686 (  4.6%)   0.0029 (  1.8%)   1.3716 (  4.6%)   1.3714 (  4.6%)  Induction Variable Simplification
        1.1457 (  3.8%)   0.0010 (  0.6%)   1.1468 (  3.8%)   1.1468 (  3.8%)  Loop-Closed SSA Form Pass #4
        1.1384 (  3.8%)   0.0005 (  0.3%)   1.1389 (  3.8%)   1.1389 (  3.8%)  Loop-Closed SSA Form Pass #6
        1.1360 (  3.8%)   0.0027 (  1.6%)   1.1387 (  3.8%)   1.1387 (  3.8%)  Loop-Closed SSA Form Pass #5
        1.1331 (  3.8%)   0.0010 (  0.6%)   1.1341 (  3.8%)   1.1340 (  3.8%)  Loop-Closed SSA Form Pass #3
    
    Time passes with this patch
    
      Total Execution Time: 19.2802 seconds (19.2813 wall clock)
    
       ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
       4.4234 ( 23.2%)   0.0038 (  2.0%)   4.4272 ( 23.0%)   4.4273 ( 23.0%)  Unswitch loops
       2.3828 ( 12.5%)   0.0020 (  1.1%)   2.3848 ( 12.4%)   2.3847 ( 12.4%)  Unroll loops
       1.8714 (  9.8%)   0.0020 (  1.1%)   1.8734 (  9.7%)   1.8735 (  9.7%)  Loop Invariant Code Motion
       1.7973 (  9.4%)   0.0022 (  1.2%)   1.7995 (  9.3%)   1.8003 (  9.3%)  Value Propagation
       1.4010 (  7.3%)   0.0033 (  1.8%)   1.4043 (  7.3%)   1.4044 (  7.3%)  Induction Variable Simplification
       0.9978 (  5.2%)   0.0244 ( 13.1%)   1.0222 (  5.3%)   1.0224 (  5.3%)  Loop-Closed SSA Form Pass #2
       0.9611 (  5.0%)   0.0257 ( 13.8%)   0.9868 (  5.1%)   0.9868 (  5.1%)  Loop-Closed SSA Form Pass
       0.5856 (  3.1%)   0.0015 (  0.8%)   0.5871 (  3.0%)   0.5869 (  3.0%)  Unroll loops #2
       0.4132 (  2.2%)   0.0012 (  0.7%)   0.4145 (  2.1%)   0.4143 (  2.1%)  Loop Invariant Code Motion #3
    
    Reviewers: efriedma, davide, mzolotukhin
    
    Reviewed By: efriedma
    
    Differential Revision: https://reviews.llvm.org/D57033
    
    llvm-svn: 352960
    fhahn committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    dd2ef0a View commit details
    Browse the repository at this point in the history
  19. [SDAG] Add SDNode/SDValue getConstantOperandAPInt helper. NFCI.

    We already have the getConstantOperandVal helper which returns a uint64_t, but along comes the fuzzer and inserts a i128 -1 constant or something and the whole thing asserts.......
    
    I've updated a few obvious cases, and tried to make use of the const reference where possible, but there's more to do. A number of existing oss-fuzz tickets should be fixed if we start using APInt and perform value clamping where necessary.
    
    llvm-svn: 352961
    RKSimon committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    bd42f97 View commit details
    Browse the repository at this point in the history
  20. [X86][AVX] Enable INSERT_SUBVECTOR(SRC0, SHUFFLE(SRC1)) shuffle combi…

    …ning
    
    Push the insert_subvector up through the shuffle operands to help find more cross-lane shuffles.
    
    The is exposes a couple of minor issues that will be fixed shortly:
    Missed broadcast folds - we have a mixture of vzext_load lengths that need cleaning up
    combine-sdiv.ll - AVX1 SimplifyDemandedVectorElts failure (hits max depth due to a couple of extra bitcasts).
    
    llvm-svn: 352963
    RKSimon committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    dbf302c View commit details
    Browse the repository at this point in the history
  21. [clang-tidy] Rename time lookup functions; NFC

    llvm-svn: 352964
    Hyrum Wright committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    e546b53 View commit details
    Browse the repository at this point in the history
  22. [libunwind] Remove the remote unwinding support

    This is unfinished, unused and incomplete. This could be brought back in
    the future if there's a desire to build a more complete implementation,
    but at the moment it's just bitrotting.
    
    Differential Revision: https://reviews.llvm.org/D57252
    
    llvm-svn: 352965
    petrhosek committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    368c02e View commit details
    Browse the repository at this point in the history
  23. [libunwind] Provide placement new definition

    While Clang automatically generates the code for placement new,
    g++ doesn't do that so we need to provide our own definition.
    
    Differential Revision: https://reviews.llvm.org/D57455
    
    llvm-svn: 352966
    petrhosek committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    5745e90 View commit details
    Browse the repository at this point in the history
  24. [X86] Add another test case for PR40539. NFC

    llvm-svn: 352967
    topperc committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    cf07b09 View commit details
    Browse the repository at this point in the history
  25. [clang-tidy] Make google-objc-function-naming ignore implicit functio…

    …ns 🙈
    
    Summary:
    Implicit functions are outside the control of source authors and should
    be exempt from style restrictions.
    
    Tested via running clang tools tests.
    
    Reviewers: aaron.ballman
    
    Reviewed By: aaron.ballman
    
    Subscribers: xazax.hun, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57207
    
    llvm-svn: 352968
    stephanemoore committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    b08a2d4 View commit details
    Browse the repository at this point in the history
  26. Revert rCTE352968 due to compilation failures 💥

    llvm-svn: 352969
    stephanemoore committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    0033112 View commit details
    Browse the repository at this point in the history
  27. Move the feature test macros script to the utils directory.

    It doesn't make a lot of sense to keep it with the tests,
    deep into the test suite directonies.
    
    llvm-svn: 352970
    EricWF committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    508da41 View commit details
    Browse the repository at this point in the history
  28. Replace uses of %T with %t in from previous frontend test differential

    After committing a change I had made to a few frontend tests, it was pointed
    out to me that %T is being deprecated in LLVM in favor of %t. This change
    simply converts usages of %T to %t while maintaining the integrity of the test.
    
    Previous revision where this discussion took place:
    https://reviews.llvm.org/D50563
    
    Differential Revision: https://reviews.llvm.org/D57592
    
    Patch from Justice Adams <justice.adams@sony.com>!
    
    llvm-svn: 352971
    nico committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    c16cc77 View commit details
    Browse the repository at this point in the history
  29. [NewPM] Add support for new-PM plugins to clang

    Summary:
    This adds support for new-PM plugin loading to clang. The option
    `-fpass-plugin=` may be used to specify a dynamic shared object file
    that adheres to the PassPlugin API.
    
    Tested: created simple plugin that registers an EP callback; with optimization level > 0, the pass is run as expected.
    
    Committed on behalf of Marco Elver
    
    Differential Revision: https://reviews.llvm.org/D56935
    
    llvm-svn: 352972
    pfaffe committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    e3f105c View commit details
    Browse the repository at this point in the history
  30. GlobalISel: Legalization for inttoptr/ptrtoint

    llvm-svn: 352973
    arsenm committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    cbaada6 View commit details
    Browse the repository at this point in the history
  31. AMDGPU/GlobalISel: Legalize select for pointer types

    llvm-svn: 352974
    arsenm committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    2491f82 View commit details
    Browse the repository at this point in the history
  32. AMDGPU/GlobalISel: Legalize constant for pointer types

    llvm-svn: 352975
    arsenm committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    2065c94 View commit details
    Browse the repository at this point in the history
  33. AMDGPU/GlobalISel: Legalize icmp for pointer types

    llvm-svn: 352976
    arsenm committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    58f9d3d View commit details
    Browse the repository at this point in the history
  34. AMDGPU/GlobalISel: Avoid reporting illegal extloads as legal

    This avoids breaking a test in a future commit.
    
    llvm-svn: 352977
    arsenm committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    eb2603c View commit details
    Browse the repository at this point in the history
  35. GlobalISel: Implement widenScalar for G_EXTRACT vector sources

    Handle the basic element extract case.
    
    llvm-svn: 352978
    arsenm committed Feb 2, 2019
    Configuration menu
    Copy the full SHA
    0e5d856 View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2019

  1. GlobalISel: Implement widenScalar for G_UNMERGE_VALUES

    For the scalar case only.
    
    Also move the similar G_MERGE_VALUES handling to a separate function
    and cleanup to make them look more similar.
    
    llvm-svn: 352979
    arsenm committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    888aa5d View commit details
    Browse the repository at this point in the history
  2. Fix handling of usual deallocation functions in various configuratios.

    Clang allows users to enable or disable various types of allocation
    and deallocation regardless of the C++ dialect. When extended new/delete
    overloads are enabled in older dialects, we need to treat them as if
    they're usual.
    
    Also, disabling one usual deallocation form shouldn't
    disable any others. For example, disabling aligned allocation in C++2a
    should have no effect on destroying delete.
    
    llvm-svn: 352980
    EricWF committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    24a2a48 View commit details
    Browse the repository at this point in the history
  3. [InstSimplify] Missed optimization in math expression: log10(pow(10.0…

    …,x)) == x, log2(pow(2.0,x)) == x
    
    Summary: This patch enables folding following instructions under -ffast-math flag: log10(pow(10.0,x)) -> x, log2(pow(2.0,x)) -> x
    
    Reviewers: hfinkel, spatel, efriedma, craig.topper, zvi, majnemer, lebedev.ri
    
    Reviewed By: spatel, lebedev.ri
    
    Subscribers: lebedev.ri, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D41940
    
    llvm-svn: 352981
    Quolyk committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    aaa709f View commit details
    Browse the repository at this point in the history
  4. [AMDGPU] Fix -Wunused-variable after rL352978

    llvm-svn: 352982
    MaskRay committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    b21ed3c View commit details
    Browse the repository at this point in the history
  5. Correct test my *really really* overaligning a type.

    llvm-svn: 352983
    EricWF committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    365e164 View commit details
    Browse the repository at this point in the history
  6. [X86] Lower ISD::UADDO to use the Z flag instead of C flag when the R…

    …HS is a constant 1 to encourage INC formation.
    
    Summary:
    Add an additional combine to combineCarryThroughADD to reverse it back to the C flag to avoid regressions.
    
    I believe this catches the cases that D57547 got.
    
    Reviewers: RKSimon, spatel
    
    Reviewed By: spatel
    
    Subscribers: javed.absar, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57637
    
    llvm-svn: 352984
    topperc committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    950ca19 View commit details
    Browse the repository at this point in the history
  7. [X86] Print %st(0) as %st to match what gcc inline asm uses as the cl…

    …obber name to make MS inline asm work correctly
    
    Summary:
    When calculating clobbers for MS style inline assembly we fail if the asm clobbers stack top because we print st(0) and try to pass it through the gcc register name check. This was found with when I attempted to make a emms/femms clobber all ST registers. If you use emms/femms in MS inline asm we would try to use st(0) as the clobber name but clang would think that wasn't a valid clobber name.
    
    This also matches what objdump disassembly prints. It's also what is printed by gcc -S.
    
    Reviewers: RKSimon, rnk, efriedma, spatel, andreadb, lebedev.ri
    
    Reviewed By: rnk
    
    Subscribers: eraman, gbedwell, lebedev.ri, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57621
    
    llvm-svn: 352985
    topperc committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    5a570dd View commit details
    Browse the repository at this point in the history
  8. [DA][NewPM] Handle transitive dependencies in the new-pm version of DA

    Summary:
    The analysis result of DA caches pointers to AA, SCEV, and LI, but it
    never checks for their invalidation. Fix that.
    
    Reviewers: chandlerc, dmgreen, bogner
    
    Reviewed By: dmgreen
    
    Subscribers: hiraditya, bollu, javed.absar, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D56381
    
    llvm-svn: 352986
    pfaffe committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    9438585 View commit details
    Browse the repository at this point in the history
  9. [PowerPC] add tests for saturating add; NFC

    This is copied from the existing test files for x86/AArch.
    
    llvm-svn: 352987
    rotateright committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    359a973 View commit details
    Browse the repository at this point in the history
  10. [CGP] refactor optimizeCmpExpression (NFCI)

    This is not truly NFC because we are bailing out without
    a TLI now. That should not be a real concern though because
    there should be a TLI in any real-world scenario. 
    
    That seems better than passing around a pointer and then 
    checking it for null-ness all over the place.
    
    The motivation is to fix what appears to be an unintended
    restriction on the uaddo transform - 
    hasMultipleConditionRegisters() shouldn't be reason to limit 
    the transform.
    
    llvm-svn: 352988
    rotateright committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    00fcc74 View commit details
    Browse the repository at this point in the history
  11. [AST] Extract ASTNodeTraverser class from ASTDumper

    Summary:
    This new traverser class allows clients to re-use the traversal logic
    which was previously part of ASTDumper.  This means that alternative
    visit logic may be implemented, such as
    
    * Dump to alternative data formats such as JSON
    * Implement AST Matcher parent/child visitation matching AST dumps
    
    Reviewers: aaron.ballman
    
    Subscribers: jfb, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57472
    
    llvm-svn: 352989
    steveire committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    c493301 View commit details
    Browse the repository at this point in the history
  12. Remove trailing semicolon. NFCI.

    llvm-svn: 352990
    RKSimon committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    e9a136b View commit details
    Browse the repository at this point in the history
  13. Remove trailing semicolon. NFCI.

    llvm-svn: 352991
    RKSimon committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    22f538c View commit details
    Browse the repository at this point in the history
  14. [CGP] move test file to prevent bot failures

    The test specifiies the triple, so it needs to be in the
    x86 directory in case a bot has been configured without
    the x86 target.
    
    llvm-svn: 352992
    rotateright committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    b961bd6 View commit details
    Browse the repository at this point in the history
  15. [x86] add CGP uaddo test with weird type; NFC

    There's probably no reason to try this transform
    for an obviously unsupported op.
    
    llvm-svn: 352993
    rotateright committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    3d6ecfc View commit details
    Browse the repository at this point in the history
  16. [X86][AVX] More aggressively simplify BROADCAST source operand

    Aim to use scalar source or lowest 128-bit vector directly.
    
    We're still missing some VZMOVL_LOAD combines.
    
    llvm-svn: 352994
    RKSimon committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    a2a3e5b View commit details
    Browse the repository at this point in the history
  17. [objc-gnustep] Fix encoding of ivar size for _Bool.

    llvm-svn: 352995
    David Chisnall committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    ccc4286 View commit details
    Browse the repository at this point in the history
  18. Hot fix two test regressions (%T vs %t)

    Different Unix "errno" values are returned for the following scenarios:
    
    $ echo test > /tmp/existingFile/impossibleDir/impossibleFile
    "Not a directory"
    $ echo test > /tmp/nonexistentDir/impossibleFile
    "No such file or directory"
    
    This fixes the regression introduced by r352971 / D57592.
    
    llvm-svn: 352996
    davezarzycki committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    4a0a64a View commit details
    Browse the repository at this point in the history
  19. [X86][AVX] Support shuffle combining for VPMOVZX with smaller vector …

    …sources
    
    llvm-svn: 352997
    RKSimon committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    18b73a6 View commit details
    Browse the repository at this point in the history
  20. [PatternMatch] add special-case uaddo matching for increment-by-one (…

    …2nd try)
    
    This is the most important uaddo problem mentioned in PR31754:
    https://bugs.llvm.org/show_bug.cgi?id=31754
    ...but that was overcome in x86 codegen with D57637.
    
    That patch also corrects the inc vs. add regressions seen with the  previous attempt at this.
    
    Still, we want to make this matcher complete, so we can potentially canonicalize the pattern 
    even if it's an 'add 1' operation.
    Pattern matching, however, shouldn't assume that we have canonicalized IR, so we match 4 
    commuted variants of uaddo.
    
    There's also a test with a crazy type to show that the existing CGP transform based on this 
    matcher is not limited by target legality checks.
    
    I'm not sure if the Hexagon diff means the test is no longer testing what it intended to
    test, but that should be solvable in a follow-up.
    
    Differential Revision: https://reviews.llvm.org/D57516
    
    llvm-svn: 352998
    rotateright committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    837552f View commit details
    Browse the repository at this point in the history
  21. [X86][AVX] Support shuffle combining for VBROADCAST with smaller vect…

    …or sources
    
    getTargetShuffleMask can only do this safely if we're extracting the lowest subvector from a vector of the same result type.
    
    llvm-svn: 352999
    RKSimon committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    1fce5a8 View commit details
    Browse the repository at this point in the history
  22. [libFuzzer][Windows] Reenable passing tests

    Summary:
    Enable tests that were previously disabled because they didn't work on
    Windows.
    
    Reviewers: morehouse
    
    Reviewed By: morehouse
    
    Subscribers: morehouse
    
    Differential Revision: https://reviews.llvm.org/D57563
    
    llvm-svn: 353000
    jonathanmetzman committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    e2469b1 View commit details
    Browse the repository at this point in the history
  23. [CGP] adjust target constraints for forming uaddo

    There are 2 changes visible here:
    1. There's no reason to limit this transform based on number
       of condition registers. That diff allows PPC to produce 
       slightly better (dot-instructions should be generally good) 
       code.
       Note: someone that cares about PPC codegen might want to 
       look closer at that output because it seems like we could
       still improve this.
    
    2. We (probably?) should not bother trying to form uaddo (or
       other overflow ops) when there's no target support for such
       an op. This goes beyond checking whether the op is expanded
       because both PPC and AArch64 show better codegen for standard
       types regardless of whether the op is legal/custom.
    
    llvm-svn: 353001
    rotateright committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    84ceae6 View commit details
    Browse the repository at this point in the history
  24. [PowerPC] adjust test for uaddo change in rL353001

    We don't need a mtctr/bctr for this test now; a regular
    conditional branch is fine.
    
    llvm-svn: 353002
    rotateright committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    f1314b6 View commit details
    Browse the repository at this point in the history
  25. [ASTDump] Add a flag indicating whether a CXXThisExpr is implicit

    There is currently no way to distinguish implicit from explicit
    CXXThisExpr in the AST dump output.
    
    Differential Revision: https://reviews.llvm.org/D57649
    
    Reviewed By: steveire
    
    llvm-svn: 353003
    riccibruno committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    64bebe9 View commit details
    Browse the repository at this point in the history
  26. [NFC] Make vector types legal in UREM test

    As discussed in D50222, this changes the vector types in tests required for that revision to ones legal for X86.
    
    Patch by @hermord (Dmytro Shynkevych)
    
    Differential Revision: https://reviews.llvm.org/D56372
    
    llvm-svn: 353004
    RKSimon committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    135413d View commit details
    Browse the repository at this point in the history
  27. [AST] Update the comments of the various Expr::Ignore* + Related clea…

    …nups
    
    The description of what the various Expr::Ignore* do has drifted from the
    actual implementation.
    
    Inspection reveals that IgnoreParenImpCasts() is not equivalent to doing
    IgnoreParens() + IgnoreImpCasts() until reaching a fixed point, but
    IgnoreParenCasts() is equivalent to doing IgnoreParens() + IgnoreCasts()
    until reaching a fixed point. There is also a fair amount of duplication
    in the various Expr::Ignore* functions which increase the chance of further
    future inconsistencies. In preparation for the next patch which will factor
    out the implementation of the various Expr::Ignore*, do the following cleanups:
    
    Remove Stmt::IgnoreImplicit, in favor of Expr::IgnoreImplicit. IgnoreImplicit
    is the only function among all of the Expr::Ignore* which is available in Stmt.
    There are only a few users of Stmt::IgnoreImplicit. They can just use instead
    Expr::IgnoreImplicit like they have to do for the other Ignore*.
    
    Move Expr::IgnoreImpCasts() from Expr.h to Expr.cpp. This made no difference
    in the run-time with my usual benchmark (-fsyntax-only on all of Boost).
    
    While we are at it, make IgnoreParenNoopCasts take a const reference to the
    ASTContext for const correctness.
    
    Update the comments to match what the Expr::Ignore* are actually doing.
    I am not sure that listing exactly what each Expr::Ignore* do is optimal,
    but it certainly looks better than the current state which is in my opinion
    between misleading and just plain wrong.
    
    The whole patch is NFC (if you count removing Stmt::IgnoreImplicit as NFC).
    
    Differential Revision: https://reviews.llvm.org/D57266
    
    Reviewed By: aaron.ballman
    
    llvm-svn: 353006
    riccibruno committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    e64aee8 View commit details
    Browse the repository at this point in the history
  28. [LoopIdiomRecognize] @llvm.dbg values shouldn't affect the transforma…

    …tion.
    
    Summary: PR40564
    
    Reviewers: aprantl, rnk
    
    Subscribers: llvm-commits, hiraditya
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57629
    
    llvm-svn: 353007
    dcci committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    73929c4 View commit details
    Browse the repository at this point in the history
  29. [docs] Recommend assertions when testing.

    Pointed out by Shoaib Meenai.
    
    llvm-svn: 353008
    dcci committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    1002ab3 View commit details
    Browse the repository at this point in the history
  30. [opaque pointer types] Trivial changes towards CallInst requiring

    explicit function types.
    
    llvm-svn: 353009
    jyknight committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    8799cae View commit details
    Browse the repository at this point in the history
  31. Provide a placement new definition for the SEH version of UnwindCursor

    This fixes compilation after SVN r352966 in SEH mode.
    
    llvm-svn: 353010
    mstorsjo committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    6ccad0a View commit details
    Browse the repository at this point in the history
  32. Compute the correct symbol size in llvm-nm even without --print-size

    In llvm-nm, the symbol size was being computed only with --print-size option,
    even though it was being printed in other cases, such as with --format=posix.
    
    This patch simply removes the guard, so that the size is computed
    independently of the later decision to print it or not.
    
    Fixes PR39997.
    
    Differential Revision: https://reviews.llvm.org/D57599
    
    llvm-svn: 353011
    Sunil Srivastava committed Feb 3, 2019
    Configuration menu
    Copy the full SHA
    b33b410 View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2019

  1. tests: loosen restriction

    The MachO tests can run on any target, but require that the x86 backend
    is available.  Broaden the coverage of the test.
    
    llvm-svn: 353012
    compnerd committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    764727d View commit details
    Browse the repository at this point in the history
  2. Revert r352985 "[X86] Print %st(0) as %st to match what gcc inline as…

    …m uses as the clobber name to make MS inline asm work correctly"
    
    Looking into gcc and objdump behavior more this was overly aggressive. If the register is encoded in the instruction we should print %st(0), if its implicit we should print %st.
    
    I'll be making a more directed change in a future patch.
    
    llvm-svn: 353013
    topperc committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    f77b858 View commit details
    Browse the repository at this point in the history
  3. [X86] Regenerate test to drop 'End function' comments some other othe…

    …r regex updates.
    
    llvm-svn: 353014
    topperc committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    145ccb0 View commit details
    Browse the repository at this point in the history
  4. [X86] Print %st(0) as %st when its implicit to the instruction. Conti…

    …nue printing it as %st(0) when its encoded in the instruction.
    
    This is a step back from the change I made in r352985. This appears to be more consistent with gcc and objdump behavior.
    
    llvm-svn: 353015
    topperc committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    7a2944e View commit details
    Browse the repository at this point in the history
  5. Recommit r352660 "[X86] Mark EMMS and FEMMS as clobbering MM0-7 and S…

    …T0-7."
    
    We now print ST0 as 'st' when generating the clobber list for MS inline assembly in clang. This matches what the gcc reg name list expects.
    
    Original commit message:
    
    This fixes the test case in PR35982 by preventing MMX instructions that read MM0-7 from being moved below EMMS/FEMMS by the post RA scheduler.
    
    Though as discussed in bugzilla, this is not a complete fix. There is still the possibility of reordering in IR or by the pre-RA scheduler.
    
    Differential Revision: https://reviews.llvm.org/D57298
    
    llvm-svn: 353016
    topperc committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    b5e945c View commit details
    Browse the repository at this point in the history
  6. [SCEV] Do not bother creating separate SCEVUnknown for unreachable nodes

    Currently, SCEV creates SCEVUnknown for every node of unreachable code. If we
    have a huge amounts of such code, we will be littering SE with these nodes. We could
    just state that they all are undef and save some memory.
    
    Differential Revision: https://reviews.llvm.org/D57567
    Reviewed By: sanjoy
    
    llvm-svn: 353017
    Max Kazantsev committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    437ee05 View commit details
    Browse the repository at this point in the history
  7. [OpenMP] Adding support to the mutexinoutset dep-type

    Summary: this commit adds support to a new dependence type introduced in OpenMP
    5.0. The LLVM OpenMP RTL already supports this feature, so we  only need to
    modify CLANG to take advantage of them.
    
    
    Differential Revision: https://reviews.llvm.org/D57576
    
    llvm-svn: 353018
    smateo committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    31df1ad View commit details
    Browse the repository at this point in the history
  8. [llvm-exegesis] Don't default to running&dumping all analyses to '-'

    Summary:
    Up until the point i have looked in the source, i didn't even understood that
    i can disable 'cluster' output. I have always silenced it via ` &> /dev/null`.
    (And hoped it wasn't contributing much of the run time.)
    
    While i expect that it has it's use-cases i never once needed it so far.
    If i forget to silence it, console is completely flooded with that output.
    
    How about not expecting users to opt-out of analyses,
    but to explicitly specify the analyses that should be performed?
    
    Reviewers: courbet, gchatelet
    
    Reviewed By: courbet
    
    Subscribers: tschuett, RKSimon, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57648
    
    llvm-svn: 353021
    LebedevRI committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    21193f4 View commit details
    Browse the repository at this point in the history
  9. [llvm-exegesis] deserializeMCInst(): bump SmallVector small size up t…

    …o 16
    
    Summary:
    ... from 8.
    `VALIGNDZ128rmbik XMM0 XMM0 K1 XMM3 RDI i_0x1  i_0x0  i_0x1` instruction already has 9 components.
    It does not matter much in terms of performance, but avoiding allocation seems to come with low cost here..
    
    Reviewers: courbet, gchatelet
    
    Reviewed By: courbet
    
    Subscribers: tschuett, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57654
    
    llvm-svn: 353022
    LebedevRI committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    dc78bc2 View commit details
    Browse the repository at this point in the history
  10. [llvm-exegesis] Throughput support in analysis mode

    Summary:
    D57000 / [[ https://bugs.llvm.org/show_bug.cgi?id=37698 | PR37698 ]] added support for measuring of the inverse throughput.
    But the support for the analysis was not added.
    This attempts to fix that. (analysis done o bdver2 / piledriver)
    
    First, small-scale experiment:
    ```
    $ ./bin/llvm-exegesis -num-repetitions=10000 -mode=inverse_throughput -opcode-name=BSF64rr
    Check generated assembly with: /usr/bin/objdump -d /tmp/snippet-d0acdd.o
    ---
    mode:            inverse_throughput
    key:
      instructions:
        - 'BSF64rr RAX RDX'
      config:          ''
      register_initial_values:
        - 'RDX=0x0'
    cpu_name:        bdver2
    llvm_triple:     x86_64-unknown-linux-gnu
    num_repetitions: 10000
    measurements:
      - { key: inverse_throughput, value: 3.0278, per_snippet_value: 3.0278 }
    error:           ''
    info:            instruction has no tied variables picking Uses different from defs
    assembled_snippet: 48BA0000000000000000480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2480FBCC2C3
    ...
    ```
    If we plug `bsfq	%r12, %r10` into llvm-mca:
    https://godbolt.org/z/ZtOyhJ
    ```
    Dispatch Width:    4
    uOps Per Cycle:    3.00
    IPC:               0.50
    Block RThroughput: 2.0
    ```
    So RThroughput mismatch exists.
    
    Now, let's upscale and analyse:
    {F8207148}
    `$ ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput.yaml -analysis-inconsistencies-output-file=/tmp/clusters.html`:
    {F8207172}
    {F8207197}
    And if we now look at https://www.agner.org/optimize/instruction_tables.pdf,
    `Reciprocal throughput` for `BSF r,r` is listed as `3`.
    Yay?
    
    Reviewers: courbet, gchatelet
    
    Reviewed By: courbet
    
    Subscribers: tschuett, RKSimon, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57647
    
    llvm-svn: 353023
    LebedevRI committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    1a0d595 View commit details
    Browse the repository at this point in the history
  11. [llvm-exegesis] Cut run time of analysis mode by -84% (*sic*) (YamlCo…

    …ntext::getInstrOpcode())
    
    Summary:
    ```
    $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-old.html
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-old.html'
    ...
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-old.html'
    
     Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-old.html' (9 runs):
    
               9465.46 msec task-clock                #    1.000 CPUs utilized            ( +-  0.05% )
                    60      context-switches          #    6.363 M/sec                    ( +- 79.45% )
                     0      cpu-migrations            #    0.000 K/sec
                 11364      page-faults               # 1200.697 M/sec                    ( +-  0.60% )
           37935623543      cycles                    # 4008083.912 GHz                   ( +-  0.05% )  (83.32%)
            2371625356      stalled-cycles-frontend   #    6.25% frontend cycles idle     ( +-  0.37% )  (83.32%)
            8476077875      stalled-cycles-backend    #   22.34% backend cycles idle      ( +-  0.18% )  (33.36%)
           41822439158      instructions              #    1.10  insn per cycle
                                                      #    0.20  stalled cycles per insn  ( +-  0.02% )  (50.03%)
           11607658944      branches                  # 1226405861.486 M/sec              ( +-  0.01% )  (66.69%)
             210864633      branch-misses             #    1.82% of all branches          ( +-  0.06% )  (83.34%)
    
               9.46636 +- 0.00441 seconds time elapsed  ( +-  0.05% )
    ```
    ```
    $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-bew.html
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-bew.html'
    ...
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-bew.html'
    
     Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-bew.html' (9 runs):
    
               1480.66 msec task-clock                #    1.000 CPUs utilized            ( +-  0.19% )
                    13      context-switches          #    8.483 M/sec                    ( +- 83.10% )
                     0      cpu-migrations            #    0.075 M/sec                    ( +-100.00% )
                 11596      page-faults               # 7834.247 M/sec                    ( +-  0.59% )
            5933732194      cycles                    # 4008977.535 GHz                   ( +-  0.19% )  (83.22%)
             438111928      stalled-cycles-frontend   #    7.38% frontend cycles idle     ( +-  0.37% )  (83.25%)
            1454969705      stalled-cycles-backend    #   24.52% backend cycles idle      ( +-  0.94% )  (33.53%)
            7724218604      instructions              #    1.30  insn per cycle
                                                      #    0.19  stalled cycles per insn  ( +-  0.07% )  (50.14%)
            1979796413      branches                  # 1337599858.945 M/sec              ( +-  0.06% )  (66.74%)
              32641638      branch-misses             #    1.65% of all branches          ( +-  0.18% )  (83.31%)
    
               1.48128 +- 0.00284 seconds time elapsed  ( +-  0.19% )
    
    $ sha512sum /tmp/clusters-*
    db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf  /tmp/clusters-bew.html
    db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf  /tmp/clusters-old.html
    ```
    
    Reviewers: courbet, gchatelet
    
    Reviewed By: courbet
    
    Subscribers: tschuett, llvm-commits, RKSimon
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57657
    
    llvm-svn: 353024
    LebedevRI committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    5b94fe9 View commit details
    Browse the repository at this point in the history
  12. [llvm-exegesis] Cut run time of analysis mode by another -35% (*sic*)…

    … (YamlContext::getRegNo())
    
    Summary:
    
    Together with the previous patch, it's an -90% improvement,
    or roughly -96% improvement if you look starting with rL347204
    
    ```
    $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-bew.html
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-bew.html'
    ...
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-bew.html'
    
     Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-bew.html' (9 runs):
    
               1483.18 msec task-clock                #    0.999 CPUs utilized            ( +-  0.10% )
                    68      context-switches          #   46.085 M/sec                    ( +- 22.62% )
                     0      cpu-migrations            #    0.000 K/sec
                 11641      page-faults               # 7850.880 M/sec                    ( +-  0.62% )
            5943246799      cycles                    # 4008184.428 GHz                   ( +-  0.10% )  (83.28%)
             442869514      stalled-cycles-frontend   #    7.45% frontend cycles idle     ( +-  0.41% )  (83.29%)
            1443375663      stalled-cycles-backend    #   24.29% backend cycles idle      ( +-  0.47% )  (33.43%)
            7714006752      instructions              #    1.30  insn per cycle
                                                      #    0.19  stalled cycles per insn  ( +-  0.07% )  (50.17%)
            1977242936      branches                  # 1333472193.855 M/sec              ( +-  0.07% )  (66.79%)
              32624220      branch-misses             #    1.65% of all branches          ( +-  0.18% )  (83.34%)
    
               1.48438 +- 0.00143 seconds time elapsed  ( +-  0.10% )
    ```
    ```
    $ perf stat -r 9 ./bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file="" -analysis-inconsistencies-output-file=/tmp/clusters-newer.html
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-newer.html'
    ...
    no exegesis target for x86_64-unknown-linux-gnu, using default
    Parsed 14656 benchmark points
    Printing sched class consistency analysis results to file '/tmp/clusters-newer.html'
    
     Performance counter stats for './bin/llvm-exegesis -mode=analysis -analysis-epsilon=1.0 -benchmarks-file=/tmp/benchmarks-inverse_throughput-onefull.yaml -analysis-clusters-output-file= -analysis-inconsistencies-output-file=/tmp/clusters-newer.html' (9 runs):
    
                963.28 msec task-clock                #    0.999 CPUs utilized            ( +-  0.37% )
                    12      context-switches          #   12.695 M/sec                    ( +- 52.79% )
                     0      cpu-migrations            #    0.000 K/sec
                 11599      page-faults               # 12046.971 M/sec                   ( +-  0.59% )
            3860122322      cycles                    # 4009359.596 GHz                   ( +-  0.37% )  (83.19%)
             380300669      stalled-cycles-frontend   #    9.85% frontend cycles idle     ( +-  0.34% )  (83.30%)
            1071910340      stalled-cycles-backend    #   27.77% backend cycles idle      ( +-  1.30% )  (33.51%)
            4773418224      instructions              #    1.24  insn per cycle
                                                      #    0.22  stalled cycles per insn  ( +-  0.15% )  (50.17%)
            1106990316      branches                  # 1149787979.919 M/sec              ( +-  0.11% )  (66.80%)
              23632231      branch-misses             #    2.13% of all branches          ( +-  0.18% )  (83.33%)
    
               0.96389 +- 0.00356 seconds time elapsed  ( +-  0.37% )
    ```
    ```
    $ sha512sum /tmp/clusters-*
    db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf  /tmp/clusters-bew.html
    db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf  /tmp/clusters-newer.html
    db4bbd904fe8840853b589b032c5041bc060b91bcd9c27b914b56581fbc473550eea74b852238c79963b5adf2419f379e9f5db76784048b48e3937f9f3e732bf  /tmp/clusters-old.html
    ```
    
    Reviewers: courbet, gchatelet
    
    Reviewed By: courbet
    
    Subscribers: tschuett, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57658
    
    llvm-svn: 353025
    LebedevRI committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    bd84b13 View commit details
    Browse the repository at this point in the history
  13. [clangd] Update vscode dependencies

    This allows us to use latest LSP v3.14.0 (for go-to-declaration feature).
    
    llvm-svn: 353026
    hokein committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    a1b0596 View commit details
    Browse the repository at this point in the history
  14. [clangd] Bump vscode-clangd v0.0.10

    CHANGELOG:
    - cleanup filestatus caches when clangd crashes
    - extension workwith LSP v3.14.0, support go-to-declaration feature
    
    llvm-svn: 353027
    hokein committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    8e933c1 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    1bb0e5c View commit details
    Browse the repository at this point in the history
  16. [clang] Add getCommentHandler to PreambleCallbacks

    Summary:
    Enables users to add comment handlers to preprocessor when building
    preambles.
    
    Reviewers: ilya-biryukov, ioeric
    
    Subscribers: cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57507
    
    llvm-svn: 353030
    kadircet committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    9e012e8 View commit details
    Browse the repository at this point in the history
  17. [NFC] Replace equivalent condition for better readability

    llvm-svn: 353032
    Max Kazantsev committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    65970aa View commit details
    Browse the repository at this point in the history
  18. [clang-format] Fix breaking of qualified operator

    Summary:
    From https://bugs.llvm.org/show_bug.cgi?id=40516
    ```
    $ cat a.cpp
    const NamespaceName::VeryLongClassName &NamespaceName::VeryLongClassName::myFunction() {
      // do stuff
    }
    
    const NamespaceName::VeryLongClassName &NamespaceName::VeryLongClassName::operator++() {
      // do stuff
    }
    $ ~/ll/build/opt/bin/clang-format -style=LLVM a.cpp
    const NamespaceName::VeryLongClassName &
    NamespaceName::VeryLongClassName::myFunction() {
      // do stuff
    }
    
    const NamespaceName::VeryLongClassName &NamespaceName::VeryLongClassName::
    operator++() {
      // do stuff
    }
    ```
    What was happening is that the split penalty before `operator` was being set to
    a smaller value by a prior if block. Moved checks around to fix this and added a
    regression test.
    
    Reviewers: djasper
    
    Reviewed By: djasper
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57604
    
    llvm-svn: 353033
    krasimirgg committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    20bef45 View commit details
    Browse the repository at this point in the history
  19. [NFC] Remove redundant parameters for better readability

    llvm-svn: 353034
    Max Kazantsev committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    13ab5cb View commit details
    Browse the repository at this point in the history
  20. [llvm-objcopy][NFC] Fix trailing semicolon warning.

    llvm-svn: 353035
    legrosbuffle committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    be16b80 View commit details
    Browse the repository at this point in the history
  21. [NFC] Rename variables to reflect the actual status of GuardWidening

    llvm-svn: 353036
    Max Kazantsev committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    09802f4 View commit details
    Browse the repository at this point in the history
  22. Commit tests for changes in revision D41608

    llvm-svn: 353037
    Quolyk committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    3643cbb View commit details
    Browse the repository at this point in the history
  23. [NFC] Make a check in GuardWidening more obvious

    llvm-svn: 353038
    Max Kazantsev committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    56b57e3 View commit details
    Browse the repository at this point in the history
  24. Merge remote-tracking branch 'origin/master' into intel.

    Also switch to Apache-2.0 With LLVM-exception license.
    
    Signed-off-by: Vladimir Lazarev <vladimir.lazarev@intel.com>
    vladimirlaz committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    c20e7e5 View commit details
    Browse the repository at this point in the history