Skip to content
  1. Oct 31, 2009
  2. Oct 30, 2009
    • Dan Gohman's avatar
      Fix MachineLICM to use the correct virtual register class when · 49fa51d9
      Dan Gohman authored
      unfolding loads for hoisting.  getOpcodeAfterMemoryUnfold returns the
      opcode of the original operation without the load, not the load
      itself, MachineLICM needs to know the operand index in order to get
      the correct register class. Extend getOpcodeAfterMemoryUnfold to
      return this information.
      
      llvm-svn: 85622
      49fa51d9
    • Evan Cheng's avatar
      I forgot to commit this test. · 28f052fc
      Evan Cheng authored
      llvm-svn: 85608
      28f052fc
    • Rafael Espindola's avatar
      This fixes functions like · ab7c709f
      Rafael Espindola authored
      void f (int a1, int a2, int a3, int a4, int a5,...)
      
      In ARMTargetLowering::LowerFormalArguments if the function has 4 or
      more regular arguments we used to set VarArgsFrameIndex using an
      offset of 0, which is only correct if the function has exactly 4
      regular arguments.
      
      llvm-svn: 85590
      ab7c709f
  3. Oct 28, 2009
  4. Oct 27, 2009
  5. Oct 26, 2009
    • David Goodwin's avatar
      Break anti-dependence breaking out into its own class. · 8370485d
      David Goodwin authored
      llvm-svn: 85127
      8370485d
    • Dan Gohman's avatar
      Make LSR's OptimizeShadowIV ignore induction variables with negative · d632f895
      Dan Gohman authored
      strides for now, because it doesn't handle them correctly. This fixes a
      miscompile of SingleSource/Benchmarks/Misc-C++/ray.
      
      This problem was usually hidden because indvars transforms such induction
      variables into negations of canonical induction variables.
      
      llvm-svn: 85118
      d632f895
    • Evan Cheng's avatar
      - Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and · b81cb2a9
      Evan Cheng authored
        bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg
        around.
      - Relax register scavenging to allow use of partially "not-live" registers. It's
        common for targets to operate on registers where the top bits are undef. e.g.
        s0 =
        d0 = insert_subreg d0<undef>, s0, 1
        ...
           = d0
        When the insert_subreg is eliminated by the coalescer, the scavenger used to
        complain. The previous fix was to keep to insert_subreg around. But that's
        brittle and it's overly conservative when we want to use the scavenger to 
        allocate registers. It's actually legal and desirable for other instructions
        to use the "undef" part of d0. e.g.
        s0 =
        d0 = insert_subreg d0<undef>, s0, 1
        ...
        s1 =
           = s1
           = d0
        We probably need add a "partial-undef" marker on machine operand so the
        machine verifier would not complain.
      
      llvm-svn: 85091
      b81cb2a9
    • Chris Lattner's avatar
      fix PR5295 where the .ll parser didn't reject a function after a global · e38317f4
      Chris Lattner authored
      or global after a function with conflicting names.  Update some testcases
      that were accidentally depending on this behavior.
      
      llvm-svn: 85081
      e38317f4
  6. Oct 25, 2009
  7. Oct 23, 2009
  8. Oct 22, 2009
  9. Oct 21, 2009
  10. Oct 20, 2009
Loading