Skip to content
  1. Dec 10, 2012
    • Eric Christopher's avatar
      Delete the FissionCU. · 8afd7b60
      Eric Christopher authored
      llvm-svn: 169757
      8afd7b60
    • Eric Christopher's avatar
      Reorder fission variables. · d79f5480
      Eric Christopher authored
      llvm-svn: 169756
      d79f5480
    • Hal Finkel's avatar
      Use GetUnderlyingObjects in misched · 66859ae0
      Hal Finkel authored
      misched used GetUnderlyingObject in order to break false load/store
      dependencies, and the -enable-aa-sched-mi feature similarly relied on
      GetUnderlyingObject in order to ensure it is safe to use the aliasing analysis.
      Unfortunately, GetUnderlyingObject does not recurse through phi nodes, and so
      (especially due to LSR) all of these mechanisms failed for
      induction-variable-dependent loads and stores inside loops.
      
      This change replaces uses of GetUnderlyingObject with GetUnderlyingObjects
      (which will recurse through phi and select instructions) in misched.
      
      Andy reviewed, tested and simplified this patch; Thanks!
      
      llvm-svn: 169744
      66859ae0
    • Craig Topper's avatar
      Teach DAG combine to handle vector add/sub with vectors of all 0s. · d8005db4
      Craig Topper authored
      llvm-svn: 169727
      d8005db4
  2. Dec 09, 2012
  3. Dec 08, 2012
  4. Dec 07, 2012
    • Jakob Stoklund Olesen's avatar
      Add higher-level API for dealing with bundled MachineInstrs. · fead62d4
      Jakob Stoklund Olesen authored
      This is still a work in progress. The purpose is to make bundling and
      unbundling operations explicit, and to catch errors where bundles are
      broken or created inadvertently.
      
      The old IsInsideBundle flag is replaced by two MI flags: BundledPred
      which has the same meaning as IsInsideBundle, and BundledSucc which is
      set on instructions that are bundled with a successor. Having two flags
      provdes redundancy to detect when a bundle is inadvertently torn by a
      splice() or insert(), and it makes it possible to write bundle iterators
      that don't need to peek at adjacent instructions.
      
      The new flags can't be manipulated directly (once setIsInsideBundle is
      gone). Instead there are MI functions to make and break bundle bonds.
      
      The setIsInsideBundle function will be removed in a future commit. It
      should be replaced by bundleWithPred().
      
      llvm-svn: 169583
      fead62d4
  5. Dec 06, 2012
  6. Dec 05, 2012
  7. Dec 04, 2012
  8. Dec 03, 2012
    • Jakob Stoklund Olesen's avatar
      Use the new getRegAllocationHints() hook from AllocationOrder. · c784a1f9
      Jakob Stoklund Olesen authored
      This simplifies the hinting code quite a bit while making the targets
      easier to write at the same time.
      
      llvm-svn: 169173
      c784a1f9
    • Pedro Artigas's avatar
      moves doInitialization and doFinalization to the Pass class and removes some... · e4348b04
      Pedro Artigas authored
      moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo
      
      reviewed by Evan Cheng <evan.cheng@apple.com>
      
      llvm-svn: 169164
      e4348b04
    • Jakob Stoklund Olesen's avatar
      Add a new hook for providing register allocator hints more flexibly. · 499cac48
      Jakob Stoklund Olesen authored
      The TargetRegisterInfo::getRegAllocationHints() function is going to
      replace the existing mechanisms for providing target-dependent hints to
      the register allocator: ResolveRegAllocHint() and
      getRawAllocationOrder().
      
      The new hook is more flexible because it allows the target to provide
      multiple preferred candidate registers for each virtual register, and it
      is easier to use because targets are not required to return a reference
      to a constant array like getRawAllocationOrder().
      
      An optional VirtRegMap argument can be used to provide target-dependent
      hints that depend on the provisional assignments of other virtual
      registers.
      
      llvm-svn: 169154
      499cac48
    • Eli Bendersky's avatar
      Fix PR12942: Allow two CUs to be generated from the same source file. · b42d1466
      Eli Bendersky authored
      Thanks Eric for the review.
      
      llvm-svn: 169142
      b42d1466
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
Loading