CACAO
Data Structures | Macros | Typedefs | Functions
lsra.hpp File Reference

Go to the source code of this file.

Data Structures

struct  _list
 
struct  _backedge
 
struct  lifetime
 
struct  l_loop
 
struct  b_loop
 
struct  stackslot
 
struct  lsra_register
 
struct  lsra_reg
 
struct  _sbr
 
struct  lsradata
 
struct  freemem
 

Macros

#define LSRA_DEBUG_CHECK
 
#define LSRA_DEBUG_VERBOSE
 
#define _LSRA_CHECK_BOUNDS(i, l, h)
 
#define _LSRA_ASSERT(a)
 
#define JOIN_DUP_STACK   /* join "identical" stackslots created by dup* */
 
#define USAGE_COUNT   /* influence LSRA with usagecount */
 
#define USEAGE_COUNT_EXACT   /* search all active lifetimes and regard */
 
#define USAGE_PER_INSTR   /* divide usagecount by lifetimelength */
 
#define LSRA_BB_IN   3
 
#define LSRA_BB_OUT   2
 
#define LSRA_STORE   1
 
#define LSRA_LOAD   0
 
#define LSRA_POP   -1
 
#define JOIN   0 /* joins that are not in any way dangerous */
 
#define JOIN_BB   1 /* join Stackslots over Basic Block Boundaries */
 
#define JOIN_DUP   2 /* join of two possibly concurring lifeteimes through DUP* */
 
#define JOIN_OP   4 /* join of src operand with dst operand on i386 and x86_64 */
 
#define JOINING   8 /* set while joining for DUP or OP to prevent assignement */
 
#define min(a, b)   ((a)<(b)?(a):(b))
 
#define max(a, b)   ((a)<(b)?(b):(a))
 

Typedefs

typedef struct lsradata lsradata
 

Functions

bool lsra (jitdata *jd)
 

Macro Definition Documentation

#define _LSRA_ASSERT (   a)

Definition at line 42 of file lsra.hpp.

#define _LSRA_CHECK_BOUNDS (   i,
  l,
 
)

Definition at line 41 of file lsra.hpp.

#define JOIN   0 /* joins that are not in any way dangerous */

Definition at line 68 of file lsra.hpp.

#define JOIN_BB   1 /* join Stackslots over Basic Block Boundaries */

Definition at line 69 of file lsra.hpp.

#define JOIN_DUP   2 /* join of two possibly concurring lifeteimes through DUP* */

Definition at line 70 of file lsra.hpp.

#define JOIN_DUP_STACK   /* join "identical" stackslots created by dup* */

Definition at line 54 of file lsra.hpp.

#define JOIN_OP   4 /* join of src operand with dst operand on i386 and x86_64 */

Definition at line 71 of file lsra.hpp.

#define JOINING   8 /* set while joining for DUP or OP to prevent assignement */

Definition at line 75 of file lsra.hpp.

#define LSRA_BB_IN   3

Definition at line 61 of file lsra.hpp.

#define LSRA_BB_OUT   2

Definition at line 62 of file lsra.hpp.

#define LSRA_DEBUG_CHECK

Definition at line 33 of file lsra.hpp.

#define LSRA_DEBUG_VERBOSE

Definition at line 34 of file lsra.hpp.

#define LSRA_LOAD   0

Definition at line 64 of file lsra.hpp.

#define LSRA_POP   -1

Definition at line 65 of file lsra.hpp.

#define LSRA_STORE   1

Definition at line 63 of file lsra.hpp.

#define max (   a,
 
)    ((a)<(b)?(b):(a))

Definition at line 80 of file lsra.hpp.

#define min (   a,
 
)    ((a)<(b)?(a):(b))

Definition at line 79 of file lsra.hpp.

#define USAGE_COUNT   /* influence LSRA with usagecount */

Definition at line 56 of file lsra.hpp.

#define USAGE_PER_INSTR   /* divide usagecount by lifetimelength */

Definition at line 59 of file lsra.hpp.

#define USEAGE_COUNT_EXACT   /* search all active lifetimes and regard */

Definition at line 57 of file lsra.hpp.

Typedef Documentation

typedef struct lsradata lsradata

Definition at line 194 of file lsra.hpp.

Function Documentation

bool lsra ( jitdata jd)

Definition at line 101 of file lsra.cpp.