GCC Middle and Back End API Reference
Main Page
Namespaces
Data Structures
Files
File List
Globals
resource.h
Go to the documentation of this file.
1
/* Definitions for computing resource usage of specific insns.
2
Copyright (C) 1999-2013 Free Software Foundation, Inc.
3
4
This file is part of GCC.
5
6
GCC is free software; you can redistribute it and/or modify it under
7
the terms of the GNU General Public License as published by the Free
8
Software Foundation; either version 3, or (at your option) any later
9
version.
10
11
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12
WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14
for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with GCC; see the file COPYING3. If not see
18
<http://www.gnu.org/licenses/>. */
19
20
#ifndef GCC_RESOURCE_H
21
#define GCC_RESOURCE_H
22
23
#include "
hard-reg-set.h
"
24
#include "
df.h
"
25
26
/* Macro to clear all resources. */
27
#define CLEAR_RESOURCE(RES) \
28
do { (RES)->memory = (RES)->volatil = (RES)->cc = 0; \
29
CLEAR_HARD_REG_SET ((RES)->regs); } while (0)
30
31
/* The resources used by a given insn. */
32
struct
resources
33
{
34
char
memory
;
/* Insn sets or needs a memory location. */
35
char
volatil
;
/* Insn sets or needs a volatile memory loc. */
36
char
cc
;
/* Insn sets or needs the condition codes. */
37
HARD_REG_SET
regs
;
/* Which registers are set or needed. */
38
};
39
40
/* The kinds of rtl mark_*_resources will consider */
41
enum
mark_resource_type
42
{
43
MARK_SRC_DEST
= 0,
44
MARK_SRC_DEST_CALL
= 1
45
};
46
47
extern
void
mark_target_live_regs
(
rtx
,
rtx
,
struct
resources
*);
48
extern
void
mark_set_resources
(
rtx
,
struct
resources
*,
int
,
49
enum
mark_resource_type
);
50
extern
void
mark_referenced_resources
(
rtx
,
struct
resources
*,
bool
);
51
extern
void
clear_hashed_info_for_insn
(
rtx
);
52
extern
void
incr_ticks_for_insn
(
rtx
);
53
extern
void
mark_end_of_function_resources
(
rtx
,
bool
);
54
extern
void
init_resource_info
(
rtx
);
55
extern
void
free_resource_info
(
void
);
56
57
#endif
/* GCC_RESOURCE_H */
gcc
resource.h
Generated by
1.8.1.1