Skip to content
Snippets Groups Projects
  1. Aug 24, 2016
    • Samuel Antao's avatar
      [Driver][OpenMP][CUDA] Add capability to bundle object files in sections of the host binary format. · fcaa0196
      Samuel Antao authored
      Summary:
      This patch adds the capability to bundle object files in sections of the host binary using a designated naming convention for these sections. This patch uses the functionality of the object reader already in the LLVM library to read bundled files, and invokes clang with the incremental linking options to create bundle files. 
      
      Bundling files involves creating an IR file with the contents of the bundle assigned as initializers of globals binded to the designated sections. This way the bundling implementation is agnostic of the host object format.
      
      The features added by this patch were requested in the RFC discussion in  http://lists.llvm.org/pipermail/cfe-dev/2016-February/047547.html.
      
      Reviewers: echristo, tra, jlebar, hfinkel, ABataev, Hahnfeld
      
      Subscribers: mkuron, whchung, cfe-commits, andreybokhanko, Hahnfeld, arpith-jacob, carlo.bertolli, mehdi_amini, caomhin
      
      Differential Revision: https://reviews.llvm.org/D21851
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279634 91177308-0d34-0410-b5e6-96231b3b80d8
      fcaa0196
    • Samuel Antao's avatar
      clang-offload-bundler - offload files bundling/unbundling tool · 37d6801b
      Samuel Antao authored
      Summary:
      One of the goals of programming models that support offloading (e.g. OpenMP) is to enable users to offload with little effort, by annotating the code with a few pragmas. I'd also like to save users the trouble of changing their existent applications' build system. So having the compiler always return a single file instead of one for the host and each target even if the user is doing separate compilation is desirable.
      
      This diff proposes a tool named clang-offload-bundler (happy to change the name if required) that is used to bundle files associated with the same user source file but different targets, or to unbundle a file into separate files associated with different targets.
      
      This tool supports the driver support for OpenMP under review in http://reviews.llvm.org/D9888. The tool is used there to enable separate compilation, so that the very first action on input files that are not source files is a "unbundling action" and the very last non-linking action is a "bundling action".
      
      The format of the bundled files is currently very simple: text formats are concatenated with comments that have a magic string and target identifying triple in between, and binary formats have a header that contains the triple and the offset and size of the code for host and each target.
      
      The goal is to improve this tool in the future to deal with archive files so that each individual file in the archive is properly dealt with. We see that archives are very commonly used in current applications to combine separate compilation results. So I'm convinced users would enjoy this feature.
      
      This tool can be used like this:
      
      `clang-offload-bundler -targets=triple1,triple2 -type=ii -inputs=a.triple1.ii,a.triple2.ii -outputs=a.ii`
      
      or 
      
      `clang-offload-bundler -targets=triple1,triple2 -type=ii -outputs=a.triple1.ii,a.triple2.ii -inputs=a.ii -unbundle`
      
      I implemented the tool under clang/tools. Please let me know if something like this should live somewhere else.
      
      This patch is prerequisite for http://reviews.llvm.org/D9888.
      
      Reviewers: hfinkel, rsmith, echristo, chandlerc, tra, jlebar, ABataev, Hahnfeld
      
      Subscribers: whchung, caomhin, andreybokhanko, arpith-jacob, carlo.bertolli, mehdi_amini, guansong, Hahnfeld, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D13909
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279632 91177308-0d34-0410-b5e6-96231b3b80d8
      37d6801b
    • Vedant Kumar's avatar
      [AST] Make InitListExpr::isExplicit const (NFC) · a298b691
      Vedant Kumar authored
      Patch by Alexander Shaposhnikov!
      
      Differential Revision: https://reviews.llvm.org/D23828
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279613 91177308-0d34-0410-b5e6-96231b3b80d8
      a298b691
    • Adam Nemet's avatar
      [Pragma] Clear loop distribution attribute between loops · c6bbb8c2
      Adam Nemet authored
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279608 91177308-0d34-0410-b5e6-96231b3b80d8
      c6bbb8c2
    • Mehdi Amini's avatar
      Remove excessive padding from PTHStatData (NFC) · b0bac267
      Mehdi Amini authored
      This diff reorders the fields and removes excessive padding.
      This fixes the following warning:
      
      PTHLexer.cpp:629:7: warning: Excessive padding in 'class (anonymous namespace)::PTHStatData' (14 padding bytes, where 6 is optimal). Optimal fields order: Size, ModTime, UniqueID, HasData, IsDirectory, consider reordering the fields or adding explicit padding members.
      
      Patch by: Alexander Shaposhnikov <shal1t712@gmail.com>
      
      Differential Revision: https://reviews.llvm.org/D23826
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279607 91177308-0d34-0410-b5e6-96231b3b80d8
      b0bac267
    • Douglas Yung's avatar
      Adding an additional test to ensure the frame pointer is emitted · 28b38bc1
      Douglas Yung authored
      when compiling with optimization when PS4 is the target.
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@279603 91177308-0d34-0410-b5e6-96231b3b80d8
      28b38bc1
  2. Aug 23, 2016
  3. Aug 22, 2016
  4. Aug 21, 2016
  5. Aug 20, 2016
Loading