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

Merge upstream release/8.x branch #7

Merged
merged 126 commits into from
Feb 12, 2019

Commits on Jan 16, 2019

  1. Merging r351396:

    ------------------------------------------------------------------------
    r351396 | lekensteyn | 2019-01-16 15:28:51 -0800 (Wed, 16 Jan 2019) | 17 lines
    
    [ELF][X86_64] Fix corrupted LD -> LE optimization for TLS without PLT
    
    The LD -> LE optimization for Thread-Local Storage without PLT requires
    an additional "66" prefix, otherwise the next instruction will be
    corrupted, causing runtime misbehavior (crashes) of the linked object.
    
    The other (GD -> IE/LD) optimizations are the same with or without PLT,
    but add tests for completeness. The instructions are copied from
    https://raw.githubusercontent.com/wiki/hjl-tools/x86-psABI/x86-64-psABI-1.0.pdf#subsection.11.1.2
    
    This does not try to address ILP32 (x32) support.
    
    Fixes https://bugs.llvm.org/show_bug.cgi?id=37303
    
    Reviewed By: ruiu
    
    Differential Revision: https://reviews.llvm.org/D56779
    ------------------------------------------------------------------------
    
    llvm-svn: 351401
    rui314 committed Jan 16, 2019
    Configuration menu
    Copy the full SHA
    18f9cee View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2019

  1. Merging r351360:

    ------------------------------------------------------------------------
    r351360 | jmorse | 2019-01-16 18:41:29 +0100 (Wed, 16 Jan 2019) | 6 lines
    
    Add a REQUIRES: darwin line for a mac test.
    
    This test, apparently for macs, fails on Windows as lit can't emulate
    the shell subprocess $(which...) correctly. Some other netbsd and linux
    buildbots also fail here. Limit to macs as a temporary workaround.
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351419
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    cfa6241 View commit details
    Browse the repository at this point in the history
  2. Merging r351340:

    ------------------------------------------------------------------------
    r351340 | asl | 2019-01-16 14:28:30 +0100 (Wed, 16 Jan 2019) | 7 lines
    
    [MSP430] Fix msp430-toolchain.c on Windows (added in r351228)
    
    Patch by Kristina Bessonova!
    
    Differential Revision: https://reviews.llvm.org/D56776
    
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351420
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    bcabeb4 View commit details
    Browse the repository at this point in the history
  3. Merging r351431:

    ------------------------------------------------------------------------
    r351431 | hans | 2019-01-17 12:31:03 +0100 (Thu, 17 Jan 2019) | 19 lines
    
    Revert r351311 "[OMPT] Make sure that OMPT is enabled when accessing internals of the runtime"
    
    and also the follow-up r351315.
    
    The new test is failing on the buildbots.
    
    > Make sure that OMPT is enabled in runtime entry points that access internals
    > of the runtime. Else, return an appropiate value indicating an error or that
    > the data is not available.
    >
    > Patch provided by @sconvent
    >
    > Reviewers: jlpeyton, omalyshe, hbae, Hahnfeld, joachim.protze
    >
    > Reviewed By: joachim.protze
    >
    > Tags: #openmp, #ompt
    >
    > Differential Revision: https://reviews.llvm.org/D47717
    ------------------------------------------------------------------------
    
    llvm-svn: 351432
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    66303bc View commit details
    Browse the repository at this point in the history
  4. Merging r351436:

    ------------------------------------------------------------------------
    r351436 | hans | 2019-01-17 14:11:15 +0100 (Thu, 17 Jan 2019) | 1 line
    
    build_llvm_package.bat: Run more tests
    ------------------------------------------------------------------------
    
    llvm-svn: 351437
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    9d7c270 View commit details
    Browse the repository at this point in the history
  5. Merging r351349:

    ------------------------------------------------------------------------
    r351349 | abataev | 2019-01-16 16:39:52 +0100 (Wed, 16 Jan 2019) | 14 lines
    
    [SLP] Fix PR40310: The reduction nodes should stay scalar.
    
    Summary:
    Sometimes the SLP vectorizer tries to vectorize the horizontal reduction
    nodes during regular vectorization. This may happen inside of the loops,
    when there are some vectorizable PHIs. Patch fixes this by checking if
    the node is the reduction node and thus it must not be vectorized, it must
    be gathered.
    
    Reviewers: RKSimon, spatel, hfinkel, fedor.sergeev
    
    Subscribers: llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D56783
    ------------------------------------------------------------------------
    
    llvm-svn: 351440
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    2b727e7 View commit details
    Browse the repository at this point in the history
  6. Merging r351344:

    ------------------------------------------------------------------------
    r351344 | asl | 2019-01-16 14:44:01 +0100 (Wed, 16 Jan 2019) | 10 lines
    
    [MSP430] Improve support of 'interrupt' attribute
    
    * Accept as an argument constants in range 0..63 (aligned with TI headers and linker scripts provided with TI GCC toolchain).
    * Emit function attribute 'interrupt'='xx' instead of aliases (used in the backend to create a section for particular interrupt vector).
    * Add more diagnostics.
    
    Patch by Kristina Bessonova!
    
    Differential Revision: https://reviews.llvm.org/D56663
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351441
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    ec0bc4c View commit details
    Browse the repository at this point in the history
  7. Merging r351345:

    ------------------------------------------------------------------------
    r351345 | asl | 2019-01-16 15:03:41 +0100 (Wed, 16 Jan 2019) | 23 lines
    
    [MSP430] Emit a separate section for every interrupt vector
    
    This is LLVM part of D56663
    
    Linker scripts shipped by TI require to have every
    interrupt vector in a separate section with a specific name:
    
     SECTIONS
     {
       __interrupt_vector_XX   : { KEEP (*(__interrupt_vector_XX )) } > VECTXX
       ...
     }
    
    Follow the requirement emit the section for every vector
    which contain address of interrupt handler:
    
      .section  __interrupt_vector_XX,"ax",@progbits
      .word %isr%
    
    Patch by Kristina Bessonova!
    
    Differential Revision: https://reviews.llvm.org/D56664
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351442
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    edcbea9 View commit details
    Browse the repository at this point in the history
  8. Merging r351351:

    ------------------------------------------------------------------------
    r351351 | mareko | 2019-01-16 16:43:53 +0100 (Wed, 16 Jan 2019) | 7 lines
    
    AMDGPU: Add llvm.amdgcn.ds.ordered.add & swap
    
    Reviewers: arsenm, nhaehnle
    
    Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D52944
    ------------------------------------------------------------------------
    
    llvm-svn: 351443
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    f308f98 View commit details
    Browse the repository at this point in the history
  9. Merging r351381:

    ------------------------------------------------------------------------
    r351381 | ctopper | 2019-01-16 22:46:32 +0100 (Wed, 16 Jan 2019) | 11 lines
    
    [X86] Add X86ISD::VSHLV and X86ISD::VSRLV nodes for psllv and psrlv
    
    Previously we used ISD::SHL and ISD::SRL to represent these in SelectionDAG. ISD::SHL/SRL interpret an out of range shift amount as undefined behavior and will constant fold to undef. While the intrinsics are defined to return 0 for out of range shift amounts. A previous patch added a special node for VPSRAV to produce all sign bits.
    
    This was previously believed safe because undefs frequently get turned into 0 either from the constant pool or a desire to not have a false register dependency. But undef is treated specially in some optimizations. For example, its ignored in detection of vector splats. So if the ISD::SHL/SRL can be constant folded and all of the elements with in bounds shift amounts are the same, we might fold it to single element broadcast from the constant pool. This would not put 0s in the elements with out of bounds shift amounts.
    
    We do have an existing InstCombine optimization to use shl/lshr when the shift amounts are all constant and in bounds. That should prevent some loss of constant folding from this change.
    
    Patch by zhutianyang and Craig Topper
    
    Differential Revision: https://reviews.llvm.org/D56695
    ------------------------------------------------------------------------
    
    llvm-svn: 351444
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    6f53381 View commit details
    Browse the repository at this point in the history
  10. Merging r351326:

    ------------------------------------------------------------------------
    r351326 | psmith | 2019-01-16 13:09:13 +0100 (Wed, 16 Jan 2019) | 15 lines
    
    [ELF] Implement option to force PIC compatible Thunks
    
    By default LLD will generate position independent Thunks when the --pie or
    --shared option is used. Reference to absolute addresses is permitted in
    other cases. For some embedded systems position independent thunks are
    needed for code that executes before the MMU has been set up. The option
    --pic-veneer is used by ld.bfd to force position independent thunks.
        
    The patch adds --pic-veneer as the option is needed for the Linux kernel
    on Arm.
        
    fixes pr39886
        
    Differential Revision: https://reviews.llvm.org/D55505
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351445
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    37174c6 View commit details
    Browse the repository at this point in the history
  11. Merging r351335:

    ------------------------------------------------------------------------
    r351335 | psmith | 2019-01-16 14:24:02 +0100 (Wed, 16 Jan 2019) | 17 lines
    
    [ELF][AArch64] Add R_AARCH64_PLT_PAGE_PC to isRelExpr
    
    As a follow on to D56666 (r351186) there is a case when taking the address
    of an ifunc when linking -pie that can generate a spurious can't create
    dynamic relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol in readonly
    segment. Specifically the case is where the ifunc is in the same
    translation unit as the address taker, so given -fpie the compiler knows
    the ifunc is defined in the executable so it can use a non-got-generating
    relocation.
    
    The error message is due to R_AARCH64_PLT_PAGE_PC not being added to
    isRelExpr, its non PLT equivalent R_AARCH64_PAGE_PC is already in
    isRelExpr.
    
    Differential Revision: https://reviews.llvm.org/D56724
    
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351446
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    961b84b View commit details
    Browse the repository at this point in the history
  12. Merging r351370:

    ------------------------------------------------------------------------
    r351370 | mgrang | 2019-01-16 20:52:59 +0100 (Wed, 16 Jan 2019) | 14 lines
    
    [COFF, ARM64] Implement support for SEH extensions __try/__except/__finally
    
    Summary:
    This patch supports MS SEH extensions __try/__except/__finally. The intrinsics localescape and localrecover are responsible for communicating escaped static allocas from the try block to the handler.
    
    We need to preserve frame pointers for SEH. So we create a new function/property HasLocalEscape.
    
    Reviewers: rnk, compnerd, mstorsjo, TomTan, efriedma, ssijaric
    
    Reviewed By: rnk, efriedma
    
    Subscribers: smeenai, jrmuizel, alex, majnemer, ssijaric, ehsan, dmajor, kristina, javed.absar, kristof.beyls, chrib, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D53540
    ------------------------------------------------------------------------
    
    llvm-svn: 351451
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    3553f3e View commit details
    Browse the repository at this point in the history
  13. Merging r351421:

    ------------------------------------------------------------------------
    r351421 | ssijaric | 2019-01-17 10:45:17 +0100 (Thu, 17 Jan 2019) | 12 lines
    
    [ARM64][Windows] Share unwind codes between epilogues
    
    There are cases where we have multiple epilogues that have the exact same unwind
    code sequence.  In that case, the epilogues can share the same unwind codes in
    the .xdata section.  This should get us past the assert "SEH unwind data
    splitting not yet implemented" in many cases.
    
    We still need to add support for generating multiple .pdata/.xdata sections for
    those functions that need to be split into fragments.
    
    Differential Revision: https://reviews.llvm.org/D56813
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351452
    zmodem committed Jan 17, 2019
    Configuration menu
    Copy the full SHA
    2f1402b View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2019

  1. Merging r351475:

    ------------------------------------------------------------------------
    r351475 | rnk | 2019-01-17 21:46:53 +0100 (Thu, 17 Jan 2019) | 16 lines
    
    [InstCombine] Don't sink dynamic allocas
    
    Summary:
    InstCombine's sinking algorithm only thinks about memory. It doesn't
    think about non-memory constraints like stack object lifetime. It can
    sink dynamic allocas across a stacksave call, which may be used with
    stackrestore, which can incorrectly reduce the lifetime of the dynamic
    alloca.
    
    Fixes PR40365
    
    Reviewers: hfinkel, efriedma
    
    Subscribers: hiraditya, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D56872
    ------------------------------------------------------------------------
    
    llvm-svn: 351530
    zmodem committed Jan 18, 2019
    Configuration menu
    Copy the full SHA
    8593d60 View commit details
    Browse the repository at this point in the history
  2. Merging r351325:

    ------------------------------------------------------------------------
    r351325 | gbuella | 2019-01-16 13:06:17 +0100 (Wed, 16 Jan 2019) | 26 lines
    
    Assertion in isAllocaPromotable due to extra bitcast goes into lifetime marker
    
    For the given test SROA detects possible replacement and creates a correct alloca. After that SROA is adding lifetime markers for this new alloca. The function getNewAllocaSlicePtr is trying to deduce the pointer type based on the original alloca, which is split, to use it later in lifetime intrinsic.
    
    For the test we ended up with such code (rA is initial alloca [10 x float], which is split, and rA.sroa.0.0 is a new split allocation)
    
    ```
    %rA.sroa.0.0.rA.sroa_cast = bitcast i32* %rA.sroa.0 to [10 x float]*    <----- this one causing the assertion and is an extra bitcast
    %5 = bitcast [10 x float]* %rA.sroa.0.0.rA.sroa_cast to i8*
    call void @llvm.lifetime.start.p0i8(i64 4, i8* %5)
    ```
    
    isAllocaPromotable code assumes that a user of alloca may go into lifetime marker through bitcast but it must be the only one bitcast to i8* type. In the test it's not a i8* type, return false and throw the assertion.
    
    As we are creating a pointer, which will be used in lifetime markers only, the proposed fix is to create a bitcast to i8* immediately to avoid extra bitcast creation.
    
    The test is a greatly simplified to just reproduce the assertion.
    
    Author: Igor Tsimbalist <igor.v.tsimbalist@intel.com>
    
    Reviewers: chandlerc, craig.topper
    
    Reviewed By: chandlerc
    
    Differential Revision: https://reviews.llvm.org/D55934
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351532
    zmodem committed Jan 18, 2019
    Configuration menu
    Copy the full SHA
    47149c4 View commit details
    Browse the repository at this point in the history
  3. Merging r351457:

    ------------------------------------------------------------------------
    r351457 | vlad.tsyrklevich | 2019-01-17 18:53:45 +0100 (Thu, 17 Jan 2019) | 15 lines
    
    TLS: Respect visibility for thread_local variables on Darwin (PR40327)
    
    Summary:
    Teach clang to mark thread wrappers for thread_local variables with
    hidden visibility when the original variable is marked with hidden
    visibility. This is necessary on Darwin which exposes the thread wrapper
    instead of the thread variable. The thread wrapper would previously
    always be created with default visibility unless it had
    linkonce*/weak_odr linkage.
    
    Reviewers: rjmccall
    
    Reviewed By: rjmccall
    
    Differential Revision: https://reviews.llvm.org/D56818
    ------------------------------------------------------------------------
    
    llvm-svn: 351533
    zmodem committed Jan 18, 2019
    Configuration menu
    Copy the full SHA
    c4fa34c View commit details
    Browse the repository at this point in the history
  4. Merging r351459:

    ------------------------------------------------------------------------
    r351459 | arphaman | 2019-01-17 19:12:45 +0100 (Thu, 17 Jan 2019) | 13 lines
    
    [ObjC] Follow-up r350768 and allow the use of unavailable methods that are
    declared in a parent class from within the @implementation context
    
    This commit extends r350768 and allows the use of methods marked as unavailable
    that are declared in a parent class/category from within the @implementation of
    the class where the method is marked as unavailable.
    This allows users to call init that's marked as unavailable even if they don't
    define it.
    
    rdar://47134898
    
    Differential Revision: https://reviews.llvm.org/D56816
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351535
    zmodem committed Jan 18, 2019
    Configuration menu
    Copy the full SHA
    ad1624f View commit details
    Browse the repository at this point in the history
  5. Merging r351504:

    ------------------------------------------------------------------------
    r351504 | brad | 2019-01-18 02:36:58 +0100 (Fri, 18 Jan 2019) | 2 lines
    
    Use llvm::VersionTuple instead of manual version marshalling
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351536
    zmodem committed Jan 18, 2019
    Configuration menu
    Copy the full SHA
    d4d3f77 View commit details
    Browse the repository at this point in the history
  6. Merging r351463, r351466, r351467, and r351468

    ------------------------------------------------------------------------
    r351463 | eugenezelenko | 2019-01-17 19:31:34 +0100 (Thu, 17 Jan 2019) | 6 lines
    
    [Documentation] Add a chapter about Clang-tidy integrations.
    
    Patch by Marina Kalashina.
    
    Differential Revision: https://reviews.llvm.org/D54945
    
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r351466 | eugenezelenko | 2019-01-17 20:35:39 +0100 (Thu, 17 Jan 2019) | 2 lines
    
    [Documentation] Fix link in docs/clang-tidy/Contributing.rst.
    
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r351467 | eugenezelenko | 2019-01-17 20:47:44 +0100 (Thu, 17 Jan 2019) | 2 lines
    
    [Documentation] Another attempt to fix link in docs/clang-tidy/Contributing.rst. Use HTTPS for links.
    
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r351468 | eugenezelenko | 2019-01-17 21:00:23 +0100 (Thu, 17 Jan 2019) | 2 lines
    
    [Documentation] Fix another link in docs/clang-tidy/Contributing.rst.
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351538
    zmodem committed Jan 18, 2019
    Configuration menu
    Copy the full SHA
    6e751e8 View commit details
    Browse the repository at this point in the history
  7. Merging r351426:

    ------------------------------------------------------------------------
    r351426 | d0k | 2019-01-17 11:25:18 +0100 (Thu, 17 Jan 2019) | 1 line
    
    [MC] Remove unused variable
    ------------------------------------------------------------------------
    
    llvm-svn: 351543
    zmodem committed Jan 18, 2019
    Configuration menu
    Copy the full SHA
    e264dae View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2019

  1. Merging r351580:

    ------------------------------------------------------------------------
    r351580 | kli | 2019-01-18 20:57:37 +0100 (Fri, 18 Jan 2019) | 4 lines
    
    [OPENMP][DOCS] Release notes/OpenMP support updates, NFC.
    
    Differential Revision: https://reviews.llvm.org/D56733
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351839
    zmodem committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    119d8a5 View commit details
    Browse the repository at this point in the history
  2. Merging r351686:

    ------------------------------------------------------------------------
    r351686 | vmiklos | 2019-01-20 15:28:27 +0100 (Sun, 20 Jan 2019) | 5 lines
    
    [clang-tidy] misc-non-private-member-variables-in-classes: ignore implicit methods
    
    Otherwise we don't warn on a struct containing a single public int, but
    we warn on a struct containing a single public std::string, which is
    inconsistent.
    ------------------------------------------------------------------------
    
    llvm-svn: 351844
    zmodem committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    eb74b59 View commit details
    Browse the repository at this point in the history
  3. Merging r351753:

    ------------------------------------------------------------------------
    r351753 | spatel | 2019-01-21 18:30:14 +0100 (Mon, 21 Jan 2019) | 8 lines
    
    [DAGCombiner] fix crash when converting build vector to shuffle
    
    The regression test is reduced from the example shown in D56281.
    This does raise a question as noted in the test file: do we want
    to handle this pattern? I don't have a motivating example for
    that on x86 yet, but it seems like we could have that pattern 
    there too, so we could avoid the back-and-forth using a shuffle.
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351857
    zmodem committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    2bebfeb View commit details
    Browse the repository at this point in the history
  4. Merging r351754:

    ------------------------------------------------------------------------
    r351754 | spatel | 2019-01-21 18:46:35 +0100 (Mon, 21 Jan 2019) | 6 lines
    
    [AArch64] add more tests for buildvec to shuffle transform; NFC
    
    These are copied from the sibling x86 file. I'm not sure which
    of the current outputs (if any) is considered optimal, but
    someone more familiar with AArch may want to take a look.
    
    ------------------------------------------------------------------------
    
    llvm-svn: 351858
    zmodem committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    ee231d0 View commit details
    Browse the repository at this point in the history
  5. Merging r351788:

    ------------------------------------------------------------------------
    r351788 | kadircet | 2019-01-22 10:10:20 +0100 (Tue, 22 Jan 2019) | 15 lines
    
    [clangd] Filter out plugin related flags and move all commandline manipulations into OverlayCDB.
    
    Summary:
    Some projects make use of clang plugins when building, but clangd is
    not aware of those plugins therefore can't work with the same compile command
    arguments.
    
    There were multiple places clangd performed commandline manipulations,
     this one also moves them all into OverlayCDB.
    
    Reviewers: ilya-biryukov
    
    Subscribers: klimek, sammccall, ioeric, MaskRay, jkorous, arphaman, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D56841
    ------------------------------------------------------------------------
    
    llvm-svn: 351860
    zmodem committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    642a173 View commit details
    Browse the repository at this point in the history
  6. [docs] Amend the release notes with more things I've contributed sinc…

    …e the last release
    
    Differential Revision: https://reviews.llvm.org/D57005
    
    llvm-svn: 351868
    mstorsjo committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    a05d35f View commit details
    Browse the repository at this point in the history
  7. [docs] Add release notes for notable things I've contributed since la…

    …st release
    
    Differential Revision: https://reviews.llvm.org/D57003
    
    llvm-svn: 351870
    mstorsjo committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    78ecdd7 View commit details
    Browse the repository at this point in the history
  8. [docs] Add release notes for notable things I've contributed since la…

    …st release
    
    Differential Revision: https://reviews.llvm.org/D57004
    
    llvm-svn: 351872
    mstorsjo committed Jan 22, 2019
    Configuration menu
    Copy the full SHA
    1e7e399 View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2019

  1. Merging r351531:

    ------------------------------------------------------------------------
    r351531 | kadircet | 2019-01-18 10:00:31 +0100 (Fri, 18 Jan 2019) | 11 lines
    
    [tooling] Add a new argument adjuster for deleting plugin related command line args
    
    Summary:
    Currently both clangd and clang-tidy makes use of this mechanism so
    putting it into tooling so that all tools can make use of it.
    
    Reviewers: ilya-biryukov, sammccall
    
    Subscribers: ioeric, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D56856
    ------------------------------------------------------------------------
    
    llvm-svn: 351961
    zmodem committed Jan 23, 2019
    Configuration menu
    Copy the full SHA
    d0fae09 View commit details
    Browse the repository at this point in the history
  2. Merging r351738:

    ------------------------------------------------------------------------
    r351738 | kadircet | 2019-01-21 11:10:18 +0100 (Mon, 21 Jan 2019) | 9 lines
    
    [clang-tidy] Use getStripPluginsAdjuster
    
    Summary: See rC351531 for the introduction of getStripPluginsAdjuster.
    
    Reviewers: alexfh
    
    Subscribers: xazax.hun, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D56902
    ------------------------------------------------------------------------
    
    llvm-svn: 351962
    zmodem committed Jan 23, 2019
    Configuration menu
    Copy the full SHA
    f669262 View commit details
    Browse the repository at this point in the history
  3. Merging r351898:

    ------------------------------------------------------------------------
    r351898 | pcc | 2019-01-23 00:51:35 +0100 (Wed, 23 Jan 2019) | 13 lines
    
    COFF, ELF: Adjust ICF hash computation to account for self relocations.
    
    It turns out that sections in PGO instrumented object files on Windows
    contain a large number of relocations pointing to themselves. With
    r347429 this can cause many sections to receive the same hash (usually
    zero) as a result of a section's hash being xor'ed with itself.
    
    This patch causes the COFF and ELF linkers to avoid this problem
    by adding the hash of the relocated section instead of xor'ing it.
    On my machine this causes the regressing test case
    provided by Mozilla to terminate in 2m41s.
    
    Differential Revision: https://reviews.llvm.org/D56955
    ------------------------------------------------------------------------
    
    llvm-svn: 351963
    zmodem committed Jan 23, 2019
    Configuration menu
    Copy the full SHA
    40cbc00 View commit details
    Browse the repository at this point in the history
  4. Merging r351899:

    ------------------------------------------------------------------------
    r351899 | pcc | 2019-01-23 00:54:49 +0100 (Wed, 23 Jan 2019) | 26 lines
    
    COFF, ELF: ICF: Perform 2 rounds of relocation hash propagation.
    
    LLD's performance on PGO instrumented Windows binaries was still not
    great even with the fix in D56955; out of the 2m41s linker runtime,
    around 2 minutes were still being spent in ICF. I looked into this more
    closely and discovered that the vast majority of the runtime was being
    spent segregating .pdata sections with the following relocation chain:
    
    .pdata -> identical .text -> unique PGO counter (not eligible for ICF)
    
    This patch causes us to perform 2 rounds of relocation hash
    propagation, which allows the hash for the .pdata sections to
    incorporate the identifier from the PGO counter. With that, the amount
    of time spent in ICF was reduced to about 2 seconds. I also found that
    the same change led to a significant ICF performance improvement in a
    regular release build of Chromium's chrome_child.dll, where ICF time
    was reduced from around 1s to around 700ms.
    
    With the same change applied to the ELF linker, median of 100 runs
    for lld-speed-test/chrome reduced from 4.53s to 4.45s on my machine.
    
    I also experimented with increasing the number of propagation rounds
    further, but I did not observe any further significant performance
    improvements linking Chromium or Firefox.
    
    Differential Revision: https://reviews.llvm.org/D56986
    ------------------------------------------------------------------------
    
    llvm-svn: 351964
    zmodem committed Jan 23, 2019
    Configuration menu
    Copy the full SHA
    b00b2b8 View commit details
    Browse the repository at this point in the history
  5. Merging r351670:

    ------------------------------------------------------------------------
    r351670 | ericwf | 2019-01-20 02:21:35 +0100 (Sun, 20 Jan 2019) | 7 lines
    
    Fix aligned allocation availability XFAILs after D56445.
    
    D56445 bumped the minimum Mac OS X version required for aligned
    allocation from 10.13 to 10.14. This caused libc++ tests depending
    on the old value to break.
    
    This patch updates the XFAILs for those tests to include 10.13.
    ------------------------------------------------------------------------
    
    llvm-svn: 351980
    zmodem committed Jan 23, 2019
    Configuration menu
    Copy the full SHA
    17c9824 View commit details
    Browse the repository at this point in the history

