Skip to content
  1. Sep 19, 2013
    • Shuxin Yang's avatar
      GVN proceeds in the presence of dead code. · 74c9a170
      Shuxin Yang authored
      This is how it ignores the dead code:
      1) When a dead branch target, say block B, is identified, all the
          blocks dominated by B is dead as well.
      
      2) The PHIs of those blocks in dominance-frontier(B) is updated such
         that the operands corresponding to dead predecessors are replaced
         by "UndefVal".
      
         Using lattice's jargon, the "UndefVal" is the "Top" in essence.
         Phi node like this "phi(v1 bb1, undef xx)" will be optimized into
         "v1" if v1 is constant, or v1 is an instruction which dominate this
         PHI node.
      
      3) When analyzing the availability of a load L, all dead mem-ops which
         L depends on disguise as a load which evaluate exactly same value as L.
      
      4) The dead mem-ops will be materialized as "UndefVal" during code motion.
      
      llvm-svn: 191017
      74c9a170
    • Reid Kleckner's avatar
      msbuild: Set _MSC_VER to match the CRT we're using · ab675128
      Reid Kleckner authored
      Various Windows SDK headers use _MSC_VER values to figure out what
      version of the VC++ headers they're using, in particular for SAL macros.
      
      Patch by Paul Hampson!
      
      llvm-svn: 191015
      ab675128
    • Shuxin Yang's avatar
      Add function DominatorTree::getDescendants(). · a9df0db2
      Shuxin Yang authored
        As its name suggests, this function will return all basic blocks
      dominated by a given block.
      
      llvm-svn: 191014
      a9df0db2
    • Reid Kleckner's avatar
      Include an LLVM-vs2012_xp toolset in the MSBuild integration · 58c16ee6
      Reid Kleckner authored
      Patch by Paul Hampson!
      
      llvm-svn: 191010
      58c16ee6
    • Evgeniy Stepanov's avatar
      [msan] Wrap indirect functions. · 37b86454
      Evgeniy Stepanov authored
      Adds a flag to the MemorySanitizer pass that enables runtime rewriting of
      indirect calls. This is part of MSanDR implementation and is needed to return
      control to the DynamiRio-based helper tool on transition between instrumented
      and non-instrumented modules. Disabled by default.
      
      llvm-svn: 191006
      37b86454
    • Benjamin Kramer's avatar
      DAGCombiner: Don't fold vector muls with constants that look like a splat of a... · d443e4a0
      Benjamin Kramer authored
      DAGCombiner: Don't fold vector muls with constants that look like a splat of a power of 2 but differ in bit width.
      
      PR17283.
      
      llvm-svn: 191000
      d443e4a0
    • Justin Holewinski's avatar
      [NVPTX] Make constant vector test case endian-independent · a54daa46
      Justin Holewinski authored
      llvm-svn: 190998
      a54daa46
    • Justin Holewinski's avatar
      [NVPTX] Support constant vector globals · 95564bdf
      Justin Holewinski authored
      llvm-svn: 190997
      95564bdf
    • Amara Emerson's avatar
      [ARMv8] Add support for the v8 cryptography extensions. · 33089095
      Amara Emerson authored
      llvm-svn: 190996
      33089095
    • Tim Northover's avatar
      X86: FrameIndex addressing modes do have a base register. · 97347a81
      Tim Northover authored
      When selecting the DAG (add (WrapperRIP ...), (FrameIndex ...)), X86 code had
      spotted the FrameIndex possibility and was working out whether it could fold
      the WrapperRIP into this.
      
      The test for forming a %rip version is notionally whether we already have a
      base or index register (%rip precludes both), but we were forgetting to account
      for the register that would be inserted later to access the frame.
      
      rdar://problem/15024520
      
      llvm-svn: 190995
      97347a81
    • Andrew Trick's avatar
      Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." · b5e1e6cc
      Andrew Trick authored
      Working on a better solution to this.
      
      This reverts commit 7d4e9934e7ca83094c5cf41346966c8350179ff2.
      
      llvm-svn: 190990
      b5e1e6cc
    • Andrew Trick's avatar
      Encapsulate PassManager debug flags to avoid static init and cxa_exit. · f33d6df8
      Andrew Trick authored
      This puts all the global PassManager debugging flags, like
      -print-after-all and -time-passes, behind a managed static. This
      eliminates their static initializers and, more importantly, exit-time
      destructors.
      
      The only behavioral change I anticipate is that tools need to
      initialize the PassManager before parsing the command line in order to
      export these options, which makes sense. Tools that already initialize
      the standard passes (opt/llc) don't need to do anything new.
      
      llvm-svn: 190974
      f33d6df8
    • Andrew Trick's avatar
      whitespace · dc073add
      Andrew Trick authored
      llvm-svn: 190973
      dc073add
    • Reed Kotler's avatar
      Fix two issues regarding Got pointer (GP) setup. · d6aadc79
      Reed Kotler authored
      1) make sure that the first two instructions of the sequence cannot
      separate from each other. The linker requires that they be sequential.
      If they get separated, it can still work but it will not work in all
      cases because the first of the instructions mostly involves the hi part
      of the pc relative offset and that part changes slowly. You would have
      to be at the right boundary for this to matter.
      2) make sure that this sequence begins  on a longword boundary. 
      There appears to be a bug in binutils which makes some of these calculations
      get messed up if the instruction sequence does not begin on a longword
      boundary. This is being investigated with the appropriate binutils folks.
      
      llvm-svn: 190966
      d6aadc79
    • Adrian Prantl's avatar
      Debug info: Get rid of the VLA indirection hack in FastISel. · 262bcf45
      Adrian Prantl authored
      Use the DIVariable::isIndirect() flag set by the frontend instead of
      guessing whether to set the machine location's indirection bit.
      Paired commit with CFE.
      
      llvm-svn: 190961
      262bcf45
  2. Sep 18, 2013
Loading