changes
authorPeizhao Ou <peizhaoo@uci.edu>
Sat, 17 Jan 2015 02:04:32 +0000 (18:04 -0800)
committerPeizhao Ou <peizhaoo@uci.edu>
Sat, 17 Jan 2015 02:04:32 +0000 (18:04 -0800)
benchmark/chase-lev-deque-bugfix/deque.h
benchmark/cliffc-hashtable/cliffc_hashtable.h
src/edu/uci/eecs/specCompiler/codeGenerator/CodeGenerator.java
src/edu/uci/eecs/specCompiler/codeGenerator/CodeVariables.java

index f188a8fd9657c18888a4fcd93ab04a18eead3cc7..0e2fb2b269f7212f8c0d078784d65fce14d4a090 100644 (file)
@@ -37,12 +37,15 @@ typedef struct {
         id_tag_t *tag;
         @InitVar:
             __deque = new_spec_list();
+                       model_print("init_list\n");
             tag = new_id_tag(); // Beginning of available id
                @Cleanup:
-                       if (__deque)
-                               free_spec_list(__deque);
+                       if (__deque) {
+                               //free_spec_list(__deque);
+                               model_print("free_list\n");
+                       }
                        if (tag)
-                               free_id_tag();
+                               free_id_tag(tag);
         @DefineFunc:
             tag_elem_t* new_tag_elem(call_id_t id, int data) {
                 tag_elem_t *e = (tag_elem_t*) CMODEL_MALLOC(sizeof(tag_elem_t));
index b5b941e66d539d46b23f715638ec8d92818fe2b5..1160c13e80aa1caae68fc315ec84ab0dc5e0f2b9 100644 (file)
@@ -107,7 +107,8 @@ class cliffc_hashtable {
                                map = new_spec_table_default(equals_key);
                                id_map = new_spec_table_default(equals_id);
                                tag = new_id_tag();
-
+                       //@Cleanup:
+                       //      model_print("cleaning up\n");
                        @DefineFunc:
                        bool equals_key(void *ptr1, void *ptr2) {
                                TypeK *key1 = (TypeK*) ptr1,
index 49299d13a5ac1b295c79210efd7ebdaac14bcf5a..61e9fea80792a43491a275a6cc8b5106a283c8e5 100644 (file)
@@ -328,7 +328,7 @@ public class CodeGenerator {
 //             File[][] sources = { srcLinuxRWLocks,  srcMSQueue, srcRCU,
 //                             srcDeque, srcMCSLock, srcSPSCQueue, srcMPMCQueue, srcHashtable };
 
-                File[][] sources = {srcMSQueue };
+                File[][] sources = {srcMSQueue,srcHashtable, srcDeque };
                // Compile all the benchmarks
                for (int i = 0; i < sources.length; i++) {
                        CodeGenerator gen = new CodeGenerator(sources[i]);
index 999221bce28b81e3b703969a8debc45e2d049556..3d4583d37cd5198f870c27df7b4462087233666b 100644 (file)
@@ -461,9 +461,9 @@ public class CodeVariables {
                String structName = "anno_init", anno = "init";
                newCode.add("\t" + STRUCT_NEW_DECLARE_DEFINE(ANNO_INIT, structName));
                newCode.add("\t"
-                               + ASSIGN_TO_PTR(structName, "init_func", "__SPEC_INIT__"));
+                               + ASSIGN_TO_PTR(structName, "init_func", "(void*) __SPEC_INIT__"));
                newCode.add("\t"
-                               + ASSIGN_TO_PTR(structName, "cleanup_func", "__SPEC_CLEANUP__"));
+                               + ASSIGN_TO_PTR(structName, "cleanup_func", "(void*) __SPEC_CLEANUP__"));
                newCode.add("\t"
                                + ASSIGN_TO_PTR(structName, "func_table", "func_ptr_table"));
                newCode.add("\t"