X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmini%2Fseq-points.h;h=e2a98696ef63800b0bd43f266303da6be1f581f6;hb=1575348f10b4d0908f4b3dd594f3202b32f82584;hp=10f3dd3103ac55896817e664bcf8f5fb0a4e32b9;hpb=b99438f021c498aeea784112151150b2ec107c2e;p=mono.git diff --git a/mono/mini/seq-points.h b/mono/mini/seq-points.h index 10f3dd3103a..e2a98696ef6 100644 --- a/mono/mini/seq-points.h +++ b/mono/mini/seq-points.h @@ -1,74 +1,30 @@ -/* +/** + * \file * Copyright 2014 Xamarin Inc + * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #ifndef __MONO_SEQ_POINTS_H__ #define __MONO_SEQ_POINTS_H__ -#define MONO_SEQ_POINT_FLAG_NONEMPTY_STACK 1 -#define MONO_SEQ_POINT_FLAG_EXIT_IL 2 - -/* IL offsets used to mark the sequence points belonging to method entry/exit events */ -#define METHOD_ENTRY_IL_OFFSET -1 -#define METHOD_EXIT_IL_OFFSET 0xffffff - -/* Native offset used to mark seq points in dead code */ -#define SEQ_POINT_NATIVE_OFFSET_DEAD_CODE -1 - -typedef struct { - int il_offset, native_offset, flags; - /* Offset of indexes of successor sequence points on the compressed buffer */ - int next_offset; - /* Number of entries in next */ - int next_len; -} SeqPoint; - -typedef struct MonoSeqPointInfo { - int dummy[0]; -} MonoSeqPointInfo; - -typedef struct { - SeqPoint seq_point; - guint8* ptr; - guint8* begin; - guint8* end; - gboolean has_debug_data; -} SeqPointIterator; - -void -seq_point_info_free (gpointer info); +#include void mono_save_seq_point_info (MonoCompile *cfg); MonoSeqPointInfo* -get_seq_points (MonoDomain *domain, MonoMethod *method); +mono_get_seq_points (MonoDomain *domain, MonoMethod *method); gboolean -find_next_seq_point_for_native_offset (MonoDomain *domain, MonoMethod *method, gint32 native_offset, MonoSeqPointInfo **info, SeqPoint* seq_point); +mono_find_next_seq_point_for_native_offset (MonoDomain *domain, MonoMethod *method, gint32 native_offset, MonoSeqPointInfo **info, SeqPoint* seq_point); gboolean -find_prev_seq_point_for_native_offset (MonoDomain *domain, MonoMethod *method, gint32 native_offset, MonoSeqPointInfo **info, SeqPoint* seq_point); +mono_find_prev_seq_point_for_native_offset (MonoDomain *domain, MonoMethod *method, gint32 native_offset, MonoSeqPointInfo **info, SeqPoint* seq_point); gboolean -find_seq_point (MonoDomain *domain, MonoMethod *method, gint32 il_offset, MonoSeqPointInfo **info, SeqPoint *seq_point); - -gboolean -seq_point_iterator_next (SeqPointIterator* it); - -void -seq_point_iterator_init (SeqPointIterator* it, MonoSeqPointInfo* info); +mono_find_seq_point (MonoDomain *domain, MonoMethod *method, gint32 il_offset, MonoSeqPointInfo **info, SeqPoint *seq_point); void -seq_point_init_next (MonoSeqPointInfo* info, SeqPoint sp, SeqPoint* next); - -int -seq_point_info_write (MonoSeqPointInfo* info, guint8* buffer); - -int -seq_point_info_read (MonoSeqPointInfo** info, guint8* buffer, gboolean copy); - -int -seq_point_info_get_write_size (MonoSeqPointInfo* info); +mono_bb_deduplicate_op_il_seq_points (MonoCompile *cfg, MonoBasicBlock *bb); -#endif /* __MONO_SEQ_POINTS_H__ */ \ No newline at end of file +#endif /* __MONO_SEQ_POINTS_H__ */