-FunctionPass *createRegisterAllocator()
-{
- switch (RegAlloc) {
- case simple:
- return createSimpleRegisterAllocator();
- case local:
- return createLocalRegisterAllocator();
- default:
- assert(0 && "no register allocator selected");
- return 0; // not reached
+
+//===---------------------------------------------------------------------===//
+///
+/// createRegisterAllocator - choose the appropriate register allocator.
+///
+//===---------------------------------------------------------------------===//
+FunctionPass *llvm::createRegisterAllocator() {
+ RegisterRegAlloc::FunctionPassCtor Ctor = RegisterRegAlloc::getDefault();
+
+ if (!Ctor) {
+ Ctor = RegAlloc;
+ RegisterRegAlloc::setDefault(RegAlloc);