mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 00:24:26 +00:00
[CodeGenPrepare] Move CodeGenPrepare into lib/CodeGen.
CodeGenPrepare uses extensively TargetLowering which is part of libLLVMCodeGen. This is a layer violation which would introduce eventually a dependence on CodeGen in ScalarOpts. Move CodeGenPrepare into libLLVMCodeGen to avoid that. Follow-up of <rdar://problem/15519855> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201912 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -370,6 +370,10 @@ namespace llvm {
|
|||||||
createMachineFunctionPrinterPass(raw_ostream &OS,
|
createMachineFunctionPrinterPass(raw_ostream &OS,
|
||||||
const std::string &Banner ="");
|
const std::string &Banner ="");
|
||||||
|
|
||||||
|
/// createCodeGenPreparePass - Transform the code to expose more pattern
|
||||||
|
/// matching during instruction selection.
|
||||||
|
FunctionPass *createCodeGenPreparePass(const TargetMachine *TM = 0);
|
||||||
|
|
||||||
/// MachineLoopInfo - This pass is a loop analysis pass.
|
/// MachineLoopInfo - This pass is a loop analysis pass.
|
||||||
extern char &MachineLoopInfoID;
|
extern char &MachineLoopInfoID;
|
||||||
|
|
||||||
|
@ -316,12 +316,6 @@ Pass *createLoopDeletionPass();
|
|||||||
//
|
//
|
||||||
FunctionPass *createConstantHoistingPass();
|
FunctionPass *createConstantHoistingPass();
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
//
|
|
||||||
// CodeGenPrepare - This pass prepares a function for instruction selection.
|
|
||||||
//
|
|
||||||
FunctionPass *createCodeGenPreparePass(const TargetMachine *TM = 0);
|
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
//
|
//
|
||||||
// InstructionNamer - Give any unnamed non-void instructions "tmp" names.
|
// InstructionNamer - Give any unnamed non-void instructions "tmp" names.
|
||||||
|
@ -7,6 +7,7 @@ add_llvm_library(LLVMCodeGen
|
|||||||
CalcSpillWeights.cpp
|
CalcSpillWeights.cpp
|
||||||
CallingConvLower.cpp
|
CallingConvLower.cpp
|
||||||
CodeGen.cpp
|
CodeGen.cpp
|
||||||
|
CodeGenPrepare.cpp
|
||||||
CriticalAntiDepBreaker.cpp
|
CriticalAntiDepBreaker.cpp
|
||||||
DFAPacketizer.cpp
|
DFAPacketizer.cpp
|
||||||
DeadMachineInstructionElim.cpp
|
DeadMachineInstructionElim.cpp
|
||||||
|
@ -22,6 +22,7 @@ using namespace llvm;
|
|||||||
void llvm::initializeCodeGen(PassRegistry &Registry) {
|
void llvm::initializeCodeGen(PassRegistry &Registry) {
|
||||||
initializeBasicTTIPass(Registry);
|
initializeBasicTTIPass(Registry);
|
||||||
initializeBranchFolderPassPass(Registry);
|
initializeBranchFolderPassPass(Registry);
|
||||||
|
initializeCodeGenPreparePass(Registry);
|
||||||
initializeDeadMachineInstructionElimPass(Registry);
|
initializeDeadMachineInstructionElimPass(Registry);
|
||||||
initializeEarlyIfConverterPass(Registry);
|
initializeEarlyIfConverterPass(Registry);
|
||||||
initializeExpandPostRAPass(Registry);
|
initializeExpandPostRAPass(Registry);
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#define DEBUG_TYPE "codegenprepare"
|
#define DEBUG_TYPE "codegenprepare"
|
||||||
#include "llvm/Transforms/Scalar.h"
|
#include "llvm/CodeGen/Passes.h"
|
||||||
#include "llvm/ADT/DenseMap.h"
|
#include "llvm/ADT/DenseMap.h"
|
||||||
#include "llvm/ADT/SmallSet.h"
|
#include "llvm/ADT/SmallSet.h"
|
||||||
#include "llvm/ADT/Statistic.h"
|
#include "llvm/ADT/Statistic.h"
|
@ -1,6 +1,5 @@
|
|||||||
add_llvm_library(LLVMScalarOpts
|
add_llvm_library(LLVMScalarOpts
|
||||||
ADCE.cpp
|
ADCE.cpp
|
||||||
CodeGenPrepare.cpp
|
|
||||||
ConstantHoisting.cpp
|
ConstantHoisting.cpp
|
||||||
ConstantProp.cpp
|
ConstantProp.cpp
|
||||||
CorrelatedValuePropagation.cpp
|
CorrelatedValuePropagation.cpp
|
||||||
|
@ -29,7 +29,6 @@ using namespace llvm;
|
|||||||
void llvm::initializeScalarOpts(PassRegistry &Registry) {
|
void llvm::initializeScalarOpts(PassRegistry &Registry) {
|
||||||
initializeADCEPass(Registry);
|
initializeADCEPass(Registry);
|
||||||
initializeSampleProfileLoaderPass(Registry);
|
initializeSampleProfileLoaderPass(Registry);
|
||||||
initializeCodeGenPreparePass(Registry);
|
|
||||||
initializeConstantHoistingPass(Registry);
|
initializeConstantHoistingPass(Registry);
|
||||||
initializeConstantPropagationPass(Registry);
|
initializeConstantPropagationPass(Registry);
|
||||||
initializeCorrelatedValuePropagationPass(Registry);
|
initializeCorrelatedValuePropagationPass(Registry);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
set(LLVM_LINK_COMPONENTS
|
set(LLVM_LINK_COMPONENTS
|
||||||
Analysis
|
Analysis
|
||||||
BitWriter
|
BitWriter
|
||||||
|
CodeGen
|
||||||
Core
|
Core
|
||||||
IPA
|
IPA
|
||||||
IPO
|
IPO
|
||||||
|
@ -19,4 +19,4 @@
|
|||||||
type = Tool
|
type = Tool
|
||||||
name = bugpoint
|
name = bugpoint
|
||||||
parent = Tools
|
parent = Tools
|
||||||
required_libraries = AsmParser BitReader BitWriter IRReader IPO Instrumentation Linker Scalar ObjCARC
|
required_libraries = AsmParser BitReader BitWriter CodeGen IRReader IPO Instrumentation Linker Scalar ObjCARC
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
LEVEL := ../..
|
LEVEL := ../..
|
||||||
TOOLNAME := bugpoint
|
TOOLNAME := bugpoint
|
||||||
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
|
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
|
||||||
bitwriter irreader vectorize objcarcopts
|
bitwriter irreader vectorize objcarcopts codegen
|
||||||
|
|
||||||
# Support plugins.
|
# Support plugins.
|
||||||
NO_DEAD_STRIP := 1
|
NO_DEAD_STRIP := 1
|
||||||
|
@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS
|
|||||||
${LLVM_TARGETS_TO_BUILD}
|
${LLVM_TARGETS_TO_BUILD}
|
||||||
Analysis
|
Analysis
|
||||||
BitWriter
|
BitWriter
|
||||||
|
CodeGen
|
||||||
Core
|
Core
|
||||||
IPA
|
IPA
|
||||||
IPO
|
IPO
|
||||||
|
@ -19,4 +19,4 @@
|
|||||||
type = Tool
|
type = Tool
|
||||||
name = opt
|
name = opt
|
||||||
parent = Tools
|
parent = Tools
|
||||||
required_libraries = AsmParser BitReader BitWriter IRReader IPO Instrumentation Scalar ObjCARC all-targets
|
required_libraries = AsmParser BitReader BitWriter CodeGen IRReader IPO Instrumentation Scalar ObjCARC all-targets
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
LEVEL := ../..
|
LEVEL := ../..
|
||||||
TOOLNAME := opt
|
TOOLNAME := opt
|
||||||
LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets
|
LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets codegen
|
||||||
|
|
||||||
# Support plugins.
|
# Support plugins.
|
||||||
NO_DEAD_STRIP := 1
|
NO_DEAD_STRIP := 1
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "llvm/Analysis/RegionPass.h"
|
#include "llvm/Analysis/RegionPass.h"
|
||||||
#include "llvm/Bitcode/BitcodeWriterPass.h"
|
#include "llvm/Bitcode/BitcodeWriterPass.h"
|
||||||
#include "llvm/CodeGen/CommandFlags.h"
|
#include "llvm/CodeGen/CommandFlags.h"
|
||||||
|
#include "llvm/InitializePasses.h"
|
||||||
#include "llvm/IR/DataLayout.h"
|
#include "llvm/IR/DataLayout.h"
|
||||||
#include "llvm/IR/IRPrintingPasses.h"
|
#include "llvm/IR/IRPrintingPasses.h"
|
||||||
#include "llvm/IR/LLVMContext.h"
|
#include "llvm/IR/LLVMContext.h"
|
||||||
@ -340,6 +341,9 @@ int main(int argc, char **argv) {
|
|||||||
initializeInstCombine(Registry);
|
initializeInstCombine(Registry);
|
||||||
initializeInstrumentation(Registry);
|
initializeInstrumentation(Registry);
|
||||||
initializeTarget(Registry);
|
initializeTarget(Registry);
|
||||||
|
// For codegen passes, only passes that do IR to IR transformation are
|
||||||
|
// supported. For now, just add CodeGenPrepare.
|
||||||
|
initializeCodeGenPreparePass(Registry);
|
||||||
|
|
||||||
cl::ParseCommandLineOptions(argc, argv,
|
cl::ParseCommandLineOptions(argc, argv,
|
||||||
"llvm .bc -> .bc modular optimizer and analysis printer\n");
|
"llvm .bc -> .bc modular optimizer and analysis printer\n");
|
||||||
|
Reference in New Issue
Block a user