Skip to content
  1. Feb 22, 2019
    • Matt Arsenault's avatar
      BreakCriticalEdges: Update PostDominatorTree · 65b4ab99
      Matt Arsenault authored
      llvm-svn: 354673
      65b4ab99
    • Petar Jovanovic's avatar
      [mips][micromips] fix filling delay slots for PseudoIndirectBranch_MM · 6083106b
      Petar Jovanovic authored
      Filling a delay slot in 32bit jump instructions with a 16bit instruction
      can cause issues. According to the documentation such an operation is
      unpredictable.
      This patch adds opcode Mips::PseudoIndirectBranch_MM alongside
      Mips::PseudoIndirectBranch and other instructions that are expanded to jr
      instruction and do not allow a 16bit instruction in their delay slots.
      
      Patch by Mirko Brkusanin.
      
      Differential Revision: https://reviews.llvm.org/D58507
      
      llvm-svn: 354672
      6083106b
    • Roman Tereshin's avatar
      [LowerSwitch][AMDGPU] Do not handle impossible values · 99a6672b
      Roman Tereshin authored
      This patch adds LazyValueInfo to LowerSwitch to compute the range of the
      value being switched over and reduce the size of the tree LowerSwitch
      builds to lower a switch.
      
      Reviewed By: arsenm
      
      Differential Revision: https://reviews.llvm.org/D58096
      
      llvm-svn: 354670
      99a6672b
    • Chijun Sima's avatar
      [DTU] Refine the interface and logic of applyUpdates · 70e97163
      Chijun Sima authored
      Summary:
      This patch separates two semantics of `applyUpdates`:
      1. User provides an accurate CFG diff and the dominator tree is updated according to the difference of `the number of edge insertions` and `the number of edge deletions` to infer the status of an edge before and after the update.
      2. User provides a sequence of hints. Updates mentioned in this sequence might never happened and even duplicated.
      
      Logic changes:
      
      Previously, removing invalid updates is considered a side-effect of deduplication and is not guaranteed to be reliable. To handle the second semantic, `applyUpdates` does validity checking before deduplication, which can cause updates that have already been applied to be submitted again. Then, different calls to `applyUpdates` might cause unintended consequences, for example,
      ```
      DTU(Lazy) and Edge A->B exists.
      1. DTU.applyUpdates({{Delete, A, B}, {Insert, A, B}}) // User expects these 2 updates result in a no-op, but {Insert, A, B} is queued
      2. Remove A->B
      3. DTU.applyUpdates({{Delete, A, B}}) // DTU cancels this update with {Insert, A, B} mentioned above together (Unintended)
      ```
      But by restricting the precondition that updates of an edge need to be strictly ordered as how CFG changes were made, we can infer the initial status of this edge to resolve this issue.
      
      Interface changes:
      The second semantic of `applyUpdates`  is separated to `applyUpdatesPermissive`.
      These changes enable DTU(Lazy) to use the first semantic if needed, which is quite useful in `transforms/utils`.
      
      Reviewers: kuhar, brzycki, dmgreen, grosser
      
      Reviewed By: brzycki
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D58170
      
      llvm-svn: 354669
      70e97163
    • David Green's avatar
      [ARM] Add some missing thumb1 opcodes to enable peephole optimisation of CMPs · acb628b2
      David Green authored
      This adds a number of missing Thumb1 opcodes so that the peephole optimiser can
      remove redundant CMP instructions.
      
      Reapplying this after the first attempt broke non-thumb1 code as the t2ADDri
      instruction can be used with frame indices. In thumb1 we use tADDframe.
      
      Differential Revision: https://reviews.llvm.org/D57833
      
      llvm-svn: 354667
      acb628b2
    • Diana Picus's avatar
      [ARM GlobalISel] Support floating point for Thumb2 · 35e1c666
      Diana Picus authored
      This is exactly the same as arm mode, so for the instruction selector
      tests we just extract them to a new file and run with the same checks
      for both arm and thumb mode.
      
      For the legalizer we need to update the tests for soft float a bit, but
      only because BL and tBL are slightly different. We could be pedantic and
      check that we get a well-formed BL for arm mode and a tBL for thumb, but
      for the purposes of the legalizer test it's sufficient to just skip over
      the predicate operands in the checks. Also note that we have the
      pedantic checks in the divmod test, so we're covered.
      
      llvm-svn: 354665
      35e1c666
    • George Rimar's avatar
      Fix BB after r354661 · d22686b6
      George Rimar authored
      Update 2 test cases after obj2yaml fix in r354661.
      
      llvm-svn: 354663
      d22686b6
    • George Rimar's avatar
      [obj2yaml] - Do not miss section index for special symbols. · 11358dd6
      George Rimar authored
      This fixes https://bugs.llvm.org/show_bug.cgi?id=40786 
      ("obj2yaml symbol output missing section index for SHN_ABS and SHN_COMMON symbols")
      
      Since SHN_ABS and SHN_COMMON symbols are special, we should preserve
      the st_shndx for them. The patch does this for them and the other special symbols.
      
      The test case is based on the test provided by James Henderson at the bug page!
      
      Differential revision: https://reviews.llvm.org/D58498
      
      llvm-svn: 354661
      11358dd6
    • Alina Sbirlea's avatar
      [MemorySSA] Update test with minimized one. NFCI · 15110078
      Alina Sbirlea authored
      llvm-svn: 354658
      15110078
    • Heejin Ahn's avatar
      [WebAssembly] Remove getBottom function from CFGStackify (NFC) · 85631d8b
      Heejin Ahn authored
      Summary:
      This removes `getBottom` function and the bookeeping map of <begin
      marker instruction, bottom BB>.
      
      Reviewers: dschuff
      
      Subscribers: sunfish, sbc100, jgravelle-google, jdoerfert, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D58319
      
      llvm-svn: 354657
      85631d8b
    • Alina Sbirlea's avatar
      [MemorySSA & LoopPassManager] Resolve PR40038. · 90d2e3a1
      Alina Sbirlea authored
      The correct edge being deleted is not to the unswitched exit block, but to the
      original block before it was split. That's the key in the map, not the
      value.
      The insert is correct. The new edge is to the .split block.
      
      The splitting turns OriginalBB into:
      OriginalBB -> OriginalBB.split.
      Assuming the orignal CFG edge: ParentBB->OriginalBB, we must now delete
      ParentBB->OriginalBB, not ParentBB->OriginalBB.split.
      
      llvm-svn: 354656
      90d2e3a1
    • Craig Topper's avatar
      [LegalizeVectorOps] Improve the placement of ANDs in the ExpandLoad path for non-byte-sized loads. · fa6187d2
      Craig Topper authored
      When we need to merge two adjacent loads the AND mask for the low piece was still sized for the full src element size. But we didn't have that many bits. The upper bits are already zero due to the SRL. So we can skip the AND if we're going to combine with the high bits.
      
      We do need an AND to clear out any bits from the high part. We were anding the high part before combining with the low part, but it looks like ANDing after the OR gets better results.
      
      So we can just emit the final AND after the optional concatentation is done. That will handling skipping before the OR and get rid of extra high bits after the OR.
      
      llvm-svn: 354655
      fa6187d2
    • Craig Topper's avatar
      [LegalizeVectorOps] Simplify the non-byte sized load handling VectorLegalizer::ExpandLoad. NFCI · 069cf05e
      Craig Topper authored
      Remove an if that should always be true. Merge the body of another into the only block that could make the if true.
      
      llvm-svn: 354654
      069cf05e
    • Craig Topper's avatar
      [X86] Add test cases to cover the path in VectorLegalizer::ExpandLoad for... · 0ca023b3
      Craig Topper authored
      [X86] Add test cases to cover the path in VectorLegalizer::ExpandLoad for non-byte sized loads where bits from two loads need to be concatenated.
      
      If the scalar type doesn't divide evenly into the WideVT then the code will need to take some bits from adjacent scalar loads and combine them.
      
      But most of our testing is for i1 element type which always divides evenly.
      
      llvm-svn: 354653
      0ca023b3
    • Chijun Sima's avatar
      [DTU] Deprecate insertEdge*/deleteEdge* · f131d611
      Chijun Sima authored
      Summary: This patch converts all existing `insertEdge*/deleteEdge*` to `applyUpdates` and marks `insertEdge*/deleteEdge*` as deprecated.
      
      Reviewers: kuhar, brzycki
      
      Reviewed By: kuhar, brzycki
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D58443
      
      llvm-svn: 354652
      f131d611
    • Lang Hames's avatar
      de9b30db
    • Matt Arsenault's avatar
      DAG: Add helper for creating shifts with correct type · 0280a5e1
      Matt Arsenault authored
      llvm-svn: 354649
      0280a5e1
    • Craig Topper's avatar
      [X86] Add a DAG combine for (aext_vector_inreg (aext_vector_inreg X)) ->... · 3a391fc0
      Craig Topper authored
      [X86] Add a DAG combine for (aext_vector_inreg (aext_vector_inreg X)) -> (aext_vector_inreg X) to fix a regression from my previous commit.
      
      Type legalization is causing two nodes to be created here, but we can use a single node to extend from v8i16 to v2i64.
      
      llvm-svn: 354648
      3a391fc0
    • Craig Topper's avatar
      [LegalizeTypes] When promoting the result of EXTRACT_SUBVECTOR, also check if... · be22f329
      Craig Topper authored
      [LegalizeTypes] When promoting the result of EXTRACT_SUBVECTOR, also check if the input needs to be promoted. Use that to determine the element type to extract.
      
      Otherwise we end up creating extract_vector_elts that then each need to have their input promoted. This can lead to truncates needing to be emitted for each of those.
      
      But we already emitted any_extends when we legalized the extract_subvector. So now we have pairs of any_extend+trunc that partially cancel. But depending on how DAGCombiner visits them we can get weird results.
      
      By promoting the input at the same time we can create only a single any_extend or truncate.
      
      There's one regression in the vector-narrow-binop.ll case, but that looks easy to fix with a follow up patch.
      
      llvm-svn: 354647
      be22f329
    • Lang Hames's avatar
      Add 'Windows' to the disabled platforms list for the Kaleidoscope tests. · 4a7db8cb
      Lang Hames authored
      Expands on the check from r354645.
      
      llvm-svn: 354646
      4a7db8cb
    • Lang Hames's avatar
      Disable Kaleidoscope tests on Win32 -- looks like they're still failing there. · f4b86cb2
      Lang Hames authored
      The Kaleidoscope tests were re-enabled in r354630, but are still failing on
      Windows. This patch disables them on that platform until the failure can be
      investigated.
      
      llvm-svn: 354645
      f4b86cb2
    • Craig Topper's avatar
      [X86] Fix some copy/paste mistakes that caused a VR128 to be used as the... · 427404c7
      Craig Topper authored
      [X86] Fix some copy/paste mistakes that caused a VR128 to be used as the address of a load in an isel pattern
      
      This was introduced in r354511.
      
      Fixes PR40811.
      
      llvm-svn: 354640
      427404c7
    • Evgeniy Stepanov's avatar
      [gn] Add LLVM_BUILD_EXAMPLES. · 2703ced6
      Evgeniy Stepanov authored
      llvm-svn: 354636
      2703ced6
    • Matt Arsenault's avatar
      AMDGPU: Remove debugger related subtarget features · aa6fb4c4
      Matt Arsenault authored
      As far as I know these aren't needed anymore.
      
      llvm-svn: 354634
      aa6fb4c4
  2. Feb 21, 2019
Loading