Skip to content
  1. Jul 26, 2011
    • Chandler Carruth's avatar
      Clean up a pile of hacks in our CMake build relating to TableGen. · 97c069c1
      Chandler Carruth authored
      The first problem to fix is to stop creating synthetic *Table_gen
      targets next to all of the LLVM libraries. These had no real effect as
      CMake specifies that add_custom_command(OUTPUT ...) directives (what the
      'tablegen(...)' stuff expands to) are implicitly added as dependencies
      to all the rules in that CMakeLists.txt.
      
      These synthetic rules started to cause problems as we started more and
      more heavily using tablegen files from *subdirectories* of the one where
      they were generated. Within those directories, the set of tablegen
      outputs was still available and so these synthetic rules added them as
      dependencies of those subdirectories. However, they were no longer
      properly associated with the custom command to generate them. Most of
      the time this "just worked" because something would get to the parent
      directory first, and run tablegen there. Once run, the files existed and
      the build proceeded happily. However, as more and more subdirectories
      have started using this, the probability of this failing to happen has
      increased. Recently with the MC refactorings, it became quite common for
      me when touching a large enough number of targets.
      
      To add insult to injury, several of the backends *tried* to fix this by
      adding explicit dependencies back to the parent directory's tablegen
      rules, but those dependencies didn't work as expected -- they weren't
      forming a linear chain, they were adding another thread in the race.
      
      This patch removes these synthetic rules completely, and adds a much
      simpler function to declare explicitly that a collection of tablegen'ed
      files are referenced by other libraries. From that, we can add explicit
      dependencies from the smaller libraries (such as every architectures
      Desc library) on this and correctly form a linear sequence. All of the
      backends are updated to use it, sometimes replacing the existing attempt
      at adding a dependency, sometimes adding a previously missing dependency
      edge.
      
      Please let me know if this causes any problems, but it fixes a rather
      persistent and problematic source of build flakiness on our end.
      
      llvm-svn: 136023
      97c069c1
    • Evan Cheng's avatar
    • Jim Grosbach's avatar
      ARM assembly parsing and encoding for SSAT16 instruction. · 475c6dbe
      Jim Grosbach authored
      llvm-svn: 136006
      475c6dbe
    • Bruno Cardoso Lopes's avatar
      Codegen allonesvector better while using AVX: vpcmpeqd + vinsertf128 · 9212bf27
      Bruno Cardoso Lopes authored
      This also fixes PR10452
      
      llvm-svn: 136004
      9212bf27
    • Bruno Cardoso Lopes's avatar
      Add remaining 256-bit vector bitcasts. This also fixes PR10451 · ec21941d
      Bruno Cardoso Lopes authored
      llvm-svn: 136003
      ec21941d
    • Bruno Cardoso Lopes's avatar
      - Handle special scalar_to_vector case: splats. Using a native 128-bit · 123dff0f
      Bruno Cardoso Lopes authored
      shuffle before inserting on a 256-bit vector.
      - Add AVX versions of movd/movq instructions
      - Introduce a few COPY patterns to match insert_subvector instructions.
      This turns a trivial insert_subvector instruction into a register copy,
      coalescing the xmm into a ymm and avoid emiting on more instruction.
      
      llvm-svn: 136002
      123dff0f
    • Bruno Cardoso Lopes's avatar
      Reintroduce r135730, this is indeed the right approach, there is no · 276eb8de
      Bruno Cardoso Lopes authored
      native 256-bit vector instruction to do scalar_to_vector.
      
      llvm-svn: 136001
      276eb8de
    • Benjamin Kramer's avatar
      Add a note about efficient codegen for binary log. · c9560339
      Benjamin Kramer authored
      llvm-svn: 135996
      c9560339
    • Jim Grosbach's avatar
      ARM assembly parsing and encoding for SSAT instruction. · 3a9cbeed
      Jim Grosbach authored
      Fix the Rn register encoding for both SSAT and USAT. Update the parsing of the
      shift operand to correctly handle the allowed shift types and immediate ranges
      and issue meaningful diagnostics when an illegal value or shift type is
      specified. Add aliases to parse an ommitted shift operand (default value of
      'lsl #0').
      
      Add tests for diagnostics and proper encoding.
      
      llvm-svn: 135990
      3a9cbeed
    • Evan Cheng's avatar
      Refactoring fail. · 55c8a787
      Evan Cheng authored
      llvm-svn: 135986
      55c8a787
  2. Jul 25, 2011
  3. Jul 24, 2011
  4. Jul 23, 2011
Loading