clang
19.0.0git
|
#include "clang/CodeGen/BackendUtil.h"
#include "BackendConsumer.h"
#include "LinkInModulesPass.h"
#include "clang/Basic/CodeGenOptions.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/TargetOptions.h"
#include "clang/Basic/Targets/SPIR.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/Utils.h"
#include "clang/Lex/HeaderSearchOptions.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Bitcode/BitcodeReader.h"
#include "llvm/Bitcode/BitcodeWriter.h"
#include "llvm/Bitcode/BitcodeWriterPass.h"
#include "llvm/CodeGen/RegAllocRegistry.h"
#include "llvm/CodeGen/SchedulerRegistry.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Frontend/Driver/CodeGenOptions.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/ModuleSummaryIndex.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/Verifier.h"
#include "llvm/IRPrinter/IRPrintingPasses.h"
#include "llvm/LTO/LTOBackend.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Object/OffloadBinary.h"
#include "llvm/Passes/PassBuilder.h"
#include "llvm/Passes/PassPlugin.h"
#include "llvm/Passes/StandardInstrumentations.h"
#include "llvm/ProfileData/InstrProfCorrelator.h"
#include "llvm/SYCLLowerIR/CleanupSYCLMetadata.h"
#include "llvm/SYCLLowerIR/CompileTimePropertiesPass.h"
#include "llvm/SYCLLowerIR/ESIMD/ESIMDVerifier.h"
#include "llvm/SYCLLowerIR/ESIMD/LowerESIMD.h"
#include "llvm/SYCLLowerIR/LowerWGLocalMemory.h"
#include "llvm/SYCLLowerIR/MutatePrintfAddrspace.h"
#include "llvm/SYCLLowerIR/RecordSYCLAspectNames.h"
#include "llvm/SYCLLowerIR/SYCLAddOptLevelAttribute.h"
#include "llvm/SYCLLowerIR/SYCLPropagateAspectsUsage.h"
#include "llvm/SYCLLowerIR/SYCLPropagateJointMatrixUsage.h"
#include "llvm/SYCLLowerIR/UtilsSYCLNativeCPU.h"
#include "llvm/Support/BuryPointer.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/TimeProfiler.h"
#include "llvm/Support/Timer.h"
#include "llvm/Support/ToolOutputFile.h"
#include "llvm/Support/VirtualFileSystem.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/TargetParser/SubtargetFeature.h"
#include "llvm/TargetParser/Triple.h"
#include "llvm/Transforms/HipStdPar/HipStdPar.h"
#include "llvm/Transforms/IPO/DeadArgumentElimination.h"
#include "llvm/Transforms/IPO/EmbedBitcodePass.h"
#include "llvm/Transforms/IPO/LowerTypeTests.h"
#include "llvm/Transforms/IPO/ThinLTOBitcodeWriter.h"
#include "llvm/Transforms/InstCombine/InstCombine.h"
#include "llvm/Transforms/Instrumentation.h"
#include "llvm/Transforms/Instrumentation/AddressSanitizer.h"
#include "llvm/Transforms/Instrumentation/AddressSanitizerOptions.h"
#include "llvm/Transforms/Instrumentation/BoundsChecking.h"
#include "llvm/Transforms/Instrumentation/DataFlowSanitizer.h"
#include "llvm/Transforms/Instrumentation/GCOVProfiler.h"
#include "llvm/Transforms/Instrumentation/HWAddressSanitizer.h"
#include "llvm/Transforms/Instrumentation/InstrProfiling.h"
#include "llvm/Transforms/Instrumentation/KCFI.h"
#include "llvm/Transforms/Instrumentation/LowerAllowCheckPass.h"
#include "llvm/Transforms/Instrumentation/MemProfiler.h"
#include "llvm/Transforms/Instrumentation/MemorySanitizer.h"
#include "llvm/Transforms/Instrumentation/PGOInstrumentation.h"
#include "llvm/Transforms/Instrumentation/SPIRITTAnnotations.h"
#include "llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h"
#include "llvm/Transforms/Instrumentation/SanitizerCoverage.h"
#include "llvm/Transforms/Instrumentation/ThreadSanitizer.h"
#include "llvm/Transforms/ObjCARC.h"
#include "llvm/Transforms/Scalar/EarlyCSE.h"
#include "llvm/Transforms/Scalar/GVN.h"
#include "llvm/Transforms/Scalar/InferAddressSpaces.h"
#include "llvm/Transforms/Scalar/JumpThreading.h"
#include "llvm/Transforms/Utils/Debugify.h"
#include "llvm/Transforms/Utils/EntryExitInstrumenter.h"
#include "llvm/Transforms/Utils/ModuleUtils.h"
#include <memory>
#include <optional>
#include "llvm/Support/Extension.def"
Go to the source code of this file.
Namespaces | |
llvm | |
Diagnostic wrappers for TextAPI types for error reporting. | |
Macros | |
#define | HANDLE_EXTENSION(Ext) llvm::PassPluginLibraryInfo get##Ext##PluginInfo(); |
#define | HANDLE_EXTENSION(Ext) get##Ext##PluginInfo().RegisterPassBuilderCallbacks(PB); |
Functions | |
static cl::opt< bool > | llvm::ClSanitizeOnOptimizerEarlyEP ("sanitizer-early-opt-ep", cl::Optional, cl::desc("Insert sanitizers on OptimizerEarlyEP.")) |
static cl::opt< PGOOptions::ColdFuncOpt > | llvm::ClPGOColdFuncAttr ("pgo-cold-func-opt", cl::init(PGOOptions::ColdFuncOpt::Default), cl::Hidden, cl::desc("Function attribute to apply to cold functions as determined by PGO"), cl::values(clEnumValN(PGOOptions::ColdFuncOpt::Default, "default", "Default (no attribute)"), clEnumValN(PGOOptions::ColdFuncOpt::OptSize, "optsize", "Mark cold functions with optsize."), clEnumValN(PGOOptions::ColdFuncOpt::MinSize, "minsize", "Mark cold functions with minsize."), clEnumValN(PGOOptions::ColdFuncOpt::OptNone, "optnone", "Mark cold functions with optnone."))) |
static cl::opt< bool > | llvm::SYCLNativeCPUBackend ("sycl-native-cpu-backend", cl::init(false), cl::desc("Re-link builtin bitcodes after optimization.")) |
static SanitizerCoverageOptions | getSancovOptsFromCGOpts (const CodeGenOptions &CGOpts) |
static SanitizerBinaryMetadataOptions | getSanitizerBinaryMetadataOptions (const CodeGenOptions &CGOpts) |
static bool | asanUseGlobalsGC (const Triple &T, const CodeGenOptions &CGOpts) |
static TargetLibraryInfoImpl * | createTLII (llvm::Triple &TargetTriple, const CodeGenOptions &CodeGenOpts) |
static std::optional< llvm::CodeModel::Model > | getCodeModel (const CodeGenOptions &CodeGenOpts) |
static CodeGenFileType | getCodeGenFileType (BackendAction Action) |
static bool | actionRequiresCodeGen (BackendAction Action) |
static bool | initTargetOptions (DiagnosticsEngine &Diags, llvm::TargetOptions &Options, const CodeGenOptions &CodeGenOpts, const clang::TargetOptions &TargetOpts, const LangOptions &LangOpts, const HeaderSearchOptions &HSOpts) |
static std::optional< GCOVOptions > | getGCOVOptions (const CodeGenOptions &CodeGenOpts, const LangOptions &LangOpts) |
static std::optional< InstrProfOptions > | getInstrProfOptions (const CodeGenOptions &CodeGenOpts, const LangOptions &LangOpts) |
static void | setCommandLineOpts (const CodeGenOptions &CodeGenOpts) |
static OptimizationLevel | mapToLevel (const CodeGenOptions &Opts) |
static void | addKCFIPass (const Triple &TargetTriple, const LangOptions &LangOpts, PassBuilder &PB) |
static void | addSanitizers (const Triple &TargetTriple, const CodeGenOptions &CodeGenOpts, const LangOptions &LangOpts, PassBuilder &PB) |
static void | runThinLTOBackend (DiagnosticsEngine &Diags, ModuleSummaryIndex *CombinedIndex, llvm::Module *M, const HeaderSearchOptions &HeaderOpts, const CodeGenOptions &CGOpts, const clang::TargetOptions &TOpts, const LangOptions &LOpts, std::unique_ptr< raw_pwrite_stream > OS, std::string SampleProfile, std::string ProfileRemapping, BackendAction Action) |
Variables | |
cl::opt< bool > | llvm::PrintPipelinePasses |
cl::opt< InstrProfCorrelator::ProfCorrelatorKind > | llvm::ProfileCorrelate |
#define HANDLE_EXTENSION | ( | Ext | ) | llvm::PassPluginLibraryInfo get##Ext##PluginInfo(); |
Definition at line 110 of file BackendUtil.cpp.
#define HANDLE_EXTENSION | ( | Ext | ) | get##Ext##PluginInfo().RegisterPassBuilderCallbacks(PB); |
Definition at line 110 of file BackendUtil.cpp.
|
static |
Definition at line 358 of file BackendUtil.cpp.
References clang::Backend_EmitBC, clang::Backend_EmitLL, and clang::Backend_EmitNothing.
|
static |
Definition at line 675 of file BackendUtil.cpp.
|
static |
Definition at line 700 of file BackendUtil.cpp.
|
static |
Definition at line 289 of file BackendUtil.cpp.
References clang::T.
|
static |
Definition at line 311 of file BackendUtil.cpp.
References clang::CodeGenOptions::SVMLAltMathLibrary, and clang::CodeGenOptions::TestAltMathLibrary.
|
static |
Definition at line 347 of file BackendUtil.cpp.
References clang::Backend_EmitAssembly, clang::Backend_EmitMCNull, and clang::Backend_EmitObj.
Referenced by runThinLTOBackend().
|
static |
Definition at line 332 of file BackendUtil.cpp.
References clang::CodeGenOptions::CodeModel.
Referenced by runThinLTOBackend().
|
static |
Definition at line 534 of file BackendUtil.cpp.
|
static |
Definition at line 552 of file BackendUtil.cpp.
|
static |
Definition at line 253 of file BackendUtil.cpp.
References Type.
|
static |
Definition at line 277 of file BackendUtil.cpp.
|
static |
Definition at line 363 of file BackendUtil.cpp.
Referenced by runThinLTOBackend().
|
static |
Definition at line 644 of file BackendUtil.cpp.
|
static |
Definition at line 1318 of file BackendUtil.cpp.
References clang::Backend_EmitBC, clang::Backend_EmitLL, clang::Backend_EmitNothing, clang::CodeGenOptions::CmdArgs, clang::TargetOptions::CPU, clang::TargetOptions::Features, getCodeGenFileType(), getCodeModel(), clang::CodeGenOptions::hasProfileCSIRInstr(), clang::CodeGenOptions::hasProfileCSIRUse(), initTargetOptions(), clang::CodeGenOptions::InstrProfileOutput, clang::CodeGenOptions::ObjectFilenameForDebug, clang::CodeGenOptions::OptRecordFile, clang::CodeGenOptions::OptRecordFormat, clang::CodeGenOptions::OptRecordPasses, clang::CodeGenOptions::ProfileInstrumentUsePath, clang::CodeGenOptions::RelocationModel, clang::CodeGenOptions::SaveTempsFilePrefix, setCommandLineOpts(), clang::CodeGenOptions::SplitDwarfFile, and clang::CodeGenOptions::SplitDwarfOutput.
Referenced by clang::EmitBackendOutput().
|
static |
Definition at line 563 of file BackendUtil.cpp.
References clang::CodeGenOptions::DebugPass, and clang::CodeGenOptions::LimitFloatPrecision.
Referenced by runThinLTOBackend().