merging stuff...made need to clean up some stuff...but need to push it somewhere...
authorBrian Demsky <bdemsky@uci.edu>
Fri, 18 May 2012 23:32:38 +0000 (16:32 -0700)
committerBrian Demsky <bdemsky@uci.edu>
Fri, 18 May 2012 23:32:38 +0000 (16:32 -0700)
Merge branch 'subramanian'

Conflicts:
.gitignore
Makefile
action.h
userprog.c

1  2 
.gitignore
Makefile
action.h
main.cc
model.cc
model.h
threads.cc
userprog.c

diff --cc .gitignore
index ab5a84ad8ea49a161901625cf3fd22202a3d5851,6223e7e247fe260fa7f4aa31f9203c88dace4695..f9a26768ae7410a9403f3d87bec5d3829bcb0ab9
@@@ -3,6 -3,7 +3,10 @@@
  .*.swp
  *.so
  *~
++<<<<<<< HEAD
++=======
+ *.*~
++>>>>>>> subramanian
  
  # files in this directory
  /model
diff --cc Makefile
index e61de2a159ae066d8be1471b0e259a0307a5177a,8344effd65c0bc1ab51863901cd19eea584ebf74..b67d9947501e7685da888f8dc200a32516ee6348
+++ b/Makefile
@@@ -8,17 -10,22 +10,22 @@@ LIB_MEM_SO=lib$(LIB_MEM).s
  USER_O=userprog.o
  USER_H=libthreads.h libatomic.h
  
- MODEL_CC=libthreads.cc schedule.cc libatomic.cc model.cc malloc.c threads.cc tree.cc librace.cc action.cc nodestack.cc clockvector.cc main.cc
- MODEL_O=libthreads.o schedule.o libatomic.o model.o malloc.o threads.o tree.o librace.o action.o nodestack.o clockvector.o main.o
- MODEL_H=libthreads.h schedule.h common.h libatomic.h model.h threads.h tree.h librace.h action.h nodestack.h clockvector.h
 -MODEL_CC=libthreads.cc schedule.cc libatomic.cc model.cc threads.cc tree.cc librace.cc action.cc main.cc snapshot-interface.cc
 -MODEL_O=libthreads.o schedule.o libatomic.o model.o threads.o tree.o librace.o action.o main.o snapshot-interface.o
 -MODEL_H=libthreads.h schedule.h common.h libatomic.h model.h threads.h tree.h librace.h action.h snapshot-interface.h
++MODEL_CC=libthreads.cc schedule.cc libatomic.cc model.cc malloc.c threads.cc tree.cc librace.cc action.cc nodestack.cc clockvector.cc main.cc snapshot-interface.cc
++MODEL_O=libthreads.o schedule.o libatomic.o model.o malloc.o threads.o tree.o librace.o action.o nodestack.o clockvector.o main.o snapshot-interface.o
++MODEL_H=libthreads.h schedule.h common.h libatomic.h model.h threads.h tree.h librace.h action.h nodestack.h clockvector.h snapshot-interface.h
+ SHMEM_CC=snapshot.cc malloc.c mymemory.cc
+ SHMEM_O=snapshot.o malloc.o mymemory.o
+ SHMEM_H=snapshot.h snapshotimp.h mymemory.h
  
  CPPFLAGS=-Wall -g
- LDFLAGS=-ldl
+ LDFLAGS=-ldl -lrt
  
+ MEMCPPFLAGS=-fPIC -g -c -Wall
  all: $(BIN)
  
- $(BIN): $(USER_O) $(LIB_SO)
-       $(CXX) -o $(BIN) $(USER_O) -L. -l$(LIB_NAME) $(CPPFLAGS)
+ $(BIN): $(USER_O) $(LIB_SO) $(LIB_MEM_SO)
+       $(CXX) -o $(BIN) $(USER_O) -L. -l$(LIB_NAME) -l$(LIB_MEM) $(CPPFLAGS)
  
  # note: implicit rule for generating $(USER_O) (i.e., userprog.c -> userprog.o)
  
diff --cc action.h
index cfe1f34eece13b4600f6de66393a872c7540e33a,c069cab3a3c5c3a7e6804498a2f6262b753a6f20..2f856e9dfa9be1363dacd91ac84384a52d93cd07
+++ b/action.h
@@@ -43,13 -39,7 +42,14 @@@ public
        bool same_var(ModelAction *act);
        bool same_thread(ModelAction *act);
        bool is_dependent(ModelAction *act);
 +
 +      inline bool operator <(const ModelAction& act) const {
 +              return get_seq_number() < act.get_seq_number();
 +      }
 +      inline bool operator >(const ModelAction& act) const {
 +              return get_seq_number() > act.get_seq_number();
 +      }
+   MEMALLOC
  private:
        action_type type;
        memory_order order;
diff --cc main.cc
Simple merge
diff --cc model.cc
Simple merge
diff --cc model.h
Simple merge
diff --cc threads.cc
Simple merge
diff --cc userprog.c
index 402cb0d29128aadef5cf67c71a8ca9cf976f4922,5598bfb4b7b6558496b2ea5383d90500d8e014a2..0948f0bc395a5d103963e99d81592ac6e2307072
@@@ -9,12 -8,9 +9,12 @@@ static void a(atomic_int *obj
        int i;
        int ret;
  
 -      for (i = 0; i < 7; i++) {
 +      store_32(&i, 10);
 +      printf("load 32 yields: %d\n", load_32(&i));
 +
 +      for (i = 0; i < 2; i++) {
                printf("Thread %d, loop %d\n", thrd_current(), i);
-               switch (i % 4) {
+               switch (i  ) {
                case 1:
                        ret = atomic_load(obj);
                        printf("Read value: %d\n", ret);