diff options
author | Dan Gohman <gohman@apple.com> | 2008-07-07 23:02:41 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-07-07 23:02:41 +0000 |
commit | 0e5f1306b059b62d7725f324e087efbc8e7a782d (patch) | |
tree | 9c2fec0441e942eb2e458c3306fd72704404bfaf /include/llvm/CodeGen/SelectionDAGISel.h | |
parent | e14d81deeb6bb3404ffee5e59ecb88304f112f4a (diff) |
Pool-allocation for SDNodes. The pool is allocated once for each function,
and reused across SelectionDAGs.
This drastically reduces the number of calls to malloc/free made during
instruction selection, and improves memory locality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53211 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAGISel.h')
-rw-r--r-- | include/llvm/CodeGen/SelectionDAGISel.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h index c5aa77a9a5..ad573b4d17 100644 --- a/include/llvm/CodeGen/SelectionDAGISel.h +++ b/include/llvm/CodeGen/SelectionDAGISel.h @@ -178,8 +178,11 @@ protected: int64_t DesiredMaskS) const; private: + void SelectAllBasicBlocks(Function &Fn, MachineFunction &MF, + FunctionLoweringInfo &FuncInfo); void SelectBasicBlock(BasicBlock *BB, MachineFunction &MF, - FunctionLoweringInfo &FuncInfo); + FunctionLoweringInfo &FuncInfo, + alist<SDNode, LargestSDNode> &AllNodes); void BuildSelectionDAG(SelectionDAG &DAG, BasicBlock *LLVMBB, std::vector<std::pair<MachineInstr*, unsigned> > &PHINodesToUpdate, |