Skip to content
  1. Feb 23, 2013
  2. Feb 22, 2013
  3. Feb 21, 2013
    • Cameron Zwarich's avatar
      Stop relying on physical register kill flags in isKilled() in the two-address · 384026b3
      Cameron Zwarich authored
      pass. One of the callers of isKilled() can cope with overapproximation of kills
      and the other can't, so I added a flag to indicate this.
      
      In theory this could pessimize code slightly, but in practice most physical
      register uses are kills, and most important kills of physical registers are the
      only uses of that register prior to register allocation, so we can recognize
      them as kills even without kill flags.
      
      This is relevant because LiveIntervals gets rid of all kill flags.
      
      llvm-svn: 175821
      384026b3
    • Eli Bendersky's avatar
      Previously, parsing capability of the .debug_frame section was added · 705085da
      Eli Bendersky authored
      to lib/DebugInfo, with dumping in llvm-dwarfdump. This patch adds
      initial ability to parse and dump CFA instructions contained in
      entries.
      
      To keep it manageable, the patch omits some more advanced capabilities
      (accounted in TODOs):
      
      * Parsing of instructions with BLOCK arguments (expression lists)
      * Dumping of actual instruction arguments (currently only names are
      dumped). This is quite tricky since the dumper has to effectively
      "interpret" the instructions.
      
      llvm-svn: 175820
      705085da
    • David Blaikie's avatar
      Limit cast machinery to preserve const and not accept temporaries · 65615996
      David Blaikie authored
      After cleaning up the following type hierarchies:
        * TypeLoc: r175462
        * SVal: r175594
        * CFGElement: r175462
        * ProgramPoint: r175812
      that all invoked undefined behavior by causing a derived copy construction of a
      base object through an invalid cast (thus supporting code that relied on
      casting temporaries that were direct base objects) Clang/LLVM is now clean of
      casts of temporaries. So here's some fun SFINAE machinery (courtesy of Eli
      Friedman, with some porting back from C++11 to LLVM's traits by me) to cause
      compile-time failures if llvm::cast & friends are ever passed an rvalue.
      
      This should avoid a repeat of anything even remotely like PR14321/r168124.
      
      Thanks to Jordan Rose for the help with the various Static Analyzer related
      hierarchies that needed cleaning up, Eli for the SFINAE, Richard Smith, John
      McCall, Ted Kremenek, and Anna Zaks for their input/reviews/patience along the
      way.
      
      llvm-svn: 175819
      65615996
    • Renato Golin's avatar
      Allow GlobalValues to vectorize with AliasAnalysis · cf928cb5
      Renato Golin authored
      Storing the load/store instructions with the values
      and inspect them using Alias Analysis to make sure
      they don't alias, since the GEP pointer operand doesn't
      take the offset into account.
      
      Trying hard to not add any extra cost to loads and stores
      that don't overlap on global values, AA is *only* calculated
      if all of the previous attempts failed.
      
      Using biggest vector register size as the stride for the
      vectorization access, as we're being conservative and
      the cost model (which calculates the real vectorization
      factor) is only run after the legalization phase.
      
      We might re-think this relationship in the future, but
      for now, I'd rather be safe than sorry.
      
      llvm-svn: 175818
      cf928cb5
    • Lang Hames's avatar
      Re-apply r175688, with the changes suggested by Jakob in PR15320. · 43090202
      Lang Hames authored
      llvm-svn: 175809
      43090202
    • Chad Rosier's avatar
      Remove dead code and whitespace. · 9b7f9c3e
      Chad Rosier authored
      llvm-svn: 175804
      9b7f9c3e
    • Pedro Artigas's avatar
      Clear the whole table including the tombstones, since the tombstone count will · 699cf390
      Pedro Artigas authored
      be set to zero that is what it was intended. Should improve performance of 
      the data structure when clear is invoked frequently (both compile time and
      memory usage).
      
      llvm-svn: 175799
      699cf390
    • Eli Bendersky's avatar
      Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo · 8da87163
      Eli Bendersky authored
      to TargetFrameLowering, where it belongs. Incidentally, this allows us
      to delete some duplicated (and slightly different!) code in TRI.
      
      There are potentially other layering problems that can be cleaned up
      as a result, or in a similar manner.
      
      The refactoring was OK'd by Anton Korobeynikov on llvmdev.
      
      Note: this touches the target interfaces, so out-of-tree targets may
      be affected.
      
      llvm-svn: 175788
      8da87163
    • Bill Wendling's avatar
      Don't assert on empty attributes. · efbbbfd3
      Bill Wendling authored
      llvm-svn: 175785
      efbbbfd3
    • Anshuman Dasgupta's avatar
      Hexagon: Expand cttz, ctlz, and ctpop for now. · d062c704
      Anshuman Dasgupta authored
      llvm-svn: 175783
      d062c704
    • Jakob Stoklund Olesen's avatar
      Make RAFast::UsedInInstr indexed by register units. · 2ff4dc0f
      Jakob Stoklund Olesen authored
      This fixes some problems with too conservative checking where we were
      marking all aliases of a register as used, and then also checking all
      aliases when allocating a register.
      
      <rdar://problem/13249625>
      
      llvm-svn: 175782
      2ff4dc0f
    • Evan Cheng's avatar
      Radar numbers don't belong in source code. · ab28b9ae
      Evan Cheng authored
      llvm-svn: 175775
      ab28b9ae
    • Bill Schmidt's avatar
      Trivial cleanup · 836c45ba
      Bill Schmidt authored
      llvm-svn: 175771
      836c45ba
    • Paul Redmond's avatar
      add missing space which prevented the llvm.loop code-block from appearing in the · eaaed3b1
      Paul Redmond authored
      generated html.
      
      llvm-svn: 175769
      eaaed3b1
Loading