Skip to content
  1. Dec 20, 2016
  2. Dec 19, 2016
  3. Dec 18, 2016
    • David Majnemer's avatar
      [PDB] Don't use the long type · b7477b54
      David Majnemer authored
      Long is not the same size across a number of the platforms we support.
      Use unsigned int here instead, it is more appropriate because
      overflow/wrap-around is possible and, in this case, expected.
      
      llvm-svn: 290068
      b7477b54
    • Sanjay Patel's avatar
      [InstCombine] use commutative matchers for patterns with commutative operators · 2b9d4b4d
      Sanjay Patel authored
      Background/motivation - I was circling back around to:
      https://llvm.org/bugs/show_bug.cgi?id=28296
      
      I made a simple patch for that and noticed some regressions, so added test cases for
      those with rL281055, and this is hopefully the minimal fix for just those cases.
      
      But as you can see from the surrounding untouched folds, we are missing commuted patterns
      all over the place, and of course there are no regression tests to cover any of those cases.
      
      We could sprinkle "m_c_" dust all over this file and catch most of the missing folds, but 
      then we still wouldn't have test coverage, and we'd still miss some fraction of commuted 
      patterns because they require adjustments to the match order.
      
      I'm aware of the concern about the potential compile-time performance impact of adding 
      matches like this (currently being discussed on llvm-dev), but I don't think there's any
      evidence yet to suggest that handling commutative pattern matching more thoroughly is not
      a worthwhile goal of InstCombine.
      
      Differential Revision: https://reviews.llvm.org/D24419
      
      llvm-svn: 290067
      2b9d4b4d
    • Daniel Jasper's avatar
      Revert r289955 and r289962. This is causing lots of ASAN failures for us. · 373f9a6a
      Daniel Jasper authored
      Not sure whether it causes and ASAN false positive or whether it
      actually leads to incorrect code or whether it even exposes bad code.
      Hans, I'll get you instructions to reproduce this.
      
      llvm-svn: 290066
      373f9a6a
    • Michael Zuckerman's avatar
      [X86] [AVX512] Minor fix in encoding of scalar EVEX instructions. NFC. · 4b88a770
      Michael Zuckerman authored
      Commit on behalf of Gadi Haber  
      
      Removed EVEX_V512 prefix from scalar EVEX instructions since HW ignores L'L bits anyway (LIG). 4 instructions are modified.
      The changed encodings are validated with XED.
      Rviewers: delena, igorb
      
      Differential revision: https://reviews.llvm.org/D27802
      
      llvm-svn: 290065
      4b88a770
    • Simon Pilgrim's avatar
      [X86][SSE] Add support for combining target shuffles to SHUFPS. · e940daf5
      Simon Pilgrim authored
      As discussed on D27692, the next step will be to allow cross-domain shuffles once the combined shuffle depth passes a certain point.
      
      llvm-svn: 290064
      e940daf5
    • Craig Topper's avatar
      [X86][SSE][AVX-512] Convert FAND/FOR/FXOR/FANDN nodes to integer operations if... · 7029db0e
      Craig Topper authored
      [X86][SSE][AVX-512] Convert FAND/FOR/FXOR/FANDN nodes to integer operations if they are available. This will allow a bunch of patterns to be removed.
      
      These nodes are only emitted for lowering FABS/FNEG/FNABS/FCOPYSIGN. Ideally we just wouldn't create these nodes if SSE2 or higher is available, but it was simple to just convert them in DAG combine.
      
      For SSE2, AVX, and AVX512 with DQI this is no functional change as the execution domain fixing pass ensures the right domain is selected regardless of the ISD opcode.
      
      For AVX-512 without DQI we end up using integer instructions since the floating point versions aren't available. But we were already doing that for any logical operations in code that didn't come from FABS/FNEG/FNABS/FCOPYSIGN so this seems no worse. And we get the benefit of being able to fold broadcasts now.
      
      llvm-svn: 290060
      7029db0e
    • Craig Topper's avatar
      [AVX-512] Use EVEX encoded XOR instruction for zeroing scalar registers when... · add9cc69
      Craig Topper authored
      [AVX-512] Use EVEX encoded XOR instruction for zeroing scalar registers when DQI and VLX instructions are available.
      
      This can give the register allocator more registers to use.
      
      llvm-svn: 290057
      add9cc69
    • Craig Topper's avatar
      [AVX-512] Make sure VLX is also enabled before using EVEX encoded logic ops... · 2baef8f4
      Craig Topper authored
      [AVX-512] Make sure VLX is also enabled before using EVEX encoded logic ops for scalars. I missed this in r290049.
      
      llvm-svn: 290055
      2baef8f4
    • David Majnemer's avatar
      [PDB] Don't reimplement CRC32 · 1d3dcb06
      David Majnemer authored
      We already have a CRC32 implementation which is compatible with the PDB
      hash, reuse it.
      
      llvm-svn: 290054
      1d3dcb06
    • David Majnemer's avatar
      [PDB] Validate superblock addresses · 9bca03bf
      David Majnemer authored
      - Validate the address of the block map.
      - Validate the address of the free block map.
      
      llvm-svn: 290053
      9bca03bf
  4. Dec 17, 2016
Loading