Skip to content
  1. Mar 15, 2021
  2. Mar 14, 2021
  3. Mar 13, 2021
    • Philip Reames's avatar
      [CGP] Consolidate logic for getIVIncrement and isIVIncrement · 9228f2f3
      Philip Reames authored
      This fixes the bug demonstrated by the test case in the commit message of 8d20f2c2 (which was a revert of cf82700a).  The root issue was that we have two transforms which are inverses of each other.  We use one for simple induction variables (where we can use the post-inc form), and the other for everything else.  The problem was that the two transforms could disagree about whether something was an induction variable.
      
      The reverted commit made a change to one of the matcher routines which was used for one of the two transforms without updating the other matcher.  However, it's worth noting the existing code w/o the reverted change also has cases where the decision could differ between the two paths.
      
      The fix is simply to consolidate the code such that two paths must agree by construction, and to add an assert to catch any potential future re-divergence.
      
      Triggering the infinite loop requires side stepping the SunkAddrs cache.  The SunkAddrs cache has the effect of suppressing the iteration in the common case, but there are codepaths through CGP which restart iteration and clear this cache.
      
      Unfortunately, I have not been able to construct a standalone IR test case for this.  The original test case is a c++ program which when compiled by clang demonstrates the infinite loop, but all of my attempts at extracting an IR test case runnable through opt/llc have failed to reproduce.  (Including capturing the IR at point of the transform itself!)  I have no idea what weird state clang is creating here.
      
      I also tried creating a test case by hand, but gave up after about an hour of trying to find the right combination to dance through multiple transforms to create the end result needed to trip the bug.
      9228f2f3
    • Arnamoy Bhattacharyya's avatar
      [flang][OpenMP] Add support for getting parent context and clauses and modify... · 3fc9ca87
      Arnamoy Bhattacharyya authored
      [flang][OpenMP] Add support for getting parent context and clauses and modify the relevant sema checks to use the new functions.
      
      Differential Revision: https://reviews.llvm.org/D98580
      3fc9ca87
    • Jez Ng's avatar
      [lld-macho][nfc] Move list of section names into InputSection.h · 04eec6f8
      Jez Ng authored
      They were previously in SyntheticSections.h, but now there are
      a bunch of non-synthetic section names in the list.
      
      Also renamed `__functionStarts` to `__func_starts` for uniformity with
      other section names + keeps the name under 16 characters (in case we ever
      want to write it out as a real section).
      
      Reviewed By: #lld-macho, compnerd
      
      Differential Revision: https://reviews.llvm.org/D98586
      04eec6f8
Loading