Skip to content
  1. Apr 22, 2013
  2. Apr 21, 2013
    • Jakob Stoklund Olesen's avatar
      Passing arguments to varags functions under the SPARC v9 ABI. · 84ebe25d
      Jakob Stoklund Olesen authored
      Arguments after the fixed arguments never use the floating point
      registers.
      
      llvm-svn: 179987
      84ebe25d
    • Jim Grosbach's avatar
      Tidy up comment grammar. · d4db72db
      Jim Grosbach authored
      llvm-svn: 179986
      d4db72db
    • Jakob Stoklund Olesen's avatar
      Fix the SETHIimm pattern for 64-bit code. · 65d32872
      Jakob Stoklund Olesen authored
      Don't ignore the high 32 bits of the immediate.
      
      llvm-svn: 179985
      65d32872
    • Stephen Lin's avatar
    • Benjamin Kramer's avatar
      SROA: Don't crash on a select with two identical operands. · 0212dc27
      Benjamin Kramer authored
      This is an edge case that can happen if we modify a chain of multiple selects.
      Update all operands in that case and remove the assert. PR15805.
      
      llvm-svn: 179982
      0212dc27
    • Arnold Schwaighofer's avatar
      Revert "SimplifyCFG: If convert single conditional stores" · 6eb32b31
      Arnold Schwaighofer authored
      There is the temptation to make this tranform dependent on target information as
      it is not going to be beneficial on all (sub)targets. Therefore, we should
      probably do this in MI Early-Ifconversion.
      
      This reverts commit r179957. Original commit message:
      
      "SimplifyCFG: If convert single conditional stores
      
      This transformation will transform a conditional store with a preceeding
      uncondtional store to the same location:
      
      a[i] =
      may-alias with a[i] load
      if (cond)
          a[i] = Y
      into an unconditional store.
      
      a[i] = X
      may-alias with a[i] load
      tmp = cond ? Y : X;
      a[i] = tmp
      
      We assume that on average the cost of a mispredicted branch is going to be
      higher than the cost of a second store to the same location, and that the
      secondary benefits of creating a bigger basic block for other optimizations to
      work on outway the potential case were the branch would be correctly predicted
      and the cost of the executing the second store would be noticably reflected in
      performance.
      
      hmmer's execution time improves by 30% on an imac12,2 on ref data sets. With
      this change we are on par with gcc's performance (gcc also performs this
      transformation). There was a 1.2 % performance improvement on a ARM swift chip.
      Other tests in the test-suite+external seem to be mostly uninfluenced in my
      experiments:
      This optimization was triggered on 41 tests such that the executable was
      different before/after the patch. Only 1 out of the 40 tests (dealII) was
      reproducable below 100% (by about .4%). Given that hmmer benefits so much I
      believe this to be a fair trade off.
      
      I am going to watch performance numbers across the builtbots and will revert
      this if anything unexpected comes up."
      
      llvm-svn: 179980
      6eb32b31
Loading