Implemeneted imprecise.
[mono-project.git] / mono / metadata / mono-basic-block.h
blob95876d5e84c9da4a55ec9b105dde24cb2e68a7a6
1 /**
2 * \file
3 */
5 #ifndef __MONO_METADATA_BASIC_BLOCK_H__
6 #define __MONO_METADATA_BASIC_BLOCK_H__
8 #include <glib.h>
9 #include <mono/metadata/metadata.h>
10 #include <mono/utils/mono-compiler.h>
11 #include <mono/utils/mono-error.h>
12 #include <mono/metadata/opcodes.h>
14 typedef struct _MonoSimpleBasicBlock MonoSimpleBasicBlock;
16 struct _MonoSimpleBasicBlock {
17 MonoSimpleBasicBlock *next, *left, *right, *parent;
18 GSList *out_bb;
19 int start, end;
20 unsigned colour : 1;
21 unsigned dead : 1;
24 MonoSimpleBasicBlock*
25 mono_basic_block_split (MonoMethod *method, MonoError *error, MonoMethodHeader *header);
27 void
28 mono_basic_block_free (MonoSimpleBasicBlock *bb);
30 /*This function is here because opcodes.h is a public header*/
31 int
32 mono_opcode_value_and_size (const unsigned char **ip, const unsigned char *end, MonoOpcodeEnum *value);
34 int
35 mono_opcode_size (const unsigned char *ip, const unsigned char *end);
37 #endif /* __MONO_METADATA_BASIC_BLOCK_H__ */