Skip to content

Commit

Permalink
Revert r310489 and follow-up commits r310505, r310519, r310537 and r3…
Browse files Browse the repository at this point in the history
…10549

Commit r310489 caused 'openmp-offload.c' test failures on Darwin and other
platforms:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/39230/testReport/junit/Clang/Driver/openmp_offload_c/

The follow-up commits tried to fix the test, but the test is still failing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310580 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
hyp committed Aug 10, 2017
1 parent a2fc7db commit 6da9364
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 46 deletions.
2 changes: 0 additions & 2 deletions include/clang/Driver/Options.td
Original file line number Diff line number Diff line change
Expand Up @@ -544,8 +544,6 @@ def no_cuda_version_check : Flag<["--"], "no-cuda-version-check">,
def no_cuda_noopt_device_debug : Flag<["--"], "no-cuda-noopt-device-debug">;
def cuda_path_EQ : Joined<["--"], "cuda-path=">, Group<i_Group>,
HelpText<"CUDA installation path">;
def fopenmp_ptx_EQ : Joined<["--"], "fopenmp-ptx=">, Flags<[DriverOption]>,
HelpText<"Pass a PTX version +ptxXX, default +ptx42 (for PTX version 4.2) used by OpenMP device offloading.">;
def ptxas_path_EQ : Joined<["--"], "ptxas-path=">, Group<i_Group>,
HelpText<"Path to ptxas (used for compiling CUDA code)">;
def fcuda_flush_denormals_to_zero : Flag<["-"], "fcuda-flush-denormals-to-zero">,
Expand Down
18 changes: 4 additions & 14 deletions lib/Driver/ToolChains/Cuda.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -484,13 +484,7 @@ void CudaToolChain::addClangTargetOptions(
// than LLVM defaults to. Use PTX4.2 which is the PTX version that
// came with CUDA-7.0.
CC1Args.push_back("-target-feature");

if (DeviceOffloadingKind == Action::OFK_OpenMP)
CC1Args.push_back(
DriverArgs.getLastArgValue(options::OPT_fopenmp_ptx_EQ,
"+ptx42").data());
else
CC1Args.push_back("+ptx42");
CC1Args.push_back("+ptx42");
}

void CudaToolChain::AddCudaIncludeArgs(const ArgList &DriverArgs,
Expand Down Expand Up @@ -533,14 +527,10 @@ CudaToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args,
}

StringRef Arch = DAL->getLastArgValue(options::OPT_march_EQ);
if (Arch.empty()) {
// Default compute capability for CUDA toolchain is the
// lowest compute capability supported by the installed
// CUDA version.
if (Arch.empty())
// Default compute capability for CUDA toolchain is sm_20.
DAL->AddJoinedArg(nullptr,
Opts.getOption(options::OPT_march_EQ),
CudaInstallation.getLowestExistingArch());
}
Opts.getOption(options::OPT_march_EQ), "sm_20");

return DAL;
}
Expand Down
11 changes: 0 additions & 11 deletions lib/Driver/ToolChains/Cuda.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,6 @@ class CudaInstallationDetector {
std::string getLibDeviceFile(StringRef Gpu) const {
return LibDeviceMap.lookup(Gpu);
}
/// \brief Get lowest available compute capability
/// for which a libdevice library exists.
std::string getLowestExistingArch() const {
std::string LibDeviceFile;
for (auto key : LibDeviceMap.keys()) {
LibDeviceFile = LibDeviceMap.lookup(key);
if (!LibDeviceFile.empty())
return key;
}
llvm_unreachable("no libdevice exists.");
}
};

namespace tools {
Expand Down
22 changes: 3 additions & 19 deletions test/Driver/openmp-offload.c
Original file line number Diff line number Diff line change
Expand Up @@ -691,15 +691,15 @@
/// ###########################################################################

/// Check PTXAS is passed -c flag when offloading to an NVIDIA device using OpenMP.
// RUN: %clang -### -no-canonical-prefixes -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda %s 2>&1 \
// RUN: %clang -### -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda -no-canonical-prefixes %s 2>&1 \
// RUN: | FileCheck -check-prefix=CHK-PTXAS-DEFAULT %s

// CHK-PTXAS-DEFAULT: ptxas{{.*}}" "-c"

/// ###########################################################################

/// PTXAS is passed -c flag by default when offloading to an NVIDIA device using OpenMP - disable it.
// RUN: %clang -### -no-canonical-prefixes -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda -fnoopenmp-relocatable-target %s 2>&1 \
// RUN: %clang -### -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda -fnoopenmp-relocatable-target -save-temps -no-canonical-prefixes %s 2>&1 \
// RUN: | FileCheck -check-prefix=CHK-PTXAS-NORELO %s

// CHK-PTXAS-NORELO-NOT: ptxas{{.*}}" "-c"
Expand All @@ -708,23 +708,7 @@

/// PTXAS is passed -c flag by default when offloading to an NVIDIA device using OpenMP
/// Check that the flag is passed when -fopenmp-relocatable-target is used.
// RUN: %clang -### -no-canonical-prefixes -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda -fopenmp-relocatable-target %s 2>&1 \
// RUN: %clang -### -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda -fopenmp-relocatable-target -save-temps -no-canonical-prefixes %s 2>&1 \
// RUN: | FileCheck -check-prefix=CHK-PTXAS-RELO %s

// CHK-PTXAS-RELO: ptxas{{.*}}" "-c"

/// ###########################################################################

/// Check PTXAS is passed the compute capability passed to the driver.
// RUN: %clang -### -no-canonical-prefixes -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda --fopenmp-ptx=+ptx52 %s 2>&1 \
// RUN: | FileCheck -check-prefix=CHK-PTXAS-VERSION %s

// CHK-PTXAS-VERSION: clang{{.*}}.bc" {{.*}}"-target-feature" "+ptx52"

/// ###########################################################################

/// Check PTXAS is passed the compute capability passed to the driver.
// RUN: %clang -### -no-canonical-prefixes -target x86_64-apple-darwin17.0.0 -fopenmp=libomp -fopenmp-targets=nvptx64-nvidia-cuda --fopenmp-ptx=+ptx52 %s 2>&1 \
// RUN: | FileCheck -check-prefix=CHK-PTXAS-DARWIN-VERSION %s

// CHK-PTXAS-DARWIN-VERSION: clang{{.*}}.bc" {{.*}}"-target-feature" "+ptx52"

0 comments on commit 6da9364

Please sign in to comment.