Skip to content
  1. Oct 15, 2018
  2. Oct 13, 2018
  3. Oct 11, 2018
  4. Oct 10, 2018
  5. Oct 05, 2018
  6. Oct 04, 2018
    • Craig Topper's avatar
      [SimplifyCFG] Change recursive calls to llvm::SimplifyCFG to instead use an... · 1d15f7b0
      Craig Topper authored
      [SimplifyCFG] Change recursive calls to llvm::SimplifyCFG to instead use an outer while loop to revisit.
      
      Summary:
      The llvm::SimplifyCFG function creates a SimplifyCFGOpt object and calls run on it. There were numerous places reached from this run function that called back out llvm::SimplifyCFG which would create another SimplifyCFGOpt object. This is an inefficient use of stack space at minimum. We are also not passing along the LoopHeaders pointer passed into the outer llvm::SimplifyCFG call. So if its not null we lose it on the first recursion and get nullptr from there on.
      
      This patch adds an outer loop around the main BasicBlock simplifying code and adds a flag to the SimplifyCFGOpt class that can be set by to request another iteration. I don't think we can iterate based just on the change flag alone since some of the simplifications delete a basic block entirely leaving nothing to iterate on.
      
      Reviewers: bogner, eli.friedman, reames
      
      Reviewed By: reames
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52760
      
      llvm-svn: 343816
      1d15f7b0
  7. Oct 02, 2018
  8. Oct 01, 2018
  9. Sep 27, 2018
    • Fangrui Song's avatar
      llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...) · 0cac726a
      Fangrui Song authored
      Summary: The convenience wrapper in STLExtras is available since rL342102.
      
      Reviewers: dblaikie, javed.absar, JDevlieghere, andreadb
      
      Subscribers: MatzeB, sanjoy, arsenm, dschuff, mehdi_amini, sdardis, nemanjai, jvesely, nhaehnle, sbc100, jgravelle-google, eraman, aheejin, kbarton, JDevlieghere, javed.absar, gbedwell, jrtc27, mgrang, atanasyan, steven_wu, george.burgess.iv, dexonsmith, kristina, jsji, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D52573
      
      llvm-svn: 343163
      0cac726a
  10. Sep 26, 2018
  11. Sep 25, 2018
  12. Sep 19, 2018
  13. Sep 12, 2018
    • David Green's avatar
      [SimplifyCFG] Put an alignment on generated switch tables · 2352b30c
      David Green authored
      Previously the alignment on the newly created switch table data was not set,
      meaning that DataLayout::getPreferredAlignment was free to overalign it to 16
      bytes. This causes unnecessary code bloat.
      
      Differential Revision: https://reviews.llvm.org/D51800
      
      llvm-svn: 342039
      2352b30c
    • Vikram TV's avatar
      Break LoopUtils into an Analysis file. · 7e98d698
      Vikram TV authored
      Summary:
      The InductionDescriptor and RecurrenceDescriptor classes basically analyze the IR to identify the respective IVs. So, it is better to have them in the "Analysis" directory instead of the "Transforms" directory.
      
      The rationale for this is to make the Induction and Recurrence descriptor classes available for analysis passes. Currently including them in an analysis pass produces link error (http://lists.llvm.org/pipermail/llvm-dev/2018-July/124456.html).
      
      Induction and Recurrence descriptors are moved from Transforms/Utils/LoopUtils.h|cpp to Analysis/IVDescriptors.h|cpp.
      
      Reviewers: dmgreen, llvm-commits, hfinkel
      
      Reviewed By: dmgreen
      
      Subscribers: mgorny
      
      Differential Revision: https://reviews.llvm.org/D51153
      
      llvm-svn: 342016
      7e98d698
  14. Sep 10, 2018
  15. Sep 07, 2018
  16. Sep 04, 2018
    • Chandler Carruth's avatar
      [x86/SLH] Add a real Clang flag and LLVM IR attribute for Speculative · 664aa868
      Chandler Carruth authored
      Load Hardening.
      
      Wires up the existing pass to work with a proper IR attribute rather
      than just a hidden/internal flag. The internal flag continues to work
      for now, but I'll likely remove it soon.
      
      Most of the churn here is adding the IR attribute. I talked about this
      Kristof Beyls and he seemed at least initially OK with this direction.
      The idea of using a full attribute here is that we *do* expect at least
      some forms of this for other architectures. There isn't anything
      *inherently* x86-specific about this technique, just that we only have
      an implementation for x86 at the moment.
      
      While we could potentially expose this as a Clang-level attribute as
      well, that seems like a good question to defer for the moment as it
      isn't 100% clear whether that or some other programmer interface (or
      both?) would be best. We'll defer the programmer interface side of this
      for now, but at least get to the point where the feature can be enabled
      without relying on implementation details.
      
      This also allows us to do something that was really hard before: we can
      enable *just* the indirect call retpolines when using SLH. For x86, we
      don't have any other way to mitigate indirect calls. Other architectures
      may take a different approach of course, and none of this is surfaced to
      user-level flags.
      
      Differential Revision: https://reviews.llvm.org/D51157
      
      llvm-svn: 341363
      664aa868
  17. Sep 03, 2018
  18. Aug 30, 2018
  19. Aug 29, 2018
Loading