Skip to content
  1. Mar 26, 2017
    • Kuba Mracek's avatar
      [tsan] Only Acquire/Release GCD queues if they're not NULL · a1737293
      Kuba Mracek authored
      While it's usually a bug to call GCD APIs, such as dispatch_after, with NULL as a queue, this often "somehow" works and TSan should maintain binary compatibility with existing code. This patch makes sure we don't try to call Acquire and Release on NULL queues, and add one such testcase for dispatch_after.
      
      Differential Revision: https://reviews.llvm.org/D31355
      
      llvm-svn: 298820
      a1737293
    • Sanjoy Das's avatar
      Fix typo in comment; NFC · e4b073a4
      Sanjoy Das authored
      llvm-svn: 298819
      e4b073a4
    • Rui Ueyama's avatar
      Factor out common code. · 37c3c2d0
      Rui Ueyama authored
      llvm-svn: 298818
      37c3c2d0
    • Rui Ueyama's avatar
      Remove MIPS-specific code from computeAddend. · a2f63f14
      Rui Ueyama authored
      Previously, computeAddend had many parameters but most of them were
      used only for MIPS. The MIPS ABI is too odd that I don't want to mix
      it into the regular code path. Splitting the function into non-MIPS
      and MIPS parts makes the regular code path easy to follow.
      
      llvm-svn: 298817
      a2f63f14
    • Vassil Vassilev's avatar
      Revert 298754 and 298742. · bae9202b
      Vassil Vassilev authored
      They broke llvm modules builds and our internal modules infrastructure.
      
      llvm-svn: 298816
      bae9202b
    • Rui Ueyama's avatar
      Do not use assert to report broken input files. · 09fd21f4
      Rui Ueyama authored
      llvm-svn: 298815
      09fd21f4
    • Rui Ueyama's avatar
      Update comments. · 8d462b2b
      Rui Ueyama authored
      llvm-svn: 298814
      8d462b2b
    • Simon Pilgrim's avatar
      Fix signed/unsigned comparison warnings. · ca8bd258
      Simon Pilgrim authored
      llvm-svn: 298813
      ca8bd258
    • Shoaib Meenai's avatar
      [llvm-readobj] Prefer ILT to IAT for reading COFF imports · 73754488
      Shoaib Meenai authored
      We're seeing binutils ld produce binaries where the import address
      table's NameRVA entry is actually a VA instead (i.e. it's already base
      relocated), which llvm-readobj then chokes on. Both dumpbin and the
      Windows loader are able to handle these binaries correctly, however, and
      we can make llvm-readobj handle them correctly too by iterating the
      import lookup table (which doesn't have a relocated NameRVA) rather than
      the import address table.
      
      The import lookup table and the import address table are supposed to be
      identical on disk, and prior to r277298 the import lookup table would be
      used by `llvm-readobj -coff-imports` anyway, so this shouldn't have any
      functional change (except in the case of our malformed binaries). The
      import lookup table can apparently be missing when using old Borland
      linkers, so fall back to the import address table in that case.
      
      Resolves PR31766.
      
      Differential Revision: https://reviews.llvm.org/D31362
      
      llvm-svn: 298812
      73754488
    • Serge Pavlov's avatar
      [LoopUnroll] Remap references in peeled iteration · b71bb80c
      Serge Pavlov authored
      References in cloned blocks must be remapped prior to dominator
      calculation.
      
      Differential Revision: https://reviews.llvm.org/D31281
      
      llvm-svn: 298811
      b71bb80c
    • Kamil Rytarowski's avatar
      [LLDB] OpenBSD support · 12801f1e
      Kamil Rytarowski authored
      Summary:
      Add basic OpenBSD support. This is enough to be able to analyze core dumps for OpenBSD/amd64, OpenBSD/arm, OpenBSD/arm64 and OpenBSD/i386.
      
      Note that part of the changes to source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp fix a bug that probably affects other platforms as well.  The GetProgramHeaderByIndex() interface use 1-based indices, but in some case when looping over the headers the, the loop starts at 0 and misses the last header.  This caused problems on OpenBSD since OpenBSD core dumps have the PT_NOTE segment as the last program header.
      
      
      Reviewers: joerg, labath, krytarowski
      
      Reviewed By: krytarowski
      
      Subscribers: aemerson, emaste, rengolin, srhines, krytarowski, mgorny, lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D31131
      
      llvm-svn: 298810
      12801f1e
    • Dmitry Vyukov's avatar
      tsan: add new mutex annotations · 8096a8c8
      Dmitry Vyukov authored
      There are several problems with the current annotations (AnnotateRWLockCreate and friends):
      - they don't fully support deadlock detection (we need a hook _before_ mutex lock)
      - they don't support insertion of random artificial delays to perturb execution (again we need a hook _before_ mutex lock)
      - they don't support setting extended mutex attributes like read/write reentrancy (only "linker init" was bolted on)
      - they don't support setting mutex attributes if a mutex don't have a "constructor" (e.g. static, Java, Go mutexes)
      - they don't ignore synchronization inside of lock/unlock operations which leads to slowdown and false negatives
      The new annotations solve of the above problems. See tsan_interface.h for the interface specification and comments.
      
      Reviewed in https://reviews.llvm.org/D31093
      
      llvm-svn: 298809
      8096a8c8
    • Chandler Carruth's avatar
      [IR] Switch to more normal template parameter names ending in `T` · de27a6dc
      Chandler Carruth authored
      instead of `Ty`.
      
      The `Ty` suffix is much more commonly used for LLVM `Type` variable
      names, so this seemed like a particularly confusing collision.
      
      llvm-svn: 298808
      de27a6dc
    • Simon Pilgrim's avatar
      Fix signed/unsigned comparison warnings. · 311c5ddb
      Simon Pilgrim authored
      llvm-svn: 298807
      311c5ddb
    • Simon Pilgrim's avatar
    • Simon Pilgrim's avatar
      [X86][AVX512F] Fix reg class for VMOVSSZrr/VMOVSSZrrk and VMOVSDZrr/VMOVSDZrrk · 049d9c92
      Simon Pilgrim authored
      Fixed -verify-machineinstrs errors in fast-isel-select-sse.ll (one of many in PR27481)
      
      The VMOVSSZrr/VMOVSSZrrk and VMOVSDZrr/VMOVSDZrrk instructions were assuming both source registers were V128X when the second is actually supposed to be FR32X/FR64X
      
      Differential Revision: https://reviews.llvm.org/D31200
      
      llvm-svn: 298805
      049d9c92
    • Simon Pilgrim's avatar
      Fix MSVC signed/unsigned comparison warnings. · bc715394
      Simon Pilgrim authored
      llvm-svn: 298804
      bc715394
    • Simon Pilgrim's avatar
      Regenerate test · 544f750d
      Simon Pilgrim authored
      llvm-svn: 298803
      544f750d
    • Simon Pilgrim's avatar
      Regenerate test · a2b81dc4
      Simon Pilgrim authored
      The CHECK-DAG aren't necessary and get in the way of automated checks
      
      llvm-svn: 298802
      a2b81dc4
    • Simon Pilgrim's avatar
      Regenerate tests to remove duplicated checks · 1d8235a0
      Simon Pilgrim authored
      llvm-svn: 298801
      1d8235a0
    • Igor Breger's avatar
      [GlobalISel][X86] support G_FRAME_INDEX instruction selection. · 531a203a
      Igor Breger authored
          Summary:
          Support G_FRAME_INDEX instruction selection.
      
          Reviewers: zvi, rovka, ab, qcolombet
      
          Reviewed By: ab
      
          Subscribers: llvm-commits, dberris, kristof.beyls, eladcohen, guyblank
      
          Differential Revision: https://reviews.llvm.org/D30980
      
      llvm-svn: 298800
      531a203a
    • Joerg Sonnenberger's avatar
      Split the SimplifyCFG pass into two variants. · fa736742
      Joerg Sonnenberger authored
      The first variant contains all current transformations except
      transforming switches into lookup tables. The second variant
      contains all current transformations.
      
      The switch-to-lookup-table conversion results in code that is more
      difficult to analyze and optimize by other passes. Most importantly,
      it can inhibit Dead Code Elimination. As such it is often beneficial to
      only apply this transformation very late. A common example is inlining,
      which can often result in range restrictions for the switch expression.
      
      Changes in execution time according to LNT:
      SingleSource/Benchmarks/Misc/fp-convert +3.03%
      MultiSource/Benchmarks/ASC_Sequoia/CrystalMk/CrystalMk -11.20%
      MultiSource/Benchmarks/Olden/perimeter/perimeter -10.43%
      and a couple of smaller changes. For perimeter it also results 2.6%
      a smaller binary.
      
      Differential Revision: https://reviews.llvm.org/D30333
      
      llvm-svn: 298799
      fa736742
    • Andrew Wilkins's avatar
      Add check for BSD when setting LIB_NAMES for GNU ld · ebfe3a9d
      Andrew Wilkins authored
      Patch by Koop Mast and Alex Arslan!
      
      Differential Revision: https://reviews.llvm.org/D28215
      
      llvm-svn: 298798
      ebfe3a9d
    • Rui Ueyama's avatar
      Sort. NFC. · ff524bf7
      Rui Ueyama authored
      llvm-svn: 298797
      ff524bf7
    • Rui Ueyama's avatar
      Remove a redundant local variable. · f7c2b0cb
      Rui Ueyama authored
      llvm-svn: 298796
      f7c2b0cb
    • Rui Ueyama's avatar
      Add a comment. · a588b5fc
      Rui Ueyama authored
      llvm-svn: 298795
      a588b5fc
    • Rui Ueyama's avatar
      Inline a function that is used only once. · 2bb35f68
      Rui Ueyama authored
      llvm-svn: 298794
      2bb35f68
    • Rui Ueyama's avatar
      De-template a few functions in which ELFT is not needed. · 94e36c89
      Rui Ueyama authored
      llvm-svn: 298793
      94e36c89
    • Rui Ueyama's avatar
      Add comments and return early. · 760197ce
      Rui Ueyama authored
      llvm-svn: 298792
      760197ce
    • Chandler Carruth's avatar
      [IR] Make SwitchInst::CaseIt almost a normal iterator. · 0d256c0f
      Chandler Carruth authored
      This moves it to the iterator facade utilities giving it full random
      access semantics, etc. It can also now be used with standard algorithms
      like std::all_of and std::any_of and range adaptors like llvm::reverse.
      
      Also make the semantics of iterating match what every other iterator
      uses and forbid decrementing past the begin iterator. This was used as
      a hacky way to work around iterator invalidation. However, every
      instance trying to do this failed to actually avoid touching invalid
      iterators despite the clear documentation that the removed and all
      subsequent iterators become invalid including the end iterator. So I've
      added a return of the next iterator to removeCase and rewritten the
      loops that were doing this to correctly follow the iterator pattern of
      either incremneting or removing and assigning fresh values to the
      iterator and the end.
      
      In one case we were trying to go backwards to make this cleaner but it
      doesn't actually work. I've made that code match the code we use
      everywhere else to remove cases as we iterate. This changes the order of
      cases in one test output and I moved that test to CHECK-DAG so it
      wouldn't care -- the order isn't semantically meaningful anyways.
      
      llvm-svn: 298791
      0d256c0f
    • Rui Ueyama's avatar
      Remove unused parameter. · beeab457
      Rui Ueyama authored
      llvm-svn: 298790
      beeab457
    • Rui Ueyama's avatar
      Remove redundant local variables. · cb815ac5
      Rui Ueyama authored
      llvm-svn: 298789
      cb815ac5
    • Rui Ueyama's avatar
      Remove a parameter from adjustExpr. NFC. · b5cb3283
      Rui Ueyama authored
      llvm-svn: 298788
      b5cb3283
    • Rui Ueyama's avatar
      Inline a small lambda. · dfd204fa
      Rui Ueyama authored
      llvm-svn: 298787
      dfd204fa
    • Rui Ueyama's avatar
      Rename C -> Sec and RI -> Rel. · 2f274230
      Rui Ueyama authored
      C is short for Chunk, but we are no longer using that term.
      RI is probably short for relocation iterator, but this is not an interator.
      
      llvm-svn: 298786
      2f274230
    • Rui Ueyama's avatar
      Simplify relocation offset adjustment. · 08aede36
      Rui Ueyama authored
      Previously, relocation offsets are recalculated for .eh_frame sections
      inside the main loop, and that messed up the main loop. This patch
      separates that logic into a dedicated class.
      
      llvm-svn: 298785
      08aede36
    • Gor Nishanov's avatar
      [coroutines] Add codegen for await and yield expressions · 5eb58583
      Gor Nishanov authored
      Details:
      
      Emit suspend expression which roughly looks like:
      
      auto && x = CommonExpr();
      if (!x.await_ready()) {
         llvm_coro_save();
         x.await_suspend(...);     (*)
         llvm_coro_suspend(); (**)
      }
      x.await_resume();
      where the result of the entire expression is the result of x.await_resume()
      
      (*) If x.await_suspend return type is bool, it allows to veto a suspend:
      if (x.await_suspend(...))
         llvm_coro_suspend();
      (**) llvm_coro_suspend() encodes three possible continuations as a switch instruction:
      
      %where-to = call i8 @llvm.coro.suspend(...)
      switch i8 %where-to, label %coro.ret [ ; jump to epilogue to suspend
        i8 0, label %yield.ready   ; go here when resumed
        i8 1, label %yield.cleanup ; go here when destroyed
      ]
      
      llvm-svn: 298784
      5eb58583
  2. Mar 25, 2017
Loading