Commits on Jan 24, 2019

  1. Merging r351930 and r351932:

    ------------------------------------------------------------------------
    r351930 | kbeyls | 2019-01-23 09:18:39 +0100 (Wed, 23 Jan 2019) | 30 lines
    
    [SLH] AArch64: correctly pick temporary register to mask SP
    
    As part of speculation hardening, the stack pointer gets masked with the
    taint register (X16) before a function call or before a function return.
    Since there are no instructions that can directly mask writing to the
    stack pointer, the stack pointer must first be transferred to another
    register, where it can be masked, before that value is transferred back
    to the stack pointer.
    Before, that temporary register was always picked to be x17, since the
    ABI allows clobbering x17 on any function call, resulting in the
    following instruction pattern being inserted before function calls and
    returns/tail calls:
    
    mov x17, sp
    and x17, x17, x16
    mov sp, x17
    However, x17 can be live in those locations, for example when the call
    is an indirect call, using x17 as the target address (blr x17).
    
    To fix this, this patch looks for an available register just before the
    call or terminator instruction and uses that.
    
    In the rare case when no register turns out to be available (this
    situation is only encountered twice across the whole test-suite), just
    insert a full speculation barrier at the start of the basic block where
    this occurs.
    
    Differential Revision: https://reviews.llvm.org/D56717
    
    
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r351932 | kbeyls | 2019-01-23 10:10:12 +0100 (Wed, 23 Jan 2019) | 3 lines
    
    [SLH][AArch64] Remove accidentally retained -debug-only line from test.
    
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352115
    zmodem committed Jan 24, 2019
    Configuration menu
    Copy the full SHA
    22c2b2b View commit details
    Browse the repository at this point in the history
  2. Merging r352040:

    ------------------------------------------------------------------------
    r352040 | ibiryukov | 2019-01-24 11:41:43 +0100 (Thu, 24 Jan 2019) | 9 lines
    
    [CodeComplete] [clangd] Fix crash on ValueDecl with a null type
    
    Reviewers: kadircet
    
    Reviewed By: kadircet
    
    Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57093
    ------------------------------------------------------------------------
    
    llvm-svn: 352118
    zmodem committed Jan 24, 2019
    Configuration menu
    Copy the full SHA
    a008fbe View commit details
    Browse the repository at this point in the history
  3. Merging r352040:

    ------------------------------------------------------------------------
    r352040 | ibiryukov | 2019-01-24 11:41:43 +0100 (Thu, 24 Jan 2019) | 9 lines
    
    [CodeComplete] [clangd] Fix crash on ValueDecl with a null type
    
    Reviewers: kadircet
    
    Reviewed By: kadircet
    
    Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57093
    ------------------------------------------------------------------------
    
    llvm-svn: 352120
    zmodem committed Jan 24, 2019
    Configuration menu
    Copy the full SHA
    de8481e View commit details
    Browse the repository at this point in the history
  4. Merging r352102:

    ------------------------------------------------------------------------
    r352102 | rsmith | 2019-01-24 21:52:56 +0100 (Thu, 24 Jan 2019) | 2 lines
    
    Add a triple to this test so it passes for targets where alignof(double)
    really should be equal to alignof(float).
    ------------------------------------------------------------------------
    
    llvm-svn: 352132
    zmodem committed Jan 24, 2019
    Configuration menu
    Copy the full SHA
    400f8a3 View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2019

  1. Merging r352116:

    ------------------------------------------------------------------------
    r352116 | mgorny | 2019-01-24 23:20:47 +0100 (Thu, 24 Jan 2019) | 9 lines
    
    [Process/NetBSD] Add missing linkage to -lutil
    
    Add missing linkage to fix build failure with LLD:
    
      ld: error: undefined symbol: kinfo_getvmmap
      >>> referenced by NativeProcessNetBSD.cpp
      >>>               NativeProcessNetBSD.cpp.o:(lldb_private::process_netbsd::NativeProcessNetBSD::PopulateMemoryRegionCache()) in archive lib/liblldbPluginProcessNetBSD.a
    
    Differential Revision: https://reviews.llvm.org/D57193
    ------------------------------------------------------------------------
    
    llvm-svn: 352134
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    24479b1 View commit details
    Browse the repository at this point in the history
  2. Merging r352082:

    ------------------------------------------------------------------------
    r352082 | ruiu | 2019-01-24 20:02:31 +0100 (Thu, 24 Jan 2019) | 15 lines
    
    Fix broken export table if .rdata is merged with .text.
    
    Previously, we assumed that .rdata is zero-filled, so when writing
    an COFF import table, we didn't write anything if the data is zero.
    That assumption was wrong because .rdata can be merged with .text.
    If .rdata is merged with .text, they are initialized with 0xcc which
    is a trap instruction.
    
    This patch removes that assumption from code.
    
    Should be merged to 8.0 branch as this is a regression.
    
    Fixes https://bugs.llvm.org/show_bug.cgi?id=39826
    
    Differential Revision: https://reviews.llvm.org/D57168
    ------------------------------------------------------------------------
    
    llvm-svn: 352135
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    22f92b5 View commit details
    Browse the repository at this point in the history
  3. Merging r351485:

    ------------------------------------------------------------------------
    r351485 | vstefanovic | 2019-01-17 22:50:37 +0100 (Thu, 17 Jan 2019) | 10 lines
    
    [mips] Emit .reloc R_{MICRO}MIPS_JALR along with j(al)r(c) $25
    
    The callee address is added as an optional operand (MCSymbol) in
    AdjustInstrPostInstrSelection() and then used by asm printer to insert:
    '.reloc tmplabel, R_MIPS_JALR, symbol
    tmplabel:'.
    Controlled with '-mips-jalr-reloc', default is true.
    
    Differential revision: https://reviews.llvm.org/D56694
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352137
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    4474451 View commit details
    Browse the repository at this point in the history
  4. Merging r351579:

    ------------------------------------------------------------------------
    r351579 | vstefanovic | 2019-01-18 20:54:51 +0100 (Fri, 18 Jan 2019) | 9 lines
    
    [mips] Add '-mrelax-pic-calls', '-mno-relax-pic-calls'
    
    These two options enable/disable emission of R_{MICRO}MIPS_JALR fixups along
    with PIC calls. The linker may then try to turn PIC calls into direct jumps.
    By default, these fixups do get emitted by the backend, use
    '-mno-relax-pic-calls' to omit them.
    
    Differential revision: https://reviews.llvm.org/D56878
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352139
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    b7988f7 View commit details
    Browse the repository at this point in the history
  5. Merging r352034:

    ------------------------------------------------------------------------
    r352034 | atanasyan | 2019-01-24 10:13:14 +0100 (Thu, 24 Jan 2019) | 18 lines
    
    Reapply: [mips] Handle MipsMCExpr sub-expression for the MEK_DTPREL tag
    
    This reapplies commit r351987 with a failed test fix. Now the test
    accepts both DW_OP_GNU_push_tls_address and DW_OP_form_tls_address
    opcode.
    
    Original commit message:
    ```
      This is a fix for a regression introduced by the rL348194 commit. In
      that change new type (MEK_DTPREL) of MipsMCExpr expression was added,
      but in some places of the code this type of expression considered as
      unexpected.
    
      This change fixes the bug. The MEK_DTPREL type of expression is used for
      marking TLS DIEExpr only and contains a regular sub-expression. Where we
      need to handle the expression, we retrieve the sub-expression and
      handle it in a common way.
    ```
    ------------------------------------------------------------------------
    
    llvm-svn: 352140
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    e25507d View commit details
    Browse the repository at this point in the history
  6. Merging r352068:

    ------------------------------------------------------------------------
    r352068 | serge_sans_paille | 2019-01-24 18:56:08 +0100 (Thu, 24 Jan 2019) | 7 lines
    
    Partial support of SHT_GROUP without flag
    
    This does *not* implement full SHT_GROUP semantic, yet it is a simple step forward:
    Sections within a group are still considered valid, but they do not behave as
    specified by the standard in case of garbage collection.
    
    Differential Revision: https://reviews.llvm.org/D56437
    ------------------------------------------------------------------------
    
    llvm-svn: 352218
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    af62a72 View commit details
    Browse the repository at this point in the history
  7. Merging r352079:

    ------------------------------------------------------------------------
    r352079 | sammccall | 2019-01-24 19:55:24 +0100 (Thu, 24 Jan 2019) | 33 lines
    
    [FileManager] Revert r347205 to avoid PCH file-descriptor leak.
    
    Summary:
    r347205 fixed a bug in FileManager: first calling
    getFile(shouldOpen=false) and then getFile(shouldOpen=true) results in
    the file not being open.
    
    Unfortunately, some code was (inadvertently?) relying on this bug: when
    building with a PCH, the file entries are obtained first by passing
    shouldOpen=false, and then later shouldOpen=true, without any intention
    of reading them. After r347205, they do get unneccesarily opened.
    Aside from extra operations, this means they need to be closed. Normally
    files are closed when their contents are read. As these files are never
    read, they stay open until clang exits. On platforms with a low
    open-files limit (e.g. Mac), this can lead to spurious file-not-found
    errors when building large projects with PCH enabled, e.g.
      https://bugs.chromium.org/p/chromium/issues/detail?id=924225
    
    Fixing the callsites to pass shouldOpen=false when the file won't be
    read is not quite trivial (that info isn't available at the direct
    callsite), and passing shouldOpen=false is a performance regression (it
    results in open+fstat pairs being replaced by stat+open).
    
    So an ideal fix is going to be a little risky and we need some fix soon
    (especially for the llvm 8 branch).
    The problem addressed by r347205 is rare and has only been observed in
    clangd. It was present in llvm-7, so we can live with it for now.
    
    Reviewers: bkramer, thakis
    
    Subscribers: ilya-biryukov, ioeric, kadircet, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57165
    ------------------------------------------------------------------------
    
    llvm-svn: 352225
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    4ba28fc View commit details
    Browse the repository at this point in the history
  8. Merging r352204:

    ------------------------------------------------------------------------
    r352204 | sammccall | 2019-01-25 16:05:33 +0100 (Fri, 25 Jan 2019) | 7 lines
    
    [JSON] Work around excess-precision issue when comparing T_Integer numbers.
    
    Reviewers: bkramer
    
    Subscribers: kristina, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57237
    ------------------------------------------------------------------------
    
    llvm-svn: 352233
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    9fbd743 View commit details
    Browse the repository at this point in the history
  9. Merging r352234:

    ------------------------------------------------------------------------
    r352234 | dim | 2019-01-25 20:36:47 +0100 (Fri, 25 Jan 2019) | 38 lines
    
    Fix XRayTest link on FreeBSD (and likely NetBSD too)
    
    Summary:
    As reported on llvm-testers, during 8.0.0-rc1 testing I got errors while
    building of `XRayTest`, during `check-all`:
    
    ```
    [100%] Generating XRayTest-x86_64-Test
    /home/dim/llvm/8.0.0/rc1/Phase3/Release/llvmCore-8.0.0-rc1.obj/./lib/libLLVMSupport.a(Signals.cpp.o): In function `llvm::sys::PrintStackTrace(llvm::raw_ostream&)':
    Signals.cpp:(.text._ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x24): undefined reference to `backtrace'
    Signals.cpp:(.text._ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x254): undefined reference to `llvm::itaniumDemangle(char const*, char*, unsigned long*, int*)'
    clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
    gmake[3]: *** [projects/compiler-rt/lib/xray/tests/unit/CMakeFiles/TXRayTest-x86_64-Test.dir/build.make:73: projects/compiler-rt/lib/xray/tests/unit/XRayTest-x86_64-Test] Error 1
    gmake[3]: Target 'projects/compiler-rt/lib/xray/tests/unit/CMakeFiles/TXRayTest-x86_64-Test.dir/build' not remade because of errors.
    gmake[2]: *** [CMakeFiles/Makefile2:33513: projects/compiler-rt/lib/xray/tests/unit/CMakeFiles/TXRayTest-x86_64-Test.dir/all] Error 2
    gmake[2]: Target 'CMakeFiles/check-all.dir/all' not remade because of errors.
    gmake[1]: *** [CMakeFiles/Makefile2:737: CMakeFiles/check-all.dir/rule] Error 2
    gmake[1]: Target 'check-all' not remade because of errors.
    gmake: *** [Makefile:277: check-all] Error 2
    [Release Phase3] check-all failed
    ```
    
    This is because the `backtrace` function requires `-lexecinfo` on BSD
    platforms.  To fix this, detect the `execinfo` library in
    `cmake/config-ix.cmake`, and add it to the unit test link flags.
    
    Additionally, since the code in `sys::PrintStackTrace` makes use of
    `itaniumDemangle`, also add `-lLLVMDemangle`.  (Note that this is more
    of a general problem with libLLVMSupport, but I'm looking for a quick
    fix now so it can be merged to the 8.0 branch.)
    
    Reviewers: dberris, hans, mgorny, samsonov
    
    Reviewed By: dberris
    
    Subscribers: krytarowski, delcypher, erik.pilkington, #sanitizers, emaste, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57181
    ------------------------------------------------------------------------
    
    llvm-svn: 352251
    zmodem committed Jan 25, 2019
    Configuration menu
    Copy the full SHA
    30d3a54 View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2019

  1. Merging r352257:

    Redirecting to URL 'https://llvm.org/svn/llvm-project/lld/trunk':
    ------------------------------------------------------------------------
    r352257 | ruiu | 2019-01-26 01:31:49 +0100 (Sat, 26 Jan 2019) | 1 line
    
    Remove dead declaration.
    ------------------------------------------------------------------------
    
    llvm-svn: 352352
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    f149bca View commit details
    Browse the repository at this point in the history
  2. Remove failing test expectations.

    See discussions on the cfe-commits & clangd-dev thread about r352079.
    
    llvm-svn: 352354
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    01ddd7c View commit details
    Browse the repository at this point in the history
  3. Merging r352302:

    Redirecting to URL 'https://llvm.org/svn/llvm-project/lld/trunk':
    ------------------------------------------------------------------------
    r352302 | nickdesaulniers | 2019-01-27 03:54:23 +0100 (Sun, 27 Jan 2019) | 33 lines
    
    lld: elf: discard more specific .gnu.linkonce section
    
    Summary:
    lld discards .gnu.linonce.* sections work around a bug in glibc.
    https://sourceware.org/bugzilla/show_bug.cgi?id=20543
    
    Unfortunately, the Linux kernel uses a section named
    .gnu.linkonce.this_module to store infomation about kernel modules. The
    kernel reads data from this section when loading kernel modules, and
    errors if it fails to find this section. The current behavior of lld
    discards this section when kernel modules are linked, so kernel modules
    linked with lld are unloadable by the linux kernel.
    
    The Linux kernel should use a comdat section instead of .gnu.linkonce.
    The minimum version of binutils supported by the kernel supports comdat
    sections. The kernel is also not relying on the old linkonce behavior;
    it seems to have chosen a name that contains a deprecated GNU feature.
    
    Changing the section name now in the kernel would require all kernel
    modules to be recompiled to make use of the new section name. Instead,
    rather than discarding .gnu.linkonce.*, let's discard the more specific
    section name to continue working around the glibc issue while supporting
    linking Linux kernel modules.
    
    Link: ClangBuiltLinux/linux#329
    
    Reviewers: pcc, espindola
    
    Reviewed By: pcc
    
    Subscribers: nathanchance, emaste, arichardson, void, srhines
    
    Differential Revision: https://reviews.llvm.org/D57294
    ------------------------------------------------------------------------
    
    llvm-svn: 352355
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    8f1376f View commit details
    Browse the repository at this point in the history
  4. Merging r352323:

    Redirecting to URL 'https://llvm.org/svn/llvm-project/cfe/trunk':
    ------------------------------------------------------------------------
    r352323 | rakete1111 | 2019-01-27 20:19:59 +0100 (Sun, 27 Jan 2019) | 31 lines
    
    [SemaCXX] Fix ICE with structure bindings to members of template
    
    Summary:
    Trying to use structure binding with a structure that doesn't implement
    std::tuple_size, should unpack the data members. When the struct is a
    template though, clang might hit an assertion (if the type has not been
    completed before), because CXXRecordDecl::DefinitionData is nullptr.
    
    This commit fixes the problem by completing the type while trying to
    decompose the structured binding.
    
    The ICE happens in real world code, for example, when trying to iterate
    a protobuf generated map with a range-based for loop and structure
    bindings (because google::protobuf::MapPair is a template and doesn't
    support std::tuple_size).
    
    Reported-by: nicholas.sun@nlsun.com
    
    Patch by Daniele Di Proietto
    
    Reviewers: #clang, rsmith
    
    Reviewed By: #clang, rsmith
    
    Subscribers: cpplearner, Rakete1111, cfe-commits
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D56974
    
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352356
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    f86097d View commit details
    Browse the repository at this point in the history
  5. Merging r352099:

    Redirecting to URL 'https://llvm.org/svn/llvm-project/cfe/trunk':
    ------------------------------------------------------------------------
    r352099 | djg | 2019-01-24 21:31:11 +0100 (Thu, 24 Jan 2019) | 7 lines
    
    [WebAssembly] Factor commonality between wasm32 and wasm64 in test/Preprocessor/init.c
    
    Use the -check-prefixes= feature to merge most of the WEBASSEMBLY32 and
    WEBASSEMBLY64 test checks into a shared WEBASSEMBLY test check.
    
    Differential Revision: https://reviews.llvm.org/D57153
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352359
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    246bce4 View commit details
    Browse the repository at this point in the history
  6. Merging r352105:

    Redirecting to URL 'https://llvm.org/svn/llvm-project/cfe/trunk':
    ------------------------------------------------------------------------
    r352105 | djg | 2019-01-24 22:05:11 +0100 (Thu, 24 Jan 2019) | 7 lines
    
    [WebAssembly] Add a __wasi__ target macro
    
    This adds a `__wasi__` macro for the wasi OS, similar to `__linux__` etc. for
    other OS's.
    
    Differential Revision: https://reviews.llvm.org/D57155
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352360
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    b73d705 View commit details
    Browse the repository at this point in the history
  7. Merging r352221 and r352222:

    ------------------------------------------------------------------------
    r352221 | erichkeane | 2019-01-25 18:27:57 +0100 (Fri, 25 Jan 2019) | 12 lines
    
    Disable _Float16 for non ARM/SPIR Targets
    
    As Discussed here:
    http://lists.llvm.org/pipermail/llvm-dev/2019-January/129543.html
    
    There are problems exposing the _Float16 type on architectures that
    haven't defined the ABI/ISel for the type yet, so we're temporarily
    disabling the type and making it opt-in.
    
    Differential Revision: https://reviews.llvm.org/D57188
    
    Change-Id: I5db7366dedf1deb9485adb8948b1deb7e612a736
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r352222 | erichkeane | 2019-01-25 18:39:57 +0100 (Fri, 25 Jan 2019) | 3 lines
    
    Fix incorrect indent from r352221
    
    Change-Id: I0a7b1443eb6912ef7bea1a4cf2f696fc01726557
    ------------------------------------------------------------------------
    
    llvm-svn: 352363
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    1680cb5 View commit details
    Browse the repository at this point in the history
  8. Merging r352229:

    Redirecting to URL 'https://llvm.org/svn/llvm-project/cfe/trunk':
    ------------------------------------------------------------------------
    r352229 | erichkeane | 2019-01-25 19:36:20 +0100 (Fri, 25 Jan 2019) | 7 lines
    
    Remove F16 literal support based on Float16 support.
    
    Float16 support was disabled recently on many platforms, however that
    commit still allowed literals of Float16 type to work.  This commit
    removes those based on the same logic as Float16 disable.
    
    Change-Id: I72243048ae2db3dc47bd3d699843e3edf9c395ea
    ------------------------------------------------------------------------
    
    llvm-svn: 352365
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    accabdd View commit details
    Browse the repository at this point in the history
  9. Merging r352231:

    Redirecting to URL 'https://llvm.org/svn/llvm-project/clang-tools-extra/trunk':
    ------------------------------------------------------------------------
    r352231 | jonastoth | 2019-01-25 20:05:12 +0100 (Fri, 25 Jan 2019) | 13 lines
    
    [clang-tidy] fix unit tests for dropped _Float16 support in X86
    
    Summary:
    Because _Float16 was disabled for X86 targets the unit-tests started failing.
    Extract the pieces for _Float16 and run theses tests under AArch64.
    
    Reviewers: aaron.ballman, erichkeane, lebedev.ri
    
    Reviewed By: erichkeane
    
    Subscribers: javed.absar, xazax.hun, kristof.beyls, cfe-commits
    
    Differential Revision: https://reviews.llvm.org/D57249
    ------------------------------------------------------------------------
    
    llvm-svn: 352368
    zmodem committed Jan 28, 2019
    Configuration menu
    Copy the full SHA
    d1ba949 View commit details
    Browse the repository at this point in the history

Commits on Jan 29, 2019

  1. Merging r352413:

    ------------------------------------------------------------------------
    r352413 | pcc | 2019-01-28 20:29:41 +0100 (Mon, 28 Jan 2019) | 8 lines
    
    ELF: Set sh_info on RelaIplt to point to the IgotPlt output section.
    
    Previously we were setting it to the GotPlt output section, which is
    incorrect on ARM where this section is in .got. In static binaries
    this can lead to sh_info being set to -1 (because there is no .got.plt)
    which results in various tools rejecting the output file.
    
    Differential Revision: https://reviews.llvm.org/D57274
    ------------------------------------------------------------------------
    
    llvm-svn: 352489
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    be5f5b3 View commit details
    Browse the repository at this point in the history
  2. Merging r352381:

    ------------------------------------------------------------------------
    r352381 | stefan.graenitz | 2019-01-28 17:14:57 +0100 (Mon, 28 Jan 2019) | 5 lines
    
    [CMake] Quick-Fix FileCheck target does not exist when building against LLVM install-tree with COMPILER_RT_INCLUDE_TESTS=ON
    
    The issue came up during release testing for LLVM 8: https://bugs.llvm.org/show_bug.cgi?id=40443
    
    Differential Revision: https://reviews.llvm.org/D57224
    ------------------------------------------------------------------------
    
    llvm-svn: 352490
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    53ba53b View commit details
    Browse the repository at this point in the history
  3. Merging r352382:

    ------------------------------------------------------------------------
    r352382 | stefan.graenitz | 2019-01-28 17:15:27 +0100 (Mon, 28 Jan 2019) | 5 lines
    
    [CMake] Quick-Fix targets don't exist when building against LLVM install-tree with LLDB_INCLUDE_TESTS=ON
    
    The issue came up during release testing for LLVM 8: https://bugs.llvm.org/show_bug.cgi?id=40443
    
    Differential Revision: https://reviews.llvm.org/D57233
    ------------------------------------------------------------------------
    
    llvm-svn: 352491
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    caadceb View commit details
    Browse the repository at this point in the history
  4. Merging r352459:

    ------------------------------------------------------------------------
    r352459 | mstorsjo | 2019-01-29 09:38:48 +0100 (Tue, 29 Jan 2019) | 7 lines
    
    [MinGW] Ignore the --plugin and --plugin-opt option
    
    GCC can use LLD with -fuse-ld=lld for MinGW these days, but by
    default these options are passed to the linker (unless -fno-lto
    is passed to the GCC driver).
    
    Differential Revision: https://reviews.llvm.org/D57304
    ------------------------------------------------------------------------
    
    llvm-svn: 352493
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    84d97e3 View commit details
    Browse the repository at this point in the history
  5. Merging r352374:

    ------------------------------------------------------------------------
    r352374 | mgorny | 2019-01-28 16:16:03 +0100 (Mon, 28 Jan 2019) | 18 lines
    
    [cmake] Fix get_llvm_lit_path() to respect LLVM_EXTERNAL_LIT always
    
    Refactor the get_llvm_lit_path() logic to respect LLVM_EXTERNAL_LIT,
    and require the fallback to be defined explicitly
    as LLVM_DEFAULT_EXTERNAL_LIT. This fixes building libcxx standalone
    after r346888.
    
    The old logic was using LLVM_EXTERNAL_LIT both as user-defined cache
    variable and an optional pre-definition of default value from caller
    (e.g. libcxx). It included a hack to make this work by assigning
    the value back and forth but it was fragile and stopped working
    in libcxx.
    
    The new logic is simpler and more transparent. Default value is
    provided in a separate variable, and used only when user-specified
    variable is empty (i.e. not overriden).
    
    Differential Revision: https://reviews.llvm.org/D57282
    ------------------------------------------------------------------------
    
    llvm-svn: 352495
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    71b117e View commit details
    Browse the repository at this point in the history
  6. Merging r352374:

    ------------------------------------------------------------------------
    r352374 | mgorny | 2019-01-28 16:16:03 +0100 (Mon, 28 Jan 2019) | 18 lines
    
    [cmake] Fix get_llvm_lit_path() to respect LLVM_EXTERNAL_LIT always
    
    Refactor the get_llvm_lit_path() logic to respect LLVM_EXTERNAL_LIT,
    and require the fallback to be defined explicitly
    as LLVM_DEFAULT_EXTERNAL_LIT. This fixes building libcxx standalone
    after r346888.
    
    The old logic was using LLVM_EXTERNAL_LIT both as user-defined cache
    variable and an optional pre-definition of default value from caller
    (e.g. libcxx). It included a hack to make this work by assigning
    the value back and forth but it was fragile and stopped working
    in libcxx.
    
    The new logic is simpler and more transparent. Default value is
    provided in a separate variable, and used only when user-specified
    variable is empty (i.e. not overriden).
    
    Differential Revision: https://reviews.llvm.org/D57282
    ------------------------------------------------------------------------
    
    llvm-svn: 352496
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    5751c2b View commit details
    Browse the repository at this point in the history
  7. Merging r352374:

    ------------------------------------------------------------------------
    r352374 | mgorny | 2019-01-28 16:16:03 +0100 (Mon, 28 Jan 2019) | 18 lines
    
    [cmake] Fix get_llvm_lit_path() to respect LLVM_EXTERNAL_LIT always
    
    Refactor the get_llvm_lit_path() logic to respect LLVM_EXTERNAL_LIT,
    and require the fallback to be defined explicitly
    as LLVM_DEFAULT_EXTERNAL_LIT. This fixes building libcxx standalone
    after r346888.
    
    The old logic was using LLVM_EXTERNAL_LIT both as user-defined cache
    variable and an optional pre-definition of default value from caller
    (e.g. libcxx). It included a hack to make this work by assigning
    the value back and forth but it was fragile and stopped working
    in libcxx.
    
    The new logic is simpler and more transparent. Default value is
    provided in a separate variable, and used only when user-specified
    variable is empty (i.e. not overriden).
    
    Differential Revision: https://reviews.llvm.org/D57282
    ------------------------------------------------------------------------
    
    llvm-svn: 352497
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    2cc5c39 View commit details
    Browse the repository at this point in the history
  8. Merging r352374:

    ------------------------------------------------------------------------
    r352374 | mgorny | 2019-01-28 16:16:03 +0100 (Mon, 28 Jan 2019) | 18 lines
    
    [cmake] Fix get_llvm_lit_path() to respect LLVM_EXTERNAL_LIT always
    
    Refactor the get_llvm_lit_path() logic to respect LLVM_EXTERNAL_LIT,
    and require the fallback to be defined explicitly
    as LLVM_DEFAULT_EXTERNAL_LIT. This fixes building libcxx standalone
    after r346888.
    
    The old logic was using LLVM_EXTERNAL_LIT both as user-defined cache
    variable and an optional pre-definition of default value from caller
    (e.g. libcxx). It included a hack to make this work by assigning
    the value back and forth but it was fragile and stopped working
    in libcxx.
    
    The new logic is simpler and more transparent. Default value is
    provided in a separate variable, and used only when user-specified
    variable is empty (i.e. not overriden).
    
    Differential Revision: https://reviews.llvm.org/D57282
    ------------------------------------------------------------------------
    
    llvm-svn: 352498
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    c1d99f8 View commit details
    Browse the repository at this point in the history
  9. Merging r351910:

    ------------------------------------------------------------------------
    r351910 | cuviper | 2019-01-23 01:53:22 +0100 (Wed, 23 Jan 2019) | 18 lines
    
    [CodeView] Allow empty types in member functions
    
    Summary:
    `CodeViewDebug::lowerTypeMemberFunction` used to default to a `Void`
    return type if the function's type array was empty. After D54667, it
    started blindly indexing the 0th item for the return type, which fails
    in `getOperand` for empty arrays if assertions are enabled.
    
    This patch restores the `Void` return type for empty type arrays, and
    adds a test generated by Rust in line-only debuginfo mode.
    
    Reviewers: zturner, rnk
    
    Reviewed By: rnk
    
    Subscribers: hiraditya, JDevlieghere, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57070
    ------------------------------------------------------------------------
    
    llvm-svn: 352546
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    f103e43 View commit details
    Browse the repository at this point in the history
  10. Merging r352539:

    ------------------------------------------------------------------------
    r352539 | arsenm | 2019-01-29 21:49:47 +0100 (Tue, 29 Jan 2019) | 9 lines
    
    Revert "OpenCL: Extend argument promotion rules to vector types"
    
    This reverts r348083. This was based on a misreading of the spec
    for printf specifiers.
    
    Also revert r343653, as without a subsequent patch, a correctly
    specified format for a vector will incorrectly warn.
    
    Fixes bug 40491.
    ------------------------------------------------------------------------
    
    llvm-svn: 352547
    zmodem committed Jan 29, 2019
    Configuration menu
    Copy the full SHA
    3c554e2 View commit details
    Browse the repository at this point in the history

Commits on Jan 30, 2019

  1. Merging r352610:

    ------------------------------------------------------------------------
    r352610 | mgorny | 2019-01-30 09:20:24 +0100 (Wed, 30 Jan 2019) | 9 lines
    
    [clang] [Driver] [NetBSD] Append -rpath for shared compiler-rt runtimes
    
    Append appropriate -rpath when using shared compiler-rt runtimes,
    e.g. '-fsanitize=address -shared-libasan'.  There's already a similar
    logic in CommonArgs.cpp but it uses non-standard arch-suffixed
    installation directory while we want our driver to work with standard
    installation paths.
    
    Differential Revision: https://reviews.llvm.org/D57303
    ------------------------------------------------------------------------
    
    llvm-svn: 352650
    zmodem committed Jan 30, 2019
    Configuration menu
    Copy the full SHA
    88481d5 View commit details
    Browse the repository at this point in the history
  2. [docs][mips] Add MIPS specific release notes for LLD 8.0

    Differential Revision: http://reviews.llvm.org/D57459
    
    llvm-svn: 352674
    atanasyan committed Jan 30, 2019
    Configuration menu
    Copy the full SHA
    dbbe633 View commit details
    Browse the repository at this point in the history
  3. [docs][mips] Clang 8.0 Release notes

    MIPS specific part of Clang 8.0 Release notes. Feel free to add more
    notes if I miss something.
    
    Differential Revision: http://reviews.llvm.org/D57458
    
    llvm-svn: 352675
    atanasyan committed Jan 30, 2019
    Configuration menu
    Copy the full SHA
    dfc033d View commit details
    Browse the repository at this point in the history
  4. [docs][mips] 8.0 Release notes

    MIPS specific part of LLVM 8.0 Release notes.
    
    Differential Revision: http://reviews.llvm.org/D57457
    
    llvm-svn: 352682
    atanasyan committed Jan 30, 2019
    Configuration menu
    Copy the full SHA
    8a11e14 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2019

  1. Merging r352407:

    ------------------------------------------------------------------------
    r352407 | ruiu | 2019-01-28 20:11:52 +0100 (Mon, 28 Jan 2019) | 1 line
    
    Refactoring. NFC.
    ------------------------------------------------------------------------
    
    llvm-svn: 352850
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    6dcd982 View commit details
    Browse the repository at this point in the history
  2. Merging r352435:

    ------------------------------------------------------------------------
    r352435 | ruiu | 2019-01-28 22:45:50 +0100 (Mon, 28 Jan 2019) | 1 line
    
    Attempt to fix build failure with GCC 5.4.
    ------------------------------------------------------------------------
    
    llvm-svn: 352851
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    9f0ae69 View commit details
    Browse the repository at this point in the history
  3. Merging r352482:

    ------------------------------------------------------------------------
    r352482 | grimar | 2019-01-29 12:46:00 +0100 (Tue, 29 Jan 2019) | 3 lines
    
    [ELF] - Remove dead `readBfdName` declaration. NFC.
    
    `readBfdName` was removed recently.
    ------------------------------------------------------------------------
    
    llvm-svn: 352852
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    15decd1 View commit details
    Browse the repository at this point in the history
  4. Merging r352606:

    ------------------------------------------------------------------------
    r352606 | dim | 2019-01-30 07:31:52 +0100 (Wed, 30 Jan 2019) | 27 lines
    
    Recognize FreeBSD specific BFD names in OUTPUT_FORMAT
    
    Summary:
    After rLLD344952 ("Add OUTPUT_FORMAT linker script directive support"),
    using BFD names such as `elf64-x86-64-freebsd` the `OUTPUT_FORMAT`
    linker script command does not work anymore, resulting in errors like:
    
    ```
    ld: error: /home/dim/src/clang800-import/stand/efi/loader/arch/amd64/ldscript.amd64:2: unknown output format name: elf64-x86-64-freebsd
    >>> OUTPUT_FORMAT("elf64-x86-64-freebsd", "elf64-x86-64-freebsd", "elf64-x86-64-freebsd")
    >>>               ^
    ```
    
    To fix this, recognize a `-freebsd` suffix in BFD names, and also set
    `Configuration::OSABI` to `ELFOSABI_FREEBSD` for those cases.
    
    Add and/or update several test cases to check for the correct results of
    these new `OUTPUT_FORMAT` arguments.
    
    Reviewers: ruiu, atanasyan, grimar, hokein, emaste, espindola
    
    Reviewed By: ruiu
    
    Subscribers: nemanjai, javed.absar, arichardson, krytarowski, kristof.beyls, kbarton, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57283
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352853
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    538ee73 View commit details
    Browse the repository at this point in the history
  5. Merging r352672:

    ------------------------------------------------------------------------
    r352672 | epilk | 2019-01-30 22:14:08 +0100 (Wed, 30 Jan 2019) | 4 lines
    
    Don't define __has_feature(objc_fixed_enum) in non-objc mode
    
    This is only a formal language feature in ObjC, otherwise its just an
    extension. Making this change was also an ABI break.
    ------------------------------------------------------------------------
    
    llvm-svn: 352854
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    2a08347 View commit details
    Browse the repository at this point in the history
  6. Merging r352822:

    ------------------------------------------------------------------------
    r352822 | ahatanak | 2019-02-01 01:12:06 +0100 (Fri, 01 Feb 2019) | 8 lines
    
    Revert "[Sema] Make canPassInRegisters return true if the CXXRecordDecl 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: 352855
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    e26a2f2 View commit details
    Browse the repository at this point in the history
  7. Merging r352770:

    ------------------------------------------------------------------------
    r352770 | tejohnson | 2019-01-31 18:18:11 +0100 (Thu, 31 Jan 2019) | 3 lines
    
    Recommit "[ThinLTO] Rename COMDATs for COFF when promoting/renaming COMDAT leader"
    
    Recommit of r352763 with fix for use after free.
    ------------------------------------------------------------------------
    
    llvm-svn: 352856
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    d4c2ff4 View commit details
    Browse the repository at this point in the history
  8. Merging r352156:

    ------------------------------------------------------------------------
    r352156 | phosek | 2019-01-25 03:42:30 +0100 (Fri, 25 Jan 2019) | 12 lines
    
    [AArch64] Make the test for rsr and rsr64 stricter
    
    ACLE specifies that return type for rsr and rsr64 is uint32_t and
    uint64_t respectively. D56852 change the return type of rsr64 from
    unsigned long to unsigned long long which at least on Linux doesn't
    match uint64_t, but the test isn't strict enough to detect that
    because compiler implicitly converts unsigned long long to uint64_t,
    but it breaks other uses such as printf with PRIx64 type specifier.
    This change makes the test stricter enforcing that the return type
    of rsr and rsr64 builtins is what is actually specified in ACLE.
    
    Differential Revision: https://reviews.llvm.org/D57210
    ------------------------------------------------------------------------
    
    llvm-svn: 352859
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    c081a5f View commit details
    Browse the repository at this point in the history
  9. Merging r352463:

    ------------------------------------------------------------------------
    r352463 | sam_parker | 2019-01-29 10:04:03 +0100 (Tue, 29 Jan 2019) | 6 lines
    
    [AArch64] Update int64_t ACLE builtin arguments
        
    Re-applying r351740 with fixes (changing LL to W).
    
    Differential Revision: https://reviews.llvm.org/D56852
    
    ------------------------------------------------------------------------
    
    llvm-svn: 352860
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    f66fbcf View commit details
    Browse the repository at this point in the history
  10. Merging r352246:

    ------------------------------------------------------------------------
    r352246 | mtrofin | 2019-01-25 22:49:54 +0100 (Fri, 25 Jan 2019) | 23 lines
    
    [llvm] Opt-in flag for X86DiscriminateMemOps
    
    Summary:
    Currently, if an instruction with a memory operand has no debug information,
    X86DiscriminateMemOps will generate one based on the first line of the
    enclosing function, or the last seen debug info.
    
    This may cause confusion in certain debugging scenarios. The long term
    approach would be to use the line number '0' in such cases, however, that
    brings in challenges: the base discriminator value range is limited
    (4096 values).
    
    For the short term, adding an opt-in flag for this feature.
    
    See bug 40319 (https://bugs.llvm.org/show_bug.cgi?id=40319)
    
    Reviewers: dblaikie, jmorse, gbedwell
    
    Reviewed By: dblaikie
    
    Subscribers: aprantl, eraman, hiraditya
    
    Differential Revision: https://reviews.llvm.org/D57257
    ------------------------------------------------------------------------
    
    llvm-svn: 352867
    zmodem committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    61ff0b6 View commit details
    Browse the repository at this point in the history
  11. [Hexagon] Update release notes with the changes to the Hexagon backend

    llvm-svn: 352915
    Krzysztof Parzyszek committed Feb 1, 2019
    Configuration menu
    Copy the full SHA
    b96362f View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2019

  1. Release Notes: Add Zig to External Open Source Projects Using LLVM 8

    Zig has all tests passing in the llvm8 branch with rc1.
    Zig 0.4.0 is scheduled to be released 1 week after LLVM 8.0.0,
    and it will depend on LLVM 8.
    
    Patch by Andrew Kelley!
    
    Differential revision: https://reviews.llvm.org/D57586
    
    llvm-svn: 353019
    zmodem committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    36e9afb View commit details
    Browse the repository at this point in the history
  2. Merging r352889:

    ------------------------------------------------------------------------
    r352889 | wolfgangp | 2019-02-01 18:11:58 +0100 (Fri, 01 Feb 2019) | 6 lines
    
    [DWARF v5] Fix DWARF emitter and consumer to produce/expect a uleb for a location description's length.
    
    Reviewer: davide, JDevliegere
    
    Differential Revision: https://reviews.llvm.org/D57550
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353029
    zmodem committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    8cc77b4 View commit details
    Browse the repository at this point in the history
  3. Merging r352307:

    ------------------------------------------------------------------------
    r352307 | void | 2019-01-27 08:24:03 +0100 (Sun, 27 Jan 2019) | 11 lines
    
    Remove Expr sugar decorating the CXXUuidofExpr node.
    
    Summary: Sugar, like ConstantExpr, causes an infinite expansion of the template object.
    
    Reviewers: rsmith, aaron.ballman
    
    Reviewed By: aaron.ballman
    
    Subscribers: riccibruno, aaron.ballman, cfe-commits, tzik, rnk
    
    Differential Revision: https://reviews.llvm.org/D57114
    ------------------------------------------------------------------------
    
    llvm-svn: 353031
    zmodem committed Feb 4, 2019
    Configuration menu
    Copy the full SHA
    44c7930 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2019

  1. Merging r352928:

    ------------------------------------------------------------------------
    r352928 | mstorsjo | 2019-02-01 23:08:03 +0100 (Fri, 01 Feb 2019) | 9 lines
    
    [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: 353157
    zmodem committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    ca26c44 View commit details
    Browse the repository at this point in the history
  2. Merging r352929:

    ------------------------------------------------------------------------
    r352929 | mstorsjo | 2019-02-01 23:08:09 +0100 (Fri, 01 Feb 2019) | 11 lines
    
    [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: 353158
    zmodem committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    9c110d5 View commit details
    Browse the repository at this point in the history
  3. Merging r352945:

    ------------------------------------------------------------------------
    r352945 | mgrang | 2019-02-02 02:32:48 +0100 (Sat, 02 Feb 2019) | 13 lines
    
    [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: 353159
    zmodem committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    f7f9945 View commit details
    Browse the repository at this point in the history
  4. Merging r353082:

    ------------------------------------------------------------------------
    r353082 | meinersbur | 2019-02-04 20:55:59 +0100 (Mon, 04 Feb 2019) | 10 lines
    
    [WarnMissedTransforms] Do not warn about already vectorized loops.
    
    LoopVectorize adds llvm.loop.isvectorized, but leaves
    llvm.loop.vectorize.enable. Do not consider such a loop for user-forced
    vectorization since vectorization already happened -- by prioritizing
    llvm.loop.isvectorized except for TM_SuppressedByUser.
    
    Fixes http://llvm.org/PR40546
    
    Differential Revision: https://reviews.llvm.org/D57542
    ------------------------------------------------------------------------
    
    llvm-svn: 353166
    zmodem committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    a10d2d2 View commit details
    Browse the repository at this point in the history
  5. Merging r352555:

    ------------------------------------------------------------------------
    r352555 | asbirlea | 2019-01-29 23:33:20 +0100 (Tue, 29 Jan 2019) | 12 lines
    
    Check bool attribute value in getOptionalBoolLoopAttribute.
    
    Summary:
    Check the bool value of the attribute in getOptionalBoolLoopAttribute
    not just its existance.
    Eliminates the warning noise generated when vectorization is explicitly disabled.
    
    Reviewers: Meinersbur, hfinkel, dmgreen
    
    Subscribers: jlebar, sanjoy, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D57260
    ------------------------------------------------------------------------
    
    llvm-svn: 353167
    zmodem committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    a9a9c27 View commit details
    Browse the repository at this point in the history
  6. Merging rr353218:

    ------------------------------------------------------------------------
    r353218 | rnk | 2019-02-05 13:14:09 -0800 (Tue, 05 Feb 2019) | 19 lines
    
    [MC] Don't error on numberless .file directives on MachO
    
    Summary:
    Before r349976, MC ignored such directives when producing an object file
    and asserted when re-producing textual assembly output. I turned this
    assertion into a hard error in both cases in r349976, but this makes it
    unnecessarily difficult to write a single assembly file that supports
    both MachO and other object formats that support .file. A user reported
    this as PR40578, and we decided to go back to ignoring the directive.
    
    Fixes PR40578
    
    Reviewers: mstorsjo
    
    Subscribers: hiraditya, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57772
    ------------------------------------------------------------------------
    
    llvm-svn: 353220
    rnk committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    30ce79e View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2019

  1. Merging r353155:

    ------------------------------------------------------------------------
    r353155 | hans | 2019-02-05 12:01:54 +0100 (Tue, 05 Feb 2019) | 11 lines
    
    Fix format string in bindings/go/llvm/ir_test.go (PR40561)
    
    The test started failing for me recently. I don't see any changes around
    this code, so maybe it's my local go version that changed or something.
    
    The error seems real to me: we're trying to print an Attribute with %d.
    The test talks about "attribute masks" I'm not sure what that refers to,
    but I suppose we could print the raw pointer value, since that's
    what the test seems to be comparing.
    
    Differential revision: https://reviews.llvm.org/D57672
    ------------------------------------------------------------------------
    
    llvm-svn: 353279
    zmodem committed Feb 6, 2019
    Configuration menu
    Copy the full SHA
    35f4f2f View commit details
    Browse the repository at this point in the history
  2. Merging r352016:

    ------------------------------------------------------------------------
    r352016 | phosek | 2019-01-24 04:04:42 +0100 (Thu, 24 Jan 2019) | 12 lines
    
    [libunwind] Don't abort if encoutering invalid .eh_frame_hdr
    
    Recent Linux kernel release has introduced a bug as part of the ORC
    rollout where the vDSO has a valid .eh_frame section, but it's missing
    the .eh_frame_hdr section and GNU_EH_FRAME segment has zero size. This
    causes libunwind to abort which breaks programs that use libunwind.
    
    The other unwinder implementation (libgcc, non-gnu) instead silently
    bail out unless being compiled as debug. This change modifies libunwind
    to use the same strategy.
    
    Differential Revision: https://reviews.llvm.org/D57081
    ------------------------------------------------------------------------
    
    llvm-svn: 353287
    zmodem committed Feb 6, 2019
    Configuration menu
    Copy the full SHA
    5581990 View commit details
    Browse the repository at this point in the history
  3. Merging r353224:

    ------------------------------------------------------------------------
    r353224 | kamil | 2019-02-05 23:20:25 +0100 (Tue, 05 Feb 2019) | 2 lines
    
    Update the ioctl(2) list in sanitizers with NetBSD 8.99.34
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353292
    zmodem committed Feb 6, 2019
    Configuration menu
    Copy the full SHA
    a2f4603 View commit details
    Browse the repository at this point in the history
  4. Merging r353250:

    ------------------------------------------------------------------------
    r353250 | zturner | 2019-02-06 01:50:35 +0100 (Wed, 06 Feb 2019) | 24 lines
    
    [PDB] Remove dots and normalize slashes with /PDBSOURCEPATH.
    
    In a previous patch, I made changes so that PDBs which were
    generated on non-Windows platforms contained sensical paths
    for the host.  While this is an esoteric use case, we need
    it to be supported for certain cross compilation scenarios
    especially with LLDB, which can debug things on non-Windows
    platforms.
    
    However, this regressed a case where you specify /PDBSOURCEPATH
    and use a windows-style path.  Previously, we would still remove
    dots and canonicalize slashes to backslashes, but since my
    change intentionally tried to support non-backslash paths, this
    was broken.
    
    This patch fixes the situation by trying to guess which path
    style the user is specifying when /PDBSOURCEPATH is passed.
    It is intentionally conservative, erring on the side of a
    Windows path style unless absolutely certain.  All dots are
    removed and slashes canonicalized to whatever the deduced
    path style is after appending the file path to the /PDBSOURCEPATH
    argument.
    
    Differential Revision: https://reviews.llvm.org/D57769
    ------------------------------------------------------------------------
    
    llvm-svn: 353300
    zmodem committed Feb 6, 2019
    Configuration menu
    Copy the full SHA
    7ec84db View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2019

  1. Merging r353304:

    ------------------------------------------------------------------------
    r353304 | uweigand | 2019-02-06 16:10:13 +0100 (Wed, 06 Feb 2019) | 18 lines
    
    [SystemZ] Do not return INT_MIN from strcmp/memcmp
    
    The IPM sequence currently generated to compute the strcmp/memcmp
    result will return INT_MIN for the "less than zero" case.  While
    this is in compliance with the standard, strictly speaking, it
    turns out that common applications cannot handle this, e.g. because
    they negate a comparison result in order to implement reverse
    compares.
    
    This patch changes code to use a different sequence that will result
    in -2 for the "less than zero" case (same as GCC).  However, this
    requires that the two source operands of the compare instructions
    are inverted, which breaks the optimization in removeIPMBasedCompare.
    Therefore, I've removed this (and all of optimizeCompareInstr), and
    replaced it with a mostly equivalent optimization in combineCCMask
    at the DAGcombine level.
    
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353379
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    f582206 View commit details
    Browse the repository at this point in the history
  2. lld-link: Add some entries to the 8.0 release notes

    By Nico Weber!
    
    Differential revision: https://reviews.llvm.org/D57818
    
    llvm-svn: 353387
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    238045f View commit details
    Browse the repository at this point in the history
  3. Merging r353367:

    ------------------------------------------------------------------------
    r353367 | brad | 2019-02-07 03:06:58 +0100 (Thu, 07 Feb 2019) | 2 lines
    
    Add OpenBSD support to be able to get the thread name
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353388
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    33fc712 View commit details
    Browse the repository at this point in the history
  4. Merging r353327:

    ------------------------------------------------------------------------
    r353327 | lebedevri | 2019-02-06 20:17:30 +0100 (Wed, 06 Feb 2019) | 18 lines
    
    [clang-tidy] modernize-avoid-c-arrays: avoid main function (PR40604)
    
    Summary:
    The check should ignore the main function, the program entry point.
    It is not possible to use `std::array<>` for the `argv`.
    The alternative is to use `char** argv`.
    
    Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40604 | PR40604 ]]
    
    Reviewers: JonasToth, aaron.ballman
    
    Reviewed By: aaron.ballman
    
    Subscribers: xazax.hun, hans, cfe-commits
    
    Tags: #clang-tools-extra, #clang
    
    Differential Revision: https://reviews.llvm.org/D57787
    ------------------------------------------------------------------------
    
    llvm-svn: 353391
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    7399f70 View commit details
    Browse the repository at this point in the history
  5. Merging r353393:

    ------------------------------------------------------------------------
    r353393 | hans | 2019-02-07 12:13:28 +0100 (Thu, 07 Feb 2019) | 1 line
    
    Typo: s/follwing/following
    ------------------------------------------------------------------------
    
    llvm-svn: 353394
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    104c654 View commit details
    Browse the repository at this point in the history
  6. Re-generate docs/ClangCommandLineReference.rst

    $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include
        -I../cfe.src/include/clang/Driver -I../llvm.src/include
        ../cfe.src/include/clang/Driver/ClangOptionDocs.td -o
        ../cfe.src/docs/ClangCommandLineReference.rst
    
    llvm-svn: 353395
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    8c33d4f View commit details
    Browse the repository at this point in the history
  7. Generate docs/AttributeReference.rst

    $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include
        ../cfe.src/include/clang/Basic/Attr.td -o
        ../cfe.src/docs/AttributeReference.rst
    
    llvm-svn: 353396
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    cb2d048 View commit details
    Browse the repository at this point in the history
  8. [docs] Update the release notes for the backported feature with thunk…

    …s for ARM64
    
    llvm-svn: 353397
    mstorsjo committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    829bb6f View commit details
    Browse the repository at this point in the history
  9. Fix sphinx warning

    llvm-svn: 353398
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    ac29b65 View commit details
    Browse the repository at this point in the history
  10. Merging r353399:

    ------------------------------------------------------------------------
    r353399 | hans | 2019-02-07 13:39:35 +0100 (Thu, 07 Feb 2019) | 1 line
    
    docs: add missingkeyfunction to doctree, fix title
    ------------------------------------------------------------------------
    
    llvm-svn: 353400
    zmodem committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    98ebe74 View commit details
    Browse the repository at this point in the history
  11. Add external project LDC to release notes.

    LDC, the LLVM-based D compiler, is already ready for LLVM 8.0.0.
    
    llvm-svn: 353466
    redstar committed Feb 7, 2019
    Configuration menu
    Copy the full SHA
    2699311 View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2019

  1. Merging r351387, r351765, and r353374:

    ------------------------------------------------------------------------
    r351387 | jfb | 2019-01-16 23:22:38 +0100 (Wed, 16 Jan 2019) | 7 lines
    
    [NFC] Factor out + document build requirements
    
    Summary: This change factors out compiler checking / warning, and documents LLVM_FORCE_USE_OLD_TOOLCHAIN. It doesn't introduce any functional changes nor policy changes, these will come late.
    
    Subscribers: mgorny, jkorous, dexonsmith, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D56799
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r351765 | jfb | 2019-01-22 00:53:52 +0100 (Tue, 22 Jan 2019) | 24 lines
    
    Document toolchain update policy
    
    Summary:
    Capture the current agreed-upon toolchain update policy based on the following
    discussions:
    
      - LLVM dev meeting 2018 BoF "Migrating to C++14, and beyond!"
        llvm.org/devmtg/2018-10/talk-abstracts.html#bof3
      - A Short Policy Proposal Regarding Host Compilers
        lists.llvm.org/pipermail/llvm-dev/2018-May/123238.html
      - Using C++14 code in LLVM (2018)
        lists.llvm.org/pipermail/llvm-dev/2018-May/123182.html
      - Using C++14 code in LLVM (2017)
        lists.llvm.org/pipermail/llvm-dev/2017-October/118673.html
      - Using C++14 code in LLVM (2016)
        lists.llvm.org/pipermail/llvm-dev/2016-October/105483.html
      - Document and Enforce new Host Compiler Policy
        llvm.org/D47073
      - Require GCC 5.1 and LLVM 3.5 at a minimum
        llvm.org/D46723
    
    Subscribers: jkorous, dexonsmith, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D56819
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353374 | jfb | 2019-02-07 06:20:00 +0100 (Thu, 07 Feb 2019) | 12 lines
    
    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: 353512
    zmodem committed Feb 8, 2019
    Configuration menu
    Copy the full SHA
    ce52769 View commit details
    Browse the repository at this point in the history
  2. Merging r353463:

    ------------------------------------------------------------------------
    r353463 | smeenai | 2019-02-07 21:58:04 +0100 (Thu, 07 Feb 2019) | 4 lines
    
    [cmake] Pass LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN to NATIVE configure
    
    We should propagate this down to host builds so that e.g. people using
    an optimized tablegen can do the sub-configure successfully.
    ------------------------------------------------------------------------
    
    llvm-svn: 353517
    zmodem committed Feb 8, 2019
    Configuration menu
    Copy the full SHA
    22558d3 View commit details
    Browse the repository at this point in the history
  3. - Update ReleaseNotes for lld 8.0.0.

    llvm-svn: 353574
    rui314 committed Feb 8, 2019
    Configuration menu
    Copy the full SHA
    15f159c View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2019

  1. Minor update to lld/ReleaseNotes.

    llvm-svn: 353749
    rui314 committed Feb 11, 2019
    Configuration menu
    Copy the full SHA
    62ead03 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2019

  1. Merging r353495:

    ------------------------------------------------------------------------
    r353495 | jfb | 2019-02-08 02:29:17 +0100 (Fri, 08 Feb 2019) | 32 lines
    
    Variable auto-init: fix __block initialization
    
    Summary:
    Automatic initialization [1] of __block variables was trampling over the block's
    headers after they'd been initialized, which caused self-init usage to crash,
    such as here:
    
      typedef struct XYZ { void (^block)(); } *xyz_t;
      __attribute__((noinline))
      xyz_t create(void (^block)()) {
        xyz_t myself = malloc(sizeof(struct XYZ));
        myself->block = block;
        return myself;
      }
      int main() {
        __block xyz_t captured = create(^(){ (void)captured; });
      }
    
    This type of code shouldn't be broken by variable auto-init, even if it's
    sketchy.
    
    [1] With -ftrivial-auto-var-init=pattern
    
    <rdar://problem/47798396>
    
    Reviewers: rjmccall, pcc, kcc
    
    Subscribers: jkorous, dexonsmith, cfe-commits
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57797
    ------------------------------------------------------------------------
    
    llvm-svn: 353807
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    e055d7f View commit details
    Browse the repository at this point in the history
  2. ReleaseNotes about the toolchain version cmake check

    Based on text from JF!
    
    llvm-svn: 353808
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    0cbe0b9 View commit details
    Browse the repository at this point in the history
  3. Merging r353551 and r353809:

    Also removed the text about Clang 9.
    
    ------------------------------------------------------------------------
    r353551 | metzman | 2019-02-08 20:35:04 +0100 (Fri, 08 Feb 2019) | 13 lines
    
    Document libFuzzer on Windows.
    
    Summary:
    Document that libFuzzer supports Windows, how to get it,
    and its limitations.
    
    Reviewers: kcc, morehouse, rnk, metzman
    
    Reviewed By: kcc, rnk, metzman
    
    Subscribers: hans, rnk
    
    Differential Revision: https://reviews.llvm.org/D57597
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353809 | hans | 2019-02-12 10:08:52 +0100 (Tue, 12 Feb 2019) | 1 line
    
    LibFuzzer.rst: double backticks
    ------------------------------------------------------------------------
    
    llvm-svn: 353811
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    75ff7d0 View commit details
    Browse the repository at this point in the history
  4. Merging r352607 r352608 r353015 r353061 r353138 r353141 r353334 r353489

    And re-generate expectations for a test:
    $ utils/update_llc_test_checks.py --llc-binary ../build.release/bin/llc test/CodeGen/X86/x87-schedule.ll
    
    Will also merge cfe r353142 for a clang-side test.
    
    This merge was requested in PR40667.
    
    
    ------------------------------------------------------------------------
    r352607 | ctopper | 2019-01-30 08:08:44 +0100 (Wed, 30 Jan 2019) | 1 line
    
    [X86] Add FPSW as a Def on some FP instructions that were missing it.
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r352608 | ctopper | 2019-01-30 08:33:24 +0100 (Wed, 30 Jan 2019) | 5 lines
    
    [X86] Remove a couple places where we unnecessarily pass 0 to the EmitPriority of some FP instruction aliases. NFC
    
    As far as I can tell we already won't emit these aliases due to an operand count check in the tablegen code. Removing these because I couldn't make sense of the inconsistency between fadd and fmul from reading the code.
    
    I checked the AsmMatcher and AsmWriter files before and after this change and there were no differences.
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353015 | ctopper | 2019-02-04 05:15:10 +0100 (Mon, 04 Feb 2019) | 3 lines
    
    [X86] Print %st(0) as %st when its implicit to the instruction. Continue 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.
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353061 | ctopper | 2019-02-04 18:28:18 +0100 (Mon, 04 Feb 2019) | 5 lines
    
    [X86] Print all register forms of x87 fadd/fsub/fdiv/fmul as having two arguments where on is %st.
    
    All of these instructions consume one encoded register and the other register is %st. They either write the result to %st or the encoded register. Previously we printed both arguments when the encoded register was written. And we printed one argument when the result was written to %st. For the stack popping forms the encoded register is always the destination and we didn't print both operands. This was inconsistent with gcc and objdump and just makes the output assembly code harder to read.
    
    This patch changes things to always print both operands making us consistent with gcc and objdump. The parser should still be able to handle the single register forms just as it did before. This also matches the GNU assembler behavior.
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353138 | ctopper | 2019-02-05 05:48:23 +0100 (Tue, 05 Feb 2019) | 1 line
    
    [X86] Add test case from PR40529. NFC
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353141 | ctopper | 2019-02-05 07:13:06 +0100 (Tue, 05 Feb 2019) | 16 lines
    
    [X86] Connect the default fpsr and dirflag clobbers in inline assembly to the registers we have defined for them.
    
    Summary:
    We don't currently map these constraints to physical register numbers so they don't make it to the MachineIR representation of inline assembly.
    
    This could have problems for proper dependency tracking in the machine schedulers though I don't have a test case that shows that.
    
    Reviewers: rnk
    
    Reviewed By: rnk
    
    Subscribers: eraman, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57641
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353334 | ctopper | 2019-02-06 20:50:59 +0100 (Wed, 06 Feb 2019) | 1 line
    
    [X86] Change the CPU on the test case for pr40529.ll to really show the bug. NFC
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353489 | ctopper | 2019-02-08 01:44:39 +0100 (Fri, 08 Feb 2019) | 14 lines
    
    [X86] Add FPCW as a register and start using it as an implicit use on floating point instructions.
    
    Summary:
    FPCW contains the rounding mode control which we manipulate to implement fp to integer conversion by changing the roudning mode, storing the value to the stack, and then changing the rounding mode back. Because we didn't model FPCW and its dependency chain, other instructions could be scheduled into the middle of the sequence.
    
    This patch introduces the register and adds it as an implciit def of FLDCW and implicit use of the FP binary arithmetic instructions and store instructions. There are more instructions that need to be updated, but this is a good start. I believe this fixes at least the reduced test case from PR40529.
    
    Reviewers: RKSimon, spatel, rnk, efriedma, andrew.w.kaylor
    
    Subscribers: dim, llvm-commits
    
    Tags: #llvm
    
    Differential Revision: https://reviews.llvm.org/D57735
    ------------------------------------------------------------------------
    
    llvm-svn: 353818
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    018cd5f View commit details
    Browse the repository at this point in the history
  5. Merging r353142:

    ------------------------------------------------------------------------
    r353142 | ctopper | 2019-02-05 07:13:14 +0100 (Tue, 05 Feb 2019) | 13 lines
    
    [X86] Change MS inline asm clobber list filter to check for 'fpsr' instead of 'fpsw' after D57641.
    
    Summary: The backend used to print the x87 FPSW register as 'fpsw', but gcc inline asm uses 'fpsr'. After D57641, the backend now uses 'fpsr' to match.
    
    Reviewers: rnk
    
    Reviewed By: rnk
    
    Subscribers: eraman, cfe-commits, llvm-commits
    
    Tags: #clang
    
    Differential Revision: https://reviews.llvm.org/D57642
    ------------------------------------------------------------------------
    
    llvm-svn: 353819
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    e552366 View commit details
    Browse the repository at this point in the history
  6. Merging r353308 and r353383:

    ------------------------------------------------------------------------
    r353308 | tnorthover | 2019-02-06 16:26:35 +0100 (Wed, 06 Feb 2019) | 5 lines
    
    AArch64: enforce even/odd register pairs for CASP instructions.
    
    ARMv8.1a CASP instructions need the first of the pair to be an even register
    (otherwise the encoding is unallocated). We enforced this during assembly, but
    not CodeGen before.
    ------------------------------------------------------------------------
    
    ------------------------------------------------------------------------
    r353383 | tnorthover | 2019-02-07 11:35:34 +0100 (Thu, 07 Feb 2019) | 4 lines
    
    AArch64: implement copy for paired GPR registers.
    
    When doing 128-bit atomics using CASP we might need to copy a GPRPair to a
    different register, but that was unimplemented up to now.
    ------------------------------------------------------------------------
    
    llvm-svn: 353822
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    2ccd8c1 View commit details
    Browse the repository at this point in the history
  7. Merging r353411:

    ------------------------------------------------------------------------
    r353411 | erichkeane | 2019-02-07 16:14:11 +0100 (Thu, 07 Feb 2019) | 7 lines
    
    Fix r350643 to limit COFF emission to <= 32 BYTES instead of BITS.
    
    The patch in r350643 incorrectly sets the COFF emission based on bits
    instead of bytes. This patch converts the 32 via CharUnits to bits to
    compare the correct values.
    
    Change-Id: Icf38a16470ad5ae3531374969c033557ddb0d323
    ------------------------------------------------------------------------
    
    llvm-svn: 353825
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    df368fd View commit details
    Browse the repository at this point in the history
  8. Merging r353431:

    ------------------------------------------------------------------------
    r353431 | stulova | 2019-02-07 18:32:37 +0100 (Thu, 07 Feb 2019) | 9 lines
    
    [OpenCL][PR40603] In C++ preserve compatibility with OpenCL C v2.0
    
    Valid OpenCL C code should still compile in C++ mode.
    
    This change enables extensions and OpenCL types.
    
    Differential Revision: https://reviews.llvm.org/D57824
    
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353826
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    e57cf6c View commit details
    Browse the repository at this point in the history
  9. Merging r353480:

    ------------------------------------------------------------------------
    r353480 | petarj | 2019-02-07 23:57:33 +0100 (Thu, 07 Feb 2019) | 15 lines
    
    [mips][micromips] Fix how values in .gcc_except_table are calculated
    
    When a landing pad is calculated in a program that is compiled for micromips
    with -fPIC flag, it will point to an even address.
    Such an error will cause a segmentation fault, as the instructions in
    micromips are aligned on odd addresses. This patch sets the last bit of the
    offset where a landing pad is, to 1, which will effectively be an odd
    address and point to the instruction exactly.
    
    r344591 fixed this issue for -static compilation.
    
    Patch by Aleksandar Beserminji.
    
    Differential Revision: https://reviews.llvm.org/D57677
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353827
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    dfde9d6 View commit details
    Browse the repository at this point in the history
  10. Merging r353493:

    ------------------------------------------------------------------------
    r353493 | efriedma | 2019-02-08 02:17:49 +0100 (Fri, 08 Feb 2019) | 9 lines
    
    [COFF, ARM64] Fix types for _ReadStatusReg, _WriteStatusReg
    
    r344765 added those intrinsics, but used the wrong types.
    
    Patch by Mike Hommey
    
    Differential Revision: https://reviews.llvm.org/D57636
    
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353828
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    eb0faeb View commit details
    Browse the repository at this point in the history
  11. Merging r353402:

    ------------------------------------------------------------------------
    r353402 | mstorsjo | 2019-02-07 13:46:49 +0100 (Thu, 07 Feb 2019) | 7 lines
    
    [clang-cl] support /Oy- on aarch64
    
    MSVC supports /Oy- on aarch64, so clang-cl should too.
    
    Patch by Nathan Froyd!
    
    Differential Revision: https://reviews.llvm.org/D57838
    ------------------------------------------------------------------------
    
    llvm-svn: 353829
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    a576b44 View commit details
    Browse the repository at this point in the history
  12. Merging r351322:

    ------------------------------------------------------------------------
    r351322 | pfaffe | 2019-01-16 12:14:07 +0100 (Wed, 16 Jan 2019) | 9 lines
    
    [MSan] Apply the ctor creation scheme of TSan
    
    Summary: To avoid adding an extern function to the global ctors list, apply the changes of D56538 also to MSan.
    
    Reviewers: chandlerc, vitalybuka, fedor.sergeev, leonardchan
    
    Subscribers: hiraditya, bollu, llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D56734
    ------------------------------------------------------------------------
    
    llvm-svn: 353830
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    ae61627 View commit details
    Browse the repository at this point in the history
  13. Merging r353656:

    ------------------------------------------------------------------------
    r353656 | brad | 2019-02-11 03:53:16 +0100 (Mon, 11 Feb 2019) | 4 lines
    
    long double is double on OpenBSD/NetBSD/PPC.
    
    Patch by George Koehler.
    
    ------------------------------------------------------------------------
    
    llvm-svn: 353831
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    33e2530 View commit details
    Browse the repository at this point in the history
  14. [WebAssembly] Backport custom import name changes for lld to 8.0.

    Specifically, this backports r352645, r352828, and r353473 to the
    8.0 branch. The trunk patches don't apply cleanly to 8.0 due to
    some contemporaneous mass-rename and mass-clang-tidy patches, so
    this merges them to simplify rebasing.
    
    r352645 [WebAssembly] Fix crash with LTO + relocatable + undefined symbols
    r352828 [WebAssembly] Support imports from custom module names
    r353473 [WebAssembly] Fix imported function symbol names that differ from their import names in the .o format
    
    By Dan Gohman!
    
    llvm-svn: 353833
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    ef182d5 View commit details
    Browse the repository at this point in the history
  15. [WebAssembly] Backport custom import name changes for clang to 8.0.

    Specifically, this backports r352106, r352108, r352930, and r352936
    to the 8.0 branch. The trunk patches don't apply cleanly to 8.0 due to
    some contemporaneous mass-rename and mass-clang-tidy patches, so
    this merges them to simplify rebasing.
    
    r352106 [WebAssembly] Add an import_module function attribute
    r352108 [WebAssembly] Add WebAssemblyImportModule to pragma-attribute-supported-attributes-list.test
    r352930 [WebAssembly] Add an import_field function attribute
    r352936 [WebAssembly] Fix ImportName's position in this test.
    
    By Dan Gohman!
    
    llvm-svn: 353834
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    16b7c08 View commit details
    Browse the repository at this point in the history
  16. [WebAssembly] Backport custom import name changes for LLVM to 8.0.

    Specifically, this backports r352479, r352931, r353474, and r353476
    to the 8.0 branch. The trunk patches don't apply cleanly to 8.0 due to
    some contemporaneous mass-rename and mass-clang-tidy patches, so
    this merges them to simplify rebasing.
    
    r352479 [WebAssembly] Re-enable main-function signature rewriting
    r352931 [WebAssembly] Add codegen support for the import_field attribute
    r353474 [WebAssembly] Fix imported function symbol names that differ from their import names in the .o format
    r353476 [WebAssembly] Update test output after rL353474. NFC.
    
    By Dan Gohman!
    
    llvm-svn: 353835
    zmodem committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    33a2b52 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    2ebc272 View commit details
    Browse the repository at this point in the history