Skip to content
  1. May 20, 2013
    • Justin Holewinski's avatar
      [NVPTX] Add programmatic interface to NVVMReflect pass · 18f3a1ff
      Justin Holewinski authored
      llvm-svn: 182297
      18f3a1ff
    • Justin Holewinski's avatar
      [NVPTX] Add GenericToNVVM IR converter to better handle idiomatic LLVM IR inputs · 01f89f04
      Justin Holewinski authored
      This converter currently only handles global variables in address space 0. For
      these variables, they are promoted to address space 1 (global memory), and all
      uses are updated to point to the result of a cvta.global instruction on the new
      variable.
      
      The motivation for this is address space 0 global variables are illegal since we
      cannot declare variables in the generic address space.  Instead, we place the
      variables in address space 1 and explicitly convert the pointer to address
      space 0. This is primarily intended to help new users who expect to be able to
      place global variables in the default address space.
      
      llvm-svn: 182254
      01f89f04
  2. Mar 30, 2013
  3. Feb 12, 2013
    • Justin Holewinski's avatar
      [NVPTX] Disable vector registers · be8dc649
      Justin Holewinski authored
      Vectors were being manually scalarized by the backend.  Instead,
      let the target-independent code do all of the work.  The manual
      scalarization was from a time before good target-independent support
      for scalarization in LLVM. However, this forces us to specially-handle
      vector loads and stores, which we can turn into PTX instructions that
      produce/consume multiple operands.
      
      llvm-svn: 174968
      be8dc649
  4. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  5. Dec 04, 2012
  6. Jun 05, 2012
  7. May 04, 2012
    • Chandler Carruth's avatar
      Fix a Clang warning in the new NVPTX backend: · cd3464ee
      Chandler Carruth authored
      In file included from ../lib/Target/NVPTX/VectorElementize.cpp:53:
      ../lib/Target/NVPTX/NVPTX.h:44:3: warning: default label in switch which covers all enumeration values [-Wcovered-switch-default]
        default: assert(0 && "Unknown condition code");
        ^
      1 warning generated.
      
      The prevailing pattern in LLVM is to not use a default label, and instead to
      use llvm_unreachable to denote that the switch in fact covers all return paths
      from the function.
      
      llvm-svn: 156209
      cd3464ee
    • Justin Holewinski's avatar
      This patch adds a new NVPTX back-end to LLVM which supports code generation... · ae556d3e
      Justin Holewinski authored
      This patch adds a new NVPTX back-end to LLVM which supports code generation for NVIDIA PTX 3.0. This back-end will (eventually) replace the current PTX back-end, while maintaining compatibility with it.
      
      The new target machines are:
      
      nvptx (old ptx32) => 32-bit PTX
      nvptx64 (old ptx64) => 64-bit PTX
      
      The sources are based on the internal NVIDIA NVPTX back-end, and
      contain more functionality than the current PTX back-end currently
      provides.
      
      NV_CONTRIB
      
      llvm-svn: 156196
      ae556d3e
Loading