Introduction ============ ptxgen is a simple IR compiler that generates PTX code in stdout with the input NVVM IR files. It generates warnings, errors, and other messages in stderr. When multiple input files are given, it links them into a single module before the compilation, and generates a single PTX module. ptxgen always links the libDevice library with the input NVVM IR program. Before compiling the input IR, ptxgen will verify the IR for conformance to the NVVM IR specification. Usage ===== The command-line options, except for the program name and the input file names, are directly passed to nvvmCompileProgram without modification. Each input NVVM IR file can be either in the bitcode representation or in the text representation. Input file names and command-line options can be interleaved. For example, $ ptxgen a.ll -arch=compute_30 b.bc links a.ll and b.bc, and generates PTX code for the compute_30 architecture. Because ptxgen will try to find the libDevice library, make sure you define the LIBNVVM_HOME preprocessor macro to the directory where libNVVM components are located when building ptxgen, which is typically $CUDA_HOME/nvvm.