Skip to content
  1. Apr 25, 2014
  2. Apr 24, 2014
  3. Apr 23, 2014
  4. Apr 22, 2014
    • Juergen Ributzka's avatar
      [Constant Hoisting] Materialize the constant before the cloned cast instruction. · 575bcb77
      Juergen Ributzka authored
      In the case where the constant comes from a cloned cast instruction, the
      materialization code has to go before the cloned cast instruction.
      
      This commit fixes the method that finds the materialization insertion point
      by making it aware of this case.
      
      This fixes <rdar://problem/15532441>
      
      llvm-svn: 206913
      575bcb77
    • Juergen Ributzka's avatar
      [Constant Hoisting] Print the instructions in the correct order for debugging.... · a1444b39
      Juergen Ributzka authored
      [Constant Hoisting] Print the instructions in the correct order for debugging. No functional change.
      
      llvm-svn: 206912
      a1444b39
    • Kostya Serebryany's avatar
    • Chandler Carruth's avatar
      [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE · 964daaaf
      Chandler Carruth authored
      definition below all of the header #include lines, lib/Transforms/...
      edition.
      
      This one is tricky for two reasons. We again have a couple of passes
      that define something else before the includes as well. I've sunk their
      name macros with the DEBUG_TYPE.
      
      Also, InstCombine contains headers that need DEBUG_TYPE, so now those
      headers #define and #undef DEBUG_TYPE around their code, leaving them
      well formed modular headers. Fixing these headers was a large motivation
      for all of these changes, as "leaky" macros of this form are hard on the
      modules implementation.
      
      llvm-svn: 206844
      964daaaf
    • Chandler Carruth's avatar
      [Modules] Make Support/Debug.h modular. This requires it to not change · e96dd897
      Chandler Carruth authored
      behavior based on other files defining DEBUG_TYPE, which means it cannot
      define DEBUG_TYPE at all. This is actually better IMO as it forces folks
      to define relevant DEBUG_TYPEs for their files. However, it requires all
      files that currently use DEBUG(...) to define a DEBUG_TYPE if they don't
      already. I've updated all such files in LLVM and will do the same for
      other upstream projects.
      
      This still leaves one important change in how LLVM uses the DEBUG_TYPE
      macro going forward: we need to only define the macro *after* header
      files have been #include-ed. Previously, this wasn't possible because
      Debug.h required the macro to be pre-defined. This commit removes that.
      By defining DEBUG_TYPE after the includes two things are fixed:
      
      - Header files that need to provide a DEBUG_TYPE for some inline code
        can do so by defining the macro before their inline code and undef-ing
        it afterward so the macro does not escape.
      
      - We no longer have rampant ODR violations due to including headers with
        different DEBUG_TYPE definitions. This may be mostly an academic
        violation today, but with modules these types of violations are easy
        to check for and potentially very relevant.
      
      Where necessary to suppor headers with DEBUG_TYPE, I have moved the
      definitions below the includes in this commit. I plan to move the rest
      of the DEBUG_TYPE macros in LLVM in subsequent commits; this one is big
      enough.
      
      The comments in Debug.h, which were hilariously out of date already,
      have been updated to reflect the recommended practice going forward.
      
      llvm-svn: 206822
      e96dd897
    • Rafael Espindola's avatar
      Simplify a vpermil* with constant mask. · bad3f777
      Rafael Espindola authored
      With a constant mask a vpermil* is just a shufflevector. This patch implements
      that simplification. This allows us to produce denser code. It should also
      allow more folding down the line.
      
      llvm-svn: 206801
      bad3f777
  5. Apr 21, 2014
  6. Apr 20, 2014
  7. Apr 19, 2014
  8. Apr 18, 2014
Loading