mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-17 18:10:31 +00:00
f70e7cc7a2
Allocator instances can now be created by calling createPBQPRegisterAllocator. Tidied up use of CoalescerPair as per Jakob's suggestions. Made the new PBQPBuilder based construction process the default. The internal construction process remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new process doesn't cause any regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114626 91177308-0d34-0410-b5e6-96231b3b80d8
58 lines
2.2 KiB
C++
58 lines
2.2 KiB
C++
//===- llvm/Codegen/LinkAllCodegenComponents.h ------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This header file pulls in all codegen related passes for tools like lli and
|
|
// llc that need this functionality.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_CODEGEN_LINKALLCODEGENCOMPONENTS_H
|
|
#define LLVM_CODEGEN_LINKALLCODEGENCOMPONENTS_H
|
|
|
|
#include "llvm/CodeGen/Passes.h"
|
|
#include "llvm/CodeGen/SchedulerRegistry.h"
|
|
#include "llvm/CodeGen/GCs.h"
|
|
#include "llvm/Target/TargetMachine.h"
|
|
#include <cstdlib>
|
|
|
|
namespace {
|
|
struct ForceCodegenLinking {
|
|
ForceCodegenLinking() {
|
|
// We must reference the passes in such a way that compilers will not
|
|
// delete it all as dead code, even with whole program optimization,
|
|
// yet is effectively a NO-OP. As the compiler isn't smart enough
|
|
// to know that getenv() never returns -1, this will do the job.
|
|
if (std::getenv("bar") != (char*) -1)
|
|
return;
|
|
|
|
(void) llvm::createDeadMachineInstructionElimPass();
|
|
|
|
(void) llvm::createFastRegisterAllocator();
|
|
(void) llvm::createLinearScanRegisterAllocator();
|
|
(void) llvm::createDefaultPBQPRegisterAllocator();
|
|
|
|
(void) llvm::createSimpleRegisterCoalescer();
|
|
|
|
llvm::linkOcamlGC();
|
|
llvm::linkShadowStackGC();
|
|
|
|
(void) llvm::createBURRListDAGScheduler(NULL, llvm::CodeGenOpt::Default);
|
|
(void) llvm::createTDRRListDAGScheduler(NULL, llvm::CodeGenOpt::Default);
|
|
(void) llvm::createSourceListDAGScheduler(NULL,llvm::CodeGenOpt::Default);
|
|
(void) llvm::createHybridListDAGScheduler(NULL,llvm::CodeGenOpt::Default);
|
|
(void) llvm::createTDListDAGScheduler(NULL, llvm::CodeGenOpt::Default);
|
|
(void) llvm::createFastDAGScheduler(NULL, llvm::CodeGenOpt::Default);
|
|
(void) llvm::createDefaultScheduler(NULL, llvm::CodeGenOpt::Default);
|
|
|
|
}
|
|
} ForceCodegenLinking; // Force link by creating a global definition.
|
|
}
|
|
|
|
#endif
|