Skip to content
  1. Aug 27, 2013
    • Shuxin Yang's avatar
      Add new API lto_codegen_compile_parallel(). · a44362e4
      Shuxin Yang authored
        This API is proposed by Nick Kledzik. The semantic is:
      
        --------------------------------------------------------------------------
         Generate code for merged module into an array of native object files. On 
         success returns a pointer to an array of NativeObjectFile.  The count 
         parameter returns the number of elements in the array.  Each element is 
         a pointer/length for a generated mach-o/ELF buffer.  The buffer is owned
         by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called, 
         or lto_codegen_compile() is called again. On failure, returns NULL 
         (check lto_get_error_message() for details).
      
         extern const struct  NativeObjectFile*
         lto_codegen_compile_parallel(lto_code_gen_t cg, size_t *count);
        ---------------------------------------------------------------------------
      
        This API is currently only called on OSX platform. Linux or other Unixes
      using GNU gold are not supposed to call this function, because on these systems, 
      object files are fed back to linker via disk file instead of memory buffer.
      
        In this commit, lto_codegen_compile_parallel() simply calls
      lto_codegen_compile() to return a single object file. In the near future,
      this function is the entry point for compilation with partition. Linker can
      blindly call this function even if partition is turned off; in this case,
      compiler will return only one object file.
      
      llvm-svn: 189297
      a44362e4
  2. Aug 26, 2013
  3. Aug 23, 2013
  4. Aug 12, 2013
    • Shuxin Yang's avatar
      Revert r188188 and r188200. · 1826ae23
      Shuxin Yang authored
      In order to appease people (in Apple) who accuse me for committing "huge change" (?) without proper review. 
      
      Thank Eric for fixing a compile-warning. 
      
      llvm-svn: 188204
      1826ae23
    • Eric Christopher's avatar
      Fix warning about unused member. · d8da06e0
      Eric Christopher authored
      llvm-svn: 188200
      d8da06e0
    • Shuxin Yang's avatar
      Misc enhancements to LTO: · 76d082b5
      Shuxin Yang authored
        1. Add some helper classes for partitions. They are designed in a
           way such that the top-level LTO driver will not see much difference 
           with or without partitioning.
      
        2. Introduce work-dir. Now all intermediate files generated during 
           LTO phases will be saved under work-dir. User can specify the workdir
           via -lto-workdir=/path/to/dir. By default the work-dir will be 
           erased before linker exit. To keep the workdir, do -lto-keep, or -lto-keep=1.
      
          TODO: Erase the workdir, if the linker exit prematurely.  
            We are currently not able to remove directory on signal. The support 
            routines simply ignore directory.
      
        3. Add one new API lto_codegen_get_files_need_remove().
           Linker and LTO plugin will communicate via this API about which files
          (including directories) need to removed before linker exit.
      
      llvm-svn: 188188
      76d082b5
  5. Aug 09, 2013
  6. Aug 07, 2013
  7. Aug 06, 2013
  8. Aug 02, 2013
  9. Aug 01, 2013
  10. Jul 27, 2013
  11. Jul 25, 2013
  12. Jul 23, 2013
    • Rafael Espindola's avatar
      Split getOpenFile into getOpenFile and getOpenFileSlice. · 3d2ac2e4
      Rafael Espindola authored
      The main observation is that we never need both the filesize and the map size.
      When mapping a slice of a file, it doesn't make sense to request a null
      terminator and that would be the only case where the filesize would be used.
      
      There are other cleanups that should be done in this area:
      
      * A client should not have to pass the size (even an explicit -1) to say if
        it wants a null terminator or not, so we should probably swap the argument
        order.
      * The default should be to not require a null terminator. Very few clients
        require this, but many end up asking for it just because it is the default.
      
      llvm-svn: 186984
      3d2ac2e4
    • Shuxin Yang's avatar
      remove unnecessary space · ca76085a
      Shuxin Yang authored
      llvm-svn: 186931
      ca76085a
  13. Jul 22, 2013
    • Bill Wendling's avatar
      Recommit r186217 with testcase fix: · c02a0aab
      Bill Wendling authored
       Use the function attributes to pass along the stack protector buffer size.
      
       Now that we have robust function attributes, don't use a command line option to
       specify the stack protecto buffer size.
      
      llvm-svn: 186863
      c02a0aab
    • Shuxin Yang's avatar
      Initialize/Register LTO passes to enable flags like -print-after=<lto-pass> · 1e6d80e2
      Shuxin Yang authored
      There already have two "dead" functions, initialize{IPO|IPA}, defined for 
      similar purpose. I decide not to call these two functions for two reasons:
        o. they don't cover all LTO passes (which will soon be separated into IPO 
           and post-IPO passes)
        o. We have not yet figured out the right passes and the ordering for IPO 
           and post-IPO stages, meaning this change is only for the time being.
      
      Since LTO passes are registered, we are now able to print IR before and 
      after particular point.
      
      For OSX users:
      --------------
        "...-Wl,-mllvm -Wl,-print-after=<pass-name>" will print IR after the
        specified pass.
      
      For Other UNIX with GNU gold linker:
      ------------------------------------
        "-Wl,-plugin-opt=-print-after=<pass-name>" should work.
        (NOTE: no need for "-Wl,-mllvm")
      
        Strip "-Wl," if flags are fed directly to linker instead of clang/clang++.
      
      llvm-svn: 186853
      1e6d80e2
  14. Jul 16, 2013
    • Rafael Espindola's avatar
      Add a wrapper for open. · 6d35481c
      Rafael Espindola authored
      This centralizes the handling of O_BINARY and opens the way for hiding more
      differences (like how open behaves with directories).
      
      llvm-svn: 186447
      6d35481c
  15. Jul 13, 2013
  16. Jul 09, 2013
  17. Jul 05, 2013
  18. Jul 02, 2013
    • Rafael Espindola's avatar
      Remove address spaces from MC. · 64e1af8e
      Rafael Espindola authored
      This is dead code since PIC16 was removed in 2010. The result was an odd mix,
      where some parts would carefully pass it along and others would assert it was
      zero (most of the object streamer for example).
      
      llvm-svn: 185436
      64e1af8e
  19. Jun 18, 2013
  20. Jun 17, 2013
  21. Jun 13, 2013
  22. Jun 12, 2013
  23. Jun 11, 2013
  24. Jun 10, 2013
  25. Jun 04, 2013
  26. May 29, 2013
  27. May 25, 2013
  28. May 23, 2013
  29. May 04, 2013
Loading