Skip to content
  1. Jul 01, 2017
  2. Jun 30, 2017
    • David L. Jones's avatar
      [lit] Factor out listdir logic shared by different test formats. · 13f0fac1
      David L. Jones authored
      Summary:
      The lit test formats use largely the same logic for discovering tests. There are
      some superficial differences in the logic, which seem reasonable enough to
      handle in a single routine.
      
      At a high level, the common goal is "look for files that end with one of these
      suffixes, and skip anything starting with a dot." The balance of the logic
      specific to ShTest and GoogleTest collapses quite a bit, so that
      getTestsInDirectory is only a couple of lines around a call to the new function.
      
      Reviewers: zturner, MatzeB, modocache
      
      Subscribers: sanjoy, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D34855
      
      llvm-svn: 306895
      13f0fac1
    • Jakub Kuderski's avatar
      [Dominators] Teach IDF to use level information · c0087799
      Jakub Kuderski authored
      Summary: This patch teaches IteratedDominanceFrontier to use the level information stored in DomTreeNodes instead of calculating it manually.
      
      Reviewers: dberlin, sanjoy, davide
      
      Reviewed By: davide
      
      Subscribers: davide, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D34703
      
      llvm-svn: 306894
      c0087799
    • Jakub Kuderski's avatar
      [Dominators] Add NearestCommonDominator verification · 3214633e
      Jakub Kuderski authored
      Summary:
      This patch adds another verification function for checking correctness of findNearestCommonDominator.
      For every edge from U to V in the input graph, `NCD(U, V) == IDom(V) or V` -- the new function checks this condition.
      
      Reviewers: dberlin, sanjoy, chandlerc
      
      Reviewed By: dberlin
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D34575
      
      llvm-svn: 306893
      3214633e
    • Jakub Kuderski's avatar
      [Dominators] Keep tree level in DomTreeNode and use it to find NCD and answer dominance queries · b88303a2
      Jakub Kuderski authored
      Summary:
      This patch makes DomTreeNodes keep their level (depth) in the DomTree. By having this information always available, it is possible to speedup and simplify findNearestCommonDominator and certain dominance queries.
      
      In the future, level information will be also needed to perform incremental updates.
      
      My testing doesn't show any noticeable performance differences after applying this patch. There may be some improvements when other passes are thought to use the level information.
      
      Reviewers: dberlin, sanjoy, chandlerc, grosser
      
      Reviewed By: dberlin
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D34548
      
      llvm-svn: 306892
      b88303a2
    • Zachary Turner's avatar
      Remove spurious semicolons. · de6a9796
      Zachary Turner authored
      llvm-svn: 306891
      de6a9796
    • Zachary Turner's avatar
      [llvm-pdbutil] Output the symbol offset when dumping. · af8c75a8
      Zachary Turner authored
      Type records have a unique type index, but symbol records do
      not.  Instead, symbol records refer to other symbol records
      by referencing their offset in the symbol stream.  In a sense
      this is the analogue of the TypeIndex, but we are not printing
      it in the dumper.  Printing it not only gives us more useful
      information when manually investigating the contents of a PDB,
      but also allows us to write better tests by enabling us to
      verify that fields that reference other symbol records do
      so correctly.
      
      Differential Revision: https://reviews.llvm.org/D34906
      
      llvm-svn: 306890
      af8c75a8
    • Reid Kleckner's avatar
      [codeview] Use the first valid source location at the top of every MBB · 45a74620
      Reid Kleckner authored
      If the instructions at the beginning of the block have no location,
      we're better off using the location of the first instruction in the
      current basic block. At the very least, that instruction post-dominates
      this one, whereas if we don't emit a .cv_loc directive, we end up using
      the potentially invalid location that falls through from the previous
      block.
      
      We could probably do better here by emitting some kind of ".cv_loc end"
      directive that stops the line table entry of the previous .cv_loc
      directive from bleeding out of its basic block. This would improve the
      line table when an entire MBB has no valid location info.
      
      llvm-svn: 306889
      45a74620
    • Krzysztof Parzyszek's avatar
      [Hexagon] Implement frame pointer elimination with -fomit-frame-pointer · 9eb75c45
      Krzysztof Parzyszek authored
      It applies to leaf functions that are otherwise not required to have
      a frame pointer.
      
      llvm-svn: 306888
      9eb75c45
    • Dinar Temirbulatov's avatar
      [SLPVectorizer] Add isOdd() helper function, NFCI. · 2fb1075f
      Dinar Temirbulatov authored
      llvm-svn: 306887
      2fb1075f
    • Craig Topper's avatar
      [InstCombine] Replace an unnecessary use of a matcher with just an isa and a cast. NFC · bcf511c0
      Craig Topper authored
      We aren't looking through any levels of IR here so I don't think we need the power of a matcher or the temporary variable it requires.
      
      llvm-svn: 306885
      bcf511c0
    • Ayal Zaks's avatar
      [LV] Sink casts to unravel first order recurrence · 2ff59d43
      Ayal Zaks authored
      Check if a single cast is preventing handling a first-order-recurrence Phi,
      because the scheduling constraints it imposes on the first-order-recurrence
      shuffle are infeasible; but they can be made feasible by moving the cast
      downwards. Record such casts and move them when vectorizing the loop.
      
      Differential Revision: https://reviews.llvm.org/D33058
      
      llvm-svn: 306884
      2ff59d43
    • Vedant Kumar's avatar
      [Profile] Do not assign counters to functions without bodies · 33d0a1cc
      Vedant Kumar authored
      The root cause of the issues reported in D32406 and D34680 is that clang
      instruments functions without bodies. Make it stop doing that, and also
      teach it how to use old (incorrectly generated) profiles without
      crashing.
      
      llvm-svn: 306883
      33d0a1cc
    • Vedant Kumar's avatar
      Fix a typo. NFC. · c4ad4138
      Vedant Kumar authored
      llvm-svn: 306882
      c4ad4138
    • Richard Smith's avatar
      Fix ODR violations due to abuse of LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR · 25639842
      Richard Smith authored
      This is a short-term fix for PR33650 aimed to get the modules build bots green again.
      
      Remove all the places where we use the LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR
      macros to try to locally specialize a global template for a global type. That's
      not how C++ works.
      
      Instead, we now centrally define how to format vectors of fundamental types and
      of string (std::string and StringRef). We use flow formatting for the former
      cases, since that's the obvious right thing to do; in the latter case, it's
      less clear what the right choice is, but flow formatting is really bad for some
      cases (due to very long strings), so we pick block formatting. (Many of the
      cases that were using flow formatting for strings are improved by this change.)
      
      Other than the flow -> block formatting change for some vectors of strings,
      this should result in no functionality change.
      
      Differential Revision: https://reviews.llvm.org/D34907
      
      Corresponding LLVM change is r306878.
      
      llvm-svn: 306881
      25639842
    • Richard Smith's avatar
      Fix ODR violations due to abuse of LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR · 4451cb63
      Richard Smith authored
      This is a short-term fix for PR33650 aimed to get the modules build bots green again.
      
      Remove all the places where we use the LLVM_YAML_IS_(FLOW_)?SEQUENCE_VECTOR
      macros to try to locally specialize a global template for a global type. That's
      not how C++ works.
      
      Instead, we now centrally define how to format vectors of fundamental types and
      of string (std::string and StringRef). We use flow formatting for the former
      cases, since that's the obvious right thing to do; in the latter case, it's
      less clear what the right choice is, but flow formatting is really bad for some
      cases (due to very long strings), so we pick block formatting. (Many of the
      cases that were using flow formatting for strings are improved by this change.)
      
      Other than the flow -> block formatting change for some vectors of strings,
      this should result in no functionality change.
      
      Differential Revision: https://reviews.llvm.org/D34907
      
      Corresponding LLVM change is r306878.
      
      llvm-svn: 306880
      4451cb63
Loading