Skip to content
  1. Dec 12, 2012
  2. Dec 11, 2012
  3. Dec 10, 2012
  4. Dec 08, 2012
  5. Dec 06, 2012
  6. Dec 04, 2012
  7. Dec 03, 2012
    • 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
  8. Dec 01, 2012
    • Zhou Sheng's avatar
      8e6d64a7
    • Zhou Sheng's avatar
      The patch is to improve the memory footprint of pass GlobalOpt. · 13fb1ca4
      Zhou Sheng authored
      Also check in a case to repeat the issue, on which 'opt -globalopt' consumes 1.6GB memory.
      The big memory footprint cause is that current GlobalOpt one by one hoists and stores the leaf element constant into the global array, in each iteration, it recreates the global array initializer constant and leave the old initializer alone. This may result in many obsolete constants left.
      For example:  we have global array @rom = global [16 x i32] zeroinitializer
      After the first element value is hoisted and installed:   @rom = global [16 x i32] [ 1, 0, 0, ... ]
      After the second element value is installed:  @rom = global [16 x 32] [ 1, 2, 0, 0, ... ]        // here the previous initializer is obsolete
      ...
      When the transform is done, we have 15 obsolete initializers left useless.
      
      llvm-svn: 169079
      13fb1ca4
  9. Nov 29, 2012
  10. Nov 20, 2012
    • Bill Wendling's avatar
      Make the AttrListPtr object a part of the LLVMContext. · f86efb9b
      Bill Wendling authored
      When code deletes the context, the AttributeImpls that the AttrListPtr points to
      are now invalid. Therefore, instead of keeping a separate managed static for the
      AttrListPtrs that's reference counted, move it into the LLVMContext and delete
      it when deleting the AttributeImpls.
      
      llvm-svn: 168354
      f86efb9b
  11. Nov 19, 2012
    • Bob Wilson's avatar
      Clean up handling of always-inline functions in the inliner. · a5b0dc88
      Bob Wilson authored
      This patch moves the isInlineViable function from the InlineAlways pass into
      the InlineCostAnalyzer and then changes the InlineCost computation to use that
      simple check for always-inline functions. All the special-case checks for
      AlwaysInline in the CallAnalyzer can then go away.
      
      llvm-svn: 168300
      a5b0dc88
  12. Nov 15, 2012
  13. Nov 01, 2012
    • Chandler Carruth's avatar
      Revert the series of commits starting with r166578 which introduced the · 7ec5085e
      Chandler Carruth authored
      getIntPtrType support for multiple address spaces via a pointer type,
      and also introduced a crasher bug in the constant folder reported in
      PR14233.
      
      These commits also contained several problems that should really be
      addressed before they are re-committed. I have avoided reverting various
      cleanups to the DataLayout APIs that are reasonable to have moving
      forward in order to reduce the amount of churn, and minimize the number
      of commits that were reverted. I've also manually updated merge
      conflicts and manually arranged for the getIntPtrType function to stay
      in DataLayout and to be defined in a plausible way after this revert.
      
      Thanks to Duncan for working through this exact strategy with me, and
      Nick Lewycky for tracking down the really annoying crasher this
      triggered. (Test case to follow in its own commit.)
      
      After discussing with Duncan extensively, and based on a note from
      Micah, I'm going to continue to back out some more of the more
      problematic patches in this series in order to ensure we go into the
      LLVM 3.2 branch with a reasonable story here. I'll send a note to
      llvmdev explaining what's going on and why.
      
      Summary of reverted revisions:
      
      r166634: Fix a compiler warning with an unused variable.
      r166607: Add some cleanup to the DataLayout changes requested by
               Chandler.
      r166596: Revert "Back out r166591, not sure why this made it through
               since I cancelled the command. Bleh, sorry about this!
      r166591: Delete a directory that wasn't supposed to be checked in yet.
      r166578: Add in support for getIntPtrType to get the pointer type based
               on the address space.
      llvm-svn: 167221
      7ec5085e
  14. Oct 31, 2012
  15. Oct 30, 2012
  16. Oct 29, 2012
  17. Oct 26, 2012
  18. Oct 25, 2012
  19. Oct 24, 2012
  20. Oct 18, 2012
    • Chandler Carruth's avatar
      Introduce a BarrierNoop pass, a hack designed to allow *some* control · e8479e15
      Chandler Carruth authored
      over the implicitly-formed-and-nesting CGSCC pass manager and function
      pass managers, especially when using them on the opt commandline or
      using extension points in the module builder. The '-barrier' opt flag
      (or the pass itself) will create a no-op module pass in the pipeline,
      resetting the pass manager stack, and allowing the creation of a new
      pipeline of function passes or CGSCC passes to be created that is
      independent from any previous pipelines.
      
      For example, this can be used to test running two CGSCC passes in
      independent CGSCC pass managers as opposed to in the same CGSCC pass
      manager. It also allows us to introduce a further hack into the
      PassManagerBuilder to separate the O0 pipeline extension passes from the
      always-inliner's CGSCC pass manager, which they likely do not want to
      participate in... At the very least none of the Sanitizer passes want
      this behavior.
      
      This fixes a bug with ASan at O0 currently, and I'll commit the ASan
      test which covers this pass. I'm happy to add a test case that this pass
      exists and works, but not sure how much time folks would like me to
      spend adding test cases for the details of its behavior of partition
      pass managers.... The whole thing is just vile, and mostly intended to
      unblock ASan, so I'm hoping to rip this all out in a brave new pass
      manager world.
      
      llvm-svn: 166172
      e8479e15
  21. Oct 17, 2012
  22. Oct 16, 2012
  23. Oct 15, 2012
  24. Oct 14, 2012
  25. Oct 10, 2012
  26. Oct 09, 2012
Loading