Skip to content
  1. Jul 03, 2018
  2. Jul 02, 2018
  3. Jul 01, 2018
  4. Jun 29, 2018
    • Jonas Devlieghere's avatar
      [dsymutil] Rename conflicting declaration · 8eeece38
      Jonas Devlieghere authored
      Using MemoryBuffer as member name clashed with the llvm::MemoryBuffer
      class.
      
      llvm-svn: 335995
      8eeece38
    • Jonas Devlieghere's avatar
      [dsymutil] Make the CachedBinaryHolder the default · a0857eae
      Jonas Devlieghere authored
      Replaces all uses of the old binary holder with its cached variant.
      
      Differential revision: https://reviews.llvm.org/D48770
      
      llvm-svn: 335991
      a0857eae
    • Jonas Devlieghere's avatar
      [dsymutil] Introduce a new CachedBinaryHolder · 3ff7915c
      Jonas Devlieghere authored
      The original binary holder has an optimization where it caches a static
      library (archive) between consecutive calls to GetObjects. However, the
      actual memory buffer wasn't cached between calls.
      
      This made sense when dsymutil was processing objects one after each
      other, but when processing them in parallel, several binaries have to be
      in memory at the same time. For this reason, every link context
      contained a binary holder.
      
      Having one binary holder per context is problematic, because the same
      static archive was cached for every object file. Luckily, when the file
      is mmap'ed, this was only costing us virtual memory.
      
      This patch introduces a new BinaryHolder variant that is fully cached,
      for all the object files it load, as well as the static archives. This
      way, we don't have to give up on this optimization of bypassing the
      file system.
      
      Differential revision: https://reviews.llvm.org/D48501
      
      llvm-svn: 335990
      3ff7915c
    • Andrea Di Biagio's avatar
      [llvm-mca] Remove field HasReadAdvanceEntries from class ReadDescriptor. · dbaafe67
      Andrea Di Biagio authored
      This simplifies the logic that updates RAW dependencies in the DispatchStage.
      There is no advantage in storing that flag in the ReadDescriptor; we should
      simply rely on the call to `STI.getReadAdvanceCycles()` to obtain the
      ReadAdvance cycles. If there are no read-advance entries, then method
      `getReadAdvanceCycles()` quickly returns 0.
      
      No functional change intended.
      
      llvm-svn: 335977
      dbaafe67
  5. Jun 28, 2018
  6. Jun 27, 2018
    • Fangrui Song's avatar
      [llvm-objdump] Add -x --all-headers options · 8513cd4c
      Fangrui Song authored
      Reviewers: paulsemel, echristo
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D48622
      
      llvm-svn: 335785
      8513cd4c
    • Jonas Devlieghere's avatar
      [dsymutil] Move abstractions into separate files (NFC) · c0fb4b6b
      Jonas Devlieghere authored
      This patch splits off some abstractions used by dsymutil's dwarf linker
      and moves them into separate header and implementation files. This
      almost halves the number of LOC in DwarfLinker.cpp and makes it a lot
      easier to understand what functionality lives where.
      
      Differential revision: https://reviews.llvm.org/D48647
      
      llvm-svn: 335749
      c0fb4b6b
    • Matt Davis's avatar
      [llvm-mca] Register listeners with stages; remove Pipeline dependency from Stage. · 7b5a36ec
      Matt Davis authored
      Summary:
      This patch removes a few callbacks from Pipeline.  It comes at the cost of
      registering Listeners with all Stages.  Not all stages need listeners or issue
      callbacks, this registration is a bit redundant.  However, as we build-out the
      API, this redundancy can disappear.
      
      The main purpose here is to move callback code from the Pipeline and into the
      stages that actually issue those callbacks. This removes the back-pointer to
      the Pipeline that was put into a few Stage subclasses.
      
      Reviewers: andreadb, courbet, RKSimon
      
      Reviewed By: andreadb, courbet
      
      Subscribers: tschuett, gbedwell, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D48576
      
      llvm-svn: 335748
      7b5a36ec
    • Andrea Di Biagio's avatar
      [llvm-mca] Avoid calling method update() on instructions that are already in... · eb1bef60
      Andrea Di Biagio authored
      [llvm-mca] Avoid calling method update() on instructions that are already in the IS_READY state. NFCI
      
      When promoting instructions from the wait queue to the ready queue, we should
      check if an instruction has already reached the IS_READY state before
      calling method update().
      
      llvm-svn: 335722
      eb1bef60
    • Matt Davis's avatar
      73dbe863
    • Vedant Kumar's avatar
      [Debugify] Handle failure to get fragment size when checking dbg.values · d13536e9
      Vedant Kumar authored
      It's not possible to get the fragment size of some dbg.values. Teach the
      mis-sized dbg.value diagnostic to detect this scenario and bail out.
      
      Tested with:
      $ find test/Transforms -print -exec opt -debugify-each -instcombine {} \;
      
      llvm-svn: 335695
      d13536e9
    • Vedant Kumar's avatar
      [Debugify] Diagnose mis-sized dbg.values · b9c1a234
      Vedant Kumar authored
      Report an error in -check-debugify when the size of a dbg.value operand
      doesn't match up with the size of the variable it describes.
      
      Eventually this check should be moved into the IR verifier. For the
      moment, it's useful to include the check in -check-debugify as a means
      of catching regressions and finding existing bugs.
      
      Here are some instances of bugs the new check finds in the -O2 pipeline
      (all in InstCombine):
      
      1) A float is used where a double is expected:
      
      ERROR: dbg.value operand has size 32, but its variable has size 64:
      call void @llvm.dbg.value(metadata float %expf, metadata !12, metadata
      !DIExpression()), !dbg !15
      
      2) An i8 is used where an i32 is expected:
      
      ERROR: dbg.value operand has size 8, but its variable has size 32:
      call void @llvm.dbg.value(metadata i8 %t4, metadata !14, metadata
      !DIExpression()), !dbg !24
      
      3) A <4 x i32> is used where something twice as large is expected
      (perhaps a <4 x i64>, I haven't double-checked):
      
      ERROR: dbg.value operand has size 128, but its variable has size 256:
      call void @llvm.dbg.value(metadata <4 x i32> %4, metadata !40, metadata
      !DIExpression()), !dbg !95
      
      Differential Revision: https://reviews.llvm.org/D48408
      
      llvm-svn: 335682
      b9c1a234
  7. Jun 26, 2018
  8. Jun 25, 2018
Loading