Skip to content
  1. May 22, 2012
  2. May 21, 2012
  3. May 20, 2012
  4. May 19, 2012
    • Hal Finkel's avatar
      Add a FIXME about access to negative stack-pointer offsets on PPC32. · 66b0c935
      Hal Finkel authored
      The current code will generate a prologue which starts with something like:
              mflr 0
              stw 31, -4(1)
              stw 0, 4(1)
              stwu 1, -16(1)
      
      But under the PPC32 SVR4 ABI, access to negative offsets from R1 is not allowed.
      
      This was pointed out by Peter Bergner.
      
      llvm-svn: 157133
      66b0c935
    • Jakob Stoklund Olesen's avatar
      Remove the late DCE in RegisterCoalescer. · e59d0c32
      Jakob Stoklund Olesen authored
      Dead code and joined copies are now eliminated on the fly, and there is
      no need for a post pass.
      
      This makes the coalescer work like other modern register allocator
      passes: Code is changed on the fly, there is no pending list of changes
      to be committed.
      
      llvm-svn: 157132
      e59d0c32
    • Jakob Stoklund Olesen's avatar
      Erase joined copies immediately. · 25ced184
      Jakob Stoklund Olesen authored
      The late dead code elimination is no longer necessary.
      
      The test changes are cause by a register hint that can be either %rdi or
      %rax. The choice depends on the use list order, which this patch changes.
      
      llvm-svn: 157131
      25ced184
    • Jakob Stoklund Olesen's avatar
      Fix an ancient bug in removeCopyByCommutingDef(). · 1b707c88
      Jakob Stoklund Olesen authored
      Before rewriting uses of one value in A to register B, check that there
      are no tied uses. That would require multiple A values to be rewritten.
      
      This bug can't bite in the current version of the code for a fairly
      subtle reason: A tied use would have caused 2-addr to insert a copy
      before the use. If the copy has been coalesced, it will be found by the
      same loop changed by this patch, and the optimization is aborted.
      
      This was exposed by 400.perlbench and lua after applying a patch that
      deletes joined copies aggressively.
      
      llvm-svn: 157130
      1b707c88
    • Nadav Rotem's avatar
      On Haswell, perfer storing YMM registers using a single instruction. · c93e91da
      Nadav Rotem authored
      llvm-svn: 157129
      c93e91da
Loading