collapse
100%
WDescription%
Test Result: 0 tests failing out of a total of 55,574 tests.100
Build stability: No recent builds failed.100
Build History
x
 
 
 
 
 
 
 
 
 
 
 
 
 
 Identified problems
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Changes

rL:366842 - C:366831 - #58190 (Jul 23, 2019 1:05:56 PM)

  1. [Remarks][NFC] Move the YAML serializer to its own header — thegameg / ViewSVN
  2. [PowerPC] Remove redundant load immediate instructions

    Currently PowerPC backend emits code like this:

      r3 = li 0
      std r3, 264(r1)
      r3 = li 0
      std r3, 272(r1)

    This patch fixes that and other cases where a register already contains a value that is loaded so we will get:

      r3 = li 0
      std r3, 264(r1)
      std r3, 272(r1)

    Differential Revision: https://reviews.llvm.org/D64220 — yi-hong.lyu / ViewSVN
  3. gn build: Merge r366832 — nico / ViewSVN
  4. [X86] In lowerVectorShuffle, instead of creating a new node to canonicalize the shuffle mask by commuting, just commute the mask and swap V1/V2.

    LegalizeDAG tries to legal the DAG by legalizing nodes before
    their operands.

    If we create a new node, we end up legalizing it after its operands.
    This prevents some of the optimizations that can be done when the
    operand is a build_vector since the build_vector will have been
    legalized to something else.

    Differential Revision: https://reviews.llvm.org/D65132 — ctopper / ViewSVN

rL:366832 - C:366831 - #58189 (Jul 23, 2019 11:24:16 AM)

  1. [libFuzzer] Fix __sanitizer_print_memory_profile return type in ExtFunctions.def

    Summary:
    Looks like a typo, as that function actually returns void and is used
    as such in libFuzzer code as well.

    Reviewers: kcc, Dor1s

    Reviewed By: Dor1s

    Subscribers: delcypher, #sanitizers, llvm-commits

    Tags: #llvm, #sanitizers

    Differential Revision: https://reviews.llvm.org/D65160 — dor1s / ViewSVN
  2. [Remarks] Add unit tests for YAML serialization

    Add tests for both the string table and non string table case. — thegameg / ViewSVN
  3. clang-format: Fix namespace end comments for namespaces with attributes and macros.

    Fixes PR39247.

    While here, also make C++20 `namespace A::inline B::inline C` nested
    inline namespaced definitions work.

    Before:
        #define DEPRECATE_WOOF [[deprecated("meow")]]

        namespace DEPRECATE_WOOF woof {
        void f() {}
        } // namespace DEPRECATE_WOOFwoof

        namespace [[deprecated("meow")]] woof {
          void f() {}
        } // namespace [[deprecated("meow")]]woof

        namespace woof::inline bark {
          void f() {}
        } // namespace woof::inlinebark

    Now:
        #define DEPRECATE_WOOF [[deprecated("meow")]]

        namespace DEPRECATE_WOOF woof {
        void f() {}
        } // namespace woof

        namespace [[deprecated("meow")]] woof {
        void f() {}
        } // namespace woof

        namespace woof::inline bark {
        void f() {}
        } // namespace woof::inline bark

    (In addition to the fixed namespace end comments, also note the correct
    indent of the namespace contents.)

    Differential Revision: https://reviews.llvm.org/D65125 — nico / ViewSVN
  4. [IndVars] Fix a subtle bug in optimizeLoopExits

    The original code failed to account for the fact that one exit can have a pointer exit count without all of them having pointer exit counts.  This could cause two separate bugs:
    1) We might exit the loop early, and leave optimizations undone.  This is what triggered the assertion failure in the reported test case.
    2) We might optimize one exit, then exit without indicating a change.  This could result in an analysis invalidaton bug if no other transform is done by the rest of indvars.

    Note that the pointer exit counts are a really fragile concept.  They show up only when we have a pointer IV w/o a datalayout to provide their size.  It's really questionable to me whether the complexity implied is worth it. — reames / ViewSVN
  5. Improve clang-format-diff help output

    The description in clang-format-diff.py is more useful than the one
    in `clang-format-diff -h`, so use the same description in both places.

    Differential Revision: https://reviews.llvm.org/D64998 — nico / ViewSVN
  6. [IR][Verifier] Allow IntToPtrInst to be !dereferenceable

    Summary:
    Allow IntToPtrInst to carry !dereferenceable metadata tag.
    This is valid since !dereferenceable can be only be applied to
    pointer type values.

    Change-Id: If8a6e3c616f073d51eaff52ab74535c29ed497b4

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64954 — rtayl / ViewSVN
  7. [RISCV][NFC] Correct RUN in rvi-pseudos-invalid.s

    This test should test both riscv32 and riscv64. — lenary / ViewSVN

rL:366821 - C:366823 - #58188 (Jul 23, 2019 9:58:26 AM)

  1. [clang][NFCI] Fix random typos — Jan Korous / ViewSVN
  2. [compiler-rt][builtins] Provide __clear_cache for SPARC

    While working on https://reviews.llvm.org/D40900, two tests were failing since __clear_cache
    aborted.  While libgcc's __clear_cache is just empty, this only happens because
    gcc (in gcc/config/sparc/sparc.c (sparc32_initialize_trampoline, sparc64_initialize_trampoline))
    emits flush insns directly.

    The following patch mimics that.

    Tested on sparcv9-sun-solaris2.11.

    Differential Revision: https://reviews.llvm.org/D64496 — ro / ViewSVN
  3. [CMake] Add -z defs on Solaris

    Like other ELF targets, shared objects should be linked with -z defs on Solaris.

    Tested on x86_64-pc-solaris2.11 and sparcv9-sun-solaris2.11.

    Differential Revision: https://reviews.llvm.org/D64484 — ro / ViewSVN
  4. [clang, test] Fix Clang :: Headers/max_align.c on 64-bit SPARC

    Clang :: Headers/max_align.c currently FAILs on 64-bit SPARC:

      error: 'error' diagnostics seen but not expected:
        File /vol/llvm/src/clang/dist/test/Headers/max_align.c Line 12: static_assert failed due to requirement '8 == _Alignof(max_align_t)' ""
      1 error generated.

    This happens because SuitableAlign isn't defined for SPARCv9 unlike SPARCv8
    (which uses the default of 64 bits).  gcc's sparc/sparc.h has

      #define BIGGEST_ALIGNMENT (TARGET_ARCH64 ? 128 : 64)

    This patch sets SuitableAlign to match and updates the corresponding testcase.

    Tested on sparcv9-sun-solaris2.11.

    Differential Revision: https://reviews.llvm.org/D64487 — ro / ViewSVN
  5. [GlobalISel][AArch64] Teach GISel to handle shifts in load addressing modes

    When we select the XRO variants of loads, we can pull in very specific shifts
    (of the size of an element). E.g.

    ```
    ldr x1, [x2, x3, lsl #3]
    ```

    This teaches GISel to handle these when they're coming from shifts
    specifically.

    This adds a new addressing mode function, `selectAddrModeShiftedExtendXReg`
    which recognizes this pattern.

    This also packs this up with `selectAddrModeRegisterOffset` into
    `selectAddrModeXRO`. This is intended to be equivalent to `selectAddrModeXRO`
    in AArch64ISelDAGtoDAG.

    Also update load-addressing-modes to show that all of the cases here work.

    Differential Revision: https://reviews.llvm.org/D65119 — paquette / ViewSVN

rL:366817 - C:366818 - #58187 (Jul 23, 2019 8:51:31 AM)

  1. [ASTImporter] Fix inequivalence of ClassTemplateInstantiations

    Summary:
    We falsely state inequivalence if the template parameter is a
    qualified/nonquialified template in the first/second instantiation.
    Also, different kinds of TemplateName should be equal if the template
    decl (if available) is equal (even if the name kind is different).

    Reviewers: a_sidorin, a.sidorin

    Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64241 — martong / ViewSVN
  2. [TargetLowering] SimplifyMultipleUseDemandedBits - add VECTOR_SHUFFLE support.

    If all the demanded elts are from one operand and are inline, then we can use the operand directly.

    The changes are mainly from SSE41 targets which has blendvpd but not cmpgtq, allowing the v2i64 comparison to be simplified as we only need the signbit from alternate v4i32 elements. — rksimon / ViewSVN
  3. Revert "[Object/ELF.h] - Improve testing of the fields in ELFFile<ELFT>::sections()."

    This reverts commit r366796 because it was causing ubsan buildbot
    failures. — vlad.tsyrklevich / ViewSVN
  4. [llvm-ar] Fix support for archives with members larger than 4GB

    llvm-ar outputs a strange error message when handling archives with
    members larger than 4GB due to not checking file size when passing the
    value as an unsigned 32 bit integer. This overflow issue caused
    malformed archives to be created.:

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

    This change allows for members above 4GB and will error in a case that
    is over the formats size limit, a 10 digit decimal integer.

    Differential Revision: https://reviews.llvm.org/D65093 — gbreynoo / ViewSVN
  5. [clangd] Log version, cwd, args, and transport on startup. NFC

    Reviewers: hokein

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D65146 — sammccall / ViewSVN
  6. [ARM][LowOverheadLoops] Fix branch target codegen
       
    While lowering test.set.loop.iterations, it wasn't checked how the
    brcond was using the result and so the wls could branch to the loop
    preheader instead of not entering it. The same was true for
    loop.decrement.reg.
       
    So brcond and br_cc and now lowered manually when using the hwloop
    intrinsics. During this we now check whether the result has been
    negated and whether we're using SETEQ or SETNE and 0 or 1. We can
    then figure out which basic block the WLS and LE should be targeting.

    Differential Revision: https://reviews.llvm.org/D64616 — sam_parker / ViewSVN
  7. Fix MSVC warning about extending a uint32_t shift result to uint64_t. NFCI. — rksimon / ViewSVN
  8. [SLPVectorizer] Revert local change that got accidently got committed in rL366799

    This wasn't part of D63281 — rksimon / ViewSVN
  9. Revert [RISCV] Re-enable rv32i-aliases-invalid.s test

    This reverts r366797 (git commit 53f9fec8e8b58f5a904bbfb4a1d648cde65aa860) — lenary / ViewSVN

rL:366802 - C:366792 - #58186 (Jul 23, 2019 6:13:15 AM)

  1. [NFC][ASAN] Add brackets around not command

    Under certain execution conditions, the `not` command binds to the command the
    output is piped to rather than the command piping the output. In this case, that
    flips the return code of the FileCheck invocation, causing a failure when
    FileCheck succeeds. — lei / ViewSVN
  2. [NFC][InstCombine] Fixup commutative/negative tests with icmp preds in @llvm.umul.with.overflow tests — lebedevri / ViewSVN
  3. [InstSimplify][NFC] Tests for skipping 'div-by-0' checks before inverted @llvm.umul.with.overflow

    It would be already handled by the non-inverted case if we were hoisting
    the `not` in InstCombine, but we don't (granted, we don't sink it
    in this case either), so this is a separate case. — lebedevri / ViewSVN
  4. [NFC][PhaseOredering][SimplifyCFG] Add more runlines to umul.with.overflow tests

    This way it will be more obvious that the problem is both
    in cost threshold and in hardcoded benefit check,
    plus will show how the instsimplify cleans this all in the end. — lebedevri / ViewSVN
  5. [TargetLowering] Add SimplifyMultipleUseDemandedBits

    This patch introduces the DAG version of SimplifyMultipleUseDemandedBits, which attempts to peek through ops (mainly and/or/xor so far) that don't contribute to the demandedbits/elts of a node - which means we can do this even in cases where we have multiple uses of an op, which normally requires us to demanded all bits/elts. The intention is to remove a similar instruction - SelectionDAG::GetDemandedBits - once SimplifyMultipleUseDemandedBits has matured.

    The InstCombine version of SimplifyMultipleUseDemandedBits can constant fold which I haven't added here yet, and so far I've only wired this up to some basic binops (and/or/xor/add/sub/mul) to demonstrate its use.

    We do see a couple of regressions that need to be addressed:

        AMDGPU unsigned dot product codegen retains an AND mask (for ZERO_EXTEND) that it previously removed (but otherwise the dotproduct codegen is a lot better).

        X86/AVX2 has poor handling of vector ANY_EXTEND/ANY_EXTEND_VECTOR_INREG - it prematurely gets converted to ZERO_EXTEND_VECTOR_INREG.

    The code owners have confirmed its ok for these cases to fixed up in future patches.

    Differential Revision: https://reviews.llvm.org/D63281 — rksimon / ViewSVN
  6. [RISCV] Re-enable rv32i-aliases-invalid.s test

    We were getting test failures on some builders, which pointed to @LINE
    being an undefined variable. I think that these failures should have
    been fixed by https://reviews.llvm.org/rL366434, so I'm re-enabling the
    test. — lenary / ViewSVN
  7. [Object/ELF.h] - Improve testing of the fields in ELFFile<ELFT>::sections().

    This eliminates a one error untested and
    also introduces a error for one more possible case
    which lead to crash previously.

    Differential revision: https://reviews.llvm.org/D64987 — grimar / ViewSVN

