This reverts commit r299287 plus clean-ups. The localizer pass is a helper pass that could be run at O0 in the GISel pipeline to work around the deficiency of the fast register allocator. It basically shortens the live-ranges of the constants so that the allocator does not spill all over the place. Long term fix would be to make the greedy allocator fast. llvm-svn: 304051
34 lines
1006 B
C++
34 lines
1006 B
C++
//===-- llvm/CodeGen/GlobalISel/GlobalIsel.cpp --- GlobalISel ----*- C++ -*-==//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
/// \file
|
|
// This file implements the common initialization routines for the
|
|
// GlobalISel library.
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/InitializePasses.h"
|
|
#include "llvm/PassRegistry.h"
|
|
|
|
using namespace llvm;
|
|
|
|
#ifndef LLVM_BUILD_GLOBAL_ISEL
|
|
|
|
void llvm::initializeGlobalISel(PassRegistry &Registry) {
|
|
}
|
|
|
|
#else
|
|
|
|
void llvm::initializeGlobalISel(PassRegistry &Registry) {
|
|
initializeIRTranslatorPass(Registry);
|
|
initializeLegalizerPass(Registry);
|
|
initializeLocalizerPass(Registry);
|
|
initializeRegBankSelectPass(Registry);
|
|
initializeInstructionSelectPass(Registry);
|
|
}
|
|
#endif // LLVM_BUILD_GLOBAL_ISEL
|