Advertisement
Ladies_Man

shared lib error

May 7th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.20 KB | None | 0 0
  1. //=====================================
  2. //=========PRINT-NODE-FUCNTION=========
  3. //=====================================
  4.  
  5.  
  6. /*
  7. void print_stmt(gimple stmt)
  8. {
  9.   int i;
  10.   switch (gimple_code(stmt)) {
  11.   case GIMPLE_ASM:
  12.     printf("asm code\n");
  13.     break;
  14.   case GIMPLE_CALL: {
  15.     tree callee = gimple_call_fndecl (stmt);
  16.  
  17.     if (callee != NULL_TREE) {
  18.       if (strcmp(function_name(DECL_STRUCT_FUNCTION(callee)), "(nofn)")) {
  19.         printf("function with name %s and %d arguments %d\n",function_name(DECL_STRUCT_FUNCTION(callee)), gimple_call_num_args (stmt), strcmp(function_name(DECL_STRUCT_FUNCTION(callee)), "(nofn)"));
  20.         for (i=0; i<gimple_call_num_args(stmt); i++) {
  21.           tree arg = gimple_call_arg(stmt, i);
  22.           printf("%d ", i);
  23.           //print_tree_obj(arg);
  24.         }
  25.       }
  26.     }
  27.    
  28.   } break;
  29.   case GIMPLE_ASSIGN: {
  30.     tree lhs = gimple_assign_lhs(stmt);
  31.    
  32.     int count = gimple_num_ops(stmt);
  33.  
  34.     printf("assign with %d arguments\n", count-1);
  35.  
  36.     switch (count-1) {
  37.       case 1: {
  38.         tree rhs = gimple_assign_rhs1 (stmt);
  39.         enum tree_code rhs_code = gimple_assign_rhs_code (stmt);
  40.         switch (rhs_code) {
  41.           PRINT_CASE( VIEW_CONVERT_EXPR );
  42.           PRINT_CASE( ASSERT_EXPR );
  43.           PRINT_CASE( FIXED_CONVERT_EXPR );
  44.           PRINT_CASE( ADDR_SPACE_CONVERT_EXPR );
  45.           PRINT_CASE( FIX_TRUNC_EXPR );
  46.           PRINT_CASE( FLOAT_EXPR );
  47.           PRINT_CASE( PAREN_EXPR );
  48.           PRINT_CASE( ABS_EXPR );
  49.           PRINT_CASE( NEGATE_EXPR );
  50.           default:
  51.  
  52.             if (TREE_CODE_CLASS (rhs_code) == tcc_declaration) {
  53.               if (DECL_NAME(rhs)) {
  54.                 printf("declaration %s\n", identifier_to_locale (IDENTIFIER_POINTER (DECL_NAME(rhs))));
  55.               } else {
  56.                 printf("declaration <unknown name>\n");
  57.               }
  58.  
  59.             } else if (TREE_CODE_CLASS (rhs_code) == tcc_constant) {
  60.               printf("constant\n");
  61.               print_tree_obj(rhs);
  62.            
  63.             } else {
  64.               printf("default %d\n", rhs_code);
  65.             }
  66.            
  67.         }
  68.       } break;
  69.       case 2: {
  70.  
  71.       } break;
  72.       case 3: {
  73.  
  74.       } break;
  75.     }
  76.  
  77.   } break;
  78.   case GIMPLE_RESX: {
  79.     printf("GIMPLE_RESX\n");
  80.   } break;
  81.   case GIMPLE_RETURN: {
  82.     printf("GIMPLE_RETURN\n");
  83.   } break;
  84.   case GIMPLE_SWITCH: {
  85.     printf("GIMPLE_SWITCH\n");
  86.   } break;
  87.   case GIMPLE_TRY: {
  88.     printf("GIMPLE_TRY\n");
  89.   } break;
  90.   case GIMPLE_GOTO: {
  91.     printf("GIMPLE_GOTO\n");
  92.   } break;
  93.   case GIMPLE_COND: {
  94.     printf("GIMPLE_COND\n");
  95.     //tree left = gimple_cond_lhs (gs);
  96.     //tree right = gimple_cond_rhs (gs);
  97.    
  98.   } break;
  99.   default: {
  100.     printf("default case %d\n", gimple_code(stmt));
  101.   }
  102.   }
  103.   printf("\n");
  104.  
  105. }
  106.  
  107. */
  108.  
  109. static void
  110. print_nodes()
  111. {
  112.     printf("===PRINTING NODES===\n");
  113.     basic_block bb;
  114.    
  115.     //FILE* dump_file = fopen("optlab1.txt", "w");
  116.  
  117.     FOR_EACH_BB_FN (bb, cfun)
  118.     {
  119.         gimple_stmt_iterator gsi;
  120.         for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) {
  121.         gimple stmt = gsi_stmt (gsi);
  122.         //print_stmt(stmt);
  123.        }
  124.        
  125.     }
  126.     //fclose(dump_file);
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement