Skip to content
  1. Jan 21, 2019
    • Chandler Carruth's avatar
      Fix typos throughout the license files that somehow I and my reviewers · 4a1b95bd
      Chandler Carruth authored
      all missed!
      
      Thanks to Alex Bradbury for pointing this out, and the fact that I never
      added the intended `legacy` anchor to the developer policy. Add that
      anchor too. With hope, this will cause the links to all resolve
      successfully.
      
      llvm-svn: 351731
      4a1b95bd
    • Craig Topper's avatar
      f608dc1f
    • Max Kazantsev's avatar
      [NFC] Make getExpressionSize unsigned short · dca1252a
      Max Kazantsev authored
      llvm-svn: 351727
      dca1252a
    • Max Kazantsev's avatar
      [NFC] Fix warnings in unit test of r351725 · 9d45edfa
      Max Kazantsev authored
      llvm-svn: 351726
      9d45edfa
    • Max Kazantsev's avatar
      [SCEV][NFC] Introduces expression sizes estimation · 85c98838
      Max Kazantsev authored
      This patch introduces the field `ExpressionSize` in SCEV. This field is
      calculated only once on SCEV creation, and it represents the complexity of
      this SCEV from arithmetical point of view (not from the point of the number
      of actual different SCEV nodes that are used in the expression). Roughly
      saying, it is the number of operands and operations symbols when we print this
      SCEV.
      
      A formal definition is following: if SCEV `X` has operands
        `Op1`, `Op2`, ..., `OpN`,
      then
        Size(X) = 1 + Size(Op1) + Size(Op2) + ... + Size(OpN).
      Size of SCEVConstant and SCEVUnknown is one.
      
      Expression size may be used as a universal way to limit SCEV transformations
      for huge SCEVs. Currently, we have a bunch of options that represents various
      limits (such as recursion depth limit) that may not make any sense from the
      point of view of a LLVM users who is not familiar with SCEV internals, and all
      these different options pursue one goal. A more general rule that may
      potentially allow us to get rid of this redundancy in options is "do not make
      transformations with SCEVs of huge size". It can apply to all SCEV traversals
      and transformations that may need to visit a SCEV node more than once, hence
      they are prone to combinatorial explosions.
      
      This patch only introduces SCEV sizes calculation as NFC, its utilization will
      be introduced in follow-up patches.
      
      Differential Revision: https://reviews.llvm.org/D35989
      Reviewed By: reames
      
      llvm-svn: 351725
      85c98838
    • Kito Cheng's avatar
      [RISCV] Add R_RISCV_RELAX relocation to all possible relax candidates. · 5e8798f9
      Kito Cheng authored
      Summary:
      Add R_RISCV_RELAX relocation to all possible relax candidates and
      update corresponding testcase.
      
      Reviewers: asb, apazos
      
      Differential Revision: https://reviews.llvm.org/D46677
      
      llvm-svn: 351723
      5e8798f9
    • Dylan McKay's avatar
      [AVR] Insert unconditional branch when inserting MBBs between blocks with fallthrough · 5c23410f
      Dylan McKay authored
      This updates the AVR Select8/Select16 expansion code so that, when
      inserting the two basic blocks for true and false conditions, any
      existing fallthrough on the previous block is preserved.
      
      Prior to this patch, if the block before the Select pseudo fell through
      to the subsequent block, two new basic blocks would be inserted at the
      prior fallthrough point, changing the fallthrough destination.
      
      The predecessor or successor lists were not updated, causing the
      BranchFolding pass at -O1 and above the rearrange basic blocks, causing
      an infinite loop. Not to mention the unconditional fallthrough to the
      true block is incorrect in of itself.
      
      This patch modifies the Select8/16 expansion so that, if inserting true
      and false basic blocks at a fallthrough point, the implicit branch is
      preserved by means of an explicit, unconditional branch to the previous
      fallthrough destination.
      
      Thanks to Carl Peto for reporting this bug.
      
      This fixes avr-rust bug https://github.com/avr-rust/rust/issues/123.
      
      llvm-svn: 351721
      5c23410f
    • Dylan McKay's avatar
      [AVR] Enable emission of debug information · f15cc113
      Dylan McKay authored
      Prior to this, the code was missing AVR-specific relocation logic in
      RelocVisitor.h.
      
      This patch teaches RelocVisitor about R_AVR_16 and R_AVR_32.
      
      Debug information is emitted in the final object file, and understood by
      'avr-readelf --debug-dump' from AVR-GCC.
      
      llvm-dwarfdump is yet to understand how to dump AVR DWARF symbols.
      
      llvm-svn: 351720
      f15cc113
    • Dylan McKay's avatar
      Revert "[AVR] Insert unconditional branch when inserting MBBs between blocks with fallthrough" · ce0ab063
      Dylan McKay authored
      This reverts commit r351718.
      
      Carl pointed out that the unit test could be improved.
      
      This patch will be recommitted once the test is made more resilient.
      
      llvm-svn: 351719
      ce0ab063
    • Dylan McKay's avatar
      [AVR] Insert unconditional branch when inserting MBBs between blocks with fallthrough · 33acba43
      Dylan McKay authored
      This updates the AVR Select8/Select16 expansion code so that, when
      inserting the two basic blocks for true and false conditions, any
      existing fallthrough on the previous block is preserved.
      
      Prior to this patch, if the block before the Select pseudo fell through
      to the subsequent block, two new basic blocks would be inserted at the
      prior fallthrough point, changing the fallthrough destination.
      
      The predecessor or successor lists were not updated, causing the
      BranchFolding pass at -O1 and above the rearrange basic blocks, causing
      an infinite loop. Not to mention the unconditional fallthrough to the
      true block is incorrect in of itself.
      
      This patch modifies the Select8/16 expansion so that, if inserting true
      and false basic blocks at a fallthrough point, the implicit branch is
      preserved by means of an explicit, unconditional branch to the previous
      fallthrough destination.
      
      Thanks to Carl Peto for reporting this bug.
      
      This fixes avr-rust bug https://github.com/avr-rust/rust/issues/123.
      
      llvm-svn: 351718
      33acba43
    • Serge Guelton's avatar
      Tentative fix for r351701 and gcc 6.2 build on ubuntu · 836aa270
      Serge Guelton authored
      llvm-svn: 351705
      836aa270
  2. Jan 20, 2019
  3. Jan 19, 2019
Loading