Skip to content
  1. Jun 17, 2013
    • Benjamin Kramer's avatar
      Switch spill weights from a basic loop depth estimation to BlockFrequencyInfo. · e2a1d89e
      Benjamin Kramer authored
      The main advantages here are way better heuristics, taking into account not
      just loop depth but also __builtin_expect and other static heuristics and will
      eventually learn how to use profile info. Most of the work in this patch is
      pushing the MachineBlockFrequencyInfo analysis into the right places.
      
      This is good for a 5% speedup on zlib's deflate (x86_64), there were some very
      unfortunate spilling decisions in its hottest loop in longest_match(). Other
      benchmarks I tried were mostly neutral.
      
      This changes register allocation in subtle ways, update the tests for it.
      2012-02-20-MachineCPBug.ll was deleted as it's very fragile and the instruction
      it looked for was gone already (but the FileCheck pattern picked up unrelated
      stuff).
      
      llvm-svn: 184105
      e2a1d89e
    • Pekka Jaaskelainen's avatar
      Fix for a regression caused by the LoopVectorizer when · eb90fd1c
      Pekka Jaaskelainen authored
      vectorizing loops with memory accesses to non-zero address spaces. It
      simply dropped the AS info. Fixes PR16306.
      
      llvm-svn: 184103
      eb90fd1c
    • Rafael Espindola's avatar
      Don't use PathV1.h in LTOCodeGenerator.cpp · 40c908bf
      Rafael Espindola authored
      This patch also adds a simpler version of sys::fs::remove and a tool_output_file
      constructor for when we already have an open file.
      
      llvm-svn: 184095
      40c908bf
    • Nadav Rotem's avatar
      Disable vectorization for -Oz. · cde24ef3
      Nadav Rotem authored
      llvm-svn: 184089
      cde24ef3
    • Nadav Rotem's avatar
      Enable the loop vectorizer by default for -Os and -O2. · 7dd8210b
      Nadav Rotem authored
      llvm-svn: 184084
      7dd8210b
    • Rafael Espindola's avatar
      Move lib/Archive to tools/llvm-ar. · ac5c1b0d
      Rafael Espindola authored
      llvm-ar is the only tool that needs to write archive files. Every other tool
      should be able to use the lib/Object interface.
      
      llvm-svn: 184083
      ac5c1b0d
    • Manuel Klimek's avatar
      Fix incorrectly finding 'executable' directories instead of files. · 52772bf3
      Manuel Klimek authored
      This broke for example the 'not' utility, if a directory called
      'FileCheck' is executable and in the path before the actual 'FileCheck'.
      
      This patch steals the implementation of the "old" PathV1 canExecute
      implementation:
      - checks for R_OK (file readable): this is necessary for executing
        scripts; we should not regress here unless we have good reasons
      - checks for S_ISREG; if we want to get rid of this, we'd need to
        change all callers who already made the assumption when depending
        on Path V1.
      
      llvm-svn: 184074
      52772bf3
  2. Jun 16, 2013
    • David Blaikie's avatar
      DebugInfo: remove target-specific Frame Index handling for DBG_VALUE MachineInstrs · b735b4d6
      David Blaikie authored
      Frame index handling is now target-agnostic, so delete the target hooks
      for creation & asm printing of target-specific addressing in DBG_VALUEs
      and any related functions.
      
      llvm-svn: 184067
      b735b4d6
    • David Blaikie's avatar
      Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions · 0252265b
      David Blaikie authored
      Rather than using the full power of target-specific addressing modes in
      DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This
      reduces the complexity of debug info handling down to two
      representations of values (reg+offset and frame index+offset) rather
      than three or four.
      
      Ideally we could ensure that frame indicies had been eliminated by the
      time we reached an assembly or dwarf generation, but I haven't spent the
      time to figure out where the FIs are leaking through into that & whether
      there's a good place to convert them. Some FI+offset=>reg+offset
      conversion is done (see PrologEpilogInserter, for example) which is
      necessary for some SelectionDAG assumptions about registers, I believe,
      but it might be possible to make this a more thorough conversion &
      ensure there are no remaining FIs no matter how instruction selection
      is performed.
      
      llvm-svn: 184066
      0252265b
    • Benjamin Kramer's avatar
      Silence warning in Release builds. · e9d5fb09
      Benjamin Kramer authored
      llvm-svn: 184059
      e9d5fb09
  3. Jun 15, 2013
  4. Jun 14, 2013
Loading