Skip to content
  1. Oct 19, 2010
    • Owen Anderson's avatar
      Get rid of static constructors for pass registration. Instead, every pass... · 6c18d1aa
      Owen Anderson authored
      Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which
      must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
      the pass's dependencies.
      
      Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
      CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
      before parsing commandline arguments.
      
      I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
      with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
      registration/creation, please send the testcase to me directly.
      
      llvm-svn: 116820
      6c18d1aa
  2. Oct 08, 2010
  3. Aug 06, 2010
  4. Jul 22, 2010
  5. Jul 06, 2010
  6. Feb 15, 2010
  7. Jan 05, 2010
  8. Oct 25, 2009
  9. Oct 23, 2009
  10. Aug 13, 2009
  11. Jul 16, 2009
  12. Jul 15, 2009
  13. Jul 10, 2009
  14. May 09, 2009
  15. Mar 06, 2009
  16. Jan 12, 2009
  17. Nov 18, 2008
  18. Nov 13, 2008
  19. Nov 11, 2008
  20. Nov 10, 2008
  21. Nov 07, 2008
  22. Nov 06, 2008
  23. Nov 05, 2008
  24. Nov 04, 2008
    • Bill Wendling's avatar
      Small simplification of the stack guard type. · d31fc54f
      Bill Wendling authored
      llvm-svn: 58728
      d31fc54f
    • Bill Wendling's avatar
      - Add a "getOrInsertGlobal" method to the Module class. This acts similarly to · 2f40956c
      Bill Wendling authored
        "getOrInsertFunction" in that it either adds a new declaration of the global
        and returns it, or returns the current one -- optionally casting it to the
        correct type.
      - Use the new getOrInsertGlobal in the stack protector code.
      - Use "splitBasicBlock" in the stack protector code.
      
      llvm-svn: 58727
      2f40956c
    • Bill Wendling's avatar
      Update in response to feedback from Chris: · 64adc71e
      Bill Wendling authored
      - Use enums instead of magic numbers.
      
      - Rework algorithm to use the bytes size from the target to determine when to
        emit stack protectors.
      
      - Get rid of "propolice" in any comments.
      
      - Renamed an option to its expanded form.
      
      - Other miscellanenous changes.
      
      More changes will come after this.
      
      llvm-svn: 58723
      64adc71e
    • Bill Wendling's avatar
      Initial checkin for stack protectors. Here's what it does: · 05d8417f
      Bill Wendling authored
      * The prologue is modified to read the __stack_chk_guard global and insert it
        onto the stack.
      
      * The epilogue is modified to read the stored guard from the stack and compare
        it to the original __stack_chk_guard value. If they differ, then the
        __stack_chk_fail() function is called.
      
      * The stack protector needs to be first on the stack (after the parameters) to
        catch any stack-smashing activities.
      
      Front-end support will follow after a round of beta testing.
      
      llvm-svn: 58673
      05d8417f
Loading