1. Oct 10, 2018
    • Nico Weber's avatar
      lld-link: Use /pdbsourcepath: for more places when present. · 4764bb2c
      Nico Weber authored
      /pdbsourcepath: was added in https://reviews.llvm.org/D48882 to make it
      possible to have relative paths in the debug info that clang-cl writes.
      lld-link then makes the paths absolute at link time, which debuggers require.
      This way, clang-cl's output is independent of the absolute path of the build
      directory, which is useful for cacheability in distcc-like systems.
      
      This patch extends /pdbsourcepath: (if passed) to also be used for:
      
      1. The "cwd" stored in the env block in the pdb is /pdbsourcepath: if present
      2. The "exe" stored in the env block in the pdb is made absolute relative
         to /pdbsourcepath: instead of the cwd
      3. The "pdb" stored in the env block in the pdb is made absolute relative
         to /pdbsourcepath: instead of the cwd
      4. For making absolute paths to .obj files referenced from the pdb
      
      /pdbsourcepath: is now useful in three scenarios (the first one already working
      before this change):
      
      1. When building with full debug info, passing the real build dir to
         /pdbsourcepath: allows having clang-cl's output to be independent
         of the build directory path. This patch effectively doesn't change
         behavior for this use case (assuming the cwd is the build dir).
      
      2. When building without compile-time debug info but linking with /debug,
         a fake fixed /pdbsourcepath: can be passed to get symbolized stacks
         while making the pdb and exe independent of the current build dir.
         For this two work, lld-link needs to be invoked with relative paths for
         the lld-link invocation itself (for "exe"), for the pdb output name, the exe
         output name (for "pdb"), and the obj input files, and no absolute path
         must appear on the link command (for "cmd" in the pdb's env block).
         Since no full debug info is present, it doesn't matter that the absolute
         path doesn't exist on disk -- we only get symbols in stacks.
      
      3. When building production builds with full debug info that don't have
         local changes, and that get source indexed and their pdbs get uploaded
         to a symbol server. /pdbsourcepath: again makes the build output independent
         of the current directory, and the fixed path passed to /pdbsourcepath: can
         be given the source indexing transform so that it gets mapped to a
         repository path. This has the same requirements as 2.
      
      This patch also makes it possible to create PDB files containing Windows-style
      absolute paths when cross-compiling on a POSIX system.
      
      Differential Revision: https://reviews.llvm.org/D53021
      
      llvm-svn: 344061
      4764bb2c
    • Craig Topper's avatar
      [X86] Autogenerate complete checks. NFC · 4ea56962
      Craig Topper authored
      llvm-svn: 344060
      4ea56962
    • Sanjay Patel's avatar
      [AArch64][x86] add tests for bitcasted fnabs; NFC · a875030a
      Sanjay Patel authored
      Alternate target coverage for  D44548.
      
      llvm-svn: 344059
      a875030a
  2. Oct 09, 2018