Skip to content

Commit 12e6d9a

Browse files
committed
Remove workaround code
1 parent 5296308 commit 12e6d9a

File tree

3 files changed

+28
-81
lines changed

3 files changed

+28
-81
lines changed

clang/include/clang/Driver/ToolChain.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ class FileSystem;
5151
namespace clang {
5252

5353
class ObjCRuntime;
54-
class DiagnosticsEngine;
5554

5655
namespace driver {
5756

@@ -189,7 +188,8 @@ class ToolChain {
189188
EffectiveTriple = std::move(ET);
190189
}
191190

192-
191+
std::optional<std::string>
192+
getFallbackAndroidTargetPath(StringRef BaseDir) const;
193193

194194
mutable std::optional<CXXStdlibType> cxxStdlibType;
195195
mutable std::optional<RuntimeLibType> runtimeLibType;
@@ -539,15 +539,14 @@ class ToolChain {
539539
StringRef Component,
540540
FileType Type = ToolChain::FT_Static) const;
541541

542+
// Returns Triple without the OSs version.
543+
llvm::Triple getTripleWithoutOSVersion() const;
542544

543545

544546
/// Returns the target-specific path for Flang's intrinsic modules in the resource directory if it exists.
545-
/// @{
546-
static std::optional<std::string> getDefaultIntrinsicModuleDir(StringRef resourceDir, const llvm::Triple &T ,llvm::vfs::FileSystem &VFS, clang::DiagnosticsEngine *Diags );
547-
548-
549547
std::optional<std::string> getDefaultIntrinsicModuleDir( ) const;
550-
/// @}
548+
549+
551550

552551
// Returns the target specific runtime path if it exists.
553552
std::optional<std::string> getRuntimePath() const;

clang/lib/Driver/ToolChain.cpp

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -867,19 +867,18 @@ void ToolChain::addFlangRTLibPath(const ArgList &Args,
867867
// Android target triples contain a target version. If we don't have libraries
868868
// for the exact target version, we should fall back to the next newest version
869869
// or a versionless path, if any.
870-
static
871870
std::optional<std::string>
872-
getFallbackAndroidTargetPath(StringRef BaseDir, const llvm::Triple &T, llvm::vfs::FileSystem &VFS, DiagnosticsEngine *Diags) {
873-
llvm::Triple TripleWithoutLevel(T);
871+
ToolChain::getFallbackAndroidTargetPath(StringRef BaseDir) const {
872+
llvm::Triple TripleWithoutLevel(getTriple());
874873
TripleWithoutLevel.setEnvironmentName("android"); // remove any version number
875874
const std::string &TripleWithoutLevelStr = TripleWithoutLevel.str();
876-
unsigned TripleVersion = T.getEnvironmentVersion().getMajor();
875+
unsigned TripleVersion = getTriple().getEnvironmentVersion().getMajor();
877876
unsigned BestVersion = 0;
878877

879878
SmallString<32> TripleDir;
880879
bool UsingUnversionedDir = false;
881880
std::error_code EC;
882-
for (llvm::vfs::directory_iterator LI = VFS.dir_begin(BaseDir, EC), LE;
881+
for (llvm::vfs::directory_iterator LI = getVFS().dir_begin(BaseDir, EC), LE;
883882
!EC && LI != LE; LI = LI.increment(EC)) {
884883
StringRef DirName = llvm::sys::path::filename(LI->path());
885884
StringRef DirNameSuffix = DirName;
@@ -904,17 +903,12 @@ getFallbackAndroidTargetPath(StringRef BaseDir, const llvm::Triple &T, llvm::vfs
904903

905904
SmallString<128> P(BaseDir);
906905
llvm::sys::path::append(P, TripleDir);
907-
if (UsingUnversionedDir && Diags)
908-
Diags->Report(diag::warn_android_unversioned_fallback) << P << T.getTriple();
906+
if (UsingUnversionedDir)
907+
D.Diag(diag::warn_android_unversioned_fallback) << P << getTripleString();
909908
return std::string(P);
910909
}
911910

912-
913-
914-
915-
/// Returns Triple without the OSs version.
916-
static
917-
llvm::Triple getTripleWithoutOSVersion(const llvm::Triple &Triple) {
911+
llvm::Triple ToolChain::getTripleWithoutOSVersion() const {
918912
return (Triple.hasEnvironment()
919913
? llvm::Triple(Triple.getArchName(), Triple.getVendorName(),
920914
llvm::Triple::getOSTypeName(Triple.getOS()),
@@ -924,15 +918,18 @@ llvm::Triple getTripleWithoutOSVersion(const llvm::Triple &Triple) {
924918
llvm::Triple::getOSTypeName(Triple.getOS())));
925919
}
926920

927-
static std::optional<std::string> getTargetSubDirPath(StringRef BaseDir, const llvm::Triple &T ,llvm::vfs::FileSystem &VFS, clang::DiagnosticsEngine *Diags ) {
928-
auto getPathForTriple = [&](const llvm::Triple &Triple) -> std::optional<std::string> {
921+
std::optional<std::string>
922+
ToolChain::getTargetSubDirPath(StringRef BaseDir) const {
923+
auto getPathForTriple =
924+
[&](const llvm::Triple &Triple) -> std::optional<std::string> {
929925
SmallString<128> P(BaseDir);
930926
llvm::sys::path::append(P, Triple.str());
931-
if (VFS.exists(P))
927+
if (getVFS().exists(P))
932928
return std::string(P);
933929
return {};
934930
};
935931

932+
const llvm::Triple &T = getTriple();
936933
if (auto Path = getPathForTriple(T))
937934
return *Path;
938935

@@ -944,7 +941,7 @@ static std::optional<std::string> getTargetSubDirPath(StringRef BaseDir, const
944941
llvm::Triple::getOSTypeName(T.getOS()));
945942
} else {
946943
// Strip the OS version from the triple.
947-
AIXTriple =getTripleWithoutOSVersion(T);
944+
AIXTriple = getTripleWithoutOSVersion();
948945
}
949946
if (auto Path = getPathForTriple(AIXTriple))
950947
return *Path;
@@ -953,7 +950,7 @@ static std::optional<std::string> getTargetSubDirPath(StringRef BaseDir, const
953950
if (T.isOSzOS() &&
954951
(!T.getOSVersion().empty() || !T.getEnvironmentVersion().empty())) {
955952
// Build the triple without version information
956-
const llvm::Triple &TripleWithoutVersion =getTripleWithoutOSVersion(T);
953+
const llvm::Triple &TripleWithoutVersion = getTripleWithoutOSVersion();
957954
if (auto Path = getPathForTriple(TripleWithoutVersion))
958955
return *Path;
959956
}
@@ -981,25 +978,18 @@ static std::optional<std::string> getTargetSubDirPath(StringRef BaseDir, const
981978
}
982979

983980
if (T.isAndroid())
984-
return getFallbackAndroidTargetPath(BaseDir, T, VFS, Diags);
981+
return getFallbackAndroidTargetPath(BaseDir);
985982

986983
return {};
987984
}
988985

989986

990-
std::optional<std::string>
991-
ToolChain::getTargetSubDirPath(StringRef BaseDir) const {
992-
return ::getTargetSubDirPath(BaseDir, getTriple(), getVFS(),& D.getDiags() );
993-
}
994987

995-
std::optional< std::string> ToolChain::getDefaultIntrinsicModuleDir(StringRef ResourceDir, const llvm::Triple &T ,llvm::vfs::FileSystem &VFS, clang::DiagnosticsEngine *Diags ) {
996-
SmallString<128> P(ResourceDir);
997-
llvm::sys::path::append(P, "finclude");
998-
return ::getTargetSubDirPath(P, T, VFS, Diags );
999-
}
1000988

1001989
std::optional< std::string> ToolChain::getDefaultIntrinsicModuleDir( ) const {
1002-
return ToolChain::getDefaultIntrinsicModuleDir(D.ResourceDir, getTriple(), getVFS(),& D.getDiags() );
990+
SmallString<128> P(D.ResourceDir);
991+
llvm::sys::path::append(P, "finclude");
992+
return getTargetSubDirPath(P );
1003993
}
1004994

1005995
std::optional<std::string> ToolChain::getRuntimePath() const {

flang/tools/bbc/bbc.cpp

Lines changed: 3 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,8 @@ static llvm::cl::alias
102102
llvm::cl::desc("intrinsic module directory"),
103103
llvm::cl::aliasopt(intrinsicIncludeDirs));
104104

105-
#if 1
105+
106106
static llvm::cl::alias intrinsicModulePath("fintrinsic-modules-path", llvm::cl::desc("intrinsic module search paths"), llvm::cl::aliasopt(intrinsicIncludeDirs));
107-
#else
108-
static llvm::cl::list<std::string> intrinsicModulePath("fintrinsic-modules-path", llvm::cl::desc("intrinsic module search paths"));
109-
#endif
110107

111108

112109
static llvm::cl::opt<std::string>
@@ -579,44 +576,11 @@ int main(int argc, char **argv) {
579576
ProgramName programPrefix;
580577
programPrefix = argv[0] + ": "s;
581578

582-
std::vector <std::string> intrinsicsDirs ( intrinsicIncludeDirs.begin(), intrinsicIncludeDirs.end());
583579

584-
if (includeDirs.size() == 0) {
580+
if (includeDirs.size() == 0)
585581
includeDirs.push_back(".");
586582

587583

588-
#if 0
589-
// Default Fortran modules should be installed in finclude/<target-triple> of the resource directory
590-
591-
592-
593-
// llvm::errs() << "argv[0]: " << argv[0] << "\n";
594-
595-
596-
auto mainExe = llvm::sys::fs::getMainExecutable(argv[0], nullptr);
597-
// llvm::errs() << "mainExe: " << mainExe << "\n";
598-
599-
// FIXME: Do not modify intrinsicIncludeDirs directly, should be treated as immutable just like argv.
600-
llvm::SmallString<128> resourceDir ( clang::driver::Driver::GetResourcesPath( mainExe));
601-
auto vfs =llvm:: vfs::getRealFileSystem();
602-
vfs->makeAbsolute (resourceDir);
603-
// llvm::errs() << "resdir: " << resourceDir << "\n";
604-
605-
// auto cwd= vfs->getCurrentWorkingDirectory();
606-
// llvm::errs() << "cwd according to getRealFileSystem(): " <<*cwd << "\n";
607-
608-
std::string triple = targetTripleOverride;
609-
if (triple.empty())
610-
triple = llvm::sys::getDefaultTargetTriple();
611-
612-
613-
// llvm::errs() << "triple: " << triple << "\n";
614-
auto defaultIntrinsicsDir = clang::driver:: ToolChain:: getDefaultIntrinsicModuleDir(resourceDir, llvm::Triple( triple), *vfs, nullptr);
615-
// llvm::errs() << "defaultIntrinsicsDir: " << defaultIntrinsicsDir << "\n";
616-
if (defaultIntrinsicsDir)
617-
intrinsicsDirs.push_back(*defaultIntrinsicsDir);
618-
#endif
619-
}
620584

621585
Fortran::parser::Options options;
622586
options.predefinitions.emplace_back("__flang__"s, "1"s);
@@ -679,12 +643,6 @@ vfs->makeAbsolute (resourceDir);
679643
options.isFixedForm = fixedForm;
680644
}
681645

682-
#if 1
683-
llvm::errs() << "\nsearch dirs:\n";
684-
for (auto&& x : intrinsicsDirs) {
685-
llvm::errs() << x << "\n";
686-
}
687-
#endif
688646

689647

690648
Fortran::common::IntrinsicTypeDefaultKinds defaultKinds;
@@ -695,7 +653,7 @@ vfs->makeAbsolute (resourceDir);
695653
semanticsContext.set_moduleDirectory(moduleDir)
696654
.set_moduleFileSuffix(moduleSuffix)
697655
.set_searchDirectories(includeDirs)
698-
.set_intrinsicModuleDirectories(intrinsicsDirs)
656+
.set_intrinsicModuleDirectories(intrinsicIncludeDirs )
699657
.set_warnOnNonstandardUsage(warnStdViolation)
700658
.set_warningsAreErrors(warnIsError);
701659

0 commit comments

Comments
 (0)