Author: sewardj
Date: 2008-03-04 11:52:39 +0000 (Tue, 04 Mar 2008)
New Revision: 7557

Log:
A bit of tidying of SVal and Segment{ID,Set} primitives.


Modified:
   branches/HGDEV/helgrind/hg_main.c


Modified: branches/HGDEV/helgrind/hg_main.c
===================================================================
--- branches/HGDEV/helgrind/hg_main.c   2008-03-04 11:26:51 UTC (rev 7556)
+++ branches/HGDEV/helgrind/hg_main.c   2008-03-04 11:52:39 UTC (rev 7557)
@@ -1018,51 +1018,46 @@
 
 //------------- segment set, lock set --------------
 
-const int SEGMENT_SET_BITS = 26;
-const int LOCK_SET_BITS    = 24;
+#define SEGMENT_SET_BITS 26
+#define LOCK_SET_BITS    24
 
-const SVal  SHVAL_New      = ((SVal)(2<<8));
-const SVal  SHVAL_NoAccess = ((SVal)(1<<8));
-const SVal  SHVAL_Invalid  = ((SVal)(0));
-const SVal  SHVAL_Race     = ((SVal)(1ULL << 62));
+#define SHVAL_New       ((SVal)(2<<8))
+#define SHVAL_NoAccess  ((SVal)(1<<8))
+#define SHVAL_Invalid   ((SVal)(0))
+#define SHVAL_Race      ((SVal)(1ULL << 62))
 
-typedef ULong SegmentSet;
-typedef  WordSetID LockSet;
+typedef  ULong      SegmentSet;
+typedef  WordSetID  LockSet;
 
 static inline Bool SS_valid (SegmentSet ss) {
-  return ss < (1ULL << SEGMENT_SET_BITS);
+   return ss < (1ULL << SEGMENT_SET_BITS);
 }
 
-static inline Bool SS_is_singleton (SegmentSet ss)
-{
+static inline Bool SS_is_singleton (SegmentSet ss) {
    return (ss & (1ULL << (SEGMENT_SET_BITS-1))) != 0;
 }
 
-static inline UWord SS_get_size (SegmentSet ss) 
-{
+static inline UWord SS_get_size (SegmentSet ss) {
    if (SS_is_singleton(ss)) return 1;
    tl_assert(HG_(cardinalityWSU)(univ_ssets) > ss);
    return HG_(cardinalityWS)(univ_ssets, ss);
 }
 
-static inline SegmentSet SS_mk_singleton (SegmentID ss)
-{
+static inline SegmentSet SS_mk_singleton (SegmentID ss) {
    tl_assert(SEG_id_is_sane(ss));
    ss |= (1ULL << (SEGMENT_SET_BITS-1));
    tl_assert(SS_is_singleton(ss));
    return ss;
 }
 
-static inline SegmentID SS_get_singleton (SegmentSet ss)
-{
+static inline SegmentID SS_get_singleton (SegmentSet ss) {
    tl_assert(SS_is_singleton(ss));
    ss &= ~(1ULL << (SEGMENT_SET_BITS-1));
    tl_assert(SEG_id_is_sane(ss));
    return ss;
 }
 
-static inline SegmentID SS_get_element (SegmentSet ss, UWord i)
-{
+static inline SegmentID SS_get_element (SegmentSet ss, UWord i) {
    UWord nWords, *words;
    if (SS_is_singleton(ss))
       return SS_get_singleton(ss);
@@ -1071,12 +1066,10 @@
    return words[i];
 }
 
-
 static inline Bool LS_valid (LockSet ls) {
-  return ls < (1ULL << LOCK_SET_BITS);
+   return ls < (1ULL << LOCK_SET_BITS);
 }
 
-
 static inline SVal mk_SHVAL_RW (Bool is_w, SegmentSet ss, LockSet ls) {
    SVal res;
    tl_assert(SS_valid(ss));
@@ -1089,19 +1082,19 @@
    return res;
 }
 static inline SVal mk_SHVAL_R (SegmentSet ss, LockSet ls) {
-  return mk_SHVAL_RW(False, ss, ls);
+   return mk_SHVAL_RW(False, ss, ls);
 }
 static inline SVal mk_SHVAL_W (SegmentSet ss, LockSet ls) {
-  return mk_SHVAL_RW(True, ss, ls);
+   return mk_SHVAL_RW(True, ss, ls);
 }
 
 static inline SegmentSet get_SHVAL_SS (SVal sv) {
-  SegmentSet ss;
-  int shift = 62 - SEGMENT_SET_BITS;
-  int mask  = (1 << SEGMENT_SET_BITS) - 1;
-  ss = (sv >> shift) & mask;
-  tl_assert(SS_valid(ss));
-  return ss;
+   SegmentSet ss;
+   Int   shift = 62 - SEGMENT_SET_BITS;
+   ULong mask  = (1 << SEGMENT_SET_BITS) - 1;
+   ss = (sv >> shift) & mask;
+   tl_assert(SS_valid(ss));
+   return ss;
 }
 static inline LockSet get_SHVAL_LS (SVal sv) {
   LockSet ls;
@@ -1131,8 +1124,8 @@
 static inline Bool is_SHVAL_Race    (SVal sv) {return sv == SHVAL_Race;}
 
 static inline Bool is_SHVAL_valid ( SVal sv) {
-   return is_SHVAL_RW(sv) || sv == SHVAL_Race 
-         || sv == SHVAL_New || sv == SHVAL_NoAccess;
+   return is_SHVAL_RW(sv) || is_SHVAL_Race(sv)
+          || is_SHVAL_New(sv) || is_SHVAL_NoAccess(sv);
 }
 
 
@@ -3065,7 +3058,7 @@
    LockSet    currLS = is_w ? thr->locksetW
                             : thr->locksetA;
 
-   if (UNLIKELY(sv_old == SHVAL_Race)) {
+   if (UNLIKELY(is_SHVAL_Race(sv_old))) {
       // we already reported a race, don't bother again. 
       sv_new = sv_old;
       goto done;


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
Valgrind-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to