CACAO
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
source
cacao
src
vm
jit
compiler2
ScheduleLatePass.hpp
Go to the documentation of this file.
1
/* src/vm/jit/compiler2/ScheduleLatePass.hpp - ScheduleLatePass
2
3
Copyright (C) 2013
4
CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5
6
This file is part of CACAO.
7
8
This program is free software; you can redistribute it and/or
9
modify it under the terms of the GNU General Public License as
10
published by the Free Software Foundation; either version 2, or (at
11
your option) any later version.
12
13
This program is distributed in the hope that it will be useful, but
14
WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
General Public License for more details.
17
18
You should have received a copy of the GNU General Public License
19
along with this program; if not, write to the Free Software
20
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21
02110-1301, USA.
22
23
*/
24
25
#ifndef _JIT_COMPILER2_SCHEDULELATEPASS
26
#define _JIT_COMPILER2_SCHEDULELATEPASS
27
28
#include "
vm/jit/compiler2/Pass.hpp
"
29
#include "
vm/jit/compiler2/Loop.hpp
"
30
#include "
vm/jit/compiler2/GlobalSchedule.hpp
"
31
32
MM_MAKE_NAME
(ScheduleLatePass)
33
34
namespace cacao {
35
namespace
jit {
36
namespace
compiler2 {
37
38
39
class
Method;
40
class
Instruction;
41
class
DominatorTree;
42
43
/**
44
* ScheduleLatePass
45
*
46
* Based on the algorithm in Click's Phd Thesis, Chapter 6 @cite ClickPHD.
47
*/
48
class
ScheduleLatePass
:
public
Pass
,
public
memory::ManagerMixin
<ScheduleLatePass>,
public
GlobalSchedule
{
49
private
:
50
DominatorTree
*
DT
;
51
LoopTree
*
LT
;
52
GlobalSchedule
*
early
;
53
Method
*
M
;
54
public
:
55
void
schedule_late(
Instruction
*
I
);
56
ScheduleLatePass
() :
Pass
() {}
57
virtual
bool
run(
JITData
&JD);
58
virtual
PassUsage
& get_PassUsage(
PassUsage
&PU)
const
;
59
};
60
61
}
// end namespace compiler2
62
}
// end namespace jit
63
}
// end namespace cacao
64
65
#endif
/* _JIT_COMPILER2_SCHEDULELATEPASS */
66
67
68
/*
69
* These are local overrides for various environment variables in Emacs.
70
* Please do not remove this and leave it at the end of the file, where
71
* Emacs will automagically detect them.
72
* ---------------------------------------------------------------------
73
* Local variables:
74
* mode: c++
75
* indent-tabs-mode: t
76
* c-basic-offset: 4
77
* tab-width: 4
78
* End:
79
* vim:noexpandtab:sw=4:ts=4:
80
*/
cacao::jit::compiler2::GlobalSchedule
GlobalSchedule TODO: more info.
Definition:
GlobalSchedule.hpp:42
cacao::jit::compiler2::Pass
Pass superclass All compiler passes should inheritate this class.
Definition:
Pass.hpp:47
GlobalSchedule.hpp
cacao::jit::compiler2::ScheduleLatePass::M
Method * M
Definition:
ScheduleLatePass.hpp:53
cacao::jit::compiler2::DominatorTree
Definition:
DominatorPass.hpp:41
cacao::jit::compiler2::memory::ManagerMixin
Custom new/delete handler mixin.
Definition:
Manager.hpp:43
cacao::jit::compiler2::ScheduleLatePass
ScheduleLatePass.
Definition:
ScheduleLatePass.hpp:48
MM_MAKE_NAME
#define MM_MAKE_NAME(x)
Definition:
memstats.hpp:128
cacao::jit::compiler2::ScheduleLatePass::early
GlobalSchedule * early
Definition:
ScheduleLatePass.hpp:52
cacao::jit::compiler2::ScheduleLatePass::DT
DominatorTree * DT
Definition:
ScheduleLatePass.hpp:50
cacao::jit::compiler2::PassUsage
Stores the interdependencies of a pass.
Definition:
PassUsage.hpp:55
cacao::jit::compiler2::JITData
Definition:
JITData.hpp:42
cacao::jit::compiler2::Instruction
Instruction super class.
Definition:
Instruction.hpp:75
cacao::jit::compiler2::ScheduleLatePass::ScheduleLatePass
ScheduleLatePass()
Definition:
ScheduleLatePass.hpp:56
cacao::jit::compiler2::ScheduleLatePass::LT
LoopTree * LT
Definition:
ScheduleLatePass.hpp:51
cacao::jit::compiler2::LoopTreeBase
Definition:
LoopBase.hpp:85
I
#define I(value)
Definition:
codegen.c:279
Loop.hpp
cacao::jit::compiler2::Method
Definition:
MethodC2.hpp:64
Pass.hpp
Generated on Fri Aug 4 2017 02:01:53 for CACAO by
1.8.5