mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +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:
parent
0206b30ea6
commit
8048c44580
@ -370,6 +370,10 @@ namespace llvm {
|
||||
createMachineFunctionPrinterPass(raw_ostream &OS,
|
||||
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.
|
||||
extern char &MachineLoopInfoID;
|
||||
|
||||
|
@ -316,12 +316,6 @@ Pass *createLoopDeletionPass();
|
||||
//
|
||||
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.
|
||||
|
@ -7,6 +7,7 @@ add_llvm_library(LLVMCodeGen
|
||||
CalcSpillWeights.cpp
|
||||
CallingConvLower.cpp
|
||||
CodeGen.cpp
|
||||
CodeGenPrepare.cpp
|
||||
CriticalAntiDepBreaker.cpp
|
||||
DFAPacketizer.cpp
|
||||
DeadMachineInstructionElim.cpp
|
||||
|
@ -22,6 +22,7 @@ using namespace llvm;
|
||||
void llvm::initializeCodeGen(PassRegistry &Registry) {
|
||||
initializeBasicTTIPass(Registry);
|
||||
initializeBranchFolderPassPass(Registry);
|
||||
initializeCodeGenPreparePass(Registry);
|
||||
initializeDeadMachineInstructionElimPass(Registry);
|
||||
initializeEarlyIfConverterPass(Registry);
|
||||
initializeExpandPostRAPass(Registry);
|
||||
|
@ -14,7 +14,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#define DEBUG_TYPE "codegenprepare"
|
||||
#include "llvm/Transforms/Scalar.h"
|
||||
#include "llvm/CodeGen/Passes.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/ADT/SmallSet.h"
|
||||
#include "llvm/ADT/Statistic.h"
|
@ -1,6 +1,5 @@
|
||||
add_llvm_library(LLVMScalarOpts
|
||||
ADCE.cpp
|
||||
CodeGenPrepare.cpp
|
||||
ConstantHoisting.cpp
|
||||
ConstantProp.cpp
|
||||
CorrelatedValuePropagation.cpp
|
||||
|
@ -29,7 +29,6 @@ using namespace llvm;
|
||||
void llvm::initializeScalarOpts(PassRegistry &Registry) {
|
||||
initializeADCEPass(Registry);
|
||||
initializeSampleProfileLoaderPass(Registry);
|
||||
initializeCodeGenPreparePass(Registry);
|
||||
initializeConstantHoistingPass(Registry);
|
||||
initializeConstantPropagationPass(Registry);
|
||||
initializeCorrelatedValuePropagationPass(Registry);
|
||||
|
@ -1,6 +1,7 @@
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Analysis
|
||||
BitWriter
|
||||
CodeGen
|
||||
Core
|
||||
IPA
|
||||
IPO
|
||||
|
@ -19,4 +19,4 @@
|
||||
type = Tool
|
||||
name = bugpoint
|
||||
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 := ../..
|
||||
TOOLNAME := bugpoint
|
||||
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
|
||||
bitwriter irreader vectorize objcarcopts
|
||||
bitwriter irreader vectorize objcarcopts codegen
|
||||
|
||||
# Support plugins.
|
||||
NO_DEAD_STRIP := 1
|
||||
|
@ -2,6 +2,7 @@ set(LLVM_LINK_COMPONENTS
|
||||
${LLVM_TARGETS_TO_BUILD}
|
||||
Analysis
|
||||
BitWriter
|
||||
CodeGen
|
||||
Core
|
||||
IPA
|
||||
IPO
|
||||
|
@ -19,4 +19,4 @@
|
||||
type = Tool
|
||||
name = opt
|
||||
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 := ../..
|
||||
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.
|
||||
NO_DEAD_STRIP := 1
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "llvm/Analysis/RegionPass.h"
|
||||
#include "llvm/Bitcode/BitcodeWriterPass.h"
|
||||
#include "llvm/CodeGen/CommandFlags.h"
|
||||
#include "llvm/InitializePasses.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/IRPrintingPasses.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
@ -340,6 +341,9 @@ int main(int argc, char **argv) {
|
||||
initializeInstCombine(Registry);
|
||||
initializeInstrumentation(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,
|
||||
"llvm .bc -> .bc modular optimizer and analysis printer\n");
|
||||
|
Loading…
Reference in New Issue
Block a user