Skip to content
  1. Oct 15, 2012
  2. Oct 14, 2012
  3. Oct 13, 2012
    • Benjamin Kramer's avatar
      Remove unused private field. · 44e58f9e
      Benjamin Kramer authored
      llvm-svn: 165881
      44e58f9e
    • Benjamin Kramer's avatar
      X86: Disable long nops for all cpus prior to pentiumpro/i686. · 35480284
      Benjamin Kramer authored
      llvm-svn: 165878
      35480284
    • Jakob Stoklund Olesen's avatar
      Drop <def,dead> flags when merging into an unused lane. · ea82bd7f
      Jakob Stoklund Olesen authored
      The new coalescer can merge a dead def into an unused lane of an
      otherwise live vector register.
      
      Clear the <dead> flag when that happens since the flag refers to the
      full virtual register which is still live after the partial dead def.
      
      This fixes PR14079.
      
      llvm-svn: 165877
      ea82bd7f
    • Meador Inge's avatar
      instcombine: Migrate strchr and strrchr optimizations · 17418508
      Meador Inge authored
      This patch migrates the strchr and strrchr optimizations from the
      simplify-libcalls pass into the instcombine library call simplifier.
      
      llvm-svn: 165875
      17418508
    • Meador Inge's avatar
      instcombine: Migrate strcat and strncat optimizations · 7fb2f737
      Meador Inge authored
      This patch migrates the strcat and strncat optimizations from the
      simplify-libcalls pass into the instcombine library call simplifier.
      
      llvm-svn: 165874
      7fb2f737
    • Meador Inge's avatar
      Implement new LibCallSimplifier class · df796f89
      Meador Inge authored
      This patch implements the new LibCallSimplifier class as outlined in [1].
      In addition to providing the new base library simplification infrastructure,
      all the fortified library call simplifications were moved over to the new
      infrastructure.  The rest of the library simplification optimizations will
      be moved over with follow up patches.
      
      NOTE: The original fortified library call simplifier located in the
      SimplifyFortifiedLibCalls class was not removed because it is still
      used by CodeGenPrepare.  This class will eventually go away too.
      
      [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-August/052283.html
      
      llvm-svn: 165873
      df796f89
    • Jakob Stoklund Olesen's avatar
      Allow for loops in LiveIntervals::pruneValue(). · 2f6dfc7d
      Jakob Stoklund Olesen authored
      It is possible that the live range of the value being pruned loops back
      into the kill MBB where the search started. When that happens, make sure
      that the beginning of KillMBB is also pruned.
      
      Instead of starting a DFS at KillMBB and skipping the root of the
      search, start a DFS at each KillMBB successor, and allow the search to
      loop back to KillMBB.
      
      This fixes PR14078.
      
      llvm-svn: 165872
      2f6dfc7d
    • Benjamin Kramer's avatar
      X86: Fix accidentally swapped operands. · ecd15d7f
      Benjamin Kramer authored
      llvm-svn: 165871
      ecd15d7f
    • Chandler Carruth's avatar
      Teach SROA to cope with wrapper aggregates. These show up a lot in ABI · ba931992
      Chandler Carruth authored
      type coercion code, especially when targetting ARM. Things like [1
      x i32] instead of i32 are very common there.
      
      The goal of this logic is to ensure that when we are picking an alloca
      type, we look through such wrapper aggregates and across any zero-length
      aggregate elements to find the simplest type possible to form a type
      partition.
      
      This logic should (generally speaking) rarely fire. It only ends up
      kicking in when an alloca is accessed using two different types (for
      instance, i32 and float), and the underlying alloca type has wrapper
      aggregates around it. I noticed a significant amount of this occurring
      looking at stepanov_abstraction generated code for arm, and suspect it
      happens elsewhere as well.
      
      Note that this doesn't yet address truly heinous IR productions such as
      PR14059 is concerning. Those result in mismatched *sizes* of types in
      addition to mismatched access and alloca types.
      
      llvm-svn: 165870
      ba931992
    • Chandler Carruth's avatar
      Speculatively harden the conversion logic. I have no idea if this will · 482c6178
      Chandler Carruth authored
      help the dragonegg builders, and no test case at this point, but this
      was one dimly plausible case I spotted by inspection. Hopefully will get
      a testcase from those bots soon-ish, and will tidy this up with proper
      testing.
      
      llvm-svn: 165869
      482c6178
Loading