Skip to content
  1. Aug 19, 2010
  2. Aug 18, 2010
    • Jim Grosbach's avatar
      Add hook for re-using virtual base registers for local stack slot access. · e0e9b301
      Jim Grosbach authored
      Nothing fancy, just ask the target if any currently available base reg
      is in range for the instruction under consideration and use the first one
      that is. Placeholder ARM implementation simply returns false for now.
      
      ongoing saga of rdar://8277890
      
      llvm-svn: 111374
      e0e9b301
    • Jim Grosbach's avatar
      Add materialization of virtual base registers for frame indices allocated into · 3cf08661
      Jim Grosbach authored
      the local block. Resolve references to those indices to a new base register.
      For simplification and testing purposes, a new virtual base register is
      allocated for each frame index being resolved. The result is truly horrible,
      but correct, code that's good for exercising the new code paths.
      
      Next up is adding thumb1 support, which should be very simple. Following that
      will be adding base register re-use and implementing a reasonable ARM
      heuristic for when a virtual base register should be generated at all.
      
      llvm-svn: 111315
      3cf08661
  3. Aug 17, 2010
  4. Aug 16, 2010
  5. Aug 14, 2010
    • Jim Grosbach's avatar
      Add a local stack object block allocation pass. This is still an · a030fa52
      Jim Grosbach authored
      experimental pass that allocates locals relative to one another before
      register allocation and then assigns them to actual stack slots as a block
      later in PEI. This will eventually allow targets with limited index offset
      range to allocate additional base registers (not just FP and SP) to
      more efficiently reference locals, as well as handle situations where
      locals cannot be referenced via SP or FP at all (dynamic stack realignment
      together with variable sized objects, for example). It's currently
      incomplete and almost certainly buggy. Work in progress.
      
      Disabled by default and gated via the -enable-local-stack-alloc command
      line option.
      
      rdar://8277890
      
      llvm-svn: 111059
      a030fa52
Loading