Skip to content
  1. Apr 23, 2019
  2. Apr 22, 2019
    • Adrian Prantl's avatar
      [dsymutil] Collect parseable Swift interfaces in the .dSYM bundle. · 0d809aa2
      Adrian Prantl authored
      When a Swift module built with debug info imports a library without
      debug info from a textual interface, the textual interface is
      necessary to reconstruct types defined in the library's interface. By
      recording the Swift interface files in DWARF dsymutil can collect them
      and LLDB can find them.
      
      This patch teaches dsymutil to look for DW_TAG_imported_modules and
      records all references to parseable Swift ingterfrace files and copies
      them to
      
        a.out.dSYM/Contents/Resources/<Arch>/<ModuleName>.swiftinterface
      
      <rdar://problem/49751748>
      
      llvm-svn: 358921
      0d809aa2
    • Philip Reames's avatar
      [InstCombine] Eliminate stores to constant memory · d748689c
      Philip Reames authored
      If we have a store to a piece of memory which is known constant, then we know the store must be storing back the same value. As a result, the store (or memset, or memmove) must either be down a dead path, or a noop. In either case, it is valid to simply remove the store.
      
      The motivating case for this involves a memmove to a buffer which is constant down a path which is dynamically dead.
      
      Note that I'm choosing to implement the less aggressive of two possible semantics here. We could simply say that the store *is undefined*, and prune the path. Consensus in the review was that the more aggressive form might be a good follow on change at a later date.
      
      Differential Revision: https://reviews.llvm.org/D60659
      
      llvm-svn: 358919
      d748689c
    • Davide Italiano's avatar
      [EditLineTest] Not always TERM is available, e.g. on some bots. · 2a27af82
      Davide Italiano authored
      llvm-svn: 358918
      2a27af82
    • Joel E. Denny's avatar
      [VerifyDiagnosticConsumer] Document -verify=<prefixes> in doxygen · 906b2642
      Joel E. Denny authored
      Previously, it was only documented by `-cc1 -help`, so people weren't
      aware of it, as discussed in D60732.
      
      Reviewed By: Charusso, NoQ
      
      Differential Revision: https://reviews.llvm.org/D60845
      
      llvm-svn: 358917
      906b2642
    • Jonas Devlieghere's avatar
      [Reproducers] Fix lifetime issue · 32176bae
      Jonas Devlieghere authored
      Deallocating the data recorder in during the ::Keep() operation causes
      problems down the line when exiting the debugger. The command
      interpreter still holds a pointer to the now deallocated object and has
      no way to know it no longer exists. This is exactly what the m_record
      flag was meant for, although it wasn't hooked up properly either.
      
      llvm-svn: 358916
      32176bae
    • Petr Hosek's avatar
      [libcxx] Update gen_link_script.py to support different input and output · e9a2d1c3
      Petr Hosek authored
      This enables the use of this script from other build systems like
      GN which don't support post-build actions as well as for static
      archives.
      
      Differential Revision: https://reviews.llvm.org/D60309
      
      llvm-svn: 358915
      e9a2d1c3
    • Bob Haarman's avatar
      [Support] unflake TempFileCollisions test · 2eea99a4
      Bob Haarman authored
      Summary:
      This test was added to verify that createUniqueEntity() does
      not enter an infinite loop when all possible names are taken. However,
      it also checked that all possible names are generated, which is flaky
      (because the names are generated randomly). This change increases the
      number of attempts we make to make flakes exceedingly
      unlikely (3.88e-62).
      
      Reviewers: fedor.sergeev, rsmith
      
      Reviewed By: fedor.sergeev
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D56336
      
      llvm-svn: 358914
      2eea99a4
    • Philip Reames's avatar
      [InstSimplify] Move masked.gather w/no active lanes handling to InstSimplify from InstCombine · d8d9b7b2
      Philip Reames authored
      In the process, use the existing masked.load combine which is slightly stronger, and handles a mix of zero and undef elements in the mask.  
      
      llvm-svn: 358913
      d8d9b7b2
    • Nico Weber's avatar
      gn build: Merge r358869 · 5828421c
      Nico Weber authored
      llvm-svn: 358912
      5828421c
    • Dimitry Andric's avatar
      Use correct way to test for MIPS arch after rOMP355687 · 87e7f895
      Dimitry Andric authored
      Summary:
      I ran into some issues after rOMP355687, where __atomic_fetch_add was
      being used incorrectly on x86, and this turns out to be caused by the
      following added conditionals:
      
      ```
      #if defined(KMP_ARCH_MIPS)
      ```
      
      The problem is, these macros are always defined, and are either 0 or 1
      depending on the architecture.  E.g. the correct way to test for MIPS
      is:
      
      ```
      #if KMP_ARCH_MIPS
      ```
      
      Reviewers: petarj, jlpeyton, Hahnfeld, AndreyChurbanov
      
      Reviewed By: petarj, AndreyChurbanov
      
      Subscribers: AndreyChurbanov, sdardis, arichardson, atanasyan, jfb, jdoerfert, openmp-commits, llvm-commits
      
      Tags: #openmp
      
      Differential Revision: https://reviews.llvm.org/D60938
      
      llvm-svn: 358911
      87e7f895
    • Matt Arsenault's avatar
      Use const DebugLoc& · 2b744665
      Matt Arsenault authored
      llvm-svn: 358910
      2b744665
    • Matt Arsenault's avatar
      AMDGPU: Skip debug instructions in assert · f84ce75c
      Matt Arsenault authored
      These are inserted after branch relaxation, and for some reason it's
      decided to put them in the long branch expansion block. It's probably
      not great to rely on the source block address, so this should probably
      be switched to being PC relative instead of relying on the block
      address
      
      llvm-svn: 358909
      f84ce75c
    • Casey Carter's avatar
      [libc++][test] Update some wstring_convert tests for MSVC quirks · e3f7074c
      Casey Carter authored
      Due to MSVC's decision to encode `wchar_t` as UTF-16, it rejects wide
      character/string literals that expect a character value greater than
      `\xffff`. UTF-16 `wchar_t` is clearly non-conforming, given that the
      standard requires wchar_t to be capable of representing all characters
      in the supported wide character execution sets, but rejecting e.g.
      `\x40003` is a reasonably sane compromise given that encoding choice:
      there's an expectation that `\xFOO` produces a single character in the
      resulting literal. Consequently `L'\x40003'`/`L"\x40003"` are ill-formed
      literals on MSVC. `L'\U00040003'` is a high surrogate (and produces a
      warning about ignoring the "second character" in a multi-character
      literal), and `L"\U00040003"` is a perfectly-valid `const wchar_t[3]`.
      
      This change updates these tests to use universal-character-names instead
      of raw values for the intended character values, which technically makes
      them portable even to implementations that don't use a unicode
      transformation format encoding for their wide character execution
      character set. The two-character literal `L"\u1005e"` is awkward - the
      `e` looks like part of the UCN's hex encoding - but necessary to compile
      in '03 mode since '03 didn't allow UCNs to be used for members of the
      basic execution character set even in character/string literals.
      
      I've also eliminated the extraneous `\x00` "bonus null-terminator" in
      some of the string literals which doesn't affect the tested behavior.
      
      I'm sorry about using `*L"\U00040003"` in `conversions.string/to_bytes.pass.cpp`,
      but it's correct for platforms with 32-bit wchar_t, *and* doesn't
      trigger narrowing warnings as did the prior `CharT(0x40003)`.
      
      Differential Revision: https://reviews.llvm.org/D60950
      
      llvm-svn: 358908
      e3f7074c
    • Philip Reames's avatar
      [Tests] Revise a test as requested by reviewer in D59703 · f01583d0
      Philip Reames authored
      llvm-svn: 358907
      f01583d0
    • Philip Reames's avatar
      [Tests] Add a negative test for masked.gather part of D59703 · 8f470890
      Philip Reames authored
      llvm-svn: 358906
      8f470890
    • Ben Hamilton's avatar
      [ASTMatchers] Introduce Objective-C matchers `isClassMessage`,... · a282bde6
      Ben Hamilton authored
      [ASTMatchers] Introduce Objective-C matchers `isClassMessage`, `isClassMethod`, and `isInstanceMethod`
      
      Summary:
      isClassMessage is an equivalent to isInstanceMessage for ObjCMessageExpr, but matches message expressions to classes.
      
      isClassMethod and isInstanceMethod check whether a method declaration (or definition) is for a class method or instance method (respectively).
      
      Contributed by @mywman!
      
      Reviewers: benhamilton, klimek, mwyman
      
      Reviewed By: benhamilton, mwyman
      
      Subscribers: cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D60920
      
      llvm-svn: 358904
      a282bde6
    • Justin Bogner's avatar
      [IPSCCP] Add missing `AssumptionCacheTracker` dependency · e90d5c8d
      Justin Bogner authored
      Back in August, r340525 introduced a dependency on the assumption
      cache tracker in the ipsccp pass, but that commit missed a call to
      INITIALIZE_PASS_DEPENDENCY, which leaves the assumption cache
      improperly registered if SCCP is the only thing that pulls it in.
      
      llvm-svn: 358903
      e90d5c8d
    • Alexey Bataev's avatar
      [OPENMP][NVPTX] Fix the test, NFC. · 5de5d74c
      Alexey Bataev authored
      Fix the test to run it really in SPMD mode without runtime. Previously
      it was run in SPMD + full runtime mode and does not allow to cehck the
      functionality correctly.
      
      llvm-svn: 358902
      5de5d74c
    • Philip Reames's avatar
      [LPM/BPI] Preserve BPI through trivial loop pass pipeline (e.g. LCSSA, LoopSimplify) · 37104d71
      Philip Reames authored
      Currently, we do not expose BPI to loop passes at all. In the old pass manager, we appear to have been ignoring the fact that LCSSA and/or LoopSimplify didn't preserve BPI, and making it available to the following loop passes anyways.  In the new one, it's invalidated before running any loop pass if either LCSSA or LoopSimplify actually make changes. If they don't make changes, then BPI is valid and available.  So, we go ahead and teach LCSSA and LoopSimplify how to preserve BPI for consistency between old and new pass managers.
      
      This patch avoids an invalidation between the two requires in the following trivial pass pipeline:
      opt -passes="requires<branch-prob>,loop(no-op-loop),requires<branch-prob>"
      (when the input file is one which requires either LCSSA or LoopSimplify to canonicalize the loops)
      
      Differential Revision: https://reviews.llvm.org/D60790
      
      llvm-svn: 358901
      37104d71
    • Wei Mi's avatar
      [PGO/SamplePGO][NFC] Move the function updateProfWeight from Instruction · 01f8d556
      Wei Mi authored
      to CallInst.
      
      The issue was raised here: https://reviews.llvm.org/D60903#1472783
      
      The function Instruction::updateProfWeight is only used for CallInst in
      profile update. From the current interface, it is very easy to think that
      the function can also be used for branch instruction. However, Branch
      instruction does't need the scaling the function provides for
      branch_weights and VP (value profile), in addition, scaling may introduce
      inaccuracy for branch probablity.
      
      The patch moves the function updateProfWeight from Instruction class to
      CallInst to remove the confusion. The patch also changes the scaling of
      branch_weights from a loop to a block because we know that ProfileData
      for branch_weights of CallInst will only have two operands at most.
      
      Differential Revision: https://reviews.llvm.org/D60911
      
      llvm-svn: 358900
      01f8d556
    • Sam Clegg's avatar
      [WebAssembly] Error on relocations against undefined data symbols. · 7cdec273
      Sam Clegg authored
      We can't (currently) meaningfully resolve certain types of relocations
      against undefined data symbols.  Previously when `--allow-undefined` was
      used we were treating such relocation much like weak data symbols and
      simply inserting zeros.  This change turns such use cases in to an
      error.
      
      This means that `--allow-undefined` is no longer effective for data
      symbols.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=40364
      
      Differential Revision: https://reviews.llvm.org/D60882
      
      llvm-svn: 358899
      7cdec273
    • Matt Davis's avatar
      [sema][objc] Minor refactor to OverrideSearch. NFCI. · 55043e23
      Matt Davis authored
      Summary:
      * Removed a member that was only used during construction.
      * Use range-based for iteration when accessing the result of the search.
      * Require an `ObjCMethodDecl` reference upon construction of an
      * Constify.
      
      Reviewers: rjmccall
      
      Reviewed By: rjmccall
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D60850
      
      llvm-svn: 358898
      55043e23
    • Fangrui Song's avatar
      Use llvm::stable_sort. NFC · a5355a5e
      Fangrui Song authored
      llvm-svn: 358897
      a5355a5e
    • Louis Dionne's avatar
      [NFC] Fix typo in debug log · 4256cf1b
      Louis Dionne authored
      llvm-svn: 358896
      4256cf1b
Loading