Ignore:
Timestamp:
Jan 30, 2015, 1:27:51 AM (10 years ago)
Author:
bird
Message:

Started on a make expression and string expansion 'compiler'.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/variable.c

    r2758 r2765  
    4141#ifdef CONFIG_WITH_STRCACHE2
    4242# include <stddef.h>
     43#endif
     44#ifdef CONFIG_WITH_COMPILER
     45# include "kmk_cc_exec.h"
    4346#endif
    4447
     
    383386          v->origin = origin;
    384387          v->recursive = recursive;
    385           MAKE_STATS_2(v->changes++);
     388         MAKE_STATS_2(v->changes++);
     389#ifdef CONFIG_WITH_COMPILER
     390         if (v->evalprog || v->expandprog)
     391           kmk_cc_variable_changed (v);
     392#endif
    386393        }
    387394      return v;
     
    445452#endif
    446453  v->export = v_default;
     454#ifdef CONFIG_WITH_COMPILER
     455  v->evalprog = 0;
     456  v->expandprog = 0;
     457  v->evalval_count = 0;
     458  v->expand_count = 0;
     459#else
     460  MAKE_STATS_2(v->expand_count = 0);
     461  MAKE_STATS_2(v->evalval_count = 0);
     462#endif
    447463  MAKE_STATS_2(v->changes = 0);
    448464  MAKE_STATS_2(v->reallocs = 0);
    449465  MAKE_STATS_2(v->references = 0);
    450   MAKE_STATS_2(v->cEvalVals = 0);
    451466  MAKE_STATS_2(v->cTicksEvalVal = 0);
    452467
     
    589604          free (v->value);
    590605      MAKE_STATS_2(v->changes++);
     606#ifdef CONFIG_WITH_COMPILER
     607      if (v->evalprog || v->expandprog)
     608        kmk_cc_variable_changed (v);
     609#endif
    591610    }
    592611  else
     
    605624      v->aliased = 0;
    606625      v->export = v_default;
     626#ifdef CONFIG_WITH_COMPILER
     627      v->evalprog = 0;
     628      v->expandprog = 0;
     629      v->evalval_count = 0;
     630      v->expand_count = 0;
     631#else
     632      MAKE_STATS_2(v->expand_count = 0);
     633      MAKE_STATS_2(v->evalval_count = 0);
     634#endif
    607635      MAKE_STATS_2(v->changes = 0);
    608636      MAKE_STATS_2(v->reallocs = 0);
    609637      MAKE_STATS_2(v->references = 0);
    610       MAKE_STATS_2(v->cEvalVals = 0);
    611638      MAKE_STATS_2(v->cTicksEvalVal = 0);
    612639      v->exportable = 1;
     
    12421269#ifndef CONFIG_WITH_STRCACHE2
    12431270  free (v->name);
     1271#endif
     1272#ifdef CONFIG_WITH_COMPILER
     1273  if (v->evalprog || v->expandprog)
     1274    kmk_cc_variable_deleted (v);
    12441275#endif
    12451276#ifdef CONFIG_WITH_RDONLY_VARIABLE_VALUE
     
    13621393            if (from_var->alias)
    13631394              fatal(NULL, ("Attempting to delete variable aliased '%s'"), from_var->name);
     1395#endif
     1396#ifdef CONFIG_WITH_COMPILER
     1397            if (from_var->evalprog || from_var->expandprog)
     1398              kmk_cc_variable_deleted (from_var);
    13641399#endif
    13651400#ifdef CONFIG_WITH_RDONLY_VARIABLE_VALUE
     
    23352370               free (free_value);
    23362371            MAKE_STATS_2(v->changes++);
     2372# ifdef CONFIG_WITH_COMPILER
     2373            if (v->evalprog || v->expandprog)
     2374              kmk_cc_variable_changed (v);
     2375# endif
    23372376            return v;
    23382377#else /* !CONFIG_WITH_VALUE_LENGTH */
     
    27652804
    27662805
     2806#if defined (CONFIG_WITH_COMPILER) || defined (CONFIG_WITH_MAKE_STATS)
     2807static unsigned long var_stats_evalvals, var_stats_evalvaled;
     2808static unsigned long var_stats_expands, var_stats_expanded;
     2809#endif
    27672810#ifdef CONFIG_WITH_MAKE_STATS
    27682811static unsigned long var_stats_changes, var_stats_changed;
    27692812static unsigned long var_stats_reallocs, var_stats_realloced;
    27702813static unsigned long var_stats_references, var_stats_referenced;
    2771 static unsigned long var_stats_evalvals, var_stats_evalvaled;
    2772 static uintmax_t var_stats_evalval_ticks;
    27732814static unsigned long var_stats_val_len, var_stats_val_alloc_len;
    27742815static unsigned long var_stats_val_rdonly_len;
     
    28382879#endif /* KMK */
    28392880
     2881#if defined (CONFIG_WITH_COMPILER) || defined (CONFIG_WITH_MAKE_STATS)
     2882  if (v->evalval_count != 0)
     2883# ifdef CONFIG_WITH_MAKE_STATS
     2884    printf (_(", %u evalvals (%llu ticks)"), v->evalval_count, v->cTicksEvalVal);
     2885# else
     2886    printf (_(", %u evalvals"), v->evalval_count);
     2887# endif
     2888  var_stats_evalvals += v->evalval_count;
     2889  var_stats_evalvaled += (v->evalval_count != 0);
     2890
     2891  if (v->expand_count != 0)
     2892    printf (_(", %u expands"), v->expand_count);
     2893  var_stats_expands += v->expand_count;
     2894  var_stats_expanded += (v->expand_count != 0);
     2895# ifdef CONFIG_WITH_COMPILER
     2896  if (v->evalprog != 0)
     2897    printf (_(", evalprog"));
     2898  if (v->expandprog != 0)
     2899    printf (_(", expandprog"));
     2900# endif
     2901#endif
     2902
    28402903#ifdef CONFIG_WITH_MAKE_STATS
    28412904  if (v->changes != 0)
    2842       printf (_(", %u changes"), v->changes);
     2905    printf (_(", %u changes"), v->changes);
    28432906  var_stats_changes += v->changes;
    28442907  var_stats_changed += (v->changes != 0);
    28452908
    28462909  if (v->reallocs != 0)
    2847       printf (_(", %u reallocs"), v->reallocs);
     2910    printf (_(", %u reallocs"), v->reallocs);
    28482911  var_stats_reallocs += v->reallocs;
    28492912  var_stats_realloced += (v->reallocs != 0);
    28502913
    28512914  if (v->references != 0)
    2852       printf (_(", %u references"), v->references);
     2915    printf (_(", %u references"), v->references);
    28532916  var_stats_references += v->references;
    28542917  var_stats_referenced += (v->references != 0);
    2855 
    2856   if (v->cEvalVals != 0)
    2857       //printf (_(", %u evalvals (%llu ticks)"), v->cEvalVals, v->cTicksEvalVal);
    2858       printf (_(", %u evalvals (%llu ms)"), v->cEvalVals, v->cTicksEvalVal / 3299998);
    2859   var_stats_evalvals += v->cEvalVals;
    2860   var_stats_evalvaled += (v->cEvalVals != 0);
    28612918
    28622919  var_stats_val_len += v->value_length;
     
    29142971print_variable_set (struct variable_set *set, char *prefix)
    29152972{
     2973#if defined (CONFIG_WITH_COMPILER) || defined (CONFIG_WITH_MAKE_STATS)
     2974  var_stats_expands = var_stats_expanded = var_stats_evalvals
     2975    = var_stats_evalvaled = 0;
     2976#endif
    29162977#ifdef CONFIG_WITH_MAKE_STATS
    29172978  var_stats_changes = var_stats_changed = var_stats_reallocs
     
    29192980    = var_stats_val_len = var_stats_val_alloc_len
    29202981    = var_stats_val_rdonly_len = 0;
     2982#endif
    29212983
    29222984  hash_map_arg (&set->table, print_variable, prefix);
     
    29242986  if (set->table.ht_fill)
    29252987    {
     2988#ifdef CONFIG_WITH_MAKE_STATS
    29262989      unsigned long fragmentation;
    29272990
     
    29533016               (unsigned int)((100.0 * var_stats_referenced) / set->table.ht_fill),
    29543017               var_stats_references);
     3018#endif
     3019#if defined (CONFIG_WITH_COMPILER) || defined (CONFIG_WITH_MAKE_STATS)
     3020      if (var_stats_evalvals)
     3021        printf(_("#   evalvaled %5lu (%2u%%),    evalval calls %6lu\n"),
     3022               var_stats_evalvaled,
     3023               (unsigned int)((100.0 * var_stats_evalvaled) / set->table.ht_fill),
     3024               var_stats_evalvals);
     3025      if (var_stats_expands)
     3026        printf(_("#    expanded %5lu (%2u%%),          expands %6lu\n"),
     3027               var_stats_expanded,
     3028               (unsigned int)((100.0 * var_stats_expanded) / set->table.ht_fill),
     3029               var_stats_expands);
     3030#endif
    29553031      }
    2956 #else
    2957   hash_map_arg (&set->table, print_variable, prefix);
    2958 #endif
    29593032
    29603033  fputs (_("# variable set hash-table stats:\n"), stdout);
Note: See TracChangeset for help on using the changeset viewer.