libFirm
irprog.h File Reference

Entry point to the representation of a whole program. More...

#include <stddef.h>
#include "firm_types.h"
#include "irgraph.h"
#include "begin.h"
#include "end.h"

Go to the source code of this file.

Enumerations

enum  ir_segment_t {
  IR_SEGMENT_FIRST, IR_SEGMENT_GLOBAL = IR_SEGMENT_FIRST, IR_SEGMENT_THREAD_LOCAL, IR_SEGMENT_CONSTRUCTORS,
  IR_SEGMENT_DESTRUCTORS, IR_SEGMENT_LAST = IR_SEGMENT_DESTRUCTORS
}
 Segment. More...
enum  irp_resources_t {
  IRP_RESOURCE_NONE = 0, IRP_RESOURCE_IRG_LINK = 1 << 0, IRP_RESOURCE_ENTITY_LINK = 1 << 1, IRP_RESOURCE_TYPE_VISITED = 1 << 2,
  IRP_RESOURCE_TYPE_LINK = 1 << 3
}
 Resources usable by algorithms modifying the program. More...

Functions

void irp_reserve_resources (ir_prog *irp, irp_resources_t resources)
 Reserve resources available for a whole program.
void irp_free_resources (ir_prog *irp, irp_resources_t resources)
 Frees resources availabel for a whole program.
irp_resources_t irp_resources_reserved (const ir_prog *irp)
 Returns currently reserved whole program resources.
ir_progget_irp (void)
 Returns the current irp from where everything in the current module can be accessed.
void set_irp (ir_prog *irp)
 Sets current irp.
ir_prognew_ir_prog (const char *name)
 Creates a new ir_prog (a module or compilation unit).
void free_ir_prog (void)
 Frees all memory used by irp.
void set_irp_prog_name (ident *name)
 Sets the file name / executable name or the like.
int irp_prog_name_is_set (void)
 Returns true if the user ever set a program name.
identget_irp_ident (void)
 Returns the name of the current irp.
const char * get_irp_name (void)
 Returns the name of the current irp.
ir_graphget_irp_main_irg (void)
 Returns the main routine of the compiled program.
void set_irp_main_irg (ir_graph *main_irg)
 Sets the main routine of the compiled program.
size_t get_irp_last_idx (void)
 returns the biggest not used irg index number
size_t get_irp_n_irgs (void)
 Returns the number of ir graphs in the irp.
ir_graphget_irp_irg (size_t pos)
 Returns the ir graph at position pos in the irp.
void set_irp_irg (size_t pos, ir_graph *irg)
 Sets the ir graph at position pos.
ir_typeget_segment_type (ir_segment_t segment)
 Returns the type containing the entities for a segment.
void set_segment_type (ir_segment_t segment, ir_type *new_type)
 Changes a segment segment type for the program.
ir_typeget_glob_type (void)
 Returns the "global" type of the irp.
ir_typeget_tls_type (void)
 Returns the "thread local storage" type of the irp.
size_t get_irp_n_types (void)
 Returns the number of all types in the irp.
ir_typeget_irp_type (size_t pos)
 Returns the type at position pos in the irp.
void set_irp_type (size_t pos, ir_type *typ)
 Overwrites the type at position pos with another type.
ir_graphget_const_code_irg (void)
 Returns the graph for global constants of the current irp.
irg_callee_info_state get_irp_callee_info_state (void)
 Returns callee info state for the whole program.
void set_irp_callee_info_state (irg_callee_info_state s)
 Sets callee info state for the whole program.
ir_label_t get_irp_next_label_nr (void)
 Returns a new, unique label number.
void add_irp_asm (ident *asm_string)
 Add a new global asm include.
size_t get_irp_n_asms (void)
 Returns the number of global asm includes.
identget_irp_asm (size_t pos)
 Returns the global asm include at position pos.

Variables

ir_progirp
 A variable pointing to the current irp (program or module).

Detailed Description

Entry point to the representation of a whole program.

Author
Goetz Lindenmaier
Date
2000

Intermediate Representation (IR) of a program.

Definition in file irprog.h.