Skip to content
  1. Jun 20, 2012
    • Andrew Trick's avatar
      A new algorithm for computing LoopInfo. Temporarily disabled. · ff2ed7b6
      Andrew Trick authored
      -stable-loops enables a new algorithm for generating the Loop
      forest. It differs from the original algorithm in a few respects:
      
      - Not determined by use-list order.
      - Initially guarantees RPO order of block and subloops.
      - Linear in the number of CFG edges.
      - Nonrecursive.
      
      I didn't want to change the LoopInfo API yet, so the block lists are
      still inclusive. This seems strange to me, and it means that building
      LoopInfo is not strictly linear, but it may not be a problem in
      practice. At least the block lists start out in RPO order now. In the
      future we may add an attribute or wrapper analysis that allows other
      passes to assume RPO order.
      
      The primary motivation of this work was not to optimize LoopInfo, but
      to allow reproducing performance issues by decomposing the compilation
      stages. I'm often unable to do this with the current LoopInfo, because
      the loop tree order determines Loop pass order. Serializing the IR
      tends to invert the order, which reverses the optimization order. This
      makes it nearly impossible to debug interdependent loop optimizations
      such as LSR.
      
      I also believe this will provide more stable performance results across time.
      
      llvm-svn: 158790
      ff2ed7b6
    • Bill Wendling's avatar
      Sphinxify the MakefileGuide document. · 74ede098
      Bill Wendling authored
      llvm-svn: 158789
      74ede098
    • Francois Pichet's avatar
      Unbreak the MSVC build: add return to unimplemented functions. · 5dc987a3
      Francois Pichet authored
      llvm-svn: 158788
      5dc987a3
    • Andrew Trick's avatar
      Move the implementation of LoopInfo into LoopInfoImpl.h. · cda51d43
      Andrew Trick authored
      The implementation only needs inclusion from LoopInfo.cpp and
      MachineLoopInfo.cpp. Clients of the interface should only include the
      interface. This makes the interface readable and speeds up rebuilds
      after modifying the implementation.
      
      llvm-svn: 158787
      cda51d43
    • Bill Wendling's avatar
      Sphinxify the CodingStandard documentation. · 1c5e94a4
      Bill Wendling authored
      llvm-svn: 158786
      1c5e94a4
    • Nick Kledzik's avatar
      Add permissions(), map_file_pages(), and unmap_file_pages() to llvm::sys::fs... · 18497e92
      Nick Kledzik authored
      Add permissions(), map_file_pages(), and unmap_file_pages() to llvm::sys::fs and add unit test. Unix is implemented.  Windows side needs to be implemented.
      
      llvm-svn: 158770
      18497e92
    • Kaelyn Uhrain's avatar
      Don't assert when given an empty range. · 2212f807
      Kaelyn Uhrain authored
      llvm::RawMemoryObject handles empty ranges just fine, and the assert can
      be triggered in the wild by e.g. invoking clang with a file that
      included an empty pre-compiled header file when clang has been built
      with assertions enabled. Without assertions enabled, clang will properly
      report that the empty file is not a valid PCH.
      
      llvm-svn: 158769
      2212f807
    • Jakob Stoklund Olesen's avatar
      Add regunit liveness support to LiveIntervals::handleMove(). · 3802bbf3
      Jakob Stoklund Olesen authored
      When LiveIntervals is tracking fixed interference in regunits, make sure
      to update those intervals as well. Currently guarded by -live-regunits.
      
      llvm-svn: 158766
      3802bbf3
    • Bill Wendling's avatar
      Alphabetize. · 152c3850
      Bill Wendling authored
      llvm-svn: 158764
      152c3850
    • Chad Rosier's avatar
      Tidy up. · 651f9a48
      Chad Rosier authored
      llvm-svn: 158762
      651f9a48
    • Chad Rosier's avatar
      Add an ensureMaxAlignment() function to MachineFrameInfo (analogous to · 73696927
      Chad Rosier authored
      ensureAlignment() in MachineFunction).  Also, drop setMaxAlignment() in
      favor of this new function.  This creates a main entry point to setting
      MaxAlignment, which will be helpful for future work.  No functionality
      change intended.
      
      llvm-svn: 158758
      73696927
    • Lang Hames's avatar
      Add DAG-combines for aggressive FMA formation. · 39fb1d08
      Lang Hames authored
      This patch adds DAG combines to form FMAs from pairs of FADD + FMUL or
      FSUB + FMUL. The combines are performed when:
      (a) Either
            AllowExcessFPPrecision option (-enable-excess-fp-precision for llc)
              OR
            UnsafeFPMath option (-enable-unsafe-fp-math)
          are set, and
      (b) TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) is true for the type of
          the FADD/FSUB, and
      (c) The FMUL only has one user (the FADD/FSUB).
      
      If your target has fast FMA instructions you can make use of these combines by
      overriding TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) to return true for
      types supported by your FMA instruction, and adding patterns to match ISD::FMA
      to your FMA instructions.
      
      llvm-svn: 158757
      39fb1d08
    • Jakob Stoklund Olesen's avatar
      80 col. · 2db1125b
      Jakob Stoklund Olesen authored
      llvm-svn: 158755
      2db1125b
    • Chad Rosier's avatar
      Typo. Patch by Cameron McInally <cameron.mcinally@nyu.edu>. · bb335c96
      Chad Rosier authored
      llvm-svn: 158754
      bb335c96
    • Bill Wendling's avatar
      Add Projects.rst to the toctree. · 444075a2
      Bill Wendling authored
      llvm-svn: 158753
      444075a2
    • Bill Wendling's avatar
      Use correct capitalization. · 34ffc89e
      Bill Wendling authored
      llvm-svn: 158752
      34ffc89e
  2. Jun 19, 2012
Loading