aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/opt/hipe_target_machine.erl
blob: f64bb8b518c35c0038ee18719eb741aed47acbc8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
%%
%% %CopyrightBegin%
%% 
%% Copyright Ericsson AB 2001-2016. All Rights Reserved.
%% 
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%%     http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%% 
%% %CopyrightEnd%
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%%		  INTERFACE TO TARGET MACHINE MODEL
%%
%% Interfaces the instruction scheduler to the (resource) machine model.

-module(hipe_target_machine).
-export([init_resources/1,
	 init_instr_resources/2,
	 resources_available/4,
	 advance_cycle/1
	]).
-export([raw_latency/2,
	 war_latency/2,
	 waw_latency/2,
	 %% m_raw_latency/2,
	 %% m_war_latency/2,
	 %% m_waw_latency/2,
	 m_raw_latency/0,
	 m_war_latency/0,
	 m_waw_latency/0,
	 br_to_unsafe_latency/2,
	 unsafe_to_br_latency/2,
	 br_br_latency/2
	]).

-define(target,hipe_ultra_mod2).

init_resources(X) ->
    ?target:init_resources(X).

init_instr_resources(X,Y) ->
    ?target:init_instr_resources(X,Y).

resources_available(X,Y,Z,W) ->
    ?target:resources_available(X,Y,Z,W).

advance_cycle(X) ->
    ?target:advance_cycle(X).

raw_latency(From,To) ->
    ?target:raw_latency(From,To).

war_latency(From,To) ->
    ?target:war_latency(From,To).

waw_latency(From,To) ->
    ?target:waw_latency(From,To).

%% m_raw_latency(From,To) ->
%%     ?target:m_raw_latency(From,To).

%% m_war_latency(From,To) ->
%%     ?target:m_war_latency(From,To).

%% m_waw_latency(From,To) ->
%%     ?target:m_waw_latency(From,To).

m_raw_latency() ->
    ?target:m_raw_latency().

m_war_latency() ->
    ?target:m_war_latency().

m_waw_latency() ->
    ?target:m_waw_latency().

br_to_unsafe_latency(Br,U) ->
    ?target:br_to_unsafe_latency(Br,U).

unsafe_to_br_latency(U,Br) ->
    ?target:unsafe_to_br_latency(U,Br).

br_br_latency(Br1,Br2) ->
    ?target:br_br_latency(Br1,Br2).