mono-basic-block.h 953 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /**
  2. * \file
  3. */
  4. #ifndef __MONO_METADATA_BASIC_BLOCK_H__
  5. #define __MONO_METADATA_BASIC_BLOCK_H__
  6. #include <glib.h>
  7. #include <mono/metadata/metadata.h>
  8. #include <mono/utils/mono-compiler.h>
  9. #include <mono/utils/mono-error.h>
  10. #include <mono/metadata/opcodes.h>
  11. typedef struct _MonoSimpleBasicBlock MonoSimpleBasicBlock;
  12. struct _MonoSimpleBasicBlock {
  13. MonoSimpleBasicBlock *next, *left, *right, *parent;
  14. GSList *out_bb;
  15. int start, end;
  16. unsigned colour : 1;
  17. unsigned dead : 1;
  18. };
  19. MonoSimpleBasicBlock*
  20. mono_basic_block_split (MonoMethod *method, MonoError *error, MonoMethodHeader *header);
  21. void
  22. mono_basic_block_free (MonoSimpleBasicBlock *bb);
  23. /*This function is here because opcodes.h is a public header*/
  24. int
  25. mono_opcode_value_and_size (const unsigned char **ip, const unsigned char *end, MonoOpcodeEnum *value);
  26. int
  27. mono_opcode_size (const unsigned char *ip, const unsigned char *end);
  28. #endif /* __MONO_METADATA_BASIC_BLOCK_H__ */