rL:366794 - C:366792 - #58185 (Jul 23, 2019 4:10:19 AM)

  1. [yaml2obj] - Add a support for defining null sections in YAMLs.

    ELF spec shows (Figure 4-10: Section Header Table Entry:Index 0,
    http://www.sco.com/developers/gabi/latest/ch4.sheader.html)
    that section header at index 0 (null section) can have sh_size and
    sh_link fields set to non-zero values.

    It says (https://docs.oracle.com/cd/E19683-01/817-3677/6mj8mbtc9/index.html):

    "If the number of sections is greater than or equal to SHN_LORESERVE (0xff00),
    this member has the value zero and the actual number of section header table
    entries is contained in the sh_size field of the section header at index 0.
    Otherwise, the sh_size member of the initial entry contains 0."

    and:

    "If the section name string table section index is greater than or equal to SHN_LORESERVE
    (0xff00), this member has the value SHN_XINDEX (0xffff) and the actual index of the section
    name string table section is contained in the sh_link field of the section header at index 0.
    Otherwise, the sh_link member of the initial entry contains 0."

    At this moment it is not possible to create custom section headers at index 0 using yaml2obj.

    This patch implements this.

    Differential revision: https://reviews.llvm.org/D64913 — grimar / ViewSVN
  2. [SLPVectorizer] Remove null-pointer test. NFCI.

    cast<CallInst> shouldn't return null and we dereference the pointer in a lot of other places, causing both MSVC + cppcheck to warn about dereferenced null pointers — rksimon / ViewSVN
  3. PlistDiagnostics Fix for compile warning (NFC). — balazske / ViewSVN
  4. [ARM] Rename NEONModImm to VMOVModImm. NFC

    Rename NEONModImm to VMOVModImm as it is used in both NEON and MVE. — dmgreen / ViewSVN

rL:366789 - C:366782 - #58184 (Jul 23, 2019 1:42:12 AM)

  1. [Attributor][NFC] Re-run clang-format on the Attributor.cpp — uenoku / ViewSVN
  2. [Attributor] Deduce "dereferenceable" attribute

    Summary:
    Deduce dereferenceable attribute in Attributor.

    These will be added in a later patch.
    * dereferenceable(_or_null)_globally (D61652)
    * Deduction based on load instruction (similar to D64258)

    Reviewers: jdoerfert, sstefan1

    Reviewed By: jdoerfert

    Subscribers: hiraditya, jfb, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64876 — uenoku / ViewSVN
  3. [llvm-objcopy] Allow strip symtab in executables and DSOs

    Re-commit of the patch after addressing -Wl,--emit-relocs case.
    Differential revision: https://reviews.llvm.org/D61672 — evgeny777 / ViewSVN
  4. Fix gold-plugin Windows build

    r365588 missed one instance of integer file descriptor use in
    gold-plugin.cpp. — kongyi / ViewSVN
  5. [yaml2elf] - Treat the SHN_UNDEF section as kind of regular section.

    We have a logic that adds a few sections implicitly.
    Though the SHT_NULL section with section number 0
    is an exception.

    In D64913 I want to teach yaml2obj to redefine the null section.
    And in this patch I add it to the sections list,
    to make it kind of a regular section.

    Differential revision: https://reviews.llvm.org/D65087 — grimar / ViewSVN
  6. [CrossTU] Added CTU argument to diagnostic consumer create fn.

    Summary:
    The PListDiagnosticConsumer needs a new CTU parameter that is passed
    through the create functions.

    Reviewers: NoQ, Szelethus, xazax.hun, martong

    Reviewed By: Szelethus

    Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64635 — balazske / ViewSVN
  7. [AMDGPU][NFC] Simplify test file for amdgcn intrinsics

    Summary: Remove unchecked attribute in the call site and use FileCheck String Substitution for `convergent` check.

    Reviewers: nhaehnle

    Reviewed By: nhaehnle

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64901 — uenoku / ViewSVN

rL:366779 - C:366761 - #58183 (Jul 22, 2019 11:11:12 PM)

  1. [DAGCombiner] Make ShrinkLoadReplaceStoreWithStore return an SDValue instead of an SDNode*. NFCI

    The function was calling getNode() on an SDValue to return and the
    caller turned the result back into a SDValue. So just return the
    original SDValue to avoid this. — ctopper / ViewSVN
  2. [DAGCombiner] Use SDNode::isOperandOf to simplify some code. NFCI — ctopper / ViewSVN
  3. [LLVM-C] Improve Bindings to The Internalize Pass

    Summary: Adds a binding to the internalize pass that allows the caller to pass a function pointer that acts as the visibility-preservation predicate.  Previously, one could only pass an unsigned value (not LLVMBool?) that directed the pass to consider "main" or not.

    Reviewers: whitequark, deadalnix, harlanhaskins

    Reviewed By: whitequark, harlanhaskins

    Subscribers: kren1, hiraditya, llvm-commits, harlanhaskins

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62456 — codafi / ViewSVN

rL:366775 - C:366761 - #58182 (Jul 22, 2019 9:39:33 PM)

  1. Implement most of P1612R1: Relocate endian.  Moves the std::endian functionality from 'type-traits' to 'bit'. No other change. The reason that this is 'partial' is that P1621 also recommends a feature-test macro, but I don't have the value for that one yet. In a month or so, I'll add that — marshall / ViewSVN

rL:366775 - C:366761 - #58181 (Jul 22, 2019 8:37:25 PM)

  1. [PowerPC] Replace float load/store pair with integer load/store pair when it's only used in load/store

    Replace float load/store pair with integer load/store pair when it's only used in load/store,
    because float load/store instructions cost more cycles then integer load/store.

    A typical scenario is when there is a call with more than 13 float arguments passing, we need pass them by stack.
    So we need a load/store pair to do such memory operation if the variable is global variable.

    Differential Revision: https://reviews.llvm.org/D64195 — wuzish / ViewSVN
  2. Inline function call into assert to fix unused variable warning. — rtrieu / ViewSVN

rL:366773 - C:366761 - #58180 (Jul 22, 2019 8:03:11 PM)

  1. Move variable out from debug only section.

    MFI is no longer just needed for an assert.  Move it out of the debug only
    section to allow non-assert builds to be able to find it. — rtrieu / ViewSVN

rL:366772 - C:366761 - #58179 (Jul 22, 2019 5:47:54 PM)

  1. [llvm-lipo] Implement -info

    Prints architecture type of all input files.

    Patch by Anusha Basana <anusha.basana@gmail.com>

    Differential Revision: https://reviews.llvm.org/D64668 — smeenai / ViewSVN

rL:366769 - C:366761 - #58178 (Jul 22, 2019 5:07:27 PM)

  1. Fixing build error from commit 95cbc3d

    [Attributor] Liveness analysis.

    Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored.
    Right now we are only looking at noreturn calls.

    Reviewers: jdoerfert, uenoku

    Subscribers: hiraditya, llvm-commits

    Differential Revision: https://reviews.llvm.org/D64162 — sstefan / ViewSVN
  2. [Statepoints] Fix a bug in statepoint lowering for functions w/no-realign-stack

    We were silently using the ABI alignment for all of the stores generated for deopt and gc values.  We'd gotten the alignment of the stack slot itself properly reduced (via MachineFrameInfo's clamping), but having the MMO on the store incorrect was enough for us to generate an aligned store to a unaligned location.

    The simplest fix would have been to just pass the alignment to the helper function, but once we do that, the helper function doesn't really help.  So, inline it and directly call the MMO version of DAG.getStore with a properly constructed MMO.

    Note that there's a separate performance possibility here.  Even if we *can* realign stacks, we probably don't *want to* if all of the stores are in slowpaths.  But that's a later patch, if at all.  :) — reames / ViewSVN
  3. Fix pointer width in test from r366754. — pcc / ViewSVN
  4. gn build: Wrap two comments to 80 columns — nico / ViewSVN
  5. [DWARF] Add more error handling to debug line parser.

    This patch exnteds the error handling in the debug line parser to get
    rid of the existing MD5 assertion. I want to reuse the debug line parser
    from LLVM in LLDB where we cannot crash on invalid input.

    Differential revision: https://reviews.llvm.org/D64544 — Jonas Devlieghere / ViewSVN
  6. [NFC][clang] Refactor getCompilationPhases()+Types.def step 1.

    Moves list of phases into Types.def table: Currently Types.def contains a
    table of strings that are used to assemble a list of compilation phases to be
    setup in the clang driver's jobs pipeline. This change makes it so that the table
    itself contains the list of phases. A subsequent patch will remove the strings.

    Differential Revision: https://reviews.llvm.org/D64098 — zer0 / ViewSVN
  7. [Statepoints] Add a test which shows a miscompile with no-realign-stacks — reames / ViewSVN
  8. Revert "Fixing build error from commit 9285295."

    This reverts commit 95cbc3da8871f43c1ce2b2926afaedcd826202b1. — sstefan / ViewSVN

rL:366755 - C:366744 - #58177 (Jul 22, 2019 3:53:34 PM)

  1. llvm-objcopy/test: add REQUIRES: shell for use of umask

    (follow-up to r365162) — dblaikie / ViewSVN
  2. Analysis: Don't look through aliases when simplifying GEPs.

    It is not safe in general to replace an alias in a GEP with its aliasee
    if the alias can be replaced with another definition (i.e. via strong/weak
    resolution (linkonce_odr) or via symbol interposition (default visibility
    in ELF)) while the aliasee cannot. An example of how this can go wrong is
    in the included test case.

    I was concerned that this might be a load-bearing misoptimization (it's
    possible for us to use aliases to share vtables between base and derived
    classes, and on Windows, vtable symbols will always be aliases in RTTI
    mode, so this change could theoretically inhibit trivial devirtualization
    in some cases), so I built Chromium for Linux and Windows with and without
    this change. The file sizes of the resulting binaries were identical, so it
    doesn't look like this is going to be a problem.

    Differential Revision: https://reviews.llvm.org/D65118 — pcc / ViewSVN
  3. Fixing build error from commit 9285295.

    [Attributor] Liveness analysis.

    Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored.
    Right now we are only looking at noreturn calls.

    Reviewers: jdoerfert, uenoku

    Subscribers: hiraditya, llvm-commits

    Differential revision: https://reviews.llvm.org/D64162 — sstefan / ViewSVN
  4. [NFC][PatternMatch] Refactor code into a proper "matcher for any integral constant"

    Having it as a proper matcher is better for reusability elsewhere
    (in a follow-up patch.) — lebedevri / ViewSVN
  5. [InstSimplify][NFC] Tests for skipping 'div-by-0' checks before @llvm.umul.with.overflow

    These may remain after @llvm.umul.with.overflow was canonicalized
    from the code that was originally doing the check via division. — lebedevri / ViewSVN
  6. [SimplifyCFG][NFC] Test that we fail to flatten CFG in JPEG "sign" value extend pattern

    This comes up in JPEG decoding, see e.g.
    Figure F.12 – Extending the sign bit of a decoded value in V
    of ITU T.81 (JPEG specification). — lebedevri / ViewSVN
  7. [SimplifyCFG][NFC] Test that we fail to flatten CFG after forming @llvm.umul.with.overflow

    Even if we formed @llvm.umul.with.overflow, we are still stuck
    with that guard against div-by-zero, which is no longer needed,
    because we didn't flatten the CFG. — lebedevri / ViewSVN
  8. [InstCombine][NFC] Tests for canonicalization of unsigned multiply overflow check — lebedevri / ViewSVN
  9. [NFC][PhaseOrdering] Add tests showcasing the problems of unsigned multiply overflow check

    While we can form the @llvm.mul.with.overflow easily,
    we are still left with that check that was guarding against div-by-0.
    And in the second case we won't even flatten the CFG. — lebedevri / ViewSVN
  10. [IndVarSimplify][NFC] Autogenerate check lines in loop_evaluate_1.ll

    Being affected by upcoming patch. — lebedevri / ViewSVN

rL:366743 - C:366744 - #58176 (Jul 22, 2019 3:01:03 PM)

  1. [Driver] Set the default win32-macho debug format to DWARF

    rdar://53267670

    Differential Revision: https://reviews.llvm.org/D65116 — Vedant Kumar / ViewSVN
  2. AMDGPU: Don't use SDNodeXForm for DS offset output

    The xform has no real valuewhen it's using out of a complex pattern
    output. The complex pattern was already creating TargetConstants with
    i16, so this was just unnecessary machinery.

    This allows global isel to import the simple cases once the complex
    pattern is implemented. — arsenm / ViewSVN
  3. [monorepo_build] Also write GIT_DISTANCE to the last_good_build.properties file — Azharuddin Mohammed / ViewSVN
  4. [TSan] Enable fiber tests on iOS simulator

    These tests *do not* work on device, but they *do* work in the
    simulator.

    rdar://53403778 — yln / ViewSVN
  5. Temporarily Revert "[Attributor] Liveness analysis." as it's breaking the build.

    This reverts commit 9285295f75a231dc446fa7cbc10a0a391b3434a5. — echristo / ViewSVN
  6. [Attributor] Liveness analysis.

    Liveness analysis abstract attribute used to indicate which BasicBlocks are dead and can therefore be ignored.
    Right now we are only looking at noreturn calls.

    Reviewers: jdoerfert, uenoku

    Subscribers: hiraditya, llvm-commits

    Differential revision: https://reviews.llvm.org/D64162 — sstefan / ViewSVN

rL:366732 - C:366719 - #58175 (Jul 22, 2019 1:33:04 PM)

  1. [NFC][libc++] Add missing EXPLICIT to pair and tuple synopsis

    The constructors for std::pair and std::tuple have been made conditionally
    explicit, however the synopsis in the headers do not reflect that. — Louis Dionne / ViewSVN
  2. [runtimes] Don't depend on libpthread on Android

    r362048 added support for ELF dependent libraries, but broke Android
    build since Android does not have libpthread. Remove the dependency on
    the Android build.

    Differential Revision: https://reviews.llvm.org/D65098 — kongyi / ViewSVN
  3. [X86] When using AND+PACKUS in lowerV16I8Shuffle, generate the build vector directly in v16i8 with the correct 0x00 or 0xFF elements rather than using another VT and bitcasting it.

    The build_vector will become a constant pool load. By using the
    desired type initially, it ensures we don't generate a bitcast
    of the constant pool load which will need to be folded with
    the load.

    While experimenting with another patch, I noticed that when the
    load type and the constant pool type don't match, then
    SimplifyDemandedBits can't handle it. While we should probably
    fix that, this was a simple way to fix the issue I saw. — ctopper / ViewSVN
  4. [NFC][PowerPC]Change ADDIStocHA to ADDIStocHA8 to follow 64-bit naming convention

    Summary:

    Since we are planning to add ADDIStocHA for 32bit in later patch, we decided
    to change 64bit one first to follow naming convention with 8 behind opcode.

    Patch by: Xiangling_L

    Differential Revision: https://reviews.llvm.org/D64814 — jasonliu / ViewSVN
  5. [libc++] Set __file_ to 0 in basic_filebuf::close() even if fclose fails

    This issue was detected by ASan in one of our tests. This test manually
    invokes basic_filebuf::cloe(). fclose(__h.release() returned a non-zero
    exit status, so __file_ wasn't set to 0. Later when basic_filebuf
    destructor ran, we would enter the if (__file_) block again leading to
    heap-use-after-free error.

    The POSIX specification for fclose says that independently of the return
    value, fclose closes the underlying file descriptor and any further
    access (including another call to fclose()) to the stream results in
    undefined behavior. This is exactly what happened in our test case.

    To avoid this issue, we have to always set __file_ to 0 independently of
    the fclose return value.

    Differential Revision: https://reviews.llvm.org/D64979 — phosek / ViewSVN
  6. [Attributor] NoAlias on return values.

    Porting function return value attribute noalias to attributor.
    This will be followed with a patch for callsite and function argumets.

    Reviewers: jdoerfert

    Subscribers: lebedev.ri, hiraditya, llvm-commits

    Differential Revision: https://reviews.llvm.org/D63067 — sstefan / ViewSVN
  7. Stubs out TLOF for AIX and add support for common vars in assembly output.

    Stubs out a TargetLoweringObjectFileXCOFF class, implementing only
    SelectSectionForGlobal for common symbols. Also adds an override of
    EmitGlobalVariable in PPCAIXAsmPrinter which adds a number of defensive errors
    and adds support for emitting common globals. — sfertile / ViewSVN

rL:366726 - C:366719 - #58174 (Jul 22, 2019 12:08:22 PM)

  1. [SafeStack] Insert the deref after the offset

    While debugging code that uses SafeStack, we've noticed that LLVM
    produces an invalid DWARF. Concretely, in the following example:

      int main(int argc, char* argv[]) {
        std::string value = "";
        printf("%s\n", value.c_str());
        return 0;
      }

    DWARF would describe the value variable as being located at:

      DW_OP_breg14 R14+0, DW_OP_deref, DW_OP_constu 0x20, DW_OP_minus

    The assembly to get this variable is:

      leaq    -32(%r14), %rbx

    The order of operations in the DWARF symbols is incorrect in this case.
    Specifically, the deref is incorrect; this appears to be incorrectly
    re-inserted in repalceOneDbgValueForAlloca.

    With this change which inserts the deref after the offset instead of
    before it, LLVM produces correct DWARF:

      DW_OP_breg14 R14-32

    Differential Revision: https://reviews.llvm.org/D64971 — phosek / ViewSVN
  2. WholeProgramDevirt: Teach the pass to respect the global's alignment.

    The bytes inserted before an overaligned global need to be padded according
    to the alignment set on the original global in order for the initializer
    to meet the global's alignment requirements. The previous implementation
    that padded to the pointer width happened to be correct for vtables on most
    platforms but may do the wrong thing if the vtable has a larger alignment.

    This issue is visible with a prototype implementation of HWASAN for globals,
    which will overalign all globals including vtables to 16 bytes.

    There is also no padding requirement for the bytes inserted after the global
    because they are never read from nor are they significant for alignment
    purposes, so stop inserting padding there.

    Differential Revision: https://reviews.llvm.org/D65031 — pcc / ViewSVN
  3. [PowerPC] Fix comment on MO_PLT Target Operand Flag. [NFC]

    Patch by Xiangling Liao. — sfertile / ViewSVN
  4. [Object][XCOFF] Remove extra includes from XCOFF related files. [NFC]

    Differential Revision: https://reviews.llvm.org/D60885 — sfertile / ViewSVN
  5. LowerTypeTests: Teach the pass to respect global alignments.

    We were previously ignoring alignment entirely when combining globals
    together in this pass. There are two main things that we need to do here:
    add additional padding before each global to meet the alignment requirements,
    and set the combined global's alignment to the maximum of all of the original
    globals' alignments.

    Since we now need to calculate layout as we go anyway, use the calculated
    layout to produce GlobalLayout instead of using StructLayout.

    Differential Revision: https://reviews.llvm.org/D65033 — pcc / ViewSVN
  6. Changes to emit CodeView debug info nested type records properly using MCStreamer directives — nilanjana_basu / ViewSVN
  7. Adds support for formatting NS_CLOSED_ENUM and CF_CLOSED_ENUM alongside NS_ENUM and CF_ENUM.

    Summary:
    Addresses the formatting of NS_CLOSED_ENUM and CF_CLOSED_ENUM, introduced in Swift 5.

    Before:

    ```
    typedef NS_CLOSED_ENUM(NSInteger, Foo){FooValueOne = 1, FooValueTwo,
                                           FooValueThree};
    ```

    After:

    ```
    typedef NS_CLOSED_ENUM(NSInteger, Foo) {
      FooValueOne = 1,
      FooValueTwo,
      FooValueThree
    };
    ```

    Contributed by heijink.

    Reviewers: benhamilton, krasimir

    Reviewed By: benhamilton

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D65012 — benhamilton / ViewSVN
  8. [AMDGPU] Test update. NFC. — rampitec / ViewSVN
  9. [SLPVectorizer] Fix some MSVC/cppcheck uninitialized variable warnings. NFCI. — rksimon / ViewSVN
  10. Revert "Reland [ELF] Loose a condition for relocation with a symbol"

    This reverts commit r366686 as it appears to be causing buildbot
    failures on sanitizer-x86_64-linux-android and sanitizer-x86_64-linux. — vlad.tsyrklevich / ViewSVN

rL:366695 - C:366702 - #58173 (Jul 22, 2019 10:26:28 AM)

  1. [OPENMP][MSVC]Enable /openmp[:experimental] to compile OpenMP.

    Mapped /openmp[:experimental] to -fopenmp option and /openmp- option to
    -fno-openmp — abataev / ViewSVN
  2. [libc++] Do not infer support for C++17 in GCC < 7

    libc++'s lit configuration infers the C++ language dialect when it is
    not provided by checking which -std= flags that a compiler supports.
    GCC 5 and GCC 6 have a -std=c++17 flag, however, they do not have full
    C++17 support. The lit configuration has hardcoded logic that removes
    -std=c++1z as an option to test for GCC < 7, but not -std=c++17.

    This leads to a bunch of failures when running libc++ tests with GCC 5
    or GCC 6. This patch adds -std=c++17 to the list of flags that are
    discarded for GCC < 7 by lit's language dialect inference.

    Thanks to Bryce Adelstein Lelbach for the patch.

    Differential Revision: https://reviews.llvm.org/D62874 — Louis Dionne / ViewSVN
  3. [X86] Remove const from some intrinsics that shouldn't have them — probinson / ViewSVN
  4. [clangd] Add dlog()s for SelectionTree, enabling -debug-only=SelectionTree.cpp

    Summary:
    SelectionTree is a RecursiveASTVisitor which processes getSourceRange() for
    every node. This is a lot of surface area with the AST, as getSourceRange()
    is specialized for *many* node types.
    And the resulting SelectionTree depends on the source ranges of many
    visited nodes, and the order of traversal.

    Put together, this means we really need a traversal log to debug when we
    get an unexpected SelectionTree. I've built this ad-hoc a few times, now
    it's time to check it in.

    Example output:
    ```
    D[14:07:44.184] Computing selection for </usr/local/google/home/sammccall/test.cc:1:7, col:8>
    D[14:07:44.184]  push: VarDecl const auto x = 42
    D[14:07:44.184]   claimRange: </usr/local/google/home/sammccall/test.cc:1:12, col:13>
    D[14:07:44.184]   push: NestedNameSpecifierLoc (empty NestedNameSpecifierLoc)
    D[14:07:44.184]   pop: NestedNameSpecifierLoc (empty NestedNameSpecifierLoc)
    D[14:07:44.184]   push: QualifiedTypeLoc const auto
    D[14:07:44.184]   pop: QualifiedTypeLoc const auto
    D[14:07:44.184]    claimRange: </usr/local/google/home/sammccall/test.cc:1:7, col:11>
    D[14:07:44.184]    hit selection: </usr/local/google/home/sammccall/test.cc:1:7, col:8>
    D[14:07:44.184]   skip: IntegerLiteral 42
    D[14:07:44.184]    skipped range = </usr/local/google/home/sammccall/test.cc:1:16>
    D[14:07:44.184]  pop: VarDecl const auto x = 42
    D[14:07:44.184]   claimRange: </usr/local/google/home/sammccall/test.cc:1:1, col:18>
    D[14:07:44.184]  skip: VarDecl int y = 43
    D[14:07:44.184]   skipped range = </usr/local/google/home/sammccall/test.cc:2:1, col:9>
    D[14:07:44.184] Built selection tree
    TranslationUnitDecl
      VarDecl const auto x = 42
         .QualifiedTypeLoc const auto

    ```

    Reviewers: hokein

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D65073 — sammccall / ViewSVN

rL:366695 - C:366694 - #58172 (Jul 22, 2019 8:21:59 AM)

  1. Update c++2a status page with post-Cologne information — marshall / ViewSVN
  2. TableGen: Support physical register inputs > 255

    This was truncating register value that didn't fit in unsigned char.
    Switch AMDGPU sendmsg intrinsics to using a tablegen pattern. — arsenm / ViewSVN
  3. [NFC] Relaxed regression tests for PR42665

    Following up on the buildbot failures, this commits relaxes some tests:
    instead of checking for specific IR output, it now ensures that the
    underlying issue (the crash), and only that, doesn't happen. — mantognini / ViewSVN
  4. [ARM][LowOverheadLoops] Revert remaining pseudos

    ARMLowOverheadLoops would assert a failure if it did not find all the
    pseudo instructions that comprise the hardware loop. Instead of doing
    this, iterate through all the instructions of the function and revert
    any remaining pseudo instructions that haven't been converted.

    Differential Revision: https://reviews.llvm.org/D65080 — sam_parker / ViewSVN

rL:366688 - C:366689 - #58171 (Jul 22, 2019 6:58:52 AM)

  1. [OPENMP]Add support for analysis of firstprivate variables.

    Summary:
    Firstprivate variables are the variables, for which the private copies
    must be created in the OpenMP regions and must be initialized with the
    original values. Thus, we must report if the uninitialized variable is
    used as firstprivate.

    Reviewers: NoQ

    Subscribers: guansong, jdoerfert, caomhin, kkwli0, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64765 — abataev / ViewSVN
  2. AMDGPU/GlobalISel: Fix broken tests — arsenm / ViewSVN
  3. Update documentation for all CERT checks that correspond to a recommendation.

    CERT removed their C++ secure coding recommendations from public view and so the links within that documentation are stale. This updates various pieces of documentation to make this more clear, and to help add substance where our docs deferred to CERT's wiki. — aaronballman / ViewSVN

rL:366686 - C:366683 - #58170 (Jul 22, 2019 6:22:13 AM)

  1. Reland [ELF] Loose a condition for relocation with a symbol

    This patch was not the reason of the buildbot failure.

    Deleted code was introduced as a work around for a bug in the gold linker
    (http://sourceware.org/PR16794). Test case that was given as a reason for
    this part of code, the one on previous link, now works for the gold.
    This condition is too strict and when a code is compiled with debug info
    it forces generation of numerous relocations with symbol for architectures
    that do not have relocation addend.

    Reviewers: arsenm, espindola

    Reviewed By: MaskRay

    Differential Revision: https://reviews.llvm.org/D64327 — nikolaprica / ViewSVN
  2. AMDGPU/GlobalISel: Remove unnecessary code

    The minnum/maxnum case are dead, and the cvt is handled by the
    default. — arsenm / ViewSVN
  3. [ARM] Fix for MVE VPT block pass

    We need to ensure that the number of T's is correct when adding multiple
    instructions into the same VPT block.

    Differential revision: https://reviews.llvm.org/D65049 — dmgreen / ViewSVN
  4. Updated the signature for some stack related intrinsics (CLANG)

    Modified the intrinsics
    int_addressofreturnaddress,
    int_frameaddress & int_sponentry.
    This commit depends on the changes in rL366679

    Reviewed By: arsenm

    Differential Revision: https://reviews.llvm.org/D64563 — cdevadas / ViewSVN
  5. Revert the change to the [[nodiscard]] feature test macro value.

    This value only gets bumped once both P1301 and P1771 are implemented. — aaronballman / ViewSVN
  6. [X86] EltsFromConsecutiveLoads - support common source loads (REAPPLIED)

    This patch enables us to find the source loads for each element, splitting them into a Load and ByteOffset, and attempts to recognise consecutive loads that are in fact from the same source load.

    A helper function, findEltLoadSrc, recurses to find a LoadSDNode and determines the element's byte offset within it. When attempting to match consecutive loads, byte offsetted loads then attempt to matched against a previous load that has already been confirmed to be a consecutive match.

    Next step towards PR16739 - after this we just need to account for shuffling/repeated elements to create a vector load + shuffle.

    Fixed out of bounds load assert identified in rL366501

    Differential Revision: https://reviews.llvm.org/D64551 — rksimon / ViewSVN
  7. AMDGPU/GlobalISel: Fix tests without asserts

    The legality check is only done under NDEBUG, so the failure cases are
    different in a release build. — arsenm / ViewSVN
  8. Added address-space mangling for stack related intrinsics

    Modified the following 3 intrinsics:
    int_addressofreturnaddress,
    int_frameaddress & int_sponentry.

    Reviewed By: arsenm

    Differential Revision: https://reviews.llvm.org/D64561 — cdevadas / ViewSVN

rL:366678 - C:366672 - #58169 (Jul 22, 2019 5:44:24 AM)

  1. [X86][SSE] Add EltsFromConsecutiveLoads test case identified in rL366501

    Test case that led to rL366441 being reverted at rL366501 — rksimon / ViewSVN
  2. [yaml2obj] - Change how we handle implicit sections.

    Instead of having the special list of implicit sections,
    that are mixed with the sections read from YAML on late
    stages, I just create the placeholders and add them to
    the main sections list early.

    That allows to significantly simplify the code.

    Differential revision: https://reviews.llvm.org/D64999 — grimar / ViewSVN

rL:366671 - C:366672 - #58168 (Jul 22, 2019 4:37:27 AM)

  1. [clangd] Set buffer name for main file. NFCI — sammccall / ViewSVN

rL:366671 - C:366672 - #58167 (Jul 22, 2019 3:10:42 AM)

  1. [clangd] Log input code of failed highlighting tests. NFC — ibiryukov / ViewSVN
  2. [AST] Treat semantic form of InitListExpr as implicit code in traversals

    Summary:
    In particular, do not traverse the semantic form if shouldVisitImplicitCode()
    returns false.

    This simplifies the common case of traversals, avoiding the need to
    worry about some expressions being traversed twice.

    No tests break after the change, the change would allow to simplify at
    least one of the usages, i.e. r366070 which had to handle this in
    clangd.

    Reviewers: gribozavr

    Reviewed By: gribozavr

    Subscribers: kadircet, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64762 — ibiryukov / ViewSVN
  3. Add location of SVN staging dir to git-llvm error output

    Summary:
    In pre-monorepo times the svn staging directory was `.git/svn`. The below error message wasn't mentioning the new name yet.

    Example before:
    ```
    Can't push git rev 104cfa289d9 because svn status is not empty:
    !     llvm/trunk/include/llvm
    ```

    Example after:
    ```
    Can't push git rev 104cfa289d9 because status in svn staging dir (.git/llvm-upstream-svn) is not empty:
    !     llvm/trunk/include/llvm
    ```

    Reviewers: mehdi_amini, jlebar, teemperor

    Reviewed By: mehdi_amini

    Subscribers: llvm-commits, #llvm

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D65038 — stefan.graenitz / ViewSVN
  4. [OpenCL] Improve destructor support in C++ for OpenCL

    This re-applies r366422 with a fix for Bug PR42665 and a new regression
    test. — mantognini / ViewSVN
  5. [IPRA][ARM] Make use of the "returned" parameter attribute

    ARM has code to recognise uses of the "returned" function parameter
    attribute which guarantee that the value passed to the function in r0
    will be returned in r0 unmodified. IPRA replaces the regmask on call
    instructions, so needs to be told about this to avoid reverting the
    optimisation.

    Differential revision: https://reviews.llvm.org/D64986 — ostannard / ViewSVN

rL:366668 - C:366663 - #58166 (Jul 22, 2019 1:56:05 AM)

  1. [llvm-readobj] - Stop using precompiled objects in file-headers.test

    This converts all sub-tests except one to YAML instead of precompiled inputs.

    Differential revision: https://reviews.llvm.org/D64800 — grimar / ViewSVN

rL:366667 - C:366663 - #58165 (Jul 22, 2019 12:41:43 AM)

  1. [AMDGPU] Save some work when an atomic op has no uses

    Summary:
    In the atomic optimizer, save doing a bunch of work and generating a
    bunch of dead IR in the fairly common case where the result of an
    atomic op (i.e. the value that was in memory before the atomic op was
    performed) is not used. NFC.

    Reviewers: arsenm, dstuttard, tpr

    Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, t-tye, hiraditya, jfb, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64981 — foad / ViewSVN

rL:366666 - C:366663 - #58164 (Jul 21, 2019 11:43:54 PM)

  1. [PowerPC][NFC] Precommit a test case where ppc-mi-peepholes miscompiles extswsli

    Added a test case to show codegen differences. — lkail / ViewSVN

rL:366665 - C:366663 - #58163 (Jul 21, 2019 10:28:52 PM)

  1. [Loop Peeling] Fix the handling of branch weights of peeled off branches.

    Current algorithm to update branch weights of latch block and its copies is
    based on the assumption that number of peeling iterations is approximately equal
    to trip count.

    However it is not correct. According to profitability check in one case we can decide to peel
    in case it helps to reduce the number of phi nodes. In this case the number of peeled iteration
    can be less then estimated trip count.

    This patch introduces another way to set the branch weights to peeled of branches.
    Let F is a weight of the edge from latch to header.
    Let E is a weight of the edge from latch to exit.
    F/(F+E) is a probability to go to loop and E/(F+E) is a probability to go to exit.
    Then, Estimated TripCount = F / E.
    For I-th (counting from 0) peeled off iteration we set the the weights for
    the peeled latch as (TC - I, 1). It gives us reasonable distribution,
    The probability to go to exit 1/(TC-I) increases. At the same time
    the estimated trip count of remaining loop reduces by I.

    As a result after peeling off N iteration the weights will be
    (F - N * E, E) and trip count of loop becomes
    F / E - N or TC - N.

    The idea is taken from the review of the patch D63918 proposed by Philip.

    Reviewers: reames, mkuper, iajbar, fhahn
    Reviewed By: reames
    Subscribers: hiraditya, zzheng, llvm-commits
    Differential Revision: https://reviews.llvm.org/D64235 — skatkov / ViewSVN
  2. [utils] Clean up UpdateTestChecks/common.py — maskray / ViewSVN
  3. [analyzer] Fix -Wunused-function in NDEBUG builds with #ifdef LLVM_DUMP_METHOD — maskray / ViewSVN

rL:366662 - C:366645 - #58162 (Jul 21, 2019 8:22:16 PM)

  1. [InstCombine] Add foldAndOfICmps test cases inspired by PR42691.

    icmp ne %x, INT_MIN can be treated similarly to icmp sgt %x, INT_MIN.
    icmp ne %x, INT_MAX can be treated similarly to icmp slt %x, INT_MAX.
    icmp ne %x, UINT_MAX can be treated similarly to icmp ult %x, UINT_MAX.

    We already treat icmp ne %x, 0 similarly to icmp ugt %x, 0 — ctopper / ViewSVN

rL:366661 - C:366645 - #58161 (Jul 21, 2019 4:25:57 PM)

  1. [PowerPC][NFC] Precomit test case for upcoming patch

    Just committing a test case for an upcoming patch so that the review can show
    only the codegen differences. — nemanjai / ViewSVN

rL:366660 - C:366645 - #58160 (Jul 21, 2019 1:39:08 PM)

  1. [X86] SimplifyDemandedVectorEltsForTargetNode - Move SUBV_BROADCAST narrowing handling. NFCI.

    Move the narrowing of SUBV_BROADCAST to where we handle all the other opcodes. — rksimon / ViewSVN
  2. [PowerPC][NFC] Regenerate test using script

    This test case ended up as a hybrid of generated checks and manually inserted
    checks. Regenerate using script to make it consistent. — nemanjai / ViewSVN

rL:366658 - C:366645 - #58159 (Jul 21, 2019 11:25:42 AM)

  1. [InstCombine] Update comment I missed in r366649. NFC — ctopper / ViewSVN
  2. [SmallBitVector] Fix bug in find_next_unset for small types with indices >=32

    We were creating a bitmask from a shift of unsigned instead of uintptr_t, meaning we couldn't create masks for indices above 31.

    Noticed due to a MSVC analyzer warning. — rksimon / ViewSVN

rL:366656 - C:366645 - #58158 (Jul 21, 2019 8:45:06 AM)

  1. [GISel]: Attach missing range metadata while translating G_LOADs

    https://reviews.llvm.org/D65048

    Attach range information to G_LOAD when only defining one register.

    reviewed by: arsenm — aditya_nandakumar / ViewSVN
  2. [ARM] Move MVE VPT block tests into the Thumb2 directory. NFC — dmgreen / ViewSVN

rL:366652 - C:366645 - #58157 (Jul 21, 2019 5:06:24 AM)

  1. Use https as vcs_protocol for the systemz builder

    This works around firewall issues we were seeing with http. — uweigand / ViewSVN

rL:366652 - C:366645 - #58156 (Jul 21, 2019 2:47:50 AM)

  1. [NFC][InstCombine] Add a few extra srem-by-power-of-two tests - extra uses — lebedevri / ViewSVN

rL:366649 - C:366645 - #58155 (Jul 21, 2019 1:33:01 AM)

  1. Slave 'lldb-x86_64-fedora': Switch to normal non-debuginfo builds again

    The racy vscode testcases have been dropped from both main and lldb-mi
    repositories anyway so there is nothing left to debug:
    [lldb-dev] [RFC] Removing lldb-mi
    https://lists.llvm.org/pipermail/lldb-dev/2019-July/015209.html — jankratochvil / ViewSVN

rL:366649 - C:366645 - #58154 (Jul 20, 2019 11:47:59 PM)

  1. [InstCombine] Remove insertRangeTest code that handles the equality case.

    For equality, the function called getTrue/getFalse with the VT
    of the comparison input. But getTrue/getFalse need the boolean VT.
    So if this code ever executed, it would assert.

    I believe these cases are removed by InstSimplify so we don't get here.

    So this patch just fixes up an assert to exclude the equality
    possibility and removes the broken code. — ctopper / ViewSVN

rL:366648 - C:366645 - #58153 (Jul 20, 2019 10:33:00 PM)

  1. [InstCombine] Don't use AddOne/SubOne to see if two APInts are 1 apart. Use APInt operations instead. NFCI

    AddOne/SubOne create new Constant objects. That seems heavy for
    comparing ConstantInts which wrap APInts. Just do the math on
    on the APInts and compare them. — ctopper / ViewSVN

rL:366646 - C:366645 - #58152 (Jul 20, 2019 5:40:32 PM)

  1. gn build: Merge r366622 — nico / ViewSVN

rL:366643 - C:366645 - #58151 (Jul 20, 2019 4:39:10 PM)

  1. [Clang] Replace cc1 options '-mdisable-fp-elim' and '-momit-leaf-frame-pointer'
    with '-mframe-pointer'

    After D56351 and D64294, frame pointer handling is migrated to tri-state
    (all, non-leaf, none) in clang driver and on the function attribute.
    This patch makes the frame pointer handling cc1 option tri-state.

    Reviewers: chandlerc, rnk, t.p.northover, MaskRay

    Reviewed By: MaskRay

    Differential Revision: https://reviews.llvm.org/D56353 — yuanfang / ViewSVN

rL:366643 - C:366635 - #58150 (Jul 20, 2019 2:43:32 PM)

  1. [NFC][InstCombine] Autogenerate a few tests — lebedevri / ViewSVN
  2. [NFC][InstCombine] Add srem-by-signbit tests - still can fold to bittest

    https://rise4fun.com/Alive/IIeS — lebedevri / ViewSVN
  3. Slave 'lldb-x86_64-fedora': Reduce build resource requirements — jankratochvil / ViewSVN

rL:366640 - C:366635 - #58149 (Jul 20, 2019 12:57:17 PM)

  1. [NFC][Codegen][X86][AArch64] Add "(x s% C) == 0" tests

    Much like with `urem`, the same optimization (albeit with slightly
    different algorithm) applies for the signed case, too.

    I'm simply copying the test coverage from `urem` case for now,
    i believe it should be (close to?) sufficient. — lebedevri / ViewSVN

rL:366637 - C:366635 - #58148 (Jul 20, 2019 11:31:27 AM)

  1. Fix asan infinite loop on undefined symbol

    Fix llvm#39641

    Recommit of r366413

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

    llvm-svn: 366632 — serge_sans_paille / ViewSVN

rL:366637 - C:366635 - #58147 (Jul 20, 2019 9:50:30 AM)

  1. [Codegen][SelectionDAG] X u% C == 0 fold: non-splat vector improvements

    Summary:
    Four things here:
    1. Generalize the fold to handle non-splat divisors. Reasonably trivial.
    2. Unban power-of-two divisors. I don't see any reason why they should
       be illegal.
       * There is no ban in Hacker's Delight
       * I think the ban came from the same bug that caused the miscompile
          in the base patch - in `floor((2^W - 1) / D)` we were dividing by
          `D0` instead of `D`, and we **were** ensuring that `D0` is not `1`,
          which made sense.
    3. Unban `1` divisors. I no longer believe Hacker's Delight actually says
       that the fold is invalid for `D = 0`. Further considerations:
       * We know that
         * `(X u% 1) == 0`  can be constant-folded to `1`,
         * `(X u% 1) != 0`  can be constant-folded to `0`,
       *  Also, we know that
         * `X u<= -1` can be constant-folded to `1`,
         * `X u>  -1` can be constant-folded to `0`,
       * https://godbolt.org/z/7jnZJX https://rise4fun.com/Alive/oF6p
       * We know will end up with the following:
           `(setule/setugt (rotr (mul N, P), K), Q)`
       * Therefore, for given new DAG nodes and comparison predicates
         (`ule`/`ugt`), we will still produce the correct answer if:
         `Q` is a all-ones constant; and both `P` and `K` are *anything*
         other than `undef`.
       * The fold will indeed produce `Q = all-ones`.
    4. Try to re-splat the `P` and `K` vectors - we don't care about
       their values for the lanes where divisor was `1`.

    Reviewers: RKSimon, hermord, craig.topper, spatel, xbolva00

    Reviewed By: RKSimon

    Subscribers: hiraditya, javed.absar, dexonsmith, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D63963 — lebedevri / ViewSVN
  2. [X86][SSE] Use PSADBW to improve vXi8 sum reduction (PR42674)

    As detailed on PR42674, we can reduce a vXi8 down until we have the final <8 x i8>, and then use PSADBW with zero, to sum those values. We then extract the bottom i8, discarding any overflow from the upper bits of the i16 result. — rksimon / ViewSVN

rL:366625 - C:366630 - #58144 (Jul 20, 2019 5:08:01 AM)

  1. Revert "Fix asan infinite loop on undefined symbol"

    This reverts commit cbd28cd05bb11e9d76d71c6cc2d38d89dbb1fe1a.

    Buildbot fail: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/22434/steps/64-bit%20check-asan-dynamic/ — serge_sans_paille / ViewSVN
  2. Fix asan infinite loop on undefined symbol

    Fix llvm#39641

    Recommit of r366413

    Differential Revision: https://reviews.llvm.org/D63877 — serge_sans_paille / ViewSVN

rL:366625 - C:366630 - #58143 (Jul 20, 2019 2:40:46 AM)

  1. [c++20] P1161R3: a[b,c] is deprecated. — rsmith / ViewSVN
  2. Mark P1301R4 in C++2a as being SVN instead. — aaronballman / ViewSVN

rL:366625 - C:366628 - #58142 (Jul 20, 2019 1:28:05 AM)

  1. We support P1301R4 in C++2a as of r366626. — aaronballman / ViewSVN
  2. [cxx_status] Update status page for WG21 Cologne meeting motions.

    Note that many of the paper links will be dead until the post-meeting
    mailing is released. — rsmith / ViewSVN

rL:366625 - C:366626 - #58141 (Jul 20, 2019 1:03:01 AM)

  1. Implement P1301R4, which allows specifying an optional message on the [[nodiscard]] attribute.

    This also bumps the attribute feature test value and introduces the notion of a C++2a extension warning. — aaronballman / ViewSVN

rL:366625 - C:366624 - #58140 (Jul 19, 2019 6:58:05 PM)

  1. [GlobalISel][AArch64] Contract trivial same-size cross-bank copies into G_STOREs

    Sometimes, you can end up with cross-bank copies between same-sized GPRs and
    FPRs, which feed into G_STOREs. When these copies feed only into stores, they
    aren't necessary; we can just store using the original register bank.

    This provides some minor code size savings for some floating point SPEC
    benchmarks. (Around 0.2% for 453.povray and 450.soplex)

    This issue doesn't seem to show up due to regbankselect or anything similar. So,
    this patch introduces an early select function, `contractCrossBankCopyIntoStore`
    which performs the contraction when possible. The selector then continues
    normally and selects the correct store opcode, eliminating needless copies
    along the way.

    Differential Revision: https://reviews.llvm.org/D65024 — paquette / ViewSVN

rL:366624 - C:366624 - #58139 (Jul 19, 2019 5:12:38 PM)

  1. [WebAssembly] Compute and export TLS block alignment

    Summary:
    Add immutable WASM global `__tls_align` which stores the alignment
    requirements of the TLS segment.

    Add `__builtin_wasm_tls_align()` intrinsic to get this alignment in Clang.

    The expected usage has now changed to:

        __wasm_init_tls(memalign(__builtin_wasm_tls_align(),
                                 __builtin_wasm_tls_size()));

    Reviewers: tlively, aheejin, sbc100, sunfish, alexcrichton

    Reviewed By: tlively

    Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D65028 — quantum / ViewSVN

rL:366622 - C:366623 - #58138 (Jul 19, 2019 4:26:08 PM)

  1. [LTO] Always mark regular LTO units with EnableSplitLTOUnit=1

    Summary:
    Regular LTO modules do not need LTO Unit splitting, only ThinLTO does
    (they must be consistently split into regular and Thin units for
    optimizations such as whole program devirtualization and lower type
    tests). In order to avoid spurious errors from LTO when combining with
    split ThinLTO modules, always set this flag for regular LTO modules.

    Reviewers: pcc

    Subscribers: mehdi_amini, Prazek, inglorion, steven_wu, dexonsmith, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D65009 — tejohnson / ViewSVN
  2. Re-commit: r366610 and r366612: Expand pseudo-components before embedding in llvm-config

    There were two main problems:
    * The 'nativecodegen' pseudo-component was unconditionally adding
      ${native_tgt}CodeGen even though it conditionally added ${native_tgt}Info and
      ${native_tgt}Desc. This has been fixed by making ${native_tgt}CodeGen
      conditional too
    * The 'all' pseudo-component was causing library names like LLVMLLVMDemangle as
      the expansion was to a library name and not a component. There doesn't seem to
      be a list of available components anywhere so this has been fixed by moving the
      expansion of 'all' back where it was before. This manifested in different ways
      on different builders but it was the same root cause — dsanders / ViewSVN

rL:366621 - C:366620 - #58137 (Jul 19, 2019 3:44:30 PM)

  1. AMDGPU/GlobalISel: Legalize GEP for other 32-bit address spaces — arsenm / ViewSVN
  2. [NFC] Remove unused variable

    Change-Id: I5aee24dcdf6eebfbf788e52be22463387f23d927 — dendibakh / ViewSVN

rL:366619 - C:366617 - #58136 (Jul 19, 2019 2:59:11 PM)

  1. [AMDGPU] Autogenerate register sequences in tuples

    Differential Revision: https://reviews.llvm.org/D65007 — rampitec / ViewSVN
  2. Revert "Fix asan infinite loop on undefined symbol"

    This reverts commit 8e46275488ca453a24964cb26be0736172ad1db8.

    This was failing on sanitizer-x86_64-linux and our internal CI. — ormris / ViewSVN
  3. Disallow most calling convention attributes on PS4

    PS4 now only allows "cdecl", and its equivalent on PS4, "sysv_abi".

    Differential Revision: https://reviews.llvm.org/D64780 — ssrivastava / ViewSVN
  4. [AMDGPU] Fixed occupancy calculation for gfx10

    Differential Revision: https://reviews.llvm.org/D65010 — rampitec / ViewSVN
  5. Revert r366610 and r366612: Expand pseudo-components before embedding in llvm-config

    Some targets are missing LLVMDemangle, one is adding the LLVM prefix twice, and two
    are hitting the very error this patch fixes for my target. Reverting while I work
    through the reports. — dsanders / ViewSVN
  6. [InstCombine] Fix copy/paste mistake in the test cases I added for PR42691. NFC — ctopper / ViewSVN
  7. AMDGPU: Avoid custom predicates for stores with glue — arsenm / ViewSVN
  8. Fix a latent bug discovered by r366610: nativecodegen includes X86CodeGen when X86 is not compiled

    I believe this to have been a latent bug as the same expansion checks for the
    existence of ${native_tgt}Info and ${native_tgt}Desc and only adds them if
    they were compiled but unconditionally adds ${native_tgt}CodeGen.

    This should fix llvm-clang-x86_64-win-fast which builds ARM only on an X86 host and similar builders. — dsanders / ViewSVN
  9. [InstCombine] Add test cases for PR42691. NFC — ctopper / ViewSVN
  10. Expand pseudo-components before embedding in llvm-config

    Summary:
    If you use pseudo-targets like AllTargetsCodeGens in LLVM_DYLIB_COMPONENTS
    then a test will fail because `./bin/llvm-config --shared-mode` can't
    handle these targets. We can fix this by expanding them before embedding
    the string into llvm-config

    Reviewers: bogner

    Reviewed By: bogner

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D65011 — dsanders / ViewSVN
  11. AMDGPU: Redefine setcc condition PatLeafs

    Avoid using custom code predicates. — arsenm / ViewSVN
  12. AMDGPU: Don't rely on m0 being -1 for GWS offsets

    This only works if the high bits of m0 are also 0, so m0 would have to
    be set to 0xffff. — arsenm / ViewSVN

rL:366605 - C:366592 - #58134 (Jul 19, 2019 12:49:50 PM)

  1. [libc++] Mark libcpp_deallocate.sh.cpp as UNSUPPORTED instead of XFAIL on AppleClang 9

    Some minor versions of AppleClang 9 appear not to fail the test. It's
    such a mess that the only sane thing to do is to mark the test as
    UNSUPPORTED. — Louis Dionne / ViewSVN
  2. LiveIntervals: Fix handleMove asserting on BUNDLE

    The top-level BUNDLE instruction should behave as an ordinary
    instruction. It is supposed to have all relevant registers as implicit
    operands. Moving it should work as any other instruction. I believe
    the assert intended to avoid moving instructions inside bundles. — arsenm / ViewSVN

rL:366603 - C:366592 - #58133 (Jul 19, 2019 12:08:43 PM)

  1. Revert "[libc++] Integrate the PSTL into libc++"

    This reverts r366593, which caused unforeseen breakage on the build bots.
    I'm reverting until the problems have been figured out and fixed. — Louis Dionne / ViewSVN
  2. [AMDGPU] Add test case on crashing of `si-lower-sgpr-spills` pass

    Reviewers: arsenm

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64273 — hliao / ViewSVN
  3. [libc++] Allow passing additional CMake arguments in macOS trunk CI script — Louis Dionne / ViewSVN

rL:366600 - C:366592 - #58132 (Jul 19, 2019 11:24:20 AM)

  1. Revert "Use the MachineBasicBlock symbol for a callbr target"

    This reverts commit r366523/ccbffefccaff42b0d094c9ef0f49fc3e8c8456ea.

    Two regressions were immediately reported:
    - https://github.com/ClangBuiltLinux/linux/issues/614
    - https://github.com/ClangBuiltLinux/linux/issues/615

    Reported-by: nathanchance — nickdesaulniers / ViewSVN
  2. [RISCV] Disable tests failing on buildbots.

    r366399 enabled a couple tests that are failing on a few buildbots. — morehouse / ViewSVN
  3. [AMDGPU] Allow register tuples to set asm names

    This change reverts most of the previous register name generation.
    The real problem is that RegisterTuple does not generate asm names.
    Added optional operand to RegisterTuple. This way we can simplify
    register name access and dramatically reduce the size of static
    tables for the backend.

    Differential Revision: https://reviews.llvm.org/D64967 — rampitec / ViewSVN

rL:366597 - C:366592 - #58131 (Jul 19, 2019 11:01:30 AM)

  1. AMDGPU/GlobalISel: Fix MMO flags for kernel argument loads

    The DAG lowering sets dereferencable and invariant, not nontemporal. — arsenm / ViewSVN
  2. GlobalISel: Add GINodeEquiv for fcopysign

    I don't need this at the moment, but it should be here. — arsenm / ViewSVN
  3. [llvm-lipo] Remove trailing whitespace. NFC — smeenai / ViewSVN
  4. [libc++] Use _EnableIf instead of std::enable_if in deduction guides for map and set — Louis Dionne / ViewSVN
  5. [libc++] Integrate the PSTL into libc++

    Summary:
    This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when
    configuring libc++ in CMake. When that option is enabled, libc++ will
    assume that the PSTL can be found somewhere on the CMake module path,
    and it will provide the C++17 parallel algorithms based on the PSTL
    (that is assumed to be available).

    The commit also adds support for running the PSTL tests as part of
    the libc++ test suite.

    Reviewers: rodgert, EricWF

    Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF

    Tags: #libc

    Differential Revision: https://reviews.llvm.org/D60480 — Louis Dionne / ViewSVN
  6. [Format/ObjC] Avoid breaking between unary operators and operands

    Summary:
    Test Plan:
      New tests added. Ran tests with:
      % ninja FormatTests && ./tools/clang/unittests/Format/FormatTests
      Confirmed tests failed before change and passed after change.

    Reviewers: krasimir, djasper, sammccall, klimek

    Reviewed By: sammccall

    Subscribers: klimek, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64775 — benhamilton / ViewSVN
  7. AMDGPU: Add some function return test cases — arsenm / ViewSVN

rL:366589 - C:366546 - #58130 (Jul 19, 2019 9:44:16 AM)

  1. [AMDGPU] Regenerate test file for upcoming patch. NFCI. — rksimon / ViewSVN
  2. Fix asan infinite loop on undefined symbol

    Fix llvm#39641

    Recommit of r366413

    Differential Revision: https://reviews.llvm.org/D63877 — serge_sans_paille / ViewSVN
  3. AMDGPU: Attempt to fix bot error

    Manually remove file name from check line, since it somehow ends
    up being different on an msvc bot. — arsenm / ViewSVN

rL:366585 - C:366546 - #58129 (Jul 19, 2019 7:48:56 AM)

  1. AMDGPU/GlobalISel: Selection for fminnum/fmaxnum

    v2f16 case doesn't work yet because the VOP3P complex patterns haven't
    been ported yet. — arsenm / ViewSVN
  2. AMDGPU/GlobalISel: Support arguments with multiple registers

    Handles structs used directly in argument lists. — arsenm / ViewSVN
  3. AMDGPU/GlobalISel: Rewrite lowerFormalArguments

    This should now handle everything except structs passed as multiple
    registers.

    I think most of the packing logic should be handled by
    handleAssignments, but I'm unclear on what the contract is for
    multiple registers. This is copying how x86 handles this.

    This does change the behavior of the test_sgpr_alignment0 amdgpu_vs
    test. I don't think shader arguments should try to follow the
    alignment, and registers need to be repacked. I also don't think it
    matters, since I think the pointers are packed to the beginning of the
    argument list anyway. — arsenm / ViewSVN

rL:366578 - C:366546 - #58128 (Jul 19, 2019 7:07:21 AM)

  1. [libc++] Add missing %link_flags to .sh.cpp test

    Without the link flags, the test always fails on Linux. For some reason,
    however, it works on Darwin -- which is why it wasn't caught at first. — Louis Dionne / ViewSVN
  2. AMDGPU: Decompose all values to 32-bit pieces for calling conventions

    This is the more natural lowering, and presents more opportunities to
    reduce 64-bit ops to 32-bit.

    This should also help avoid issues graphics shaders have had with
    64-bit values, and simplify argument lowering in globalisel. — arsenm / ViewSVN
  3. [clangd] Provide a way to publish highlightings in non-racy manner

    Summary:
    By exposing a callback that can guard code publishing results of
    'onMainAST' callback in the same manner we guard diagnostics.

    Reviewers: sammccall

    Reviewed By: sammccall

    Subscribers: javed.absar, MaskRay, jkorous, arphaman, kadircet, hokein, jvikstrom, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64985 — ibiryukov / ViewSVN
  4. gn build: Set +x on symlink_or_copy.py — nico / ViewSVN
  5. [clangd] Disable background-index on lit-tests by default

    Summary:
    Since background-index can perform disk writes, we don't want to turn
    it on tests that won't clear it.

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64990 — kadircet / ViewSVN
  6. DAG: Handle dbg_value for arguments split into multiple subregs

    This was handled previously for arguments split due to not fitting in
    an MVT. This was dropping the register for argument registers split
    due to TLI::getRegisterTypeForCallingConv. — arsenm / ViewSVN
  7. [NFC] include cstdint/string prior to using uint8_t/string

    Summary: include proper header prior to use of uint8_t typedef
    and std::string.

    Subscribers: llvm-commits

    Reviewers: cherry

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64937 — thanm / ViewSVN
  8. [AMDGPU][MC] Corrected parsing of branch offsets

    See bug 40820: https://bugs.llvm.org/show_bug.cgi?id=40820

    Reviewers: artem.tamazov, arsenm

    Differential Revision: https://reviews.llvm.org/D64629 — dpreobra / ViewSVN

rL:366570 - C:366546 - #58127 (Jul 19, 2019 6:09:33 AM)

  1. [MachineCSE][MachinePRE] Avoid hoisting code from code regions into hot BBs.

    Summary:
    Current PRE hoists common computations into
    CMBB = DT->findNearestCommonDominator(MBB, MBB1).
    However, if CMBB is in a hot loop body, we might get performance
    degradation.

    Differential Revision: https://reviews.llvm.org/D64394 — lkail / ViewSVN
  2. [X86] for split stack, not save/restore nested arg if unused

    Summary:
    For split-stack, if the nested argument (i.e. R10) is not used, no need to save/restore it in the prologue.

    Reviewers: thanm

    Reviewed By: thanm

    Subscribers: mstorsjo, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64673 — thanm / ViewSVN

rL:366565 - C:366546 - #58126 (Jul 19, 2019 5:51:31 AM)

  1. [Clangd] Fixed ExtractVariable test — sureyeaah / ViewSVN
  2. [libc++] Fix link error with _LIBCPP_HIDE_FROM_ABI_PER_TU and std::string

    Summary:
    This is effectively a revert of r344616, which was a partial fix for
    PR38964 (compilation of <string> with GCC in C++03 mode). However, that
    configuration is explicitly not supported anymore and that partial fix
    breaks compilation with Clang when per-TU insulation is provided.

    PR42676
    rdar://52899715

    Reviewers: mclow.lists, EricWF

    Subscribers: christof, jkorous, dexonsmith, libcxx-commits

    Tags: #libc

    Differential Revision: https://reviews.llvm.org/D64941 — Louis Dionne / ViewSVN
  3. [Clangd] Fixed SelectionTree bug for macros

    Summary:
    Fixed SelectionTree bug for macros
    - Fixed SelectionTree claimRange for macros and template instantiations
    - Fixed SelectionTree unit tests
    - Changed a breaking test in TweakTests

    Reviewers: sammccall, kadircet

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64329 — sureyeaah / ViewSVN

rL:366565 - C:366546 - #58125 (Jul 19, 2019 4:35:07 AM)

  1. [NFC][InstCombine] Tests for 'rem' formation from sub-of-mul-by-'div' (PR42673)

    https://rise4fun.com/Alive/8Rp
    https://bugs.llvm.org/show_bug.cgi?id=42673 — lebedevri / ViewSVN
  2. [NFC][InstCombine] Redundant masking before left-shift: tests with assume

    If the legality check is `(shiftNbits-maskNbits) s>= 0`,
    then we can simplify it to `shiftNbits u>= maskNbits`,
    which is easier to check for.

    However, currently switching the `dropRedundantMaskingOfLeftShiftInput()`
    to `SimplifyICmpInst()` does not catch these cases and regresses
    currently-handled cases, so i'll leave it as is for now.

    https://rise4fun.com/Alive/25P — lebedevri / ViewSVN
  3. Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFCI. — rksimon / ViewSVN

rL:366562 - C:366546 - #58124 (Jul 19, 2019 4:17:52 AM)

  1. Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions

    We'd like to remove this whole function, because these are properties of
    functions, not the target as a whole. These two are easy to remove
    because they are only used for emitting ARM build attributes, which
    expects them to represent the defaults for the whole module, not just
    the last function generated.

    This is needed to get correct build attributes when using IPRA on ARM,
    because IPRA causes resetTargetOptions to get called before
    ARMAsmPrinter::emitAttributes.

    Differential revision: https://reviews.llvm.org/D64929 — ostannard / ViewSVN
  2. Revert "Revert r366458, r366467 and r366468"

    This reverts commit 9c377105da0be7c2c9a3c70035ce674c71b846af.

    [clangd][BackgroundIndexLoader] Directly store DependentTU while loading shard

    Summary:
    We were deferring the population of DependentTU field in LoadedShard
    until BackgroundIndexLoader was consumed. This actually triggers a use after
    free since the shards FileToTU was pointing at could've been moved while
    consuming the Loader.

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64980 — kadircet / ViewSVN

rL:366558 - C:366546 - #58123 (Jul 19, 2019 3:18:05 AM)

  1. [llvm-readelf] - A fix for: "--hash-symbols asserts for 64-bit ELFs"

    Fixes https://bugs.llvm.org/show_bug.cgi?id=42622.
    (--hash-symbols switch is currently broken for 64-bit ELF files, due to r352630.)

    Differential revision: https://reviews.llvm.org/D64788 — grimar / ViewSVN

rL:366557 - C:366546 - #58122 (Jul 19, 2019 3:03:03 AM)

  1. [IPRA] Don't rely on non-exact function definitions

    If a function definition is not exact, then the linker could select a
    differently-compiled version of it, which could use different registers.

    https://reviews.llvm.org/D64909 — ostannard / ViewSVN

rL:366543 - C:366518 - #58118 (Jul 19, 2019 1:42:37 AM)

  1. [AMDGPU] Simplify the exclusive scan used for optimized atomics

    Summary:
    Change the scan algorithm to use only power-of-two shifts (1, 2, 4, 8,
    16, 32) instead of starting off shifting by 1, 2 and 3 and then doing
    a 3-way ADD, because:

    1. It simplifies the compiler a little.
    2. It minimizes vgpr pressure because each instruction is now of the
       form vn = vn + vn << c.
    3. It is more friendly to the DPP combiner, which currently can't
       combine into an ADD3 instruction.

    Because of #2 and #3 the end result is improved from this:

      v_add_u32_dpp v4, v3, v3  row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0
      v_mov_b32_dpp v5, v3  row_shr:2 row_mask:0xf bank_mask:0xf
      v_mov_b32_dpp v1, v3  row_shr:3 row_mask:0xf bank_mask:0xf
      v_add3_u32 v1, v4, v5, v1
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_shr:4 row_mask:0xf bank_mask:0xe
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_shr:8 row_mask:0xf bank_mask:0xc
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_bcast:15 row_mask:0xa bank_mask:0xf
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_bcast:31 row_mask:0xc bank_mask:0xf

    To this:

      v_add_u32_dpp v1, v1, v1  row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_shr:2 row_mask:0xf bank_mask:0xf bound_ctrl:0
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_shr:4 row_mask:0xf bank_mask:0xe
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_shr:8 row_mask:0xf bank_mask:0xc
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_bcast:15 row_mask:0xa bank_mask:0xf
      s_nop 1
      v_add_u32_dpp v1, v1, v1  row_bcast:31 row_mask:0xc bank_mask:0xf

    I.e. two fewer computational instructions, one extra nop where we could
    schedule something else.

    Reviewers: arsenm, sheredom, critson, rampitec, vpykhtin

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64411 — foad / ViewSVN
  2. [Loop Peeling] Enable peeling of multiple exits by default.

    Enable loop peeling with multiple exits where all non-latch exits
    ends up with deopt by default.

    Reviewers: reames, fhahn
    Reviewed By: reames
    Subscribers: xbolva00, hiraditya, zzheng, llvm-commits
    Differential Revision: https://reviews.llvm.org/D64619 — skatkov / ViewSVN
  3. [clangd] cleanup: unify the implemenation of checking a location is inside main file.

    Summary: We have variant implementations in the codebase, this patch unifies them.

    Reviewers: ilya-biryukov, kadircet

    Subscribers: MaskRay, jkorous, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64915 — hokein / ViewSVN

rL:366540 - C:366518 - #58117 (Jul 19, 2019 1:33:07 AM)

  1. [InstCombine] Dropping redundant masking before left-shift [5/5] (PR42563)

    Summary:
    If we have some pattern that leaves only some low bits set, and then performs
    left-shift of those bits, if none of the bits that are left after the final
    shift are modified by the mask, we can omit the mask.

    There are many variants to this pattern:
    f. `((x << MaskShAmt) a>> MaskShAmt) << ShiftShAmt`
    All these patterns can be simplified to just:
    `x << ShiftShAmt`
    iff:
    f. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

    Normally, the inner pattern is sign-extend,
    but for our purposes it's no different to other patterns:

    alive proofs:
    f: https://rise4fun.com/Alive/7U3

    For now let's start with patterns where both shift amounts are variable,
    with trivial constant "offset" between them, since i believe this is
    both simplest to handle and i think this is most common.
    But again, there are likely other variants where we could use
    ValueTracking/ConstantRange to handle more cases.

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

    Differential Revision: https://reviews.llvm.org/D64524 — lebedevri / ViewSVN
  2. [InstCombine] Dropping redundant masking before left-shift [4/5] (PR42563)

    Summary:
    If we have some pattern that leaves only some low bits set, and then performs
    left-shift of those bits, if none of the bits that are left after the final
    shift are modified by the mask, we can omit the mask.

    There are many variants to this pattern:
    e. `((x << MaskShAmt) l>> MaskShAmt) << ShiftShAmt`
    All these patterns can be simplified to just:
    `x << ShiftShAmt`
    iff:
    e. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

    alive proofs:
    e: https://rise4fun.com/Alive/0FT

    For now let's start with patterns where both shift amounts are variable,
    with trivial constant "offset" between them, since i believe this is
    both simplest to handle and i think this is most common.
    But again, there are likely other variants where we could use
    ValueTracking/ConstantRange to handle more cases.

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

    Differential Revision: https://reviews.llvm.org/D64521 — lebedevri / ViewSVN
  3. [InstCombine] Dropping redundant masking before left-shift [3/5] (PR42563)

    Summary:
    If we have some pattern that leaves only some low bits set, and then performs
    left-shift of those bits, if none of the bits that are left after the final
    shift are modified by the mask, we can omit the mask.

    There are many variants to this pattern:
    d. `(x & ((-1 << MaskShAmt) >> MaskShAmt)) << ShiftShAmt`
    All these patterns can be simplified to just:
    `x << ShiftShAmt`
    iff:
    d. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

    alive proofs:
    d: https://rise4fun.com/Alive/I5Y

    For now let's start with patterns where both shift amounts are variable,
    with trivial constant "offset" between them, since i believe this is
    both simplest to handle and i think this is most common.
    But again, there are likely other variants where we could use
    ValueTracking/ConstantRange to handle more cases.

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

    Differential Revision: https://reviews.llvm.org/D64519 — lebedevri / ViewSVN
  4. [InstCombine] Dropping redundant masking before left-shift [2/5] (PR42563)

    Summary:
    If we have some pattern that leaves only some low bits set, and then performs
    left-shift of those bits, if none of the bits that are left after the final
    shift are modified by the mask, we can omit the mask.

    There are many variants to this pattern:
    c. `(x & (-1 >> MaskShAmt)) << ShiftShAmt`
    All these patterns can be simplified to just:
    `x << ShiftShAmt`
    iff:
    c. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

    alive proofs:
    c: https://rise4fun.com/Alive/RgJh

    For now let's start with patterns where both shift amounts are variable,
    with trivial constant "offset" between them, since i believe this is
    both simplest to handle and i think this is most common.
    But again, there are likely other variants where we could use
    ValueTracking/ConstantRange to handle more cases.

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

    Differential Revision: https://reviews.llvm.org/D64517 — lebedevri / ViewSVN
  5. [InstCombine] Dropping redundant masking before left-shift [1/5] (PR42563)

    Summary:
    If we have some pattern that leaves only some low bits set, and then performs
    left-shift of those bits, if none of the bits that are left after the final
    shift are modified by the mask, we can omit the mask.

    There are many variants to this pattern:
    b. `(x & (~(-1 << maskNbits))) << shiftNbits`
    All these patterns can be simplified to just:
    `x << ShiftShAmt`
    iff:
    b. `(MaskShAmt+ShiftShAmt) u>= bitwidth(x)`

    alive proof:
    b: https://rise4fun.com/Alive/y8M

    For now let's start with patterns where both shift amounts are variable,
    with trivial constant "offset" between them, since i believe this is
    both simplest to handle and i think this is most common.
    But again, there are likely other variants where we could use
    ValueTracking/ConstantRange to handle more cases.

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

    Differential Revision: https://reviews.llvm.org/D64514 — lebedevri / ViewSVN
  6. [InstCombine] Dropping redundant masking before left-shift [0/5] (PR42563)

    Summary:
    If we have some pattern that leaves only some low bits set, and then performs
    left-shift of those bits, if none of the bits that are left after the final
    shift are modified by the mask, we can omit the mask.

    There are many variants to this pattern:
    a. `(x & ((1 << MaskShAmt) - 1)) << ShiftShAmt`
    All these patterns can be simplified to just:
    `x << ShiftShAmt`
    iff:
    a. `(MaskShAmt+ShiftShAmt) u>= bitwidth(x)`

    alive proof:
    a: https://rise4fun.com/Alive/wi9

    Indeed, not all of these patterns are canonical.
    But since this fold will only produce a single instruction
    i'm really interested in handling even uncanonical patterns,
    since i have this general kind of pattern in hotpaths,
    and it is not totally outlandish for bit-twiddling code.

    For now let's start with patterns where both shift amounts are variable,
    with trivial constant "offset" between them, since i believe this is
    both simplest to handle and i think this is most common.
    But again, there are likely other variants where we could use
    ValueTracking/ConstantRange to handle more cases.

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

    Reviewers: spatel, nikic, huihuiz, xbolva00

    Reviewed By: xbolva00

    Subscribers: efriedma, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64512 — lebedevri / ViewSVN

rL:366533 - C:366518 - #58116 (Jul 19, 2019 12:28:04 AM)

  1. [NFC] Fix an indentation issue in llvm/Support/TargetRegistry.h — hubert.reinterpretcast / ViewSVN

rL:366531 - C:366518 - #58115 (Jul 18, 2019 11:45:03 PM)

  1. [DebugInfo] Some fields do not need relocations even relax is enabled.

    In debug frame information, some fields, e.g., Length in CIE/FDE and
    Offset in FDE are attributes to describe the structure of CIE/FDE. They
    are not related to the relaxed code. However, these attributes are
    symbol differences. So, in current design, these attributes will be
    filled as zero and LLVM generates relocations for them.

    We only need to generate relocations for symbols in executable sections.
    So, if the symbols are not located in executable sections, we still
    evaluate their values under relaxation.

    Differential Revision: https://reviews.llvm.org/D61584 — hsiangkai / ViewSVN

rL:366530 - C:366518 - #58114 (Jul 18, 2019 10:53:06 PM)

  1. unbreak links — lattner / ViewSVN

rL:366529 - C:366518 - #58113 (Jul 18, 2019 10:28:08 PM)

  1. replace the old kaleidoscope tutorial files with orphaned pages that forward to the new copy. — lattner / ViewSVN

rL:366528 - C:366518 - #58112 (Jul 18, 2019 10:23:08 PM)

  1. Point to the dusted off version of the kaleidoscope tutorial. — lattner / ViewSVN

rL:366527 - C:366518 - #58111 (Jul 18, 2019 7:44:48 PM)

  1. [test] [llvm-objcopy] Fix broken test case

    Summary: The test case added in D62718 did not work unless the user was root because write bits were not set for the output file. This change uses only permissions with user write (0200) to ensure tests pass regardless of the users permissions.

    Reviewers: jhenderson, rupprecht, MaskRay, espindola, alexshap

    Reviewed By: MaskRay

    Subscribers: emaste, arichardson, jakehehrlich, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64302 — abrachet / ViewSVN
  2. [NFC][PowerPC] Modify the test case add_cmp.ll — zhangkang / ViewSVN

rL:366524 - C:366518 - #58110 (Jul 18, 2019 7:19:13 PM)

  1. [libFuzzer] Set Android specific ALL_FUZZER_SUPPORTED_ARCH

    Build libFuzzer for all Android supported architectures. — kongyi / ViewSVN

rL:366524 - C:366518 - #58109 (Jul 18, 2019 7:08:05 PM)

  1. [DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.

    It is necessary to generate fixups in .debug_frame or .eh_frame as
    relaxation is enabled due to the address delta may be changed after
    relaxation.

    There is an opcode with 6-bits data in debug frame encoding. So, we
    also need 6-bits fixup types.

    Differential Revision: https://reviews.llvm.org/D58335 — hsiangkai / ViewSVN

rL:366523 - C:366518 - #58108 (Jul 18, 2019 6:30:06 PM)

  1. Use the MachineBasicBlock symbol for a callbr target

    Summary:
    Inline asm doesn't use labels when compiled as an object file. Therefore, we
    shouldn't create one for the (potential) callbr destination. Instead, use the
    symbol for the MachineBasicBlock.

    Reviewers: nickdesaulniers, craig.topper

    Reviewed By: nickdesaulniers

    Subscribers: xbolva00, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64888 — void / ViewSVN

rL:366516 - C:366518 - #58107 (Jul 18, 2019 5:28:05 PM)

  1. Fix formatting of inline argument comments. NFC.

    Also, remove the final arg from ItaniumCXXABI in the PNaCl case since
    its not needed.

    Differential Revision: https://reviews.llvm.org/D64955 — sbc / ViewSVN
  2. [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later.

    I plan on adding memcpy optimizations in the GlobalISel pipeline, but we can't
    do that unless we delay lowering to actual function calls. This patch changes
    the translator to generate G_INTRINSIC_W_SIDE_EFFECTS for these functions, and
    then have each target specify that using the new custom legalizer for intrinsics
    hook that they want it expanded it a libcall.

    Differential Revision: https://reviews.llvm.org/D64895 — aemerson / ViewSVN
  3. [cmake] Fix typo where a varible was checked for Apple instead of Darwin

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64965 — lanza / ViewSVN

rL:366514 - C:366511 - #58106 (Jul 18, 2019 5:13:08 PM)

  1. [cmake] Convert the NATIVE llvm build process to be project agnostic

    lldb recently added a tablegen tool. In order to properly cross compile
    lldb standalone there needs to be a mechanism to generate the native
    lldb build, analgous to what's done for the NATIVE llvm build. Thus,
    we can simply modify this setup to allow for any project to be used. — lanza / ViewSVN

rL:366512 - C:366511 - #58105 (Jul 18, 2019 4:00:28 PM)

  1. Reapply [llvm-lipo] Implement -create (with hardcoded alignments)

    This reapplies r366142 with a fix for the failing Windows test.

    Original commit message:

    Creates universal binary output file from input files. Currently uses
    hard coded value for alignment.  Want to get the create functionality
    approved before implementing the alignment function.

    Patch by Anusha Basana <anusha.basana@gmail.com>

    Differential Revision: https://reviews.llvm.org/D64102 — smeenai / ViewSVN
  2. Update the SimpleJIT class in the clang-interpreter example to use ORCv2.

    This will remove the ORCv1 deprecation warnings. — Lang Hames / ViewSVN
  3. [clang-scan-deps] Dependency directives source minimizer: handle #pragma once

    We should re-emit `#pragma once` to ensure the preprocessor will
    still honor it when running on minimized sources.

    Differential Revision: https://reviews.llvm.org/D64945 — arphaman / ViewSVN

rL:366505 - C:366499 - #58104 (Jul 18, 2019 3:22:55 PM)

  1. [AMDGPU] Drop Reg32 and use regular AsmName

    This allows to reduce generated AMDGPUGenAsmWriter.inc by ~100Kb.

    Differential Revision: https://reviews.llvm.org/D64952 — rampitec / ViewSVN
  2. [GlobalISel][AArch64] Add support for base register + offset register loads

    Add support for folding G_GEPs into loads of the form

    ```
    ldr reg, [base, off]
    ```

    when possible. This can save an add before the load. Currently, this is only
    supported for loads of 64 bits into 64 bit registers.

    Add a new addressing mode function, `selectAddrModeRegisterOffset` which
    performs this folding when it is profitable.

    Also add a test for addressing modes for G_LOAD.

    Differential Revision: https://reviews.llvm.org/D64944 — paquette / ViewSVN

rL:366502 - C:366499 - #58103 (Jul 18, 2019 2:45:52 PM)

  1. CodeGen: Allow !associated metadata to point to aliases.

    This is a small extension of !associated, mostly useful for the implementation
    convenience of instrumentation passes that RAUW globals with aliases, such
    as LowerTypeTests.

    Differential Revision: https://reviews.llvm.org/D64951 — pcc / ViewSVN
  2. Revert [X86] EltsFromConsecutiveLoads - support common source loads

    This reverts r366441 (git commit 48104ef7c9c653bbb732b66d7254957389fea337)

    This causes clang to fail to compile some file in Skia. Reduction soon. — rnk / ViewSVN
  3. [WebAssembly] Fix __builtin_wasm_tls_base intrinsic

    Summary:
    Properly generate the outchain for the `__builtin_wasm_tls_base` intrinsic.

    Also marked the intrinsic pure, per @sunfish's suggestion.

    Reviewers: tlively, aheejin, sbc100, sunfish

    Reviewed By: tlively

    Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits, sunfish

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D64949 — quantum / ViewSVN
  4. [cmake] Only run llvm-codesign if targetting apple on an apple host

    Summary:
    Other platforms don't have the capability to perform llvm_codesign
    step. If LLVM_CODESIGNING_IDENTITY is set then this chunk of code would
    attempt to codesign if the target was Apple. But when cross compiling
    to Darwin from Linux, for example, this step would fail. So test if the
    host is Apple as well.

    Subscribers: mgorny, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64942 — lanza / ViewSVN

rL:366497 - C:366483 - #58102 (Jul 18, 2019 2:08:09 PM)

  1. Fix typo in r366494. Spotted by Yuanfang Chen. — pcc / ViewSVN
  2. Remove the static initialize introduced in r365099

    Summary:
    Some polish for r365099 which adds a static initializer to
    MachOObjectFile. Remove it by moving it to file scope.

    Reviewers: smeenai, alexshap, compnerd, mtrent, anushabasana

    Reviewed By: smeenai

    Subscribers: hiraditya, jkorous, dexonsmith, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64873 — steven_wu / ViewSVN

rL:366494 - C:366483 - #58101 (Jul 18, 2019 2:03:06 PM)

  1. IR: Teach Constant::needsRelocation() that relative pointers don't need to be relocated.

    This causes sections with relative pointers to be marked as read only,
    which means that they won't end up sharing pages with writable data.

    Differential Revision: https://reviews.llvm.org/D64948 — pcc / ViewSVN

rL:366487 - C:366483 - #58100 (Jul 18, 2019 1:31:01 PM)

  1. [ASan] Support `{f}puts(NULL)` on Darwin, part 2

    Add braces around macro `{ MACRO(); }` to guard against macros that
    expand to multiple statements. — yln / ViewSVN
  2. gn build: Merge r366458. — pcc / ViewSVN
  3. FileSystem: Check for DTTOIF alone, not _DIRENT_HAVE_D_TYPE

    While 'd_type' is a non-standard extension to `struct dirent`, only
    glibc signals its presence with a macro '_DIRENT_HAVE_D_TYPE'.
    However, any platform with 'd_type' also includes a way to convert to
    mode_t values using the macro 'DTTOIF', so we can check for that alone
    and still be confident that the 'd_type' member exists.

    (If this turns out to be wrong, I'll go back and set up an actual
    CMake check.)

    I couldn't think of how to write a test for this, because I couldn't
    think of how to test that a 'stat' call doesn't happen without
    controlling the filesystem or intercepting 'stat', and there's no good
    cross-platform way to do that that I know of.

    Follow-up (almost a year later) to r342089.

    rdar://problem/50592673
    https://reviews.llvm.org/D64940 — jrose / ViewSVN
  4. [ORC] Suppress an ORCv1 deprecation warning. — Lang Hames / ViewSVN
  5. [libc++] Add C++17 deduction guides for std::function

    Summary: http://llvm.org/PR39606

    Reviewers: Quuxplusone

    Subscribers: christof, dexonsmith, libcxx-commits

    Differential Revision: https://reviews.llvm.org/D54410 — Louis Dionne / ViewSVN

rL:366481 - C:366483 - #58099 (Jul 18, 2019 12:42:05 PM)

  1. [OPENMP]Fix sharing of threadprivate variables with TLS support.

    If the threadprivate variable is used in the copyin clause on inner
    parallel directive with TLS support, we capture this variable in all
    outer OpenMP scopes. It leads to the fact that in all scopes we're
    working with the original variable, not the threadprivate copies. — abataev / ViewSVN

rL:366481 - C:366480 - #58098 (Jul 18, 2019 12:16:23 PM)

  1. [compiler-rt] Complete revert of r366413

    Incomplete revert. Mea culpa. This test is failing on sanitizer-x86_64-linux
    and our internal CI. — ormris / ViewSVN
  2. Fix C++ modules build

    llvm-svn: 366344 missed an include that broke the LLVM_ENABLE_MODULES
    build. — Raphael Isemann / ViewSVN
  3. [RISCV] Hard float ABI support

    The RISC-V hard float calling convention requires the frontend to:

    * Detect cases where, once "flattened", a struct can be passed using
    int+fp or fp+fp registers under the hard float ABI and coerce to the
    appropriate type(s)
    * Track usage of GPRs and FPRs in order to gate the above, and to
    determine when signext/zeroext attributes must be added to integer
    scalars

    This patch attempts to do this in compliance with the documented ABI,
    and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as
    author of that code I've tagged you as reviewer for initial feedback on
    my usage.

    Note that a previous version of the ABI indicated that when passing an
    int+fp struct using a GPR+FPR, the int would need to be sign or
    zero-extended appropriately. GCC never did this and the ABI was changed,
    which makes life easier as ABIArgInfo::CoerceAndExpand can't currently
    handle sign/zero-extension attributes.

    Re-landed after backing out 366450 due to missed hunks.

    Differential Revision: https://reviews.llvm.org/D60456 — asb / ViewSVN
  4. [COFF] Change a variable type to be const in the HeapAllocSite map. — akhuang / ViewSVN

rL:366477 - C:366475 - #58097 (Jul 18, 2019 11:24:15 AM)

  1. [FPEnv] Teach the IRBuilder about constrained FPTrunc and FPExt

    The IRBuilder doesn't know that FPTrunc and FPExt have constrained
    equivalents. Add the support by building on the strict FP mode now
    present in the IRBuilder.

    Reviewed by: John McCall
    Approved by: John McCall
    Differential Revision: https://reviews.llvm.org/D64934 — kpn / ViewSVN

rL:366475 - C:366475 - #58096 (Jul 18, 2019 11:01:31 AM)

  1. [WebAssembly] Implement __builtin_wasm_tls_base intrinsic

    Summary:
    Add `__builtin_wasm_tls_base` so that LeakSanitizer can find the thread-local
    block and scan through it for memory leaks.

    Reviewers: tlively, aheejin, sbc100

    Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D64900 — quantum / ViewSVN
  2. [OPENMP]Provide correct data sharing attributes for loop control
    variables.

    Loop control variables are private in loop-based constructs and we shall
    take this into account when generate the code for inner constructs.
    Currently, those variables are reported as shared in many cases. Moved
    the analysis of the data-sharing attributes of the loop control variable
    to an early semantic stage to correctly handle their attributes. — abataev / ViewSVN
  3. [LibTooling] Relax Transformer to allow rewriting macro expansions

    Summary:
    Currently, Transformer rejects any changes to source locations inside macro
    expansions. This change relaxes that constraint to allow rewrites when the
    entirety of the expansion is replaced, since that can be mapped to replacing the
    entirety of the expansion range in the file source.  This change makes
    Transformer consistent with the handling of edit ranges in `clang::edit::Commit`
    (which is used, for example, for applying `FixItHint`s from diagnostics).

    Reviewers: ilya-biryukov

    Subscribers: gribozavr, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64518 — ymandel / ViewSVN
  4. Revert "Fix asan infinite loop on undefined symbol"

    This reverts commit 63719119c78ca965b5d80e5c20fcfe81ba28f896.

    The tests in this commit were failing on a Linux sanitizer bot
    and our internal CI.

    http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/22401/steps/test%20standalone%20compiler-rt%20with%20symbolizer/logs/stdio — ormris / ViewSVN
  5. [LAA] Re-check bit-width of pointers after stripping.

    Summary:
    - As the pointer stripping now tracks through `addrspacecast`, prepare
      to handle the bit-width difference from the result pointer.

    Reviewers: jdoerfert

    Subscribers: jvesely, nhaehnle, hiraditya, arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64928 — hliao / ViewSVN
  6. [LibTooling] Add function to translate and validate source range for editing

    Summary:
    Adds the function `getRangeForEdit` to validate that a given source range is
    editable and, if needed, translate it into a range in the source file (for
    example, if it's sourced in macro expansions).

    Reviewers: ilya-biryukov

    Subscribers: cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64924 — ymandel / ViewSVN
  7. [clangd] Remove dead code from BackgroundIndex — kadircet / ViewSVN
  8. [clangd] BackgroundIndex stores shards to the closest project

    Summary:
    Changes persistance logic to store shards at the directory of closest
    CDB. Previously we were storing all shards to directory of the CDB that
    triggered indexing, it had its downsides.

    For example, if you had two TUs coming from a different CDB but depending on the
    same header foo.h, we will store the foo.h only for the first CDB, and it would
    be missing for the second and we would never persist it since it was actually
    present in the memory and persisted before.

    This patch still stores only a single copy of a shard, but makes the directory a
    function of the file name. So that the shard place will be unique even with
    multiple CDBs accessing the file. This directory is determined as the first
    directory containing a CDB in the file's parent directories, if no such
    directory exists we make use of the home directory.

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64745 — kadircet / ViewSVN

rL:366462 - C:366457 - #58094 (Jul 18, 2019 9:57:06 AM)

  1. [clangd] BackgroundIndex stores shards to the closest project

    Summary:
    Changes persistance logic to store shards at the directory of closest
    CDB. Previously we were storing all shards to directory of the CDB that
    triggered indexing, it had its downsides.

    For example, if you had two TUs coming from a different CDB but depending on the
    same header foo.h, we will store the foo.h only for the first CDB, and it would
    be missing for the second and we would never persist it since it was actually
    present in the memory and persisted before.

    This patch still stores only a single copy of a shard, but makes the directory a
    function of the file name. So that the shard place will be unique even with
    multiple CDBs accessing the file. This directory is determined as the first
    directory containing a CDB in the file's parent directories, if no such
    directory exists we make use of the home directory.

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64745 — kadircet / ViewSVN
  2. MC: AArch64: Add support for prel_g* relocation specifiers.

    Differential Revision: https://reviews.llvm.org/D64683 — pcc / ViewSVN
  3. AArch64: Unify relocation restrictions between MOVK/MOVN/MOVZ.

    There doesn't seem to be a practical reason for these instructions to have
    different restrictions on the types of relocations that they may be used
    with, notwithstanding the language in the ELF AArch64 spec that implies that
    specific relocations are meant to be used with specific instructions.

    For example, we currently forbid the first instruction in the following
    sequence, despite it currently being used by clang to generate a global
    reference under -mcmodel=large:

    movz x0, #:abs_g0_nc:foo
    movk x0, #:abs_g1_nc:foo
    movk x0, #:abs_g2_nc:foo
    movk x0, #:abs_g3:foo

    Therefore, allow MOVK/MOVN/MOVZ to accept the union of the set of relocations
    that they currently accept individually.

    Differential Revision: https://reviews.llvm.org/D64466 — pcc / ViewSVN

rL:366456 - C:366457 - #58093 (Jul 18, 2019 9:46:40 AM)

  1. [clangd] Refactor background-index shard loading

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64712 — kadircet / ViewSVN
  2. [ASTUnit] Attempt to unbreak Windows buildbots after r366448 — ibiryukov / ViewSVN
  3. Minor styling fix. NFC. — hliao / ViewSVN
  4. [clangd] Get rid of dots and dotsdots within GlobalCompilationDatabase

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64860 — kadircet / ViewSVN
  5. Revert "[RISCV] Hard float ABI support" r366450

    The commit was missing a few hunks. Will fix and recommit. — asb / ViewSVN
  6. Revert r366449: [CrossTU] Add a function to retrieve original source location.

    Reason: the commit breaks layering by adding a dependency on ASTUnit
    (which is inside clangFrontend) from the ASTImporter (which is inside
    clangAST). — ibiryukov / ViewSVN
  7. [Clangd] NFC: Fixed tweaks CMakeLists order to alphabetical — sureyeaah / ViewSVN
  8. [Clangd] Changed ExtractVariable to only work on non empty selections

    Summary:
    - For now, we don't trigger in any case if it's an empty selection
    - Fixed unittests

    Reviewers: kadircet, sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64912 — sureyeaah / ViewSVN
  9. [RISCV] Hard float ABI support

    The RISC-V hard float calling convention requires the frontend to:

    * Detect cases where, once "flattened", a struct can be passed using
    int+fp or fp+fp registers under the hard float ABI and coerce to the
    appropriate type(s) * Track usage of GPRs and FPRs in order to gate the
    above, and to
    determine when signext/zeroext attributes must be added to integer
    scalars

    This patch attempts to do this in compliance with the documented ABI,
    and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as
    author of that code I've tagged you as reviewer for initial feedback on
    my usage.

    Note that a previous version of the ABI indicated that when passing an
    int+fp struct using a GPR+FPR, the int would need to be sign or
    zero-extended appropriately. GCC never did this and the ABI was changed,
    which makes life easier as ABIArgInfo::CoerceAndExpand can't currently
    handle sign/zero-extension attributes.

    Differential Revision: https://reviews.llvm.org/D60456 — asb / ViewSVN
  10. [CrossTU] Add a function to retrieve original source location.

    Summary:
    A new function will be added to get the original SourceLocation
    for a SourceLocation that was imported as result of getCrossTUDefinition.
    The returned SourceLocation is in the context of the (original)
    SourceManager for the original source file. Additionally the
    ASTUnit object for that source file is returned. This is needed
    to get a SourceManager to operate on with the returned source location.

    The new function works if multiple different source files are loaded
    with the same CrossTU context.

    This patch can be treated as part of a bigger change that is needed to
    improve macro expansion handliong at plist generation.

    Reviewers: martong, shafik, a_sidorin, xazax.hun

    Reviewed By: martong

    Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64554 — balazske / ViewSVN
  11. [ASTUnit] Fix a regression in cached completions

    Summary:
    After r345152 cached completions started adding namespaces after
    nested name specifiers, e.g. in `some_name::^`

    The CCC_Symbol indicates the completed item cannot be a namespace (it is
    described as being "a type, a function or a variable" in the comments).

    Therefore, 'nested specifier' completions should only be added from cache
    when the context is CCC_SymbolOrNewName (which roughly seems to indicate
    that a nested name specifier is allowed).

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

    Reviewers: kadircet, sammccall

    Reviewed By: kadircet, sammccall

    Subscribers: arphaman, nik, sammccall, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64918 — ibiryukov / ViewSVN
  12. [CMake] Don't set Python_ADDITIONAL_VERSIONS

    Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
    Python support to 2.7. Now that both LLVM and LLDB both support Python
    3, there's no longer a need to put an arbitrary limit on this.

    However, instead of removing the variable, r365692 expanded the list,
    which has the (presumably unintentional) side-effect of expression
    preference for Python 3.

    Instead, as Michal proposed in the original code review, we should just
    not set the list at all, and let CMake pick whatever Python interpreter
    you have in your path.

    This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
    clang and lld. I've also updated the docs with the default behavior and
    how to force a different Python version to be used.

    Differential revision: https://reviews.llvm.org/D64894 — Jonas Devlieghere / ViewSVN
  13. [clangd] Suppress unwritten scopes when expanding auto.

    Summary: otherwise the replacement will break the code.

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64627 — hokein / ViewSVN
  14. Revert "[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame."

    This reverts commit 17e3cbf5fe656483d9016d0ba9e1d0cd8629379e. — hsiangkai / ViewSVN
  15. [clangd] Disable DumpRecordLayout by default per https://bugs.llvm.org/show_bug.cgi?id=42670 — sammccall / ViewSVN
  16. [DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.

    It is necessary to generate fixups in .debug_frame or .eh_frame as
    relaxation is enabled due to the address delta may be changed after
    relaxation.

    There is an opcode with 6-bits data in debug frame encoding. So, we
    also need 6-bits fixup types.

    Differential Revision: https://reviews.llvm.org/D58335 — hsiangkai / ViewSVN
  17. [X86] EltsFromConsecutiveLoads - support common source loads

    This patch enables us to find the source loads for each element, splitting them into a Load and ByteOffset, and attempts to recognise consecutive loads that are in fact from the same source load.

    A helper function, findEltLoadSrc, recurses to find a LoadSDNode and determines the element's byte offset within it. When attempting to match consecutive loads, byte offsetted loads then attempt to matched against a previous load that has already been confirmed to be a consecutive match.

    Next step towards PR16739 - after this we just need to account for shuffling/repeated elements to create a vector load + shuffle.

    Differential Revision: https://reviews.llvm.org/D64551 — rksimon / ViewSVN
  18. [analyzer] Add CTU user docs

    Reviewers: dkrupp, a_sidorin, Szelethus, NoQ

    Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, gamesh411, Charusso, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64801 — martong / ViewSVN
  19. [OPENMP][NVPTX]Mark barrier functions calls as convergent.

    Added convergent attribute to the barrier functions calls for correct
    optimizations. — abataev / ViewSVN
  20. Restrict asan + dlopen testcase to x86 — serge_sans_paille / ViewSVN
  21. [DAGCombine] Pull getSubVectorSrc helper out of narrowInsertExtractVectorBinOp. NFCI.

    NFC step towards reusing this in other EXTRACT_SUBVECTOR combines. — rksimon / ViewSVN
  22. [FileCheck] Fix numeric variable redefinition

    Summary:
    Commit r365249 changed usage of FileCheckNumericVariable to have one
    instance of that class per variable as opposed to one instance per
    definition of a given variable as was done before. However, it retained
    the safety check in setValue that it should only be called with the
    variable unset, even after r365625.

    However this causes assert failure when a non-pseudo variable is being
    redefined. And while redefinition of @LINE at each CHECK line work in
    the general case, it caused problem when a substitution failed (fixed in
    r365624) and still causes problem when a CHECK line does not match since
    @LINE's value is cleared after substitutions in match() happened but
    printSubstitutions also attempts a substitution.

    This commit solves the root of the problem by changing setValue to set a
    new value regardless of whether a value was set or not, thus fixing all
    the aforementioned issues.

    Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

    Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64882 — thopre / ViewSVN
  23. Relax regexp to detect failed interception by asan

    This should fix failed detection on aarch64/ppc64/thumbv8... — serge_sans_paille / ViewSVN
  24. [x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483)

    LEA doesn't affect flags, so use it more liberally to replace an ADD when
    we know that the ADD operands affect flags.

    In the motivating example from PR40483:
    https://bugs.llvm.org/show_bug.cgi?id=40483
    ...this lets us avoid duplicating a math op just to avoid flag conflict.

    As mentioned in the TODO comments, this heuristic can be extended to
    fire more often if that leads to more improvements.

    Differential Revision: https://reviews.llvm.org/D64707 — spatel / ViewSVN
  25. [llvm-readelf] - Remove the precompiled binary from gnu-hash-symbols.test

    I am working on https://bugs.llvm.org/show_bug.cgi?id=42622
    and this patch reworks the gnu-hash-symbols.test so that it
    will be easier to expand it with x86_64 case.

    Differential revision: https://reviews.llvm.org/D64750 — grimar / ViewSVN
  26. Revert r366422: [OpenCL] Improve destructor support in C++ for OpenCL

    Reason: this commit causes crashes in the clang compiler when building
    LLVM Support with libc++, see https://bugs.llvm.org/show_bug.cgi?id=42665
    for details. — ibiryukov / ViewSVN
  27. Bump the trunk version to 10.0.0svn

    and clear the release notes. — hans / ViewSVN
  28. [ARM][DAGCOMBINE][FIX] PerformVMOVRRDCombine

    Summary:
    PerformVMOVRRDCombine ommits adding a offset
    of 4 to the PointerInfo, when converting a
    f64 = load[M]
    to
    {i32, i32} = {load[M], load[M + 4]}

    Which would allow the machine scheduller
    to break dependencies with the second load.

    - pr42638

    Reviewers: eli.friedman, dmgreen, ostannard

    Reviewed By: ostannard

    Subscribers: ostannard, javed.absar, kristof.beyls, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64870 — dnsampaio / ViewSVN
  29. [OpenCL] Improve destructor support in C++ for OpenCL

    Summary:
    This patch does mainly three things:
    1. It fixes a false positive error detection in Sema that is similar to
        D62156. The error happens when explicitly calling an overloaded
        destructor for different address spaces.
    2. It selects the correct destructor when multiple overloads for
        address spaces are available.
    3. It inserts the expected address space cast when invoking a
        destructor, if needed, and therefore fixes a crash due to the unmet
        assertion in llvm::CastInst::Create.

    The following is a reproducer of the three issues:

        struct MyType {
          ~MyType() {}
          ~MyType() __constant {}
        };

        __constant MyType myGlobal{};

        kernel void foo() {
          myGlobal.~MyType(); // 1 and 2.
          // 1. error: cannot initialize object parameter of type
          //    '__generic MyType' with an expression of type '__constant MyType'
          // 2. error: no matching member function for call to '~MyType'
        }

        kernel void bar() {
          // 3. The implicit call to the destructor crashes due to:
          //    Assertion `castIsValid(op, S, Ty) && "Invalid cast!"' failed.
          //    in llvm::CastInst::Create.
          MyType myLocal;
        }

    The added test depends on D62413 and covers a few more things than the
    above reproducer.

    Subscribers: yaxunl, Anastasia, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64569 — mantognini / ViewSVN
  30. [OpenCL] Update comments/diagnostics to refer to C++ for OpenCL

    Clang doesn't implement OpenCL C++, change the comments to
    reflect that.

    Differential Revision: https://reviews.llvm.org/D64867 — stulova / ViewSVN
  31. [clangd] Added highlightings for template parameters and specializations.

    Summary: Template parameters and specializations were not being highlighted before. This adds highlightings to those types of tokens by adding two Visit* methods.

    Reviewers: hokein, sammccall, ilya-biryukov

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64855 — jvikstrom / ViewSVN
  32. [SCEV] add no wrap flag for SCEVAddExpr.
    Differential Revision: https://reviews.llvm.org/D64868 — shchenz / ViewSVN
  33. [OpenCL][PR42033] Fix addr space deduction with template parameters

    If dependent types appear in pointers or references we allow addr
    space deduction because the addr space in template argument will
    belong to the pointee and not the pointer or reference itself.

    We also don't diagnose addr space on a function return type after
    template instantiation. If any addr space for the return type was
    provided on a template parameter this will be diagnosed during the
    parsing of template definition.

    Differential Revision: https://reviews.llvm.org/D62584 — stulova / ViewSVN
  34. Fix asan infinite loop on undefined symbol

    Fix llvm#39641

    Differential Revision: https://reviews.llvm.org/D63877 — serge_sans_paille / ViewSVN
  35. [RISCV] Reset NoPHIS MachineFunctionProperty in emitSelectPseudo

    We insered PHIS were there were none before, so the property must be
    reset. This error was found on an EXPENSIVE_CHECKS build. — asb / ViewSVN
  36. [LoopInfo] Use early return in branch weight update functions. NFC. — skatkov / ViewSVN
  37. [RISCV][DebugInfo] Fix dwarf-riscv-relocs.ll test on Windows

    Windows sees DW_AT_decl_file (".\dwarf-riscv-relocs.c") while Linux sees
    DW_AT_decl_file ("./dwarf-riscv-relocs.c").

    This fixes a failure introduced in rL366402. — asb / ViewSVN
  38. [CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528

    Summary:
    The problem is the default LoadExternal with no completer, which happens when
    loading global results.

    Reviewers: ilya-biryukov, nik

    Subscribers: arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64864 — sammccall / ViewSVN
  39. clang-tidy release notes: Split and order changes by type

    Patch by Eugene Zelenko! — hans / ViewSVN
  40. [NFC][PowerPC] Add the test to test the pass block-placement — zhangkang / ViewSVN
  41. [PowerPC][Clang] Remove use of malloc in mm_malloc

    Remove dependency of malloc in implementation of mm_malloc function in PowerPC
    intrinsics and alignment assumption on glibc.

    Reviewed By: Hal Finkel

    Differential Revision: https://reviews.llvm.org/D64850 — chaofan / ViewSVN
  42. [X86] Disable combineConcatVectors for vXi1 vectors.

    I'm not convinced the code this calls is properly vetted for
    vXi1 vectors. Experimental vector widening legalization testing
    for D55251 is now hitting an assertion failure inside
    EltsFromConsecutiveLoads. This is occurring from a v2i1 load
    having a store size different than its VT size. Hopefully
    this commit will keep such issues from happening. — ctopper / ViewSVN
  43. Fix typo in programmer's manual cantFile -> cantFail — lanza / ViewSVN
  44. [DWARF][RISCV] Add support for RISC-V relocations needed for debug info

    When code relaxation is enabled many RISC-V fixups are not resolved but
    instead relocations are emitted. This happens even for DWARF debug
    sections. Therefore, to properly support the parsing of DWARF debug info
    we need to be able to resolve RISC-V relocations. This patch adds:

    * Support for RISC-V relocations in RelocationResolver
    * DWARF support for two relocations per object file offset
    * DWARF changes to support relocations in more DIE fields

    The two relocations per offset change is needed because some RISC-V
    relocations (used for label differences) come in pairs.

    Relocations can also be emitted for DWARF fields where relocations were
    not yet evaluated. Adding relocation support for some of these fields is
    essencial. On the other hand, LLVM currently emits RISC-V relocations
    for fixups that could be safely evaluated, since they can never be
    affected by code relaxations. This patch also adds relocation support
    for the fields affected by those extraneous relocations (the DWARF unit
    entry Length, and the DWARF debug line entry TotalLength and
    PrologueLength), for testing purposes.

    Differential Revision: https://reviews.llvm.org/D62062
    Patch by Luís Marques. — asb / ViewSVN
  45. [clangd] Fix Fix -Wunused-lambda-capture after r366339 — maskray / ViewSVN
  46. [RISCV] Re-land r366331 d RISCV to LLVM_ALL_TARGETS

    *San flagged issues should be now be addressed. — asb / ViewSVN
  47. [RISCV] Avoid signed integer overflow UB in RISCVMatInt::generateInstSeq

    Found by UBSan. — asb / ViewSVN
  48. [RISCV] Don't acccess an invalidated iterator in RISCVInstrInfo::removeBranch

    Issue found by ASan. — asb / ViewSVN

rL:366375 - C:366368 - #58089 (Jul 17, 2019 2:34:05 PM)

  1. Speculative fix for stack-tagging.ll failure.

    Depending on the evaluation order of function call arguments,
    the current code may insert a use before def. — eugenis / ViewSVN
  2. [Attributor][NFC] Remove unnecessary debug output — uenoku / ViewSVN
  3. Adding inline comments to code view type record directives for better readability — nilanjana_basu / ViewSVN

rL:366361 - C:366357 - #58086 (Jul 17, 2019 12:45:52 PM)

  1. Basic MTE stack tagging instrumentation.

    Summary:
    Use MTE intrinsics to tag stack variables in functions with
    sanitize_memtag attribute.

    Reviewers: pcc, vitalybuka, hctim, ostannard

    Subscribers: srhines, mgorny, javed.absar, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64173 — eugenis / ViewSVN
  2. Basic codegen for MTE stack tagging.

    Implement IR intrinsics for stack tagging. Generated code is very
    unoptimized for now.

    Two special intrinsics, llvm.aarch64.irg.sp and llvm.aarch64.tagp are
    used to implement a tagged stack frame pointer in a virtual register.

    Differential Revision: https://reviews.llvm.org/D64172 — eugenis / ViewSVN

rL:366355 - C:366357 - #58085 (Jul 17, 2019 12:09:25 PM)

  1. [libc++] XFAIL a test that does not behave properly on older Clang

    rdar://53015486 — Louis Dionne / ViewSVN

rL:366348 - C:366336 - #58082 (Jul 17, 2019 10:16:23 AM)

  1. [clang-tidy] Fix crash on end location inside macro

    Summary:
    Lexer::getLocForEndOfToken is defined to return an
    invalid location if the given location is inside a macro.
    Other checks conditionally warn based off location
    validity. Updating this check to do the same.

    Reviewers: JonasToth, aaron.ballman, nickdesaulniers

    Reviewed By: nickdesaulniers

    Subscribers: lebedev.ri, nickdesaulniers, xazax.hun, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64607 — nathan-huckleberry / ViewSVN
  2. [AMDGPU] Tune inlining parameters for AMDGPU target

    Summary:
    Since the target has no significant advantage of vectorization,
    vector instructions bous threshold bonus should be optional.

    amdgpu-inline-arg-alloca-cost parameter default value and the target
    InliningThresholdMultiplier value tuned then respectively.

    Reviewers: arsenm, rampitec

    Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, eraman, hiraditya, haicheng, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64642 — dfukalov / ViewSVN
  3. [ORC] Add deprecation warnings to ORCv1 layers and utilities.

    Summary:
    ORCv1 is deprecated. The current aim is to remove it before the LLVM 10.0
    release. This patch adds deprecation attributes to the ORCv1 layers and
    utilities to warn clients of the change.

    Reviewers: dblaikie, sgraenitz, AlexDenisov

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64609 — Lang Hames / ViewSVN
  4. [RISCV] Revert r366331 as it exposed some sanitizer failures

    See <http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/33612>. — asb / ViewSVN
  5. [ASan] Support `{f}puts(NULL)` on Darwin

    On Darwin, the man page states that "both fputs() and puts() print
    `(null)' if str is NULL."

    rdar://48227136

    Reviewed By: Lekensteyn

    Differential Revision: https://reviews.llvm.org/D64773 — yln / ViewSVN
  6. AMDGPU: Use getTargetConstant

    Avoids creating an extra intermediate mov. — arsenm / ViewSVN

rL:366335 - C:366336 - #58081 (Jul 17, 2019 8:39:09 AM)

  1. Fix MSVC 'implicitly capture' compile error. NFCI. — rksimon / ViewSVN
  2. [clangd] Type hierarchy: don't resolve parents if the client only asked for children

    Summary: Also reorganize the code for computing supertypes to make it more symmetric to subtypes.

    Reviewers: kadircet

    Reviewed By: kadircet

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64613 — nridge / ViewSVN
  3. [clang-tidy] Adjust location of namespace comment diagnostic

    Summary:
    If there is no comment, place it at the closing brace of a namespace
    definition. Previously it was placed at the next character after the
    closing brace.

    The new position produces a better location for highlighting in clangd
    and does not seem to make matters worse for clang-tidy.

    Reviewers: alexfh, hokein

    Reviewed By: alexfh, hokein

    Subscribers: xazax.hun, kadircet, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64861 — ibiryukov / ViewSVN
  4. [OPENMP]Fix crash in LoopCounterRefChecker when MemberExpr is not Var or Field

    checkDecl is only valid for VarDecls or FieldDecls, since getCanonicalDecl
    expects only these. Prevent other Decl kinds (such as CXXMethodDecls and
    EnumConstantDecls) from entering and asserting.

    Differential Revision: https://reviews.llvm.org/D64842 — mikerice / ViewSVN
  5. [Attributor] Deduce "willreturn" function attribute

    Summary:
    Deduce the "willreturn" attribute for functions.

    For now, intrinsics are not willreturn. More annotation will be done in another patch.

    Reviewers: jdoerfert

    Subscribers: jvesely, nhaehnle, nicholas, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D63046 — uenoku / ViewSVN
  6. [llvm-ar][test] Add tests failing on Darwin

    These tests that failed on Darwin but passed on other machines due to the default archive format differing
    on a Darwin machine, and what looks to be bugs in the output of this format.
    I can not investigate these issue further so the tests are considered expected failures on Darwin.

    Differential Revision: https://reviews.llvm.org/D64802 — gbreynoo / ViewSVN

rL:366331 - C:366332 - #58080 (Jul 17, 2019 7:49:16 AM)

  1. [ASTImporter] Fix structural eq of lambdas

    Summary:
    The structural equivalence check reported false eq between lambda classes
    with different parameters in their call signature.
    The solution is to check the methods for equality too in case of lambda
    classes.

    Reviewers: a_sidorin, a.sidorin

    Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64075 — martong / ViewSVN
  2. [RISCV] Add RISCV to LLVM_ALL_TARGETS so it s built by default

    This follows the RFC <http://lists.llvm.org/pipermail/llvm-dev/2019-July/133724.html>.

    Follow-on commits will add appropriate release notes changes etc.

    Pushing this now and in a minimal form so there is reasonable time before 9.0
    branches to resolve any issues arising from e.g. the backend being exposed on
    different sanitizer setups.

    The current builder for RISC-V is on the staging build-bot
    <http://lab.llvm.org:8014/builders/llvm-riscv-linux>, however with the RISCV
    backend being built by default it won't provide any real additional coverage.
    We will shortly set up a builder that runs the test-suite in qemu-user. — asb / ViewSVN
  3. [RISCV][NFC] Remove outdated TODO from test/CodeGen/RISCV/dwarf-eh.ll — asb / ViewSVN
  4. [AsmPrinter] Make the encoding of call sites in .gcc_except_table configurable and use for RISC-V

    The original behavior was to always emit the offsets to each call site in the
    call site table as uleb128 values, however on some architectures (eg RISCV)
    these uleb128 offsets into the code cannot always be resolved until link time
    (because relaxation will invalidate any calculated offsets), and there are no
    appropriate relocations for uleb128 values. As a consequence it needs to be
    possible to specify an alternative.

    This also switches RISCV to use DW_EH_PE_udata4 for call side encodings in
    .gcc_except_table

    Differential Revision: https://reviews.llvm.org/D63415
    Patch by Edward Jones. — asb / ViewSVN
  5. Mips: Remove immarg from copy and insert intrinsics

    These intrinsics do in fact work with non-constant index arguments.

    These are lowered to either the generic
    ISD::INSERT_VECTOR_ELT/ISD::EXTRACT_VECTOR_ELT, or to
    VEXTRACT_SEXT_ELT. The handling of these all accept variable
    indexes. Turning these into generic instructions which do allow
    variables introduces complications in a future change to immarg
    handling.

    Since these just turn into generic instructions, these are kind of
    pointless and should probably just be autoupgraded to
    extractelement/insertelement. — arsenm / ViewSVN
  6. [RISCV] Set correct encodings for DWARF exception handling

    This patch sets correct encodings for DWARF exception handling for RISC-V
    (other than call site encoding, which must be udata4 rather than uleb128 and
    is handled by D63415).

    This has the same intend as D63409, except this version matches GCC/binutils
    behaviour which uses the same encodings regardless of PIC/non-PIC and
    medlow/medany code model. — asb / ViewSVN
  7. [RISCV][NFC] Add tests that capture current encodings for DWARF EH

    Items which are known to be wrong/different vs GCC are marked as TODO and will
    be address in follow-up patches. — asb / ViewSVN
  8. [ASTImporter] Fix LLDB lookup in transparent ctx and with ext src

    Summary:
    With LLDB we use localUncachedLookup(), however, that fails to find
    Decls when a transparent context is involved and the given DC has
    external lexical storage.  The solution is to use noload_lookup, which
    works well with transparent contexts.  But, we cannot use only the
    noload_lookup since the slow case of localUncachedLookup is still needed
    in some other cases.

    These other cases are handled in ASTImporterLookupTable, but we cannot
    use that with LLDB since that traverses through the AST which initiates
    the load of external decls again via DC::decls().

    We must avoid loading external decls during the import becuase
    ExternalASTSource is implemented with ASTImporter, so external loads
    during import results in uncontrolled and faulty import.

    Reviewers: shafik, teemperor, jingham, clayborg, a_sidorin, a.sidorin

    Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits, lldb-commits

    Tags: #clang, #lldb

    Differential Revision: https://reviews.llvm.org/D61333 — martong / ViewSVN
  9. [llvm-ar][test] \r\n -> \n

    Also simplify some empty output tests with 'count 0' — maskray / ViewSVN
  10. [AMDGPU] Optimize atomic AND/OR/XOR

    Summary: Extend the atomic optimizer to handle AND, OR and XOR.

    Reviewers: arsenm, sheredom

    Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, jfb, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64809 — foad / ViewSVN

rL:366322 - C:366322 - #58079 (Jul 17, 2019 6:32:03 AM)

  1. [AArch64] Add support for Transactional Memory Extension (TME)

    TME is a future architecture technology, documented in

    https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools
    https://developer.arm.com/docs/ddi0601/a

    More about the future architectures:

    https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/new-technologies-for-the-arm-a-profile-architecture

    This patch adds support for the TME instructions TSTART, TTEST, TCOMMIT, and
    TCANCEL and the target feature/arch extension "tme".

    It also implements TME builtin functions, defined in ACLE Q2 2019
    (https://developer.arm.com/docs/101028/latest)

    Patch by Javed Absar and Momchil Velikov

    Differential Revision: https://reviews.llvm.org/D64416 — chill / ViewSVN
  2. [clangd] Force the required interpretation of #import on windows tests.

    Summary: NFC but should fix a bunch of tests.

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64857 — sammccall / ViewSVN

rL:366319 - C:366315 - #58078 (Jul 17, 2019 5:51:34 AM)

  1. [clangd] Handle windows line endings in QueryDriver

    Summary: fixes second case of https://github.com/clangd/clangd/issues/93

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64789 — kadircet / ViewSVN
  2. PowerPC: Fix register spilling for SPE registers

    Summary:
    Missed in the original commit, use the correct callee-saved register
    list for spilling, instead of the standard SVR432 list.  This avoids
    needlessly spilling the SPE non-volatile registers when they're not used.

    As part of this, also add where missing, and sort, the spill opcode
    checks for SPE and SPE4 register classes.

    Reviewers: nemanjai, hfinkel, joerg

    Subscribers: kbarton, jsji, llvm-commits

    Differential Revision: https://reviews.llvm.org/D56703 — jhibbits / ViewSVN
  3. PowerPC/SPE: Fix load/store handling for SPE

    Summary:
    Pointed out in a comment for D49754, register spilling will currently
    spill SPE registers at almost any offset.  However, the instructions
    `evstdd` and `evldd` require a) 8-byte alignment, and b) a limit of 256
    (unsigned) bytes from the base register, as the offset must fix into a
    5-bit offset, which ranges from 0-31 (indexed in double-words).

    The update to the register spill test is taken partially from the test
    case shown in D49754.

    Additionally, pointed out by Kei Thomsen, globals will currently use
    evldd/evstdd, though the offset isn't known at compile time, so may
    exceed the 8-bit (unsigned) offset permitted.  This fixes that as well,
    by forcing it to always use evlddx/evstddx when accessing globals.

    Part of the patch contributed by Kei Thomsen.

    Reviewers: nemanjai, hfinkel, joerg

    Subscribers: kbarton, jsji, llvm-commits

    Differential Revision: https://reviews.llvm.org/D54409 — jhibbits / ViewSVN
  4. [MIPS GlobalISel] ClampScalar and select pointer G_ICMP

    Add narrowScalar to half of original size for G_ICMP.
    ClampScalar G_ICMP's operands 2 and 3 to to s32.
    Select G_ICMP for pointers for MIPS32. Pointer compare is same
    as for integers, it is enough to declare them as legal type.

    Differential Revision: https://reviews.llvm.org/D64856 — petar.avramovic / ViewSVN

rL:366314 - C:366315 - #58077 (Jul 17, 2019 4:51:00 AM)

  1. [AArch64] Consistent types and naming for AArch64 target features (NFC)

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

    Committed as obvious. — chill / ViewSVN
  2. AMDGPU/GFX10: Apply the VMEM-to-scalar-write hazard also to writes to EXEC

    Summary: Change-Id: I854fbf7d48e937bef9f8f3f5d0c8aeb970652630

    Reviewers: rampitec, mareko

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

    Tags: #llvm

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

    Change-Id: I4405b3a7f84186acea5a78d291bff71056e745fc — nha / ViewSVN
  3. AMDGPU: Improve alias analysis for GDS

    Summary: GDS cannot alias anything else.

    Original patch by: Marek Olšák

    Reviewers: arsenm, mareko

    Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, Petar.Avramovic, llvm-commits

    Tags: #llvm

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

    Change-Id: I07bfbd96f5d5c37a6dfba7997df12f291dd794b0 — nha / ViewSVN
  4. [TableGen] Do not set ReadNone attribute on intrinsics with side effects

    If an intrinsic is defined without outputs, but having side effects,
    it still can be removed completely from the program. This patch makes
    TableGen not set Attribute::ReadNone for intrinsics which
    are declared with IntrHasSideEffects.

    Differential Revision: https://reviews.llvm.org/D64414 — chill / ViewSVN

rL:366308 - C:366306 - #58075 (Jul 17, 2019 3:07:37 AM)

  1. [clangd] Fix error message in tweaktests to be useful. NFC — sammccall / ViewSVN
  2. monorepo_build.py: Update artifact name

    Incorporate the git sha and a sequentially increasing number (which can be
    generated using "git describe" and an annotated tag). — Azharuddin Mohammed / ViewSVN
  3. [ARM GlobalISel] Cleanup CallLowering. NFC

    Migrate CallLowering::lowerReturnVal to use the same infrastructure as
    lowerCall/FormalArguments and remove the now obsolete code path from
    splitToValueTypes.

    Forgot to push this earlier. — rovka / ViewSVN

rL:366303 - C:366306 - #58074 (Jul 17, 2019 2:05:41 AM)

  1. [OpenCL][Sema] Minor refactoring and constraint checking

    Summary:
    Simplify code a bit and add assertion to address post-landing comments
    from D64083.

    Subscribers: yaxunl, Anastasia, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64804 — mantognini / ViewSVN
  2. [Driver] Enable __cxa_atexit on Solaris

    Starting with Solaris 11.4 (which is now the required minimal version), Solaris does
    support __cxa_atexit.  This patch reflects that.

    One might consider removing the affected tests altogether instead of inverting them,
    as is done on other targets.

    Besides, this lets two ASan tests PASS:

      AddressSanitizer-i386-sunos :: TestCases/init-order-atexit.cc
      AddressSanitizer-i386-sunos-dynamic :: TestCases/init-order-atexit.cc

    Tested on x86_64-pc-solaris2.11 and sparcv9-sun-solaris2.11.

    Differential Revision: https://reviews.llvm.org/D64491 — ro / ViewSVN
  3. Replace CRLF with LF. — ruiu / ViewSVN

rL:366303 - C:366286 - #58073 (Jul 17, 2019 1:19:54 AM)

  1. [mips] Remove redundant test case. NFC

    The `inlineasm-constraint-reg64.ll` test checks the same functionality. — atanasyan / ViewSVN
  2. [mips] Name inline asm constraint test cases in a uniform manner. NFC — atanasyan / ViewSVN
  3. [mips] Use mult/mflo pattern on 64-bit targets prior to MIPS64

    The `MUL` instruction is available starting from the MIPS32/MIPS64 targets. — atanasyan / ViewSVN
  4. [mips] Implement .cplocal directive

    This directive forces to use the alternate register for context pointer.
    For example, this code:
      .cplocal $4
      jal foo
    expands to:
      ld    $25, %call16(foo)($4)
      jalr  $25

    Differential Revision: https://reviews.llvm.org/D64743 — atanasyan / ViewSVN
  5. [mips] Support the "o" inline asm constraint

    As well as other LLVM targets we do not handle "offsettable"
    memory addresses in any special way. In other words, the "o" constraint
    is an exact equivalent of the "m" one. But some existing code require
    the "o" constraint support.

    This fixes PR42589.

    Differential Revision: https://reviews.llvm.org/D64792 — atanasyan / ViewSVN
  6. Reland "[zorg] Add a new build script for use with monorepo"

    Summary:
    monorepo-build.py is similar in functionality to the current build.py, but
    with changes to make it work with the monorepo.

    Differential Revision: https://reviews.llvm.org/D64028 — Azharuddin Mohammed / ViewSVN
  7. Revert "[zorg] Add a new build script for use with monorepo"

    This reverts commit c842a5a3fa0d0d7d00e206c47d58fba7288111d1 (r365440). — azharudd / ViewSVN

rL:366294 - C:366286 - #58072 (Jul 17, 2019 12:47:37 AM)

  1. Fix typo

    Buiilds -> Builds — Azharuddin Mohammed / ViewSVN

rL:366294 - C:366286 - #58071 (Jul 17, 2019 12:12:35 AM)

  1. [LoopInfo] Fix getUniqueNonLatchExitBlocks

    It is possible that exit block has two predecessors and one of them is a latch
    block while another is not.

    Current algorithm is based on the assumption that all exits are dedicated
    and therefore we can check only first predecessor of loop exit to find all unique
    exits.

    However if we do not consider latch block and it is first predecessor of some
    exit then this exit will be found.

    Regression test is added.

    As a side effect of algorithm re-writing, the restriction that all exits are dedicated
    is eliminated.

    Reviewers: reames, fhahn, efriedma
    Reviewed By: efriedma
    Subscribers: llvm-commits
    Differential Revision: https://reviews.llvm.org/D64787 — skatkov / ViewSVN

rL:366291 - C:366286 - #58070 (Jul 17, 2019 12:07:37 AM)

  1. Update email address. — chaofan / ViewSVN

rL:366289 - C:366286 - #58069 (Jul 16, 2019 6:27:39 PM)

  1. gn build: Merge r366265 — nico / ViewSVN

rL:366288 - C:366286 - #58068 (Jul 16, 2019 6:22:39 PM)

  1. gn build: Merge r366216 — nico / ViewSVN

rL:366283 - C:366286 - #58067 (Jul 16, 2019 5:07:35 PM)

  1. AMDGPU: Add some missing builtins — arsenm / ViewSVN

rL:366283 - C:366284 - #58066 (Jul 16, 2019 4:47:37 PM)

  1. Fix OpenCLCXX test on 32-bit Windows where thiscall is present — rnk / ViewSVN
  2. [AMDGPU] Autogenerate register asm names

    Differential Revision: https://reviews.llvm.org/D64839 — rampitec / ViewSVN

rL:366280 - C:366282 - #58065 (Jul 16, 2019 4:42:38 PM)

  1. Fix darwin-ld.c if dsymutil.exe exists on PATH — rnk / ViewSVN

rL:366280 - C:366276 - #58064 (Jul 16, 2019 3:50:52 PM)

  1. ARM: Fix missing immarg for space intrinsic — arsenm / ViewSVN
  2. GlobalISel: Add overload of handleAssignments with CCState

    AMDGPU needs to allocate special argument registers separately from
    the user function argument list, so needs direct control over the
    CCState.

    The ArgLocs argument is only really necessary because CCState doesn't
    allow access to it. — arsenm / ViewSVN
  3. [TableGen] Generate offsets into a flat array for getOperandType

    Rather than an array of std::initializer_list, generate a table of
    offsets and a flat array of the operands for getOperandType. This is a
    bit more efficient on platforms that don't manage to get the array of
    inintializer_lists initialized at link time (I'm looking at you
    macOS). It's also quite quite a bit faster to compile. — Justin Bogner / ViewSVN
  4. Fix a typo in target features

    There was a slight typo in r364352 that ended up causing our backend to
    complain on some x86 Android builds. This CL fixes that.

    Differential Revision: https://reviews.llvm.org/D64781 — George Burgess IV / ViewSVN

rL:366275 - C:366272 - #58063 (Jul 16, 2019 3:30:35 PM)

  1. [WebAssembly] Compile all TLS on Emscripten as local-exec

    Summary:
    Currently, on Emscripten, dynamic linking is not supported with threads.
    This means that if thread-local storage is used, it must be used in a
    statically-linked executable. Hence, local-exec is the only possible model.

    This diff compiles all TLS variables to use local-exec on Emscripten as a
    temporary measure until dynamic linking is supported with threads.

    The goal for this is to allow C++ types with constructors to be thread-local.

    Currently, when `clang` compiles a `thread_local` variable with a constructor,
    it generates `__tls_guard` variable:

        @__tls_guard = internal thread_local global i8 0, align 1

    As no TLS model is specified, this is treated as general-dynamic, which we do
    not support (and cannot support without implementing dynamic linking support
    with threads in Emscripten). As a result, any C++ constructor in `thread_local`
    variables would not compile.

    By compiling all `thread_local` as local-exec, `__tls_guard` will compile and
    we can support C++ constructors with TLS without implementing dynamic linking
    with threads.

    Depends on D64537

    Reviewers: tlively, aheejin, sbc100

    Reviewed By: aheejin

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64776 — quantum / ViewSVN

rL:366274 - C:366272 - #58062 (Jul 16, 2019 3:12:25 PM)

  1. [TableGen] Add "getOperandType" to get operand types from opcode/opidx

    The InstrInfoEmitter outputs an enum called "OperandType" which gives
    numerical IDs to each operand type. This patch makes use of this enum
    to define a function called "getOperandType", which allows looking up
    the type of an operand given its opcode and operand index.

    Patch by Nicolas Guillemot. Thanks!

    Differential Revision: https://reviews.llvm.org/D63320 — Justin Bogner / ViewSVN
  2. [WebAssembly] Implement thread-local storage (local-exec model)

    Summary:
    Thread local variables are placed inside a `.tdata` segment. Their symbols are
    offsets from the start of the segment. The address of a thread local variable
    is computed as `__tls_base` + the offset from the start of the segment.

    `.tdata` segment is a passive segment and `memory.init` is used once per thread
    to initialize the thread local storage.

    `__tls_base` is a wasm global. Since each thread has its own wasm instance,
    it is effectively thread local. Currently, `__tls_base` must be initialized
    at thread startup, and so cannot be used with dynamic libraries.

    `__tls_base` is to be initialized with a new linker-synthesized function,
    `__wasm_init_tls`, which takes as an argument a block of memory to use as the
    storage for thread locals. It then initializes the block of memory and sets
    `__tls_base`. As `__wasm_init_tls` will handle the memory initialization,
    the memory does not have to be zeroed.

    To help allocating memory for thread-local storage, a new compiler intrinsic
    is introduced: `__builtin_wasm_tls_size()`. This instrinsic function returns
    the size of the thread-local storage for the current function.

    The expected usage is to run something like the following upon thread startup:

        __wasm_init_tls(malloc(__builtin_wasm_tls_size()));

    Reviewers: tlively, aheejin, kripken, sbc100

    Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, jfb, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D64537 — quantum / ViewSVN
  3. AMDGPU: Partially revert r366250

    GCCBuiltin doesn't work for these, because they have a mangled type
    (although they arguably should not). — arsenm / ViewSVN
  4. [ORC][docs] Fix an RST error: the code-block directive needs a newline after it. — Lang Hames / ViewSVN
  5. [ORC][docs] Trim ORCv1 to ORCv2 transition section, add a how-to section. — Lang Hames / ViewSVN
  6. [x86] use more phadd for reductions

    This is part of what is requested by PR42023:
    https://bugs.llvm.org/show_bug.cgi?id=42023

    There's an extension needed for FP add, but exactly how we would specify
    that using flags is not clear to me, so I left that as a TODO.
    We're still missing patterns for partial reductions when the input vector
    is 256-bit or 512-bit, but I think that's a failure of vector narrowing.
    If we can reduce the widths, then this matching should work on those tests.

    Differential Revision: https://reviews.llvm.org/D64760 — spatel / ViewSVN
  7. [clang-format] Don't detect call to ObjC class method as C++11 attribute specifier

    Summary:
    Previously, clang-format detected something like the following as a C++11 attribute specifier.

      @[[NSArray class]]

    instead of an array with an Objective-C method call inside. In general, when the attribute specifier checking runs, if it sees 2 identifiers in a row, it decides that the square brackets represent an Objective-C method call. However, here, `class` is tokenized as a keyword instead of an identifier, so this check fails.

    To fix this, the attribute specifier first checks whether the first square bracket has an "@" before it. If it does, then that square bracket is not the start of a attribute specifier because it is an Objective-C array literal. (The assumption is that @[[.*]] is not valid C/C++.)

    Contributed by rkgibson2.

    Reviewers: benhamilton

    Reviewed By: benhamilton

    Subscribers: aaron.ballman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64632 — benhamilton / ViewSVN

rL:366264 - C:366231 - #58061 (Jul 16, 2019 2:22:40 PM)

  1. [clang-tidy] initial version of readability-convert-member-functions-to-static

    Summary:
    Finds non-static member functions that can be made ``static``.

    I have run this check (repeatedly) over llvm-project. It made 1708 member functions
    ``static``. Out of those, I had to exclude 22 via ``NOLINT`` because their address
    was taken and stored in a variable of pointer-to-member type (e.g. passed to
    llvm::StringSwitch).
    It also made 243 member functions ``const``. (This is currently very conservative
    to have no false-positives and can hopefully be extended in the future.)

    You can find the results here: https://github.com/mgehre/llvm-project/commits/static_const_eval

    Reviewers: alexfh, aaron.ballman

    Subscribers: mgorny, xazax.hun, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61749 — mgehre / ViewSVN

rL:366264 - C:366231 - #58060 (Jul 16, 2019 2:17:37 PM)

  1. DWARF: Skip zero column for inline call sites

    D64033 <https://reviews.llvm.org/D64033> added DW_AT_call_column for
    inline sites. However, that change wasn't aware of "-gno-column-info".
    To avoid adding column info when "-gno-column-info" is used, now
    DW_AT_call_column is only added when we have non-zero column (when
    "-gno-column-info" is used, column will be zero).

    Patch by Wenlei He!

    Differential Revision: https://reviews.llvm.org/D64784 — dblaikie / ViewSVN
  2. [libcxx] Rejigger test for destroying delete feature-test macros

    In r361572, we introduced library support for C++20 destroying delete
    and decided to only define the library feature-test macro when the
    compiler supports the underlying language feature. This patch reworks
    the tests to mirror that. — Louis Dionne / ViewSVN

rL:366257 - C:366231 - #58059 (Jul 16, 2019 1:49:19 PM)

  1. [libc++] Add missing UNSUPPORTED for CTAD tests

    The tests for unordered_set and unordered_multiset were missing UNSUPPORTED
    markup for Apple Clang 9.1, which is still being used on some CI bots. — Louis Dionne / ViewSVN
  2. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.6

    Cleanup ARM64 assembly after removing unnecessary computation of mangled
    stack pointer in previous commit. — yln / ViewSVN
  3. AMDGPU/GlobalISel: Select G_ASHR — arsenm / ViewSVN
  4. AMDGPU/GlobalISel: Select G_LSHR — arsenm / ViewSVN
  5. [PowerPC][HTM] Fix impossible reg-to-reg copy assert with ttest builtin

    Summary:
    This is exposed by our internal testing.
    The reduced testcase will assert with "Impossible reg-to-reg copy"

    We can't use COPY to do 32-bit to 64-bit conversion.

    Reviewers: kbarton, hfinkel, nemanjai

    Reviewed By: hfinkel

    Subscribers: hiraditya, MaskRay, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64499 — jsji / ViewSVN
  6. AMDGPU/GlobalISel: Select G_SHL

    I think this manages to not break the DAG handling with the divergent
    predicates because the stadalone divergent patterns end up with a
    higher priority than the pattern on the instruction definition.

    The 16-bit versions don't work yet. — arsenm / ViewSVN
  7. [GWP-ASan] Add thread ID to PRNG seed.

    Summary:
    Adds thread ID to PRNG seed for increased entropy. In particular, this allows
    multiple runs in quick succession that will have different PRNG seeds, allowing
    for better demos/testing.

    Reviewers: kcc

    Reviewed By: kcc

    Subscribers: kubamracek, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D64453 — hctim / ViewSVN
  8. [AMDGPU] Change register type for v32 vectors

    When it is AReg_1024 this results in unnecessary copying into
    AGPRs of a 32 element vectors even though they are not intended
    for an mfma instruction.

    Differential Revision: https://reviews.llvm.org/D64815 — rampitec / ViewSVN

rL:366251 - C:366231 - #58058 (Jul 16, 2019 1:04:00 PM)

  1. Fix -Wreturn-type warning. NFC. — hliao / ViewSVN
  2. AMDGPU: Fix some missing GCCBuiltin declarations — arsenm / ViewSVN

rL:366249 - C:366231 - #58057 (Jul 16, 2019 12:36:37 PM)

  1. AMDGPU/GlobalISel: Fix selection of private stores — arsenm / ViewSVN

rL:366248 - C:366231 - #58056 (Jul 16, 2019 12:27:37 PM)

  1. AMDGPU/GlobalISel: Select private loads — arsenm / ViewSVN

rL:366246 - C:366231 - #58055 (Jul 16, 2019 11:49:26 AM)

  1. AMDGPU/GlobalISel: Select flat stores — arsenm / ViewSVN
  2. AMDGPU: Add register classes to flat store patterns

    For some reason GlobalISelEmitter needs register classes to import
    these, although it works for the load patterns. — arsenm / ViewSVN
  3. [IndVars] Speculative fix for an assertion failure seen in bots

    I don't have an IR sample which is actually failing, but the issue described in the comment is theoretically possible, and should be guarded against even if there's a different root cause for the bot failures. — reames / ViewSVN
  4. AMDGPU: Replace store PatFrags

    Convert the easy cases to formats understood for GlobalISel. — arsenm / ViewSVN

rL:366237 - C:366231 - #58054 (Jul 16, 2019 11:05:29 AM)

  1. AMDGPU/GlobalISel: Select flat loads

    Now that the patterns use the new PatFrag address space support, the
    only blocker to importing most load patterns is the addressing mode
    complex patterns. — arsenm / ViewSVN
  2. Teach `llvm-pdbutil pretty -native` about `-injected-sources`

    `pretty -native -injected-sources -injected-source-content` works with
    this patch, and produces identical output to the dia version.

    Differential Revision: https://reviews.llvm.org/D64428 — nico / ViewSVN
  3. [AMDGPU] Optimize atomic max/min

    Summary:
    Extend the atomic optimizer to handle signed and unsigned max and min
    operations, as well as add and subtract.

    Reviewers: arsenm, sheredom, critson, rampitec

    Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, jfb, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64328 — foad / ViewSVN
  4. AMDGPU: Redefine load PatFrags

    Rewrite PatFrags using the new PatFrag address space matching in
    tablegen. These will now work with both SelectionDAG and GlobalISel. — arsenm / ViewSVN

rL:366230 - C:366231 - #58053 (Jul 16, 2019 10:38:30 AM)

  1. fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic

    The original commit is r366076. It is temporarily reverted (r366155)
    due to test failure. This resubmit makes test more robust by accepting
    regex instead of hardcoded names/references in several places.

    This is a followup patch for https://reviews.llvm.org/D61809.
    Handle unnamed bitfield properly and add more test cases.

    Fixed the unnamed bitfield issue. The unnamed bitfield is ignored
    by debug info, so we need to ignore such a struct/union member
    when we try to get the member index in the debug info.

    D61809 contains two test cases but not enough as it does
    not checking generated IRs in the fine grain level, and also
    it does not have semantics checking tests.
    This patch added unit tests for both code gen and semantics checking for
    the new intrinsic.

    Signed-off-by: Yonghong Song <yhs@fb.com> — yhs / ViewSVN
  2. AMDGPU: Fix missing immarg for mfma intrinsics — arsenm / ViewSVN

rL:366223 - C:366212 - #58052 (Jul 16, 2019 10:22:29 AM)

  1. Removed -mno-omit-leaf-frame-pointer from flags.

    Removes -mno-omit-leaf-frame-pointer from Scudo and GWP-ASan's CFlags. Attempt to fix
    the sanitizer buildbots. — hctim / ViewSVN
  2. [lldb-cmake-standalone] Pre-populate Xcode build-tree cache with Apple-lldb-Xcode

    This cache does not set install-related options. LLVM cannot install from multi-config generators. — stefan.graenitz / ViewSVN

rL:366223 - C:366212 - #58051 (Jul 16, 2019 9:27:39 AM)

  1. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.10

    Remove now-unused assembly code for determining xor key on
    Linux/AArch64. This is the final commit of this refactoring. — yln / ViewSVN

rL:366223 - C:366212 - #58050 (Jul 16, 2019 9:08:03 AM)

  1. [AMDGPU] Add the adjusted FP as a livein register.

    Reviewers: arsenm, rampitec

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64145 — hliao / ViewSVN
  2. [Strict FP] Allow more relaxed scheduling

    Reimplement scheduling constraints for strict FP instructions in
    ScheduleDAGInstrs::buildSchedGraph to allow for more relaxed
    scheduling.  Specifially, allow one strict FP instruction to
    be scheduled across another, as long as it is not moved across
    any global barrier.

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

    Reviewed By: cameron.mcinally — uweigand / ViewSVN
  3. Revert [tools] [llvm-nm] Default to reading from stdin not a.out

    This reverts r365889 (git commit 60c81354b1d3fced1bd284d334f118d2d792ab4b) — abrachet / ViewSVN
  4. Add missing test for r366215 — aemerson / ViewSVN
  5. [Remarks] Simplify and refactor the RemarkParser interface

    Before, everything was based on some kind of type erased parser
    implementation which container a lot of boilerplate code when multiple
    formats were to be supported.

    This simplifies it by:

    * the remark now owns its arguments
    * *always* returning an error from the implementation side
    * working around the way the YAML parser reports errors: catch them through
    callbacks and re-insert them in a proper llvm::Error
    * add a CParser wrapper that is used when implementing the C API to
    avoid cluttering the C++ API with useless state
    * LLVMRemarkParserGetNext now returns an object that needs to be
    released to avoid leaking resources
    * add a new API to dispose of a remark entry: LLVMRemarkEntryDispose — thegameg / ViewSVN
  6. [Remarks][NFC] Combine ParserFormat and SerializerFormat

    It's useless to have both. — thegameg / ViewSVN
  7. [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set.

    Original patch by Yann Laigle-Chapuy

    Differential Revision: https://reviews.llvm.org/D64785 — aemerson / ViewSVN
  8. [DAGCombiner] fold (addcarry (xor a, -1), b, c) -> (subcarry b, a, !c) and flip carry.

    Summary:
    As per title. DAGCombiner only mathes the special case where b = 0, this patches extends the pattern to match any value of b.

    Depends on D57302

    Reviewers: hfinkel, RKSimon, craig.topper

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D59208 — deadalnix / ViewSVN
  9. [OpenCL] Fixing sampler initialisations for C++ mode.

    Allow conversions between integer and sampler type.

    Differential Revision: https://reviews.llvm.org/D64791 — neil.hickey / ViewSVN

rL:366210 - C:366211 - #58049 (Jul 16, 2019 7:57:40 AM)

  1. [OPENMP]Add support for analysis of if clauses.

    Summary:
    Added support for analysis of if clauses in the OpenMP directives to be
    able to check for the use of uninitialized variables.

    Reviewers: NoQ

    Subscribers: guansong, jfb, jdoerfert, caomhin, kkwli0, cfe-commits

    Tags: clang

    Differential Revision: https://reviews.llvm.org/D64646 — abataev / ViewSVN

rL:366210 - C:366202 - #58048 (Jul 16, 2019 7:32:38 AM)

  1. AMDGPU/GlobalISel: Fix test failures in release build

    Apparently the check for legal instructions during instruction
    select does not happen without an asserts build, so these would
    successfully select in release, and fail in debug.

    Make s16 and/or/xor legal. These can just be selected directly
    to the 32-bit operation, as is already done in SelectionDAG, so just
    make them legal. — arsenm / ViewSVN
  2. [llvm-ar][test] Add to llvm-ar test coverage

    This change adds tests to cover existing llvm-ar functionality.
    print.test is omitted due to failing on Darwin.

    Differential Revision: https://reviews.llvm.org/D64330 — gbreynoo / ViewSVN

rL:366206 - C:366202 - #58047 (Jul 16, 2019 6:27:37 AM)

  1. [clangd] Added highlighting for the targets in typedefs and using.

    Summary:
    In `typedef int A` the `A` was not highlighted previously.

    This patch gives `A` the same kind of highlighting that the underlying type has (class/enum) (which in this example is no special highlighting because builtins are not handled yet)
    Will add highlightings for built ins in another patch.

    Reviewers: hokein, sammccall, ilya-biryukov

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64754 — jvikstrom / ViewSVN

rL:366206 - C:366202 - #58046 (Jul 16, 2019 5:57:41 AM)

  1. Reapply [llvm-ar][test] Increase llvm-ar test coverage

    This reapplies 365316 without extract.test due to failing on Darwin.

    Differential Revision: https://reviews.llvm.org/D63935 — gbreynoo / ViewSVN

rL:366205 - C:366202 - #58045 (Jul 16, 2019 5:34:05 AM)

  1. remove a duplicate declaration — sylvestre / ViewSVN
  2. Document the LLVM_ENABLE_BINDINGS option — sylvestre / ViewSVN

rL:366203 - C:366202 - #58044 (Jul 16, 2019 4:32:19 AM)

  1. [Object/llvm-readelf/llvm-readobj] - Improve error reporting when e_shstrndx is broken.

    When e_shstrndx is broken, it is impossible to get a section name.
    In this patch I improved the error message we show and
    added tests for Object and for llvm-readelf/llvm-readobj

    Message was changed in two places:
    1) llvm-readelf/llvm-readobj previously used a code from Object/ELF.h,
    now they have a modified version of it (it has less checks and allows
    dumping broken things).
    2) Code in Object/ELF.h is still used for generic cases.

    Differential revision: https://reviews.llvm.org/D64714 — grimar / ViewSVN
  2. [Driver] Don't pass --dynamic-linker to ld on Solaris

    I noticed that clang currently passes --dynamic-linker to ld.  This has been the case
    since Solaris 11 support was added initially back in 2012 by David Chisnall (r150580).
    I couldn't find any patch submission, let alone a justification, for this, and it seems
    completely useless: --dynamic-linker is a gld compatibility form of the option, the
    native option being -I.  First of all, however, the dynamic linker passed is simply the
    default, so there's no reason at all to specify it in the first place.

    This patch removes passing the option and adjusts the affected testcase accordingly.

    Tested on x86_64-pc-solaris2.11 and sparcv9-sun-solaris2.11.

    Differential Revision: https://reviews.llvm.org/D64493 — ro / ViewSVN
  3. Reapply [llvm-ar][test] Add to MRI test coverage

    This reapplies 363232 without mri-utf8.test due to failing on Darwin.

    Differential Revision: https://reviews.llvm.org/D63197 — gbreynoo / ViewSVN
  4. [SemaTemplate] Fix uncorrected typos after pack expansion

    Summary:
    This case is particularly important for clangd, as it is triggered after
    inserting the snippet for variadic functions.

    Reviewers: kadircet, ilya-biryukov

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64677 — sammccall / ViewSVN
  5. [clangd] Don't rebuild background index until we indexed one TU per thread.

    Summary:
    This increases the odds that the boosted file (cpp file matching header)
    will be ready. (It always enqueues first, so it'll be present unless
    another thread indexes *two* files before the first thread indexes one.)

    Reviewers: kadircet

    Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64682 — sammccall / ViewSVN

rL:366198 - C:366197 - #58043 (Jul 16, 2019 3:17:41 AM)

  1. Remove username from git-llvm script, erroneously added in 366197 — sammccall / ViewSVN

rL:366197 - C:366197 - #58042 (Jul 16, 2019 2:40:48 AM)

  1. [AArch64] Implement __jcvt intrinsic from Armv8.3-A

    The jcvt intrinsic defined in ACLE [1] is available when ARM_FEATURE_JCVT is defined.

    This change introduces the AArch64 intrinsic, wires it up to the instruction and a new clang builtin function.
    The __ARM_FEATURE_JCVT macro is now defined when an Armv8.3-A or higher target is used.
    I've implemented the target detection logic in Clang so that this feature is enabled for architectures from armv8.3-a onwards (so -march=armv8.4-a also enables this, for example).

    make check-all didn't show any new failures.

    [1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics

    Differential Revision: https://reviews.llvm.org/D64495 — ktkachov / ViewSVN

rL:366195 - C:366194 - #58041 (Jul 16, 2019 2:26:28 AM)

  1. [NFC] Test commit: add full stop at end of comment — ktkachov / ViewSVN
  2. [clang-scan-view] Force utf-8 when handling report (python2 only)

    Original patch by random human <random.bored.human@gmail.com>

    Differential Revision: https://reviews.llvm.org/D64129 — serge_sans_paille / ViewSVN

rL:366191 - C:366186 - #58040 (Jul 16, 2019 1:29:24 AM)

  1. [NFC][PowerPC] Add test case for D64195 — wuzish / ViewSVN

rL:366190 - C:366186 - #58039 (Jul 16, 2019 12:16:47 AM)

  1. [DWARF] Fix the reserved values for unit length in DWARFDebugLine.

    The DWARF3 documentation had inconsistency concerning the reserved range
    for unit length values. The issue was fixed in DWARF4.

    Differential Revision: https://reviews.llvm.org/D64622 — ikudrin / ViewSVN
  2. [DWARF] Fix an incorrect format specifier.

    This adjusts the format specifier because PCOffset is uint16_t.

    Differential Revision: https://reviews.llvm.org/D64620 — ikudrin / ViewSVN

rL:366188 - C:366186 - #58038 (Jul 15, 2019 11:57:40 PM)

  1. [DWARF] Simplify DWARFAttribute. NFC.

    The first argument in the constructor was ignored, and the remaining
    arguments were always passed as their defaults.

    Differential Revision: https://reviews.llvm.org/D64407 — ikudrin / ViewSVN

rL:366182 - C:366186 - #58037 (Jul 15, 2019 11:28:03 PM)

  1. Finish "Adapt -fsanitize=function to SANITIZER_NON_UNIQUE_TYPEINFO"

    i.e., recent 5745eccef54ddd3caca278d1d292a88b2281528b:

    * Bump the function_type_mismatch handler version, as its signature has changed.

    * The function_type_mismatch handler can return successfully now, so
      SanitizerKind::Function must be AlwaysRecoverable (like for
      SanitizerKind::Vptr).

    * But the minimal runtime would still unconditionally treat a call to the
      function_type_mismatch handler as failure, so disallow -fsanitize=function in
      combination with -fsanitize-minimal-runtime (like it was already done for
      -fsanitize=vptr).

    * Add tests.

    Differential Revision: https://reviews.llvm.org/D61479 — sberg / ViewSVN

rL:366182 - C:366177 - #58036 (Jul 15, 2019 11:04:11 PM)

  1. [X86] In combineStore, don't convert v2f32 load/store pairs to f64 loads/stores.

    Type legalization can take care of this. This gives DAG combine
    a little more time with the original types. — ctopper / ViewSVN

rL:366179 - C:366177 - #58035 (Jul 15, 2019 10:17:53 PM)

  1. [RISCV] Match GNU tools canonical JALR and add aliases

    The canonical GNU form of JALR resembles a load/store instruction rather
    than placing the immediate offset as a separate argument, so match this
    behaviour. Also add parser-only aliases for the three-operand form, and
    add other shorter aliases also emitted by GNU tools.

    Differential Revision: https://reviews.llvm.org/D55277
    Patch by James Clarke. — asb / ViewSVN

rL:366177 - C:366177 - #58034 (Jul 15, 2019 9:51:24 PM)

  1. Fix parameter name comments using clang-tidy. NFC.

    This patch applies clang-tidy's bugprone-argument-comment tool
    to LLVM, clang and lld source trees. Here is how I created this
    patch:

    $ git clone https://github.com/llvm/llvm-project.git
    $ cd llvm-project
    $ mkdir build
    $ cd build
    $ cmake -GNinja -DCMAKE_BUILD_TYPE=Debug \
        -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra' \
        -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DLLVM_ENABLE_LLD=On \
        -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../llvm
    $ ninja
    $ parallel clang-tidy -checks='-*,bugprone-argument-comment' \
        -config='{CheckOptions: [{key: StrictMode, value: 1}]}' -fix \
        ::: ../llvm/lib/**/*.{cpp,h} ../clang/lib/**/*.{cpp,h} ../lld/**/*.{cpp,h} — ruiu / ViewSVN
  2. [RISCV] Avoid overflow when determining number of nops for code align

    RISCVAsmBackend::shouldInsertExtraNopBytesForCodeAlign() assumed that the
    align specified would be greater than or equal to the minimum nop length, but
    that is not always the case - for example if a user specifies ".align 0" in
    assembly.

    Differential Revision: https://reviews.llvm.org/D63274
    Patch by Edward Jones. — asb / ViewSVN
  3. [RISCV] Fix a potential issue in shouldInsertFixupForCodeAlign()

    The bool result of shouldInsertExtraNopBytesForCodeAlign() is not checked but
    the returned nop count is unconditionally read even though it could be
    uninitialized.

    Differential Revision: https://reviews.llvm.org/D63285
    Patch by Edward Jones. — asb / ViewSVN

rL:366174 - C:366169 - #58033 (Jul 15, 2019 9:05:44 PM)

  1. [RISCV][NFC] Split PseudoCALL pattern out from instruction

    Since PseudoCALL defines AsmString, it can be generated from assembly,
    and so code-gen patterns should be defined separately to be consistent
    with the style of the RISCV backend. Other pseudo-instructions exist
    that have code-gen patterns defined directly, but these instructions are
    purely for code-gen and cannot be written in assembly.

    Differential Revision: https://reviews.llvm.org/D64012
    Patch by James Clarke. — asb / ViewSVN
  2. [RISCV][NFC] Fix HasStedExtA -> HasStdExtA typo in comment

    Differential Revision: https://reviews.llvm.org/D64011
    Patch by James Clarke. — asb / ViewSVN
  3. [RISCV] Make RISCVELFObjectWriter::getRelocType check IsPCRel

    Previously, this function didn't check the IsPCRel argument. But doing so is a
    useful check for errors, and also seemingly necessary for FK_Data_4 (which we
    produce a R_RISCV_32_PCREL relocation for if IsPCRel).

    Other than R_RISCV_32_PCREL, this should be NFC. Future exception handling
    related patches will include tests that capture this behaviour. — asb / ViewSVN

rL:366171 - C:366169 - #58032 (Jul 15, 2019 8:38:45 PM)

  1. hwasan: Pad arrays with non-1 size correctly.

    Spotted by eugenis.

    Differential Revision: https://reviews.llvm.org/D64783 — pcc / ViewSVN

rL:366168 - C:366169 - #58031 (Jul 15, 2019 8:23:05 PM)

  1. Add contains method to associative containers. This patch implements P0458R2, adding contains to map, multimap, unordered_map, unordered_multimap, set, multiset, unordered_set, and unordered_multiset. — zoecarver / ViewSVN
  2. Revert "[OPENMP]Add support for analysis of if clauses."

    This reverts commit rL366068.
    The patch broke 86 tests under clang/test/OpenMP/ when run with address sanitizer. — tamur / ViewSVN

rL:366168 - C:366166 - #58030 (Jul 15, 2019 7:53:38 PM)

  1. AMDGPU: Avoid code predicates for extload PatFrags

    Use the MemoryVT field. This will be necessary for tablegen to
    automatically handle patterns for GlobalISel.

    Doesn't handle the d16 lo/hi patterns. Those are a special case since
    it involvess the custom node type. — arsenm / ViewSVN
  2. Use https for the source code checkout of buildbot running on ppc64be-clang-lnt-test.

    Patch by Kamau Bridgeman.

    Differential Revision: https://reviews.llvm.org/D64221 — gkistanova / ViewSVN

rL:366164 - C:366166 - #58029 (Jul 15, 2019 7:23:55 PM)

  1. Change a lit test to permit vendor specific clang version

    A test manually checks for the string `__VERSION__ "Clang`. This needs
    to permit vendor specific variants. — lanza / ViewSVN

rL:366164 - C:366165 - #58028 (Jul 15, 2019 6:41:07 PM)

  1. reland "add -fthinlto-index= option to clang-cl"

    Summary:
    This is a reland of r366146, adding in the previously missing '--'
    flag that prevents filenames from being interpreted as flags.

    Original description:
    This adds a -fthinlto-index= option to clang-cl, which allows it to
    be used to drive ThinLTO backend passes. This allows clang-cl to be
    used for distributed ThinLTO.

    Tags: #clang — inglorion / ViewSVN
  2. Re-land "[DebugInfo] Move function from line table to the prologue (NFC)"

    In LLDB, when parsing type units, we don't need to parse the whole line
    table. Instead, we only need to parse the "support files" from the line
    table prologue.

    To make that possible, this patch moves the respective functions from
    the LineTable into the Prologue. Because I don't think users of the
    LineTable should have to know that these files come from the Prologue,

    I've left the original methods in place, and made them redirect to the
    LineTable.

    Differential revision: https://reviews.llvm.org/D64774 — Jonas Devlieghere / ViewSVN
  3. [Sema] Suppress additional warnings for C's zero initializer

    Summary:
    D28148 relaxed some checks for assigning { 0 } to a structure for all C
    standards, but it failed to handle structures with non-integer
    subobjects. Relax -Wmissing-braces checks for such structures, and add
    some additional tests.

    This fixes PR39931.

    Patch By: al3xtjames

    Reviewed By: Lekensteyn

    Differential Revision: https://reviews.llvm.org/D61838 — lekensteyn / ViewSVN

rL:366162 - C:366159 - #58027 (Jul 15, 2019 6:10:37 PM)

  1. [InstructionSimplify] Apply sext/trunc after pointer stripping

    Summary:
    - As the pointer stripping could trace through `addrspacecast` now, need
      to sext/trunc the offset to ensure it has the same width as the
      pointer after stripping.

    Reviewers: jdoerfert

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64768 — hliao / ViewSVN
  2. Revert "[DebugInfo] Move function from line table to the prologue (NFC)"

    This broke LLD, which I didn't have enabled. — Jonas Devlieghere / ViewSVN
  3. Allow for vendor prefixes in a list test

    Summary:
    Preprocessor/init.c contains a line that explicitly checks for the
    string

    __VERSION__ "Clang{{.*}}

    It's valid to have a toolchain configured to emit a vendor prefix
    before the word Clang. e.g.

    __VERSION__ "Vendor Clang{{.*}}

    Subscribers: fedor.sergeev, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64772 — lanza / ViewSVN

rL:366158 - C:366157 - #58026 (Jul 15, 2019 5:42:53 PM)

  1. [DebugInfo] Move function from line table to the prologue (NFC)

    In LLDB, when parsing type units, we don't need to parse the whole line
    table. Instead, we only need to parse the "support files" from the line
    table prologue.

    To make that possible, this patch moves the respective functions from
    the LineTable into the Prologue. Because I don't think users of the
    LineTable should have to know that these files come from the Prologue,

    I've left the original methods in place, and made them redirect to the
    LineTable.

    Differential revision: https://reviews.llvm.org/D64774 — Jonas Devlieghere / ViewSVN

rL:366154 - C:366157 - #58025 (Jul 15, 2019 5:09:38 PM)

  1. Temporarily revert "add -fthinlto-index= option to clang-cl"

    This is causing testsuite failures on (at least) darwin release+asserts.

    This reverts commit r366146. — echristo / ViewSVN

rL:366154 - C:366155 - #58024 (Jul 15, 2019 4:56:03 PM)

  1. Temporarily Revert "fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic"

    The commit had tests that would only work with names in the IR.

    This reverts commit r366076. — echristo / ViewSVN
  2. Temporarily Revert "[SLP] Recommit: Look-ahead operand reordering heuristic."

    As there are some reported miscompiles with AVX512 and performance regressions
    in Eigen. Verified with the original committer and testcases will be forthcoming.

    This reverts commit r364964. — echristo / ViewSVN
  3. Revert "[NewPM] Port Sancov"

    This reverts commit 5652f35817f07b16f8b3856d594cc42f4d7ee29c. — leonardchan / ViewSVN
  4. [DirectoryWatcher][linux] Fix for older kernels

    IN_EXCL_UNLINK exists since Linux 2.6.36

    Differential Revision: https://reviews.llvm.org/D64764 — Jan Korous / ViewSVN
  5. [X86] Teach convertToThreeAddress to handle SUB with immediate

    We mostly avoid sub with immediate but there are a couple cases that can create them. One is the add 128, %rax -> sub -128, %rax trick in isel. The other is when a SUB immediate gets created for a compare where both the flags and the subtract value is used. If we are unable to linearize the SelectionDAG to satisfy the flag user and the sub result user from the same instruction, we will clone the sub immediate for the two uses. The one that produces flags will eventually become a compare. The other will have its flag output dead, and could then be considered for LEA creation.

    I added additional test cases to add.ll to show the the sub -128 trick gets converted to LEA and a case where we don't need to convert it.

    This showed up in the current codegen for PR42571.

    Differential Revision: https://reviews.llvm.org/D64574 — ctopper / ViewSVN
  6. [TSan] Fix asm token error (again) — yln / ViewSVN
  7. [WebAssembly] Add missing utility methods for exnref type

    Summary:
    This adds missing utility methods and copy instruction handling for
    `exnref` type and also adds tests.

    `tee` instruction tests are missing because `isTee` is currently only
    used in ExplicitLocals pass and testing that pass in mir requires
    serialization of stackified registers in mir files, which is a bit
    nontrivial because `MachineFunctionInfo` only has info of vreg numbers
    (which are large integers) but not the mir's register numbers. But this
    change is quite trivial anyway.

    Reviewers: tlively

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64705 — aheejin / ViewSVN

rL:366147 - C:366146 - #58023 (Jul 15, 2019 3:57:00 PM)

  1. [llvm-readelf] Print "File: lib.a(file.o)" info when dumping archive files.

    Match GNU readelf.

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

    Reviewers: jhenderson, grimar, MaskRay, rupprecht

    Reviewed by: jhenderson, MaskRay, grimar

    Differential Revision: https://reviews.llvm.org/D64361 — yuanfang / ViewSVN
  2. add -fthinlto-index= option to clang-cl

    Summary:
    This adds a -fthinlto-index= option to clang-cl, which allows it to
    be used to drive ThinLTO backend passes. This allows clang-cl to be
    used for distributed ThinLTO.

    Reviewers: tejohnson, pcc, rnk

    Subscribers: mehdi_amini, steven_wu, dexonsmith, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64458 — inglorion / ViewSVN
  3. [WebAssembly] Rename except_ref type to exnref

    Summary:
    We agreed to rename `except_ref` to `exnref` for consistency with other
    reference types in
    https://github.com/WebAssembly/exception-handling/issues/79. This also
    renames WebAssemblyInstrExceptRef.td to WebAssemblyInstrRef.td in order
    to use the file for other reference types in future.

    Reviewers: dschuff

    Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, jfb, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64703 — aheejin / ViewSVN
  4. Revert [llvm-lipo] Implement -create (with hardcoded alignments)

    This reverts r366142 (git commit 67cee1dc7ee285b03372eb818a3894d35efa7394)

    The test is failing on the Windows buildbots. Reverting while I
    investigate. — smeenai / ViewSVN

rL:366142 - C:366143 - #58022 (Jul 15, 2019 3:44:03 PM)

  1. [OpenCL] Make TableGen'd builtin tables and helper functions static

    Reviewers: Pierre, Anastasia

    Reviewed By: Anastasia

    Subscribers: yaxunl, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64608 — tstellar / ViewSVN
  2. [llvm-lipo] Implement -create (with hardcoded alignments)

    Creates universal binary output file from input files. Currently uses
    hard coded value for alignment.  Want to get the create functionality
    approved before implementing the alignment function.

    Patch by Anusha Basana <anusha.basana@gmail.com>

    Differential Revision: https://reviews.llvm.org/D64102 — smeenai / ViewSVN
  3. [clang-fuzzer] Remove 'setUseOrcMCJITReplacement(false)' call.

    The default value for this option (UseMCJITReplacement) is already false, and
    OrcMCJITReplacement is going to have deprecation warnings attached in LLVM 9.0.
    Removing this call removes a spurious warning. — Lang Hames / ViewSVN
  4. [WebAssembly] Simplify regcopy.mir

    Summary:
    This deletes the ll templates from the functions because they don't need
    them (mir files need ll templates only when they have function calls or
    BB names that are not numbers).

    This also renames the filename to `reg-copy.mir`, because I'm planning
    to add some more `reg-*.mir` soon.

    Reviewers: tlively

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64704 — aheejin / ViewSVN
  5. [WebAssembly] Assembler: support special floats: infinity / nan

    Summary:
    These are emitted as identifiers by the InstPrinter, so we should
    parse them as such. These could potentially clash with symbols of
    the same name, but that is out of our (the WebAssembly backend) control.

    Reviewers: dschuff

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64770 — aardappel / ViewSVN
  6. [DirectoryWatcher][test] Relax test assumptions

    Workaround for FSEvents sometimes sending notifications for events that happened
    before DirectoryWatcher was created.

    This caused tests to be flaky on green dragon. — Jan Korous / ViewSVN
  7. [DirectoryWatcher][NFC][test] Add typedef for enum — Jan Korous / ViewSVN
  8. [ASan] Fix >80 character line. — morehouse / ViewSVN
  9. [AMDGPU] Enable merging m0 initializations.

    Summary:
    Enable hoisting and merging m0 defs that are initialized with the same
    immediate value. Fixes bug where removed instructions are not considered
    to interfere with other inits, and make sure to not hoist inits before block
    prologues.

    Reviewers: rampitec, arsenm

    Reviewed By: rampitec

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64766 — kerbowa / ViewSVN

rL:366133 - C:366127 - #58021 (Jul 15, 2019 2:58:32 PM)

  1. [mips] Print BEQZL and BNEZL pseudo instructions

    One of the reasons - to be compatible with GNU tools. — atanasyan / ViewSVN
  2. AMDGPU: Use standalone MUBUF load patterns

    We already do this for the flat and DS instructions, although it is
    certainly uglier and more verbose.

    This will allow using separate pattern definitions for extload and
    zextload. Currently we get away with using a single PatFrag with
    custom predicate code to check if the extension type is a zextload or
    anyextload. The generic mechanism the global isel emitter understands
    treats these as mutually exclusive. I was considering making the
    pattern emitter accept zextload or sextload extensions for anyextload
    patterns, but in global isel, the different extending loads have
    distinct opcodes, and there is currently no mechanism for an opcode
    matcher to try multiple (and there probably is very little need for
    one beyond this case). — arsenm / ViewSVN

rL:366130 - C:366127 - #58019 (Jul 15, 2019 2:26:55 PM)

  1. [TSan] Fix asm token error — yln / ViewSVN
  2. [LoopUnroll+LoopUnswitch] do not transform loops containing callbr

    Summary:
    There is currently a correctness issue when unrolling loops containing
    callbr's where their indirect targets are being updated correctly to the
    newly created labels, but their operands are not.  This manifests in
    unrolled loops where the second and subsequent copies of callbr
    instructions have blockaddresses of the label from the first instance of
    the unrolled loop, which would result in nonsensical runtime control
    flow.

    For now, conservatively do not unroll the loop.  In the future, I think
    we can pursue unrolling such loops provided we transform the cloned
    callbr's operands correctly.

    Such a transform and its legalities are being discussed in:
    https://reviews.llvm.org/D64101

    Link: https://bugs.llvm.org/show_bug.cgi?id=42489
    Link: https://groups.google.com/forum/#!topic/clang-built-linux/z-hRWP9KqPI

    Reviewers: fhahn, hfinkel, efriedma

    Reviewed By: fhahn, hfinkel, efriedma

    Subscribers: efriedma, hiraditya, zzheng, dmgreen, llvm-commits, pirama, kees, nathanchance, E5ten, craig.topper, chandlerc, glider, void, srhines

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64368 — nickdesaulniers / ViewSVN
  3. TableGen/GlobalISel: Fix handling of truncstore patterns

    This was failing to import the AMDGPU truncstore patterns. The
    truncating stores from 32-bit to 8/16 were then somehow being
    incorrectly selected to a 4-byte store.

    A separate check is emitted for the LLT size in comparison to the
    specific memory VT, which looks strange to me but makes sense based on
    the hierarchy of PatFrags used for the default truncstore PatFrags. — arsenm / ViewSVN

rL:366128 - C:366127 - #58018 (Jul 15, 2019 2:13:04 PM)

  1. TableGen: Add address space to matchers

    Currently AMDGPU uses a CodePatPred to check address spaces from the
    MachineMemOperand. Introduce a new first class property so that the
    existing patterns can be easily modified to uses the new generated
    predicate, which will also be handled for GlobalISel.

    I would prefer these to match against the pointer type of the
    instruction, but that would be difficult to get working with
    SelectionDAG compatbility. This is much easier for now and will avoid
    a painful tablegen rewrite for all the loads and stores.

    I'm also not sure if there's a better way to encode multiple address
    spaces in the table, rather than putting the number to expect. — arsenm / ViewSVN
  2. [clang] allow -fthinlto-index= without -x ir

    Summary:
    Previously, passing -fthinlto-index= to clang required that bitcode
    files be explicitly marked by -x ir. This change makes us detect files
    with object file extensions as bitcode files when -fthinlto-index= is
    present, so that explicitly marking them is no longer necessary.
    Explicitly specifying -x ir is still accepted and continues to be part
    of the test case to ensure we continue to support it.

    Reviewers: tejohnson, rnk, pcc

    Subscribers: mehdi_amini, steven_wu, dexonsmith, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64610 — inglorion / ViewSVN

rL:366125 - C:366123 - #58016 (Jul 15, 2019 1:27:28 PM)

  1. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.9

    Switch over to computing the xor key in C, instead of assembly for
    Linux/AArch64. — yln / ViewSVN
  2. AMDGPU/GlobalISel: Allow scalar s1 and/or/xor

    If a 1-bit value is in a 32-bit VGPR, the scalar opcodes set SCC to
    whether the result is 0. If the inputs are SCC, these can be copied to
    a 32-bit SGPR to produce an SCC result. — arsenm / ViewSVN

rL:366123 - C:366123 - #58015 (Jul 15, 2019 1:16:00 PM)

  1. [libc++] Implement P0433: deduction guides for <unordered_map>

    Thanks to Arthur O'Dwyer for the patch.

    Differential Revision: https://reviews.llvm.org/D58590 — Louis Dionne / ViewSVN
  2. ARM MTE stack sanitizer.

    Add "memtag" sanitizer that detects and mitigates stack memory issues
    using armv8.5 Memory Tagging Extension.

    It is similar in principle to HWASan, which is a software implementation
    of the same idea, but there are enough differencies to warrant a new
    sanitizer type IMHO. It is also expected to have very different
    performance properties.

    The new sanitizer does not have a runtime library (it may grow one
    later, along with a "debugging" mode). Similar to SafeStack and
    StackProtector, the instrumentation pass (in a follow up change) will be
    inserted in all cases, but will only affect functions marked with the
    new sanitize_memtag attribute.

    Reviewers: pcc, hctim, vitalybuka, ostannard

    Subscribers: srhines, mehdi_amini, javed.absar, kristof.beyls, hiraditya, cryptoad, steven_wu, dexonsmith, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D64169 — eugenis / ViewSVN
  3. Constrain workaround to avoid affecting other buildbots — ericwf / ViewSVN

rL:366121 - C:366091 - #58014 (Jul 15, 2019 12:54:16 PM)

  1. AMDGPU/GlobalISel: Select G_AND/G_OR/G_XOR — arsenm / ViewSVN
  2. AMDGPU/GlobalISel: Don't constrain source register of VCC copies

    This is a hack until I come up with a better way of dealing with the
    pseudo-register banks used for boolean values. If the use instruction
    constrains the register, the selector for the def instruction won't
    see that the bank was VCC. A 1-bit SReg_32 is could ambiguously have
    been SCCRegBank or VCCRegBank in wave32.

    This is necessary to successfully select branches with and and/or/xor
    condition. — arsenm / ViewSVN
  3. AMDGPU/GlobalISel: Fix selecting vcc->vcc bank copies

    The extra test change is correct, although how it arrives there is a
    bug that needs work. With wave32, the test for isVCC ambiguously
    reports true for an SCC or VCC source. A new allocatable pseudo
    register class for SCC may be necesssary. — arsenm / ViewSVN
  4. AMDGPU/GlobalISel: Fix not constraining result reg of copies to VCC — arsenm / ViewSVN
  5. AMDGPU/GlobalISel: Fix handling of sgpr (not scc bank) s1 to VCC

    This was emitting a copy from a 32-bit register to a 64-bit. — arsenm / ViewSVN
  6. AMDGPU/GlobalISel: Custom legalize G_INSERT_VECTOR_ELT — arsenm / ViewSVN
  7. AMDGPU/GlobalISel: Custom legalize G_EXTRACT_VECTOR_ELT

    Turn the constant cases into G_EXTRACTs. — arsenm / ViewSVN

rL:366114 - C:366091 - #58013 (Jul 15, 2019 12:41:46 PM)

  1. AMDGPU/GlobalISel: Fix G_ICMP for wave32 — arsenm / ViewSVN
  2. GlobalISel: Implement narrowScalar for vector extract/insert indexes — arsenm / ViewSVN
  3. Added MailNotifier for builders "llvm-clang-x86_64-win-fast" and "lld-x86_64-ubuntu-fast". — gkistanova / ViewSVN
  4. Removed MailNotifiers for removed builders. — gkistanova / ViewSVN
  5. AMDGPU: Fix missing immarg from interp intrinsics — arsenm / ViewSVN

rL:366109 - C:366091 - #58012 (Jul 15, 2019 12:08:36 PM)

  1. [FileCheck] Store line numbers as optional values

    Summary:
    Processing of command-line definition of variable and logic around
    implicit not directives both reuse parsing code that expects a line
    number to be defined. So far, a special line number of 0 was used for
    those users of the parsing code where a line number does not make sense.
    This commit instead represents line numbers as Optional values so that
    they can be None for those cases.

    Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

    Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64639 — thopre / ViewSVN
  2. [cmake] Don't set install rules for tblgen if building utils is disabled

    Summary:
    This is a follow up to D64032. Afterwards if building utils is disabled
    and cross compilation is attempted, CMake will complain that adding
    `install()` directives to targets with EXCLUDE_FROM_ALL set is "undefined".
    Indeed, it appears depending on the CMake version and the selected
    Generator, the install rule will error because the underlying target isn't
    built. Fix that by not adding the install rule if building utils is not
    requested. Note that this doesn't prevent building tblgen as a
    dependency in not cross-build, even if building tools is disabled.

    Reviewed By: smeenai
    Differential Revision: https://reviews.llvm.org/D64225 — kfischer / ViewSVN
  3. Expand comment about how StringsToBuckets was computed, and add more entries

    The construction was explained in
    https://reviews.llvm.org/D44810?id=139526#inline-391999 but reading the code
    shouldn't require hunting down old reviews to understand it.

    The precomputed list was missing an entry for the empty list case, and
    one entry at the very end. (The current last entry is the last one where
    3 * BucketCount fits in a signed int, but the reference implementation
    uses unsigneds as far as I can tell, so there's room for one more entry.)

    No behavior change for inputs seen in practice.

    Differential Revision: https://reviews.llvm.org/D64738 — nico / ViewSVN
  4. [ARM] MVE vector for 64bit types

    We need to make sure that we are sensibly dealing with vectors of types v2i64
    and v2f64, even if most of the time we cannot generate native operations for
    them. This mostly adds a lot of testing, plus fixes up a couple of the issues
    found. And, or and xor can be legal for v2i64, and shifts combining needs a
    slight fixup.

    Differential Revision: https://reviews.llvm.org/D64316 — dmgreen / ViewSVN
  5. [sanitizers][windows][mingw32] Mingw32 RTL fixes
    RTL interception broke mingw32, this should fix those builds by
    removing dependency on windows.h

    reviewed in https://reviews.llvm.org/D64694 — mcgov / ViewSVN
  6. [WebAssembly] Assembler: recognize .init_array as data section.

    Reviewers: sbc100

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

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64602 — aardappel / ViewSVN
  7. AMDGPU/GlobalISel: Widen vector extracts — arsenm / ViewSVN

rL:366102 - C:366091 - #58011 (Jul 15, 2019 11:29:39 AM)

  1. AMDGPU/GlobalISel: Handle llvm.amdgcn.if.break — arsenm / ViewSVN
  2. AMDGPU: Remove reserved value accidentally left in for gfx908 — kzhuravl / ViewSVN
  3. [lldb-cmake-standalone] Pre-populate provided LLVM build-tree cache with Apple-lldb-base — stefan.graenitz / ViewSVN
  4. AMDGPU/GlobalISel: Select llvm.amdgcn.end.cf — arsenm / ViewSVN
  5. [x86] try to keep FP casted+truncated+extracted vector element out of GPRs

    inttofp (trunc (extelt X, 0)) --> inttofp (extelt (bitcast X), 0)

    We have pseudo-vectorization of scalar int to FP casts, so this tries to
    make that more likely by replacing a truncate with a bitcast. I didn't see
    any test diffs starting from 'uitofp', so I left that as a TODO. We can't
    only match the shorter trunc+extract pattern because there's an opposing
    transform somewhere, so we infinite loop. Waiting to try this during
    lowering is another possibility.

    A motivating case is shown in PR39975 and included in the test diffs here:
    https://bugs.llvm.org/show_bug.cgi?id=39975

    Differential Revision: https://reviews.llvm.org/D64710 — spatel / ViewSVN
  6. [llvm-lib] Add a dependency to intrinsics_gen to the LLVMLibDriver build

    Summary:
    Occasionally the build of LLVMLibDriver will fail because Attributes.inc has not been generated yet. Add an explicit dependency, so that we can guarantee that the file has been generated before LLVMLibDriver is build.

    ##[error]llvm\include\llvm\IR\Attributes.h(73,0): Error C1083: Cannot open include file: 'llvm/IR/Attributes.inc': No such file or directory
    llvm\include\llvm/IR/Attributes.h(73): fatal error C1083: Cannot open include file: 'llvm/IR/Attributes.inc': No such file or directory [LLVMLibDriver.vcxproj]

    Reviewers: asmith

    Subscribers: mgorny, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64357 — stella.stamenova / ViewSVN
  7. [X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out of range.

    I think we only turn out of range shiftss to undef when
    all elements are out of range or the shift amount is a splat out
    of range. I'm not sure which, I didn't check.

    During lowering we can split a shift where some elements
    are out of range into multiple shifts. This can create a
    new shift with a splat shift amount that is out of range.

    This patch returns undef for this case.

    Fixes PR42615.

    Differential Revision: https://reviews.llvm.org/D64699 — ctopper / ViewSVN

rL:366094 - C:366091 - #58010 (Jul 15, 2019 10:56:26 AM)

  1. AMDGPU: Add 24-bit mul intrinsics

    Insert these during codegenprepare.

    This works around a DAG issue where generic combines eliminate the and
    asserting the high bits are zero, which then exposes an unknown read
    source to the mul combine. It doesn't worth the hassle of trying to
    insert an AssertZext or something to try to deal with it. — arsenm / ViewSVN
  2. Add some release notes for 9.0 release — arsenm / ViewSVN
  3. [AMDGPU] Copy missing predicate from pseudo to real

    NFC at the momemnt, needed for future commit.

    Differential Revision: https://reviews.llvm.org/D64761 — rampitec / ViewSVN
  4. Update __VERSION__ to remove the hardcoded 4.2.1 version

    Summary:
    Just like in https://reviews.llvm.org/D56803
    for -dumpversion

    Reviewers: rnk

    Reviewed By: rnk

    Subscribers: dexonsmith, lebedev.ri, hubert.reinterpretcast, xbolva00, fedor.sergeev, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D63048 — sylvestre / ViewSVN
  5. [FunctionAttrs] Remove readonly and writeonly assertion

    There are scenarios where mutually recursive functions may cause the SCC
    to contain both read only and write only functions. This removes an
    assertion when adding read attributes which caused a crash with a the
    provided test case, and instead just doesn't add the attributes.

    Patch by Luke Lau <luke.lau@intel.com>

    Differential Revision: https://reviews.llvm.org/D60761 — jdoerfert / ViewSVN
  6. [ARM] Minor formatting in ARMInstrMVE.td. NFC — dmgreen / ViewSVN
  7. Use a unique_ptr instead of manual memory management for LineTable — nico / ViewSVN
  8. AMDGPU/GlobalISel: Select easy cases for G_BUILD_VECTOR — arsenm / ViewSVN
  9. AMDGPU/GlobalISel: RegBankSelect for G_CONCAT_VECTORS — arsenm / ViewSVN
  10. Use a unique_ptr instead of manual memory management for CustomDiagInfo — nico / ViewSVN

rL:366082 - C:366084 - #58009 (Jul 15, 2019 10:17:39 AM)

  1. Use unique_ptr instead of manual delete in one place. No behavior change. — nico / ViewSVN

rL:366082 - C:366076 - #58008 (Jul 15, 2019 10:06:56 AM)

  1. [x86] add tests for reductions that might be better with more horizontal ops; NFC — spatel / ViewSVN
  2. Revert "r366069: [PatternMatch] Implement matching code for LibFunc"

    Reason: the change introduced a layering violation by adding a
    dependency on IR to Analysis. — ibiryukov / ViewSVN
  3. [docs][llvm-nm] Fix inconsistent grammar — jhenderson / ViewSVN

rL:366079 - C:366076 - #58007 (Jul 15, 2019 9:41:54 AM)

  1. [X86][SSE] Regenerated packss.ll test file.

    Not sure what went wrong in rL366077.... — rksimon / ViewSVN
  2. [LLDB] getLLDBCMakeBuildFactory: New parameter testTimeout

    It also uses the new long timeout for slave 'lldb-x86_64-fedora'.

    Differential Revision: https://reviews.llvm.org/D64719 — jankratochvil / ViewSVN

rL:366077 - C:366076 - #58006 (Jul 15, 2019 8:59:45 AM)

  1. [X86][SSE] Add PACKSS with zero shuffle masks.

    This is an example of expansion due to D61129 - it should combine back to a PACKSS with a zero operand. — rksimon / ViewSVN
  2. fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic

    This is a followup patch for https://reviews.llvm.org/D61809.
    Handle unnamed bitfield properly and add more test cases.

    Fixed the unnamed bitfield issue. The unnamed bitfield is ignored
    by debug info, so we need to ignore such a struct/union member
    when we try to get the member index in the debug info.

    D61809 contains two test cases but not enough as it does
    not checking generated IRs in the fine grain level, and also
    it does not have semantics checking tests.
    This patch added unit tests for both code gen and semantics checking for
    the new intrinsic.

    Signed-off-by: Yonghong Song <yhs@fb.com> — yhs / ViewSVN
  3. [ORC] Start adding ORCv1 to ORCv2 transition tips to the ORCv2 doc. — Lang Hames / ViewSVN
  4. [AMDGPU] fixed scheduler crash in gfx908

    For some reason scheduler can send down an SUnit without an
    instruction.

    Differential Revision: https://reviews.llvm.org/D64709 — rampitec / ViewSVN
  5. [clangd] Fix doc — kadircet / ViewSVN
  6. gn build: Add a note on how to locally tell git to ignore build dir — nico / ViewSVN
  7. [AMDGPU][MC][GFX9][GFX10] Added support of GET_DOORBELL message

    Reviewers: artem.tamazov, arsenm

    Differential Revision: https://reviews.llvm.org/D64729 — dpreobra / ViewSVN
  8. [clangd] Fix duplicate highlighting tokens appearing in initializer lists.

    Summary: The RecursiveASTVisitor sometimes visits exprs in initializer lists twice. Added deduplication to prevent duplicate highlighting tokens from appearing. Done by sorting and a linear search.

    Reviewers: hokein, sammccall, ilya-biryukov

    Subscribers: MaskRay, jkorous, mgrang, arphaman, kadircet, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64634 — jvikstrom / ViewSVN
  9. [PatternMatch] Implement matching code for LibFunc

    Summary: Provides m_LibFunc pattern that can be used to match LibFuncs.

    Reviewers: spatel, hfinkel, efriedma, lebedev.ri

    Reviewed By: lebedev.ri

    Subscribers: lebedev.ri, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D42047 — quolyk / ViewSVN
  10. [OPENMP]Add support for analysis of if clauses.

    Summary:
    Added support for analysis of if clauses in the OpenMP directives to be
    able to check for the use of uninitialized variables.

    Reviewers: NoQ

    Subscribers: guansong, jfb, jdoerfert, caomhin, kkwli0, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64646 — abataev / ViewSVN
  11. [AMDGPU][MC] Corrected encoding of src0 for DS_GWS_* instructions

    See bug 42599: https://bugs.llvm.org/show_bug.cgi?id=42599

    Reviewers: artem.tamazov, arsenm

    Differential Revision: https://reviews.llvm.org/D64716 — dpreobra / ViewSVN
  12. [X86] isTargetShuffleEquivalent - assert the expected mask is correctly formed. NFCI.

    While we don't make any assumptions about the actual mask, assert that the expected mask only contains valid mask element values. — rksimon / ViewSVN
  13. [Testing] Add missing "REQUIRES: asserts"

    This broke after r366048 / https://reviews.llvm.org/D63923 — davezarzycki / ViewSVN

rL:366051 - C:366044 - #58002 (Jul 15, 2019 3:47:40 AM)

  1. [libFuzzer] Disable fork.test on AArch64

    This crashes sporadically on our AArch64 buildbots. Disable for now. — rovka / ViewSVN
  2. [ARM] Adjust how NEON shifts are lowered

    This adjusts the way that we lower NEON shifts to use a DAG target node, not
    via a neon intrinsic. This is useful for handling MVE shifts operations in the
    same the way. It also renames some of the immediate shift nodes for
    consistency, and moves some of the processing of immediate shifts into
    LowerShift allowing it to capture more cases.

    Differential Revision: https://reviews.llvm.org/D64426 — dmgreen / ViewSVN

rL:366050 - C:366044 - #58001 (Jul 15, 2019 2:54:08 AM)

  1. [Loop Peeling] Fix the bug with IDom setting for exit loops

    It is possible that loop exit has two predecessors in a loop body.
    In this case after the peeling the iDom of the exit should be a clone of
    iDom of original exit but no a clone of a block coming to this exit.

    Reviewers: reames, fhahn
    Reviewed By: reames
    Subscribers: hiraditya, zzheng, llvm-commits
    Differential Revision: https://reviews.llvm.org/D64618 — skatkov / ViewSVN
  2. [LoopVectorize] Pass unfiltered list of arguments to getIntrinsicInstCost.

    We do not compute the scalarization overhead in getVectorIntrinsicCost
    and TTI::getIntrinsicInstrCost requires the full arguments list. — fhahn / ViewSVN

rL:366048 - C:366044 - #58000 (Jul 15, 2019 1:39:30 AM)

  1. [Loop Peeling] Enable peeling for loops with multiple exits

    This CL enables peeling of the loop with multiple exits where
    one exit should be from latch and others are basic blocks with
    call to deopt.

    The peeling is enabled under the flag which is false by default.

    Reviewers: reames, mkuper, iajbar, fhahn
    Reviewed By: reames
    Subscribers: xbolva00, hiraditya, zzheng, llvm-commits
    Differential Revision: https://reviews.llvm.org/D63923 — skatkov / ViewSVN
  2. [clangd] Added highlighting for members and methods.

    Summary: Added highlighting for members and methods.

    Reviewers: hokein, sammccall, ilya-biryukov

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64617 — jvikstrom / ViewSVN
  3. DeveloperPolicy: fix a typo — rsandifo / ViewSVN

rL:366043 - C:366044 - #57999 (Jul 15, 2019 12:49:49 AM)

  1. [clangd] Added highlighting to enum constants.

    Summary: VSCode does not have a scope for enum constants. So they were placed under "constant.other.enum" as that seems to be the most correct scope for enum constants. However, this makes theia color them blue (the same color it uses for keywords).

    Reviewers: hokein, sammccall, ilya-biryukov

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64624 — jvikstrom / ViewSVN

rL:366043 - C:366044 - #57998 (Jul 15, 2019 12:27:45 AM)

  1. [PowerPC] Support -mabi=ieeelongdouble and -mabi=ibmlongdouble

    gcc PowerPC supports 3 representations of long double:

    * -mlong-double-64

      long double has the same representation of double but is mangled as `e`.
      In clang, this is the default on AIX, FreeBSD and Linux musl.

    * -mlong-double-128

      2 possible 128-bit floating point representations:

      + -mabi=ibmlongdouble
        IBM extended double format. Mangled as `g`
        In clang, this is the default on Linux glibc.
      + -mabi=ieeelongdouble
        IEEE 754 quadruple-precision format. Mangled as `u9__ieee128` (`U10__float128` before gcc 8.2)
        This is currently unavailable.

    This patch adds -mabi=ibmlongdouble and -mabi=ieeelongdouble, and thus
    makes the IEEE 754 quadruple-precision long double available for
    languages supported by clang.

    Reviewed By: hfinkel

    Differential Revision: https://reviews.llvm.org/D64283 — maskray / ViewSVN

rL:366043 - C:366031 - #57997 (Jul 15, 2019 12:04:34 AM)

  1. [Attributor] Deduce "nonnull" attribute

    Summary:
    Porting nonnull attribute to attributor.

    Reviewers: jdoerfert, sstefan1

    Reviewed By: jdoerfert

    Subscribers: xbolva00, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D63604 — uenoku / ViewSVN
  2. [LoopUtils] Extend the scope of getLoopEstimatedTripCount

    With this patch the getLoopEstimatedTripCount function will
    accept also the loops where there are more than one exit but
    all exits except latch block should ends up with a call to deopt.

    This side exits should not impact the estimated trip count.

    Reviewers: reames, mkuper, danielcdh
    Reviewed By: reames
    Subscribers: fhahn, lebedev.ri, hiraditya, llvm-commits
    Differential Revision: https://reviews.llvm.org/D64553 — skatkov / ViewSVN

rL:366041 - C:366031 - #57996 (Jul 14, 2019 11:37:42 PM)

  1. Remove set but unused variable. — void / ViewSVN

rL:366040 - C:366031 - #57995 (Jul 14, 2019 11:10:09 PM)

  1. [LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function

    Extract the code from LoopUnrollRuntime into utility function to
    re-use it in D63923.

    Reviewers: reames, mkuper
    Reviewed By: reames
    Subscribers: fhahn, hiraditya, zzheng, dmgreen, llvm-commits
    Differential Revision: https://reviews.llvm.org/D64548 — skatkov / ViewSVN

rL:366039 - C:366031 - #57994 (Jul 14, 2019 10:07:41 PM)

  1. [PowerPC] Support fp128 libcalls

    On PowerPC, IEEE 754 quadruple-precision libcall names use "kf" instead of "tf".

    In libgcc, libgcc/config/rs6000/float128-sed converts TF names to KF
    names. This patch implements its 24 substitution rules.

    Reviewed By: hfinkel

    Differential Revision: https://reviews.llvm.org/D64282 — maskray / ViewSVN

rL:366038 - C:366031 - #57993 (Jul 14, 2019 9:57:41 PM)

  1. [BPF] add unit tests for preserve_{array,union,struct}_access_index intrinsics

    This is a followup patch for https://reviews.llvm.org/D61810/new/,
    which adds new intrinsics preserve_{array,union,struct}_access_index.

    Currently, only BPF backend utilizes preserve_{array,union,struct}_access_index
    intrinsics, so all tests are compiled with BPF target.

    https://reviews.llvm.org/D61524 already added some tests for these
    intrinsics, but some of them pretty complex.
    This patch added a few unit test cases focusing on individual intrinsic
    functions.

    Also made a few clarification on language reference for these intrinsics.

    Differential Revision: https://reviews.llvm.org/D64606 — yhs / ViewSVN

rL:366037 - C:366031 - #57992 (Jul 14, 2019 8:57:45 PM)

  1. [NFC][PowerPC] Add the test block-placement.mir — zhangkang / ViewSVN

rL:366036 - C:366031 - #57991 (Jul 14, 2019 8:27:42 PM)

  1. [ValueTracking] Look through constant Int2Ptr/Ptr2Int expressions

    Summary:
    This is analogous to the int2ptr/ptr2int instruction handling introduced
    in D54956.

    Reviewers: fhahn, efriedma, spatel, nlopes, sanjoy, lebedev.ri

    Subscribers: hiraditya, bollu, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64708 — jdoerfert / ViewSVN

rL:366034 - C:366031 - #57990 (Jul 14, 2019 7:07:43 PM)

  1. [X86] Separate the memory size of vzext_load/vextract_store from the element size of the result type. Use them improve the codegen of v2f32 loads/stores with sse1 only.

    Summary:
    SSE1 only supports v4f32. But does have instructions like movlps/movhps that load/store 64-bits of memory.

    This patch breaks the connection between the node VT of the vzext_load/vextract_store patterns and the memory VT. Enabling a v4f32 node with a 64-bit memory VT. I've used i64 as the memory VT here. I've written the PatFrag predicate to just check the store size not the specific VT. I think the VT will only matter for CSE purposes. We could use v2f32, but if we want to start using these operations in more places a simple integer type might make the most sense.

    I'd like to maybe use this same thing for SSE2 and later as well, but that will need more work to be supported by EltsFromConsecutiveLoads to avoid regressing lit tests. I'd maybe also like to combine bitcasts with these load/stores nodes now that the types are disconnected. And I'd also like to consider canonicalizing (scalar_to_vector + load) to vzext_load.

    If you want I can split the mechanical tablegen stuff where I added the 32/64 off from the sse1 change.

    Reviewers: spatel, RKSimon

    Reviewed By: RKSimon

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64528 — ctopper / ViewSVN

rL:366031 - C:366031 - #57988 (Jul 14, 2019 2:29:47 PM)

  1. Improve compile time of variant.

    In particular, improve the compile time of the overload set builder
    that variant uses to determine which alternative to construct.

    Instead of having the __overload type construct itself recursively,
    this patch uses a flat construction for the overload set. — ericwf / ViewSVN
  2. Add test for variant construction with duplicate types. — ericwf / ViewSVN

rL:366031 - C:366031 - #57987 (Jul 14, 2019 1:37:46 PM)

  1. [TargetParser][ARM] Account dependencies when processing target features

    Teaches ARM::appendArchExtFeatures to account dependencies when processing
    target features: i.e. when you say -march=armv8.1-m.main+mve.fp+nofp it
    means mve.fp should get discarded too. (Split from D63936)

    Differential Revision: https://reviews.llvm.org/D64048 — alelab01 / ViewSVN

rL:366030 - C:366029 - #57986 (Jul 14, 2019 1:17:43 PM)

  1. [LV] Exclude loop-invariant inputs from scalar cost computation.

    Loop invariant operands do not need to be scalarized, as we are using
    the values outside the loop. We should ignore them when computing the
    scalarization overhead.

    Fixes PR41294

    Reviewers: hsaito, rengolin, dcaballe, Ayal

    Reviewed By: Ayal

    Differential Revision: https://reviews.llvm.org/D59995 — fhahn / ViewSVN

rL:366027 - C:366029 - #57985 (Jul 14, 2019 12:17:46 PM)

  1. Fix uninitialized variable analyzer warning. NFCI. — rksimon / ViewSVN

rL:366027 - C:366028 - #57984 (Jul 14, 2019 11:37:44 AM)

  1. Support __seg_fs and __seg_gs on x86

    Summary:
    GCC supports named address spaces macros:
      https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html

    clang does as well with address spaces:
      https://clang.llvm.org/docs/LanguageExtensions.html#memory-references-to-specified-segments

    Add the __seg_fs and __seg_gs macros for compatibility with GCC.

    <rdar://problem/52944935>

    Subscribers: jkorous, dexonsmith, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64676 — jfb / ViewSVN
  2. [clang][Driver][ARM] Favor -mfpu over default CPU features

    When processing the command line options march, mcpu and mfpu, we store
    the implied target features on a vector. The change D62998 introduced a
    temporary vector, where the processed features get accumulated. When
    calling DecodeARMFeaturesFromCPU, which sets the default features for
    the specified CPU, we certainly don't want to override the features
    that have been explicitly specified on the command line. Therefore, the
    default features should appear first in the final vector. This problem
    became evident once I added the missing (unhandled) target features in
    ARM::getExtensionFeatures.

    Differential Revision: https://reviews.llvm.org/D63936 — alelab01 / ViewSVN
  3. Cleanup whitespace in <variant>. NFC. — ericwf / ViewSVN
  4. Harden variant test added in r366022

    The test was brittle since it only went boom for one specific type, when
    really it should go boom for all of them. — ericwf / ViewSVN

rL:366023 - C:366024 - #57983 (Jul 14, 2019 11:27:43 AM)

  1. consistency in the release notes — sylvestre / ViewSVN
  2. [GitSVN][NFC] Mark dry-run commits as such in the log output

    Summary: This helps to avoid worries about the "dry run flag" while testing.

    Reviewers: jyknight, rnk, mehdi_amini

    Subscribers: bollu, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64697 — jdoerfert / ViewSVN
  3. Avoid eager template instantiation caused by the variant narrowing checks.

    The standard disallows narrowing conversions when constructing a variant.
    This is checked by attempting to perform braced initialization of the
    destination type from the argument type. However, braced initialization
    can force the compiler (mostly clang) to eagerly instantiate the
    constructors of the destintation type -- which can lead to errors in
    a non-immediate context.

    However, as variant is currently specified, the narrowing checks only
    observably apply when the destination type is arithmetic. Meaning we can
    skip the check for class types. Hense avoiding the hard errors.

    In order to cause fewer build breakages, this patch avoids the narrowing
    check except when the destination type is arithmetic. — ericwf / ViewSVN

rL:366021 - C:366013 - #57982 (Jul 14, 2019 9:02:46 AM)

  1. [InstCombine] Add assume context test; NFC

    Baseline test for D37215. — nikic / ViewSVN

rL:366020 - C:366013 - #57981 (Jul 14, 2019 8:07:45 AM)

  1. [Hashing] hash_1to3_bytes - avoid trunc(v + zext(x)) NFCI.

    MSVC complains about the extension to uint64_t for an addition followed by truncation back to uint32_t - add an explicit uint32_t cast to avoid this. — rksimon / ViewSVN

rL:366019 - C:366013 - #57980 (Jul 14, 2019 7:12:42 AM)

  1. [x86] add test for sub-with-flags opportunity (PR40483); NFC — spatel / ViewSVN
  2. Recommit "[BitcodeReader] Validate OpNum, before accessing Record array."

    This recommits r365750 (git commit 8b222ecf2769ee133691f208f6166ce118c4a164)

    Original message:

       Currently invalid bitcode files can cause a crash, when OpNum exceeds
       the number of elements in Record, like in the attached bitcode file.

       The test case was generated by clusterfuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15698

       Reviewers: t.p.northover, thegameg, jfb

       Reviewed By: jfb

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

       llvm-svn: 365750jkkkk — fhahn / ViewSVN

rL:366017 - C:366013 - #57979 (Jul 14, 2019 5:42:44 AM)

  1. [BitcodeReader] Use tighter upper bound to validate forward references.

    At the moment, bitcode files with invalid forward reference can easily
    cause the bitcode reader to run out of memory, by creating a forward
    reference with a very high index.

    We can use the size of the bitcode file as an upper bound, because a
    valid bitcode file can never contain more records. This should be
    sufficient to fail early in most cases. The only exception is large
    files with invalid forward references close to the file size.

    There are a couple of clusterfuzz runs that fail with out-of-memory
    because of very high forward references and they should be fixed by this
    patch.

    A concrete example for this is D64507, which causes out-of-memory on
    systems with low memory, like the hexagon upstream bots.

    Reviewers: t.p.northover, thegameg, jfb, efriedma, hfinkel

    Reviewed By: jfb

    Differential Revision: https://reviews.llvm.org/D64577 — fhahn / ViewSVN

rL:366016 - C:366013 - #57978 (Jul 14, 2019 4:52:46 AM)

  1. VirtRegMap - add missing initializers. NFCI. — rksimon / ViewSVN

rL:366015 - C:366013 - #57977 (Jul 14, 2019 4:47:47 AM)

  1. SlotIndexes - add missing initializer. NFCI. — rksimon / ViewSVN

rL:366014 - C:366013 - #57976 (Jul 14, 2019 4:12:44 AM)

  1. [MachineOutliner] Add missing initializers for OutlinedFunction. NFCI.

    Appeases MSVC/cppcheck. — rksimon / ViewSVN

rL:366011 - C:366013 - #57975 (Jul 14, 2019 12:22:44 AM)

  1. [Driver] Simplify AddLibgcc — maskray / ViewSVN

rL:366011 - C:366012 - #57974 (Jul 13, 2019 11:52:44 PM)

  1. [Driver] Simplify -lgcc & -lgcc_s

    gcc defaults to -shared-libgcc in C++ mode.
    Letting getLibGccType() return SharedLibGcc simplifies the logic. — maskray / ViewSVN

rL:366011 - C:366010 - #57973 (Jul 13, 2019 9:17:46 PM)

  1. [X86] Remove offset of 8 from the call to FuseInst for UNPCKLPDrr folding added in r365287.

    This was copy/pasted from above and I forgot to change it. We just
    need the default offset of 0 here.

    Fixes PR42616. — ctopper / ViewSVN

rL:366009 - C:366010 - #57972 (Jul 13, 2019 12:52:47 PM)

  1. Remove extra ';' to silent compiler warning.

    - Plus extra style formatting. — hliao / ViewSVN

rL:366009 - C:366007 - #57971 (Jul 13, 2019 10:07:46 AM)

  1. [Attributor][Fix] Never override given argument numbers — jdoerfert / ViewSVN

rL:366008 - C:366007 - #57970 (Jul 13, 2019 8:54:55 AM)

  1. [ARM] Add sign and zero extend patterns for MVE

    The vmovlb instructions can be uses to sign or zero extend vector registers
    between types. This adds some patterns for them and relevant testing. The
    VBICIMM generation is also put behind a hasNEON check (as is already done for
    VORRIMM).

    Code originally by David Sherwood.

    Differential Revision: https://reviews.llvm.org/D64069 — dmgreen / ViewSVN
  2. Template-related improvements to Visual Studio visualizers — mps / ViewSVN
  3. [ARM] MVE VNEG instruction patterns

    This selects integer VNEG instructions, which can be especially useful with shifts.

    Differential Revision: https://reviews.llvm.org/D64204 — dmgreen / ViewSVN
  4. [ARM] MVE integer abs

    Similar to floating point abs, we also have instructions for integers.

    Differential Revision: https://reviews.llvm.org/D64027 — dmgreen / ViewSVN
  5. [ARM] MVE integer min and max

    This simply makes the MVE integer min and max instructions legal and adds the
    relevant patterns for them.

    Differential Revision: https://reviews.llvm.org/D64026 — dmgreen / ViewSVN

rL:366003 - C:365995 - #57969 (Jul 13, 2019 7:42:49 AM)

  1. [ARM] MVE VRINT support

    This adds support for the floor/ceil/trunc/... series of instructions,
    converting to various forms of VRINT. They use the same suffixes as their
    floating point counterparts. There is not VTINTR, so nearbyint is expanded.

    Also added a copysign test, to show it is expanded.

    Differential Revision: https://reviews.llvm.org/D63985 — dmgreen / ViewSVN

rL:366002 - C:365995 - #57968 (Jul 13, 2019 7:36:54 AM)

  1. [ARM] MVE minnm and maxnm instructions

    This adds the patterns for minnm and maxnm from the fminnum and fmaxnum nodes,
    similar to scalar types.

    Original patch by Simon Tatham

    Differential Revision: https://reviews.llvm.org/D63870 — dmgreen / ViewSVN

rL:366001 - C:365995 - #57967 (Jul 13, 2019 6:29:55 AM)

  1. FileCheck [7/12]: Arbitrary long numeric expressions

    Summary:
    This patch is part of a patch series to add support for FileCheck
    numeric expressions. This specific patch extend numeric expression to
    support an arbitrary number of operands, either variable or literals.

    Copyright:
        - Linaro (changes up to diff 183612 of revision D55940)
        - GraphCore (changes in later versions of revision D55940 and
                     in new revision created off D55940)

    Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

    Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D60387 — thopre / ViewSVN

rL:366000 - C:365995 - #57966 (Jul 13, 2019 6:22:48 AM)

  1. Revert "[InstCombine] add tests for umin/umax via usub.sat; NFC"

    This reverts commit rL365999 / 0f6148df23edcd3081f5e761de19edd4f823f16d.
    The tests already exist in this file, and the hoped-for transform
    (mentioned in D62871) is invalid because of undef as discussed in
    D63060. — spatel / ViewSVN

rL:365999 - C:365995 - #57965 (Jul 13, 2019 5:57:48 AM)

  1. [InstCombine] add tests for umin/umax via usub.sat; NFC — spatel / ViewSVN

rL:365998 - C:365995 - #57964 (Jul 13, 2019 5:07:47 AM)

  1. [x86] simplify cmov with same true/false operands — spatel / ViewSVN

rL:365997 - C:365995 - #57963 (Jul 13, 2019 2:32:47 AM)

  1. [Object] isNotObjectErrorInvalidFileType: simplify — maskray / ViewSVN

rL:365996 - C:365995 - #57962 (Jul 13, 2019 2:27:48 AM)

  1. [Object] isNotObjectErrorInvalidFileType: fix use-after-move — maskray / ViewSVN

rL:365984 - C:365995 - #57961 (Jul 13, 2019 1:12:51 AM)

  1. Fix -Wdocumentation warning. NFCI. — rksimon / ViewSVN
  2. [CMake][Fuchsia] Define asan+noexcept multilib

    Using noexcept multilib with -fno-exceptions can lead to significant
    space savings when statically linking libc++abi because we don't need
    all the unwinding and demangling code.

    When compiling with ASan, we already get a lot of overhead from the
    instrumentation itself, when statically linking libc++abi, that overhead
    is even larger.

    Having the noexcept variant for ASan can help significantly, we've seen
    more than 50% size reduction in our system image, which offsets the cost
    of having to build another multilib.

    Differential Revision: https://reviews.llvm.org/D64140 — phosek / ViewSVN

rL:365984 - C:365992 - #57960 (Jul 13, 2019 12:27:47 AM)

  1. Simplify with llvm::is_contained. NFC — maskray / ViewSVN

rL:365984 - C:365992 - #57959 (Jul 12, 2019 11:32:50 PM)

  1. This reverts commit 632a36bfcfc8273c1861f04ff6758d863c47c784.

    Some targets such as Python 2.7.16 still use VERSION in
    their builds. Without VERSION defined, the source code
    has syntax errors.

    Reverting as it will probably break many other things.

    Noticed by Sterling Augustine — sylvestre / ViewSVN

rL:365984 - C:365989 - #57958 (Jul 12, 2019 9:02:50 PM)

  1. Initialize the non-trivial C union bits I added to RecordDeclBitfields
    in r365985

    These bits weren't being initialized in the RecordDecl's constructor,
    which probably caused test/Modules/stress1.cpp to fail on a couple of
    bots. — ahatanak / ViewSVN

rL:365984 - C:365985 - #57957 (Jul 12, 2019 8:27:50 PM)

  1. [clangd] Mark type hierarchy as a supported feature in the docs

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64614 — nridge / ViewSVN
  2. [clangd] Implement typeHierarchy/resolve for subtypes

    Summary:
    This allows the client to resolve subtypes one level at a time.

    For supertypes, this is not necessary, because we eagerly compute
    supertypes and return all levels.

    Reviewers: sammccall

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

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64308 — nridge / ViewSVN

rL:365984 - C:365985 - #57956 (Jul 12, 2019 6:52:50 PM)

  1. [Sema] Diagnose default-initialization, destruction, and copying of
    non-trivial C union types

    This patch diagnoses uses of non-trivial C unions and structs/unions
    containing non-trivial C unions in the following contexts, which require
    default-initialization, destruction, or copying of the union objects,
    instead of disallowing fields of non-trivial types in C unions, which is
    what we currently do:

    - function parameters.
    - function returns.
    - assignments.
    - compound literals.
    - block captures except capturing of `__block` variables by non-escaping
      blocks.
    - local and global variable definitions.
    - lvalue-to-rvalue conversions of volatile types.

    See the discussion in https://reviews.llvm.org/D62988 for more background.

    rdar://problem/50679094

    Differential Revision: https://reviews.llvm.org/D63753 — ahatanak / ViewSVN

rL:365984 - C:365981 - #57955 (Jul 12, 2019 6:11:32 PM)

  1. [Attributor][NFC] Run clang-format on the attributor files (.h/.cpp)

    The Attributor files are kept formatted with clang-format, we should try
    to keep this state. — jdoerfert / ViewSVN
  2. [Attributor] Only return attributes with a valid state

    Attributor::getAAFor will now only return AbstractAttributes with a
    valid AbstractState. This simplifies call sites as they only need to
    check if the returned pointer is non-null. It also reduces the potential
    for accidental misuse. — jdoerfert / ViewSVN
  3. [TSan] Tiny cleanup of UnmangleLongJmpSp for Linux/x86_64

    NFC. — yln / ViewSVN
  4. clang/test/Driver/fsanitize.c: Fix -fsanitize=vptr using default target

    The default implementation of getSupportedSanitizers isn't able to turn
    on the vptr sanitizer, and thus, any platform that runs this test will
    fail with the error:

        clang: error: unsupported option '-fsanitize=vptr' for target '<target>'

    Patch by James Nagurne! — maskray / ViewSVN
  5. Extend function attributes bitset size from 64 to 96.

    Summary: We are going to add a function attribute number 64.

    Reviewers: pcc, jdoerfert, lebedev.ri

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64663 — eugenis / ViewSVN

rL:365977 - C:365976 - #57954 (Jul 12, 2019 5:29:47 PM)

  1. [Attributor][FIX] Lookup of (call site) argument attributes — jdoerfert / ViewSVN
  2. [DirectoryWatcher][test][NFC] Add information to test failure reports — Jan Korous / ViewSVN

rL:365974 - C:365975 - #57953 (Jul 12, 2019 4:59:02 PM)

  1. Re-land [JSONCompilationDatabase] Strip distcc/ccache/gomacc wrappers from parsed commands.

    Use //net/dir like other test cases for windows compatibility — sammccall / ViewSVN
  2. PDB HashTable: Move TraitsT from class parameter to the methods that need it

    The traits object is only used by a few methods. Deserializing a hash
    table and walking it is possible without the traits object, so it
    shouldn't be required to build a dummy object for that use case.

    The TraitsT object used to be a function template parameter before
    r327647, this restores it to that state.

    This makes it clear that the traits object isn't needed at all in 1 of
    the current 3 uses of HashTable (and I am going to add another use that
    doesn't need it), and that the default PdbHashTraits isn't used outside
    of tests.

    While here, also re-enable 3 checks in the test that were commented out
    (which requires making HashTableInternals templated and giving FooBar
    an operator==).

    No intended behavior change.

    Differential Revision: https://reviews.llvm.org/D64640 — nico / ViewSVN

rL:365972 - C:365969 - #57952 (Jul 12, 2019 4:10:26 PM)

  1. Fix non-conformance it `std::tuple`.

    Previously we implemented all one trillion tuple-like constructors using
    a single generic overload. This worked fairly well, except that it
    differed in behavior from the standard version because it didn't
    consider both T&& and T const&. This was observable for certain
    types.

    This patch addresses that issue by splitting the generic constructor
    in two. We now provide both T&& and T const& versions of the
    tuple-like constructors (sort of). — ericwf / ViewSVN

rL:365972 - C:365969 - #57951 (Jul 12, 2019 3:47:02 PM)

  1. [AMDGPU] use v32f32 for 3 mfma intrinsics

    These should really use v32f32, but were defined as v32i32
    due to the lack of the v32f32 type.

    Differential Revision: https://reviews.llvm.org/D64667 — rampitec / ViewSVN
  2. isBytewiseValue checks ConstantVector element by element

    Summary: Vector of the same value with few undefs will sill be considered "Bytewise"

    Reviewers: eugenis, pcc, jfb

    Reviewed By: jfb

    Subscribers: dexonsmith, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64031 — Vitaly Buka / ViewSVN
  3. [MemorySSA] Use SetVector to avoid nondeterminism.

    Summary:
    Use a SetVector for DeadBlockSet.
    Resolves PR42574.

    Reviewers: george.burgess.iv, uabelho, dblaikie

    Subscribers: jlebar, Prazek, mgrang, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64601 — asbirlea / ViewSVN
  4. NFC: utils/perf-training: Python 3 compatibility for lit.cfg

    The output of subprocess.check_output is now bytes. We need to decode it. — arphaman / ViewSVN
  5. [DirectoryWatcher][NFC] Silence warnings in release build — Jan Korous / ViewSVN
  6. [clang-doc] Fix failing tests on Windows

    Tests on Windows were failing due to path separator differences.
    '/' was being used as separator in the expected output, paths in expected
    output are now changed to their native form before comparing them to the
    actual output.

    Committed on behalf of Diego Astiazarán (diegoaat97@gmail.com).

    Differential Revision: https://reviews.llvm.org/D64669 — juliehockett / ViewSVN
  7. [DirectoryWatcher][linux] Fix use of uninitialized value — Jan Korous / ViewSVN
  8. [WebAssembly] refactored utilities to not depend on MachineInstr

    Summary:
    Most of these functions can work for MachineInstr and MCInst
    equally now.

    Reviewers: dschuff

    Subscribers: MatzeB, sbc100, jgravelle-google, aheejin, sunfish, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64643 — aardappel / ViewSVN
  9. [macCatalyst] Use macCatalyst pretty name in .build_version darwin
    assembly command

    'macCatalyst' is more readable than 'maccatalyst'. I renamed the objdump output,
    but the assembly should match it as well. — arphaman / ViewSVN

rL:365961 - C:365962 - #57950 (Jul 12, 2019 2:57:58 PM)

  1. Remove __VERSION__

    Summary:
    It has been introduced in 2011 for gcc compat:
    https://github.com/llvm-mirror/clang/commit/ad1a4c6e89594e704775ddb6b036ac982fd68cad
    it is probably time to remove it


    Reviewers: rnk, dexonsmith

    Reviewed By: rnk

    Subscribers: dschuff, aheejin, fedor.sergeev, arphaman, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64062 — sylvestre / ViewSVN
  2. [test][AArch64] Relax the opcode tests for FP min/max instructions. — dyung / ViewSVN

rL:365959 - C:365956 - #57949 (Jul 12, 2019 2:34:57 PM)

  1. Add option to disable variant narrowing conversion changes.

    The paper P0608R3 - "A sane variant converting constructor" disallows
    narrowing conversions in variant. It was meant to address this
    surprising problem:

      std::variant<std::string, bool> v = "abc";
      assert(v.index() == 1); // constructs a bool.

    However, it also disables every potentially narrowing conversion. For
    example:

      variant<unsigned> v = 0; // ill-formed
      variant<string, double> v2 = 42; // ill-formed (int -> double narrows)

    These latter changes break code. A lot of code. Within Google it broke
    on the order of a hundred thousand target with thousands of root causes
    responsible for the breakages.

    Of the breakages related to the narrowing restrictions, none of them
    exposed outstanding bugs. However, the breakages caused by boolean
    conversions (~13 root causes), all but one of them were bugs.

    For this reasons, I am adding a flag to disable the narrowing conversion
    changes but not the boolean conversions one.

    One purpose of this flag is to allow users to opt-out of breaking changes
    in variant until the offending code can be cleaned up. For non-trivial
    variant usages the amount of cleanup may be significant.

    This flag is also required to support automated tooling, such as
    clang-tidy, that can automatically fix code broken by this change.
    In order for clang-tidy to know the correct alternative to construct,
    it must know what alternative was being constructed previously, which
    means running it over the old version of std::variant.

    Because this change breaks so much code, I will be implementing the
    aforementioned clang-tidy check in the very near future.

    Additionally I'm plan present this new information to the committee so they can
    re-consider if this is a breaking change we want to make.

    I think libc++ should very seriously consider pulling this change
    before the 9.0 release branch is cut. But that's a separate discussion
    that I will start on the lists.

    For now this is the minimal first step. — ericwf / ViewSVN
  2. [InstCombine] Disable fold from D64285 for non-integer types — xbolva00 / ViewSVN
  3. Factor out resolveFrameOffsetReference (NFC).

    Split AArch64FrameLowering::resolveFrameIndexReference in two parts
    * Finding frame offset for the index.
    * Finding base register and offset to that register.

    The second part will be used to implement a virtual frame pointer in
    armv8.5 MTE stack instrumentation lowering.

    Reviewers: pcc, vitalybuka, hctim, ostannard

    Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64171 — eugenis / ViewSVN

rL:365953 - C:365956 - #57948 (Jul 12, 2019 2:00:22 PM)

  1. [builtins] Fix assembly in arm sync-ops.h

    This assembly is part of a macro that was reformatted in D60351.
    The missing space between push and { results in:

        Error: bad instruction `push{r4, r5,r6,lr}' — nikic / ViewSVN

rL:365953 - C:365956 - #57947 (Jul 12, 2019 1:45:23 PM)

  1. Revert driver: Don't warn about assembler flags being unused when not assembling

    This reverts r365703 (git commit 101c1afdfd1c88f05da94c6fd317b489bb704f40)
    and r365714.

    This broke some autoconf-style assembler flags checks in the Linux
    build:
    https://github.com/ClangBuiltLinux/linux/issues/598 — rnk / ViewSVN
  2. [clangd] Fix off-by-one in CodeComplete and assertion in Dex — sammccall / ViewSVN
  3. Reland [clang] DirectoryWatcher

    This reverts commit f561227d133224d2d6a5a016abe4be051fa75501.

    - DirectoryWatcher
    - Fix the build for platforms that don't have DW implementated.
    - Fix the threading dependencies (thanks to compnerd). — Jan Korous / ViewSVN

rL:365953 - C:365948 - #57946 (Jul 12, 2019 1:22:43 PM)

  1. AMDGPU: Drop remnants of byval support for shaders

    Before 2018, mesa used to use byval interchangably with inreg, which
    didn't really make sense. Fix tests still using it to avoid breaking
    in a future commit. — arsenm / ViewSVN
  2. Fix missing use of defined() in include guard

    Subscribers: arsenm, jvesely, nhaehnle, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64657 — daltenty / ViewSVN
  3. [SystemZ] Fix addcarry of addcarry of const carry (PR42606)

    This fixes https://bugs.llvm.org/show_bug.cgi?id=42606 by extending
    D64213. Instead of only checking if the carry comes from a matching
    operation, we now check the full chain of carries. Otherwise we might
    custom lower the outermost addcarry, but then generically legalize
    an inner addcarry.

    Differential Revision: https://reviews.llvm.org/D64658 — nikic / ViewSVN
  4. Revert "Reland [clang] DirectoryWatcher"

    This reverts commit fdcb7f47e783933e0af8a5fae91132269a208268. — Jan Korous / ViewSVN
  5. Reland [clang] DirectoryWatcher

    This reverts commit abce8c457dd3de6b156756e547cc0eefb7653c79.

    + Fix the build for platforms that don't have DW implementated. — Jan Korous / ViewSVN

rL:365946 - C:365935 - #57945 (Jul 12, 2019 12:32:50 PM)

  1. [X86] Use MachineInstr::findRegisterDefOperand to simplify some code in optimizeCompareInstr. NFCI — ctopper / ViewSVN
  2. [DebugInfo] Add column info for inline sites

    The column field is missing for all inline sites, currently it's always
    zero. This changes populates DW_AT_call_column field for inline sites.
    Test case modified to cover this change.

    Patch by: Wenlei He

    Differential revision: https://reviews.llvm.org/D64033 — Jonas Devlieghere / ViewSVN

rL:365943 - C:365935 - #57944 (Jul 12, 2019 12:10:40 PM)

  1. The variable "Latch" is only used in an assert, which makes builds that use "-DNDEBUG" fail with unused variable messages.

    Summary: Move the logic into the assert itself.

    Subscribers: hiraditya, sanjoy, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64654 — saugustine / ViewSVN
  2. [SystemZ] Fix build bot failure after r365932

    Insert LLVM_FALLTHROUGH to avoid compiler warning. — uweigand / ViewSVN
  3. [x86] add test for bogus cmov (PR40483); NFC — spatel / ViewSVN
  4. [AMDGPU] Extend MIMG opcode to 8 bits

    This is NFC, but required for future commit.

    Differential Revision: https://reviews.llvm.org/D64649 — rampitec / ViewSVN
  5. Addition to rL365925, removing remaining virtuals — sstefan / ViewSVN
  6. [clang-doc] Add html links to references

    <a> tags are added for the parents and members of records and return type and
    params of functions. The link redirects to the reference's info file.

    The directory path where each info file will be saved is now generated in the
    serialization phase and stored as an attribute in each Info.

    Bitcode writer and reader were modified to handle the new attributes.

    Committed on behalf of Diego Astiazarán (diegoaat97@gmail.com).

    Differential Revision: https://reviews.llvm.org/D63663 — juliehockett / ViewSVN
  7. Slightly simplify MappedBlockStream::createIndexedStream() calls

    All callers had a PDBFile object at hand, so call
    Pdb.createIndexedStream() instead, which pre-populates all the arguments
    (and returns nullptr for kInvalidStreamIndex).

    Also change safelyCreateIndexedStream() to only take the string index,
    and update callers. Make the method public and call it in two places
    that manually did the bounds checking before.

    No intended behavior change.

    Differential Revision: https://reviews.llvm.org/D64633 — nico / ViewSVN
  8. [WebAssembly] Make pthread imply bulk-memory, mutable-globals

    Summary:
    This paves the way for using passive segments in pthread builds, which
    will make separate memory files unnecessary. Mutable globals are also
    necessary for the upcoming implementation of TLS.

    Reviewers: aheejin, dschuff

    Subscribers: sbc100, jgravelle-google, sunfish, jfb, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64586 — tlively / ViewSVN
  9. Add explicit newline at end of `llvm-pdbutil dump`

    All dump modes I checked didn't print a trailing newline, so add one. — nico / ViewSVN

rL:365932 - C:365933 - #57943 (Jul 12, 2019 11:15:39 AM)

  1. [SystemZ] Add support for new cpu architecture - arch13

    This patch series adds support for the next-generation arch13
    CPU architecture to the SystemZ backend.

    This includes:
    - Basic support for the new processor and its features.
    - Support for low-level builtins mapped to new LLVM intrinsics.
    - New high-level intrinsics in vecintrin.h.
    - Indicate support by defining  __VEC__ == 10303.

    Note: No currently available Z system supports the arch13
    architecture.  Once new systems become available, the
    official system name will be added as supported -march name. — uweigand / ViewSVN
  2. [SystemZ] Add support for new cpu architecture - arch13

    This patch series adds support for the next-generation arch13
    CPU architecture to the SystemZ backend.

    This includes:
    - Basic support for the new processor and its features.
    - Assembler/disassembler support for new instructions.
    - CodeGen for new instructions, including new LLVM intrinsics.
    - Scheduler description for the new processor.
    - Detection of arch13 as host processor.

    Note: No currently available Z system supports the arch13
    architecture.  Once new systems become available, the
    official system name will be added as supported -march name. — uweigand / ViewSVN
  3. Remove unused methods in Sancov. — leonardchan / ViewSVN
  4. [X86] Add NEG to isUseDefConvertible.

    We can use the C flag from NEG to detect that the input was zero.

    Really we could probably use the Z flag too. But C matches what
    we'd do for usubo 0, X.

    Haven't found a test case for this due to the usubo formation
    in CGP. But I verified if I comment out the CGP code this
    transformation catches some of the same cases. — ctopper / ViewSVN
  5. [X86][AVX] Add PR34359 shuffle test case. — rksimon / ViewSVN
  6. [Attributor] Removing unnecessary `virtual` keywords.

    Some function in the Attributor framework are unnecessarily
    marked virtual. This patch removes virtual keyword

    Reviewers: jdoerfert

    Subscribers: hiraditya, llvm-commits

    Differential Revision: https://reviews.llvm.org/D64637 — sstefan / ViewSVN
  7. [Attributor] Deduce "nofree" function attribute

    Summary: Deduce "nofree" function attribute. A more concise description of "nofree" is on D49165.

    Reviewers: jdoerfert

    Reviewed By: jdoerfert

    Subscribers: homerdin, hfinkel, lebedev.ri, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D62687 — uenoku / ViewSVN
  8. [libc++] Add XFAILs for CTAD tests on older compilers — Louis Dionne / ViewSVN
  9. Revert [clang-shlib] Fix clang-shlib for PRIVATE dependencies

    This reverts r365825 (git commit 3173c60f96c3ccfc17d403a192ae58e720153c23)

    This is breaking BUILD_SHARED_LIBS=ON builds. Reverting while I rethink it. — smeenai / ViewSVN
  10. CodeGet: Init 32bit pointers with 0xFFFFFFFF

    Summary:
    Patch makes D63967 effective for 32bit platforms and improves pattern
    initialization there. It cuts size of 32bit binary compiled with
    -ftrivial-auto-var-init=pattern by 2% (3% with -Os).

    Binary size change on CTMark, (with -fuse-ld=lld -Wl,--icf=all, similar results with default linker options)
    ```
                       master           patch      diff
    Os pattern   7.915580e+05    7.698424e+05 -0.028387
    O3 pattern   9.953688e+05    9.752952e+05 -0.019325
    ```

    Zero vs Pattern on master
    ```
                   zero       pattern      diff
    Os     7.689712e+05  7.915580e+05  0.031380
    O3     9.744796e+05  9.953688e+05  0.021133
    ```

    Zero vs Pattern with the patch
    ```
                   zero       pattern      diff
    Os     7.689712e+05  7.698424e+05  0.000789
    O3     9.744796e+05  9.752952e+05  0.000742
    ```

    Reviewers: pcc, eugenis, glider, jfb

    Reviewed By: jfb

    Subscribers: hubert.reinterpretcast, dexonsmith, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D64597 — Vitaly Buka / ViewSVN
  11. [IndVars] Use exit count reasoning to discharge obviously untaken exits

    Continue in the spirit of D63618, and use exit count reasoning to prove away loop exits which can not be taken since the backedge taken count of the loop as a whole is provably less than the minimal BE count required to take this particular loop exit.

    As demonstrated in the newly added tests, this triggers in a number of cases where IndVars was previously unable to discharge obviously redundant exit tests. And some not so obvious ones.

    Differential Revision: https://reviews.llvm.org/D63733 — reames / ViewSVN

rL:365910 - C:365909 - #57941 (Jul 12, 2019 9:02:51 AM)

  1. [libc++] Add XFAILs for CTAD tests on older compilers — Louis Dionne / ViewSVN
  2. [AMDGPU] Fix DPP combiner check for exec modification

    Summary:
    r363675 changed the exec modification helper function, now called
    execMayBeModifiedBeforeUse, so that if no UseMI is specified it checks
    all instructions in the basic block, even beyond the last use. That
    meant that the DPP combiner no longer worked in any basic block that
    ended with a control flow instruction, and in particular it didn't work
    on code sequences generated by the atomic optimizer.

    Fix it by reinstating the old behaviour but in a new helper function
    execMayBeModifiedBeforeAnyUse, and limiting the number of instructions
    scanned.

    Reviewers: arsenm, vpykhtin

    Subscribers: kzhuravl, nemanjai, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kbarton, MaskRay, jfb, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64393 — foad / ViewSVN
  3. [clang-format][tests] Explicitly specify style in some tests

    Summary: This fixes broken tests when doing an out-of-source build that picks up a random .clang-format on the file system due to the default "file" style.

    Reviewers: djasper, klimek, MyDeveloperDay, krasimir

    Reviewed By: MyDeveloperDay

    Subscribers: lebedev.ri, cfe-commits

    Tags: #clang

    Differential Revision: https://reviews.llvm.org/D61001 — r.stahl / ViewSVN