OpenASIP  2.0
Macros | Typedefs | Functions
LLVMBackend.cc File Reference
#include "CompilerWarnings.hh"
#include <llvm/Analysis/LoopInfo.h>
#include <llvm/Analysis/LoopPass.h>
#include "tce_config.h"
#include <llvm/IR/Dominators.h>
#include <llvm/Analysis/AliasAnalysis.h>
#include <llvm/IR/LegacyPassManager.h>
#include <llvm/Pass.h>
#include <llvm/CodeGen/AsmPrinter.h>
#include <llvm/CodeGen/Passes.h>
#include <llvm/Target/TargetMachine.h>
#include <llvm/Target/TargetOptions.h>
#include <llvm/Transforms/IPO.h>
#include <llvm/Transforms/Scalar.h>
#include <llvm/Support/CommandLine.h>
#include <llvm/Support/FormattedStream.h>
#include <llvm/Support/MemoryBuffer.h>
#include <llvm/Support/Debug.h>
#include <llvm/CodeGen/RegAllocRegistry.h>
#include "Application.hh"
#include <llvm/IR/Module.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/Bitcode/BitcodeReader.h>
#include <llvm/IR/Verifier.h>
#include <llvm/IR/GCStrategy.h>
#include <llvm-c/Core.h>
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/FileSystem.h"
#include <llvm/InitializePasses.h>
#include <cstdlib>
#include <fstream>
#include "LLVMBackend.hh"
#include "LLVMTCECmdLineOptions.hh"
#include "TDGen.hh"
#include "passes/InnerLoopFinder.hh"
#include "Environment.hh"
#include "Conversion.hh"
#include "FileSystem.hh"
#include "TCETargetMachine.hh"
#include "TCEStubTargetMachine.hh"
#include "TCETargetMachinePlugin.hh"
#include "LLVMPOMBuilder.hh"
#include "Program.hh"
#include "ADFSerializer.hh"
#include "MachineValidator.hh"
#include "MachineValidatorResults.hh"
#include "Instruction.hh"
#include "ProgramAnnotation.hh"
#include "TCEString.hh"
#include "InterPassData.hh"
#include "InterPassDatum.hh"
#include "LLVMTCEIRBuilder.hh"
#include "Machine.hh"
#include "MachineInfo.hh"
#include "ConstantTransformer.hh"
#include <llvm/IR/IRPrintingPasses.h>
#include "llvm/IR/DataLayout.h"

Go to the source code of this file.

Macros

#define CONFIG_H
 
#define DS   TCEString(FileSystem::DIRECTORY_SEPARATOR)
 
#define addPass(P)   Passes.add(P)
 

Typedefs

typedef llvm::DataLayout TargetData
 

Functions

Pass * createWorkItemAliasAnalysisPass ()
 
static MCRegisterInfo * createTCEMCRegisterInfo (const Triple &TT)
 
static MCInstrInfo * createTCEMCInstrInfo ()
 
static MCSubtargetInfo * createTCEMCSubtargetInfo (const Triple &TT, StringRef CPU, StringRef FS)
 

Detailed Description

TCE runtime retargeting compiler backend.

Author
Veli-Pekka Jääskeläinen 2008 (vjaaskel-no.spam-cs.tut.fi)
Mikael Lepistö 2009 (mikael.lepisto-no.spam-tut.fi)
Pekka Jääskeläinen 2009-2021
Note
rating: red

Definition in file LLVMBackend.cc.

Macro Definition Documentation

◆ addPass

#define addPass (   P)    Passes.add(P)

◆ CONFIG_H

#define CONFIG_H

Definition at line 92 of file LLVMBackend.cc.

◆ DS

Definition at line 124 of file LLVMBackend.cc.

Typedef Documentation

◆ TargetData

typedef llvm::DataLayout TargetData

Definition at line 131 of file LLVMBackend.cc.

Function Documentation

◆ createTCEMCInstrInfo()

static MCInstrInfo* createTCEMCInstrInfo ( )
static

Definition at line 546 of file LLVMBackend.cc.

546  {
547  MCInstrInfo* X = new MCInstrInfo();
548  return X;
549 }

References X().

Referenced by LLVMBackend::compile().

Here is the call graph for this function:

◆ createTCEMCRegisterInfo()

static MCRegisterInfo* createTCEMCRegisterInfo ( const Triple &  TT)
static

Definition at line 540 of file LLVMBackend.cc.

540  {
541  MCRegisterInfo* X = new MCRegisterInfo();
542  return X;
543 }

References X().

Referenced by LLVMBackend::compile().

Here is the call graph for this function:

◆ createTCEMCSubtargetInfo()

static MCSubtargetInfo* createTCEMCSubtargetInfo ( const Triple &  TT,
StringRef  CPU,
StringRef  FS 
)
static

Definition at line 552 of file LLVMBackend.cc.

552  {
553  const MCWriteProcResEntry WPR[] = {{0, 0}};
554  const MCWriteLatencyEntry WL[] = {{0, 0}};
555  const MCReadAdvanceEntry RA[] = {{0, 0, 0}};
556  ArrayRef<SubtargetFeatureKV> PF;
557  ArrayRef<SubtargetSubTypeKV> PD;
558 
559  MCSubtargetInfo* X = new MCSubtargetInfo(
560  TT, CPU, /*TuneCPU*/ "", FS, PF, PD, WPR, WL, RA, nullptr, nullptr,
561  nullptr);
562 
563  return X;
564 }

References RA, and X().

Referenced by LLVMBackend::compile().

Here is the call graph for this function:

◆ createWorkItemAliasAnalysisPass()

Pass* createWorkItemAliasAnalysisPass ( )
X
static llvm::RegisterPass< InnerLoopFinder > X("find-innerloops-test", "Finds inner loops test.", false, true)
RA
#define RA()
Definition: POMGenMacros.hh:393