Changeset View
Changeset View
Standalone View
Standalone View
flang/tools/bbc/bbc.cpp
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | |||||
#include "mlir/IR/BuiltinOps.h" | #include "mlir/IR/BuiltinOps.h" | ||||
#include "mlir/IR/MLIRContext.h" | #include "mlir/IR/MLIRContext.h" | ||||
#include "mlir/Parser/Parser.h" | #include "mlir/Parser/Parser.h" | ||||
#include "mlir/Pass/Pass.h" | #include "mlir/Pass/Pass.h" | ||||
#include "mlir/Pass/PassManager.h" | #include "mlir/Pass/PassManager.h" | ||||
#include "mlir/Pass/PassRegistry.h" | #include "mlir/Pass/PassRegistry.h" | ||||
#include "mlir/Transforms/GreedyPatternRewriteDriver.h" | #include "mlir/Transforms/GreedyPatternRewriteDriver.h" | ||||
#include "mlir/Transforms/Passes.h" | #include "mlir/Transforms/Passes.h" | ||||
#include "llvm/ADT/Triple.h" | |||||
#include "llvm/Passes/OptimizationLevel.h" | #include "llvm/Passes/OptimizationLevel.h" | ||||
#include "llvm/Support/CommandLine.h" | #include "llvm/Support/CommandLine.h" | ||||
#include "llvm/Support/ErrorOr.h" | #include "llvm/Support/ErrorOr.h" | ||||
#include "llvm/Support/FileSystem.h" | #include "llvm/Support/FileSystem.h" | ||||
#include "llvm/Support/Host.h" | |||||
#include "llvm/Support/InitLLVM.h" | #include "llvm/Support/InitLLVM.h" | ||||
#include "llvm/Support/MemoryBuffer.h" | #include "llvm/Support/MemoryBuffer.h" | ||||
#include "llvm/Support/Path.h" | #include "llvm/Support/Path.h" | ||||
#include "llvm/Support/SourceMgr.h" | #include "llvm/Support/SourceMgr.h" | ||||
#include "llvm/Support/TargetSelect.h" | #include "llvm/Support/TargetSelect.h" | ||||
#include "llvm/Support/ToolOutputFile.h" | #include "llvm/Support/ToolOutputFile.h" | ||||
#include "llvm/Support/raw_ostream.h" | #include "llvm/Support/raw_ostream.h" | ||||
▲ Show 20 Lines • Show All 264 Lines • ▼ Show 20 Lines | Fortran::semantics::SemanticsContext semanticsContext{ | ||||
defaultKinds, options.features, allCookedSources}; | defaultKinds, options.features, allCookedSources}; | ||||
semanticsContext.set_moduleDirectory(moduleDir) | semanticsContext.set_moduleDirectory(moduleDir) | ||||
.set_moduleFileSuffix(moduleSuffix) | .set_moduleFileSuffix(moduleSuffix) | ||||
.set_searchDirectories(includeDirs) | .set_searchDirectories(includeDirs) | ||||
.set_intrinsicModuleDirectories(intrinsicIncludeDirs) | .set_intrinsicModuleDirectories(intrinsicIncludeDirs) | ||||
.set_warnOnNonstandardUsage(warnStdViolation) | .set_warnOnNonstandardUsage(warnStdViolation) | ||||
.set_warningsAreErrors(warnIsError); | .set_warningsAreErrors(warnIsError); | ||||
llvm::Triple targetTriple{llvm::Triple( | |||||
llvm::Triple::normalize(llvm::sys::getDefaultTargetTriple()))}; | |||||
// FIXME: Handle real(3) ? | |||||
if (targetTriple.getArch() != llvm::Triple::ArchType::x86 && | |||||
targetTriple.getArch() != llvm::Triple::ArchType::x86_64) { | |||||
semanticsContext.targetCharacteristics().DisableType( | |||||
Fortran::common::TypeCategory::Real, /*kind=*/10); | |||||
} | |||||
return mlir::failed(convertFortranSourceToMLIR( | return mlir::failed(convertFortranSourceToMLIR( | ||||
inputFilename, options, programPrefix, semanticsContext, passPipe)); | inputFilename, options, programPrefix, semanticsContext, passPipe)); | ||||
} | } |