#define DEBUG_TYPE "isel"
#include "llvm/CodeGen/SelectionDAGISel.h"
-#include "SimpleBBISel.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Constants.h"
// each basic block.
NodeAllocatorType NodeAllocator;
- SimpleBBISel SISel(MF, TLI);
std::vector<std::pair<MachineInstr*, unsigned> > PHINodesToUpdate;
for (Function::iterator I = Fn.begin(), E = Fn.end(); I != E; ++I) {
BasicBlock *LLVMBB = &*I;
PHINodesToUpdate.clear();
- if (!Fast || !SISel.SelectBasicBlock(LLVMBB, FuncInfo.MBBMap[LLVMBB]))
- SelectBasicBlock(LLVMBB, MF, FuncInfo, PHINodesToUpdate, NodeAllocator);
+ SelectBasicBlock(LLVMBB, MF, FuncInfo, PHINodesToUpdate, NodeAllocator);
FinishBasicBlock(LLVMBB, MF, FuncInfo, PHINodesToUpdate, NodeAllocator);
}
}
+++ /dev/null
-//===-- SimpleBBISel.cpp - Implement the SimpleBBISel class ---------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This implements simple basic block instruction selection. If the given
-// BasicBlock is considered "simple", i.e. all operations are supported by
-// the target and their types are legal, it does instruction directly from
-// LLVM BasicBlock to MachineInstr's.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "simple-isel"
-#include "SimpleBBISel.h"
-#include "llvm/CodeGen/MachineFunction.h"
-#include "llvm/CodeGen/MachineInstrBuilder.h"
-#include "llvm/CodeGen/SelectionDAG.h"
-using namespace llvm;
-
-/// SelectBasicBlock - Try to convert a LLVM basic block into a
-/// MachineBasicBlock using simple instruction selection. Returns false if it
-/// is not able to do so.
-bool SimpleBBISel::SelectBasicBlock(BasicBlock *BB, MachineBasicBlock *MBB) {
- return false;
-}
+++ /dev/null
-//===-- SimpleBBISel.cpp - Definition of the SimpleBBISel class -----------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the SimpleBBISel class which handles simple basic block
-// instruction selection. If the given BasicBlock is considered "simple", i.e.
-// all operations are supported by the target and their types are legal, it
-// does instruction directly from LLVM BasicBlock to MachineInstr's.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SELECTIONDAG_SIMPLEBBISEL_H
-#define SELECTIONDAG_SIMPLEBBISEL_H
-
-#include "llvm/Support/Compiler.h"
-
-namespace llvm {
-
-class BasicBlock;
-class MachineBasicBlock;
-class MachineFunction;
-class TargetLowering;
-
-class VISIBILITY_HIDDEN SimpleBBISel {
- MachineFunction &MF;
- TargetLowering &TLI;
-
- public:
- explicit SimpleBBISel(MachineFunction &mf, TargetLowering &tli)
- : MF(mf), TLI(tli) {};
-
- /// SelectBasicBlock - Try to convert a LLVM basic block into a
- /// MachineBasicBlock using simple instruction selection. Returns false if it
- /// is not able to do so.
- bool SelectBasicBlock(BasicBlock *BB, MachineBasicBlock *MBB);
-};
-
-} // end namespace llvm.
-
-#endif