cvsuser     03/11/03 17:25:08

  Modified:    imcc     cfg.c main.c optimizer.c stacks.c symreg.c
  Log:
  Final batch of reformatting.
  
  Revision  Changes    Path
  1.49      +53 -29    parrot/imcc/cfg.c
  
  Index: cfg.c
  ===================================================================
  RCS file: /cvs/public/parrot/imcc/cfg.c,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -w -r1.48 -r1.49
  --- cfg.c     27 Oct 2003 06:39:20 -0000      1.48
  +++ cfg.c     4 Nov 2003 01:25:07 -0000       1.49
  @@ -1,11 +1,3 @@
  -
  -#include <stdlib.h>
  -#include <string.h>
  -#include "imc.h"
  -#include "optimizer.h"
  -
  -/* #define ALIAS */
  -
   /*
    * cfg.c
    *
  @@ -16,6 +8,14 @@
    * flow of execution between blocks.
    */
   
  +
  +#include <stdlib.h>
  +#include <string.h>
  +#include "imc.h"
  +#include "optimizer.h"
  +
  +/* #define ALIAS */
  +
   static void add_instruc_reads(Instruction *ins, SymReg *r0);
   static void add_instruc_writes(Instruction *ins, SymReg *r0);
   static void propagate_need(Basic_block *bb, SymReg* r, int i);
  @@ -33,6 +33,7 @@
   #define INVOKE_SUB_RET  2
   #define INVOKE_SUB_LOOP 3
   #define INVOKE_SUB_OTHER 4
  +
   static int
   check_invoke_type(Instruction *ins)
   {
  @@ -58,7 +59,8 @@
   }
   
   void
  -find_basic_blocks (Parrot_Interp interpreter, int first) {
  +find_basic_blocks (Parrot_Interp interpreter, int first)
  +{
       Basic_block *bb;
       Instruction *ins;
       int nu = 0;
  @@ -280,7 +282,8 @@
   /* find the placement of the label, and link the two nodes */
   
   static void
  -bb_findadd_edge(Parrot_Interp interpreter, Basic_block *from, SymReg *label) {
  +bb_findadd_edge(Parrot_Interp interpreter, Basic_block *from, SymReg *label)
  +{
       Instruction *ins;
       SymReg *r = find_sym(label->name);
   
  @@ -307,7 +310,8 @@
   }
   
   
  -int blocks_are_connected(Basic_block *from, Basic_block *to)
  +int
  +blocks_are_connected(Basic_block *from, Basic_block *to)
   {
       Edge *pred;
       for (pred = to->pred_list; pred != NULL; pred=pred->pred_next) {
  @@ -319,8 +323,8 @@
   
   
   static void
  -bb_add_edge(Parrot_Interp interpreter, Basic_block *from, Basic_block *to) {
  -
  +bb_add_edge(Parrot_Interp interpreter, Basic_block *from, Basic_block *to)
  +{
       Edge *e;
       if (blocks_are_connected(from, to))
        return;
  @@ -374,7 +378,8 @@
       return i;
   }
   
  -static void add_instruc_reads(Instruction *ins, SymReg *r0)
  +static void
  +add_instruc_reads(Instruction *ins, SymReg *r0)
   {
       int i;
       for (i = 0; i < IMCC_MAX_REGS && ins->r[i]; i++)
  @@ -389,7 +394,8 @@
       ins->flags |= (1<<i);
   }
   
  -static void add_instruc_writes(Instruction *ins, SymReg *r0)
  +static void
  +add_instruc_writes(Instruction *ins, SymReg *r0)
   {
       int i;
       for (i = 0; i < IMCC_MAX_REGS && ins->r[i]; i++)
  @@ -402,6 +408,7 @@
       ins->r[i] = r0;
       ins->flags |= (1<< (16+i));
   }
  +
   #ifdef ALIAS
   /*
    * set P1, P0
  @@ -414,7 +421,8 @@
    * XXX currently turned off, this extends life ranges too much
    */
   
  -static void propagate_alias(Parrot_Interp interpreter)
  +static void
  +propagate_alias(Parrot_Interp interpreter)
   {
       Instruction *ins, *curr;
       SymReg *r0, *r1;
  @@ -453,7 +461,9 @@
   }
   #endif
   
  -void life_analysis(Parrot_Interp interpreter) {
  +void
  +life_analysis(Parrot_Interp interpreter)
  +{
       int i;
       SymReg** reglist = IMCC_INFO(interpreter)->reglist;
   
  @@ -466,7 +476,8 @@
   }
   
   static void
  -analyse_life_symbol(Parrot_Interp interpreter, SymReg* r) {
  +analyse_life_symbol(Parrot_Interp interpreter, SymReg* r)
  +{
       int i;
   
       if (r->life_info)
  @@ -522,7 +533,8 @@
    */
   
   static void
  -analyse_life_block(Parrot_Interp interpreter, Basic_block* bb, SymReg* r) {
  +analyse_life_block(Parrot_Interp interpreter, Basic_block* bb, SymReg* r)
  +{
       Instruction* ins, *special;
       Life_range* l;
   
  @@ -585,7 +597,8 @@
   
   
   static void
  -propagate_need(Basic_block *bb, SymReg* r, int i) {
  +propagate_need(Basic_block *bb, SymReg* r, int i)
  +{
       Edge *edge;
       Basic_block *pred;
       Life_range *l;
  @@ -648,7 +661,8 @@
    */
   
   void
  -compute_dominators (Parrot_Interp interpreter) {
  +compute_dominators (Parrot_Interp interpreter)
  +{
   #define USE_BFS 1
   
   #if !USE_BFS
  @@ -810,7 +824,8 @@
    */
   
   void
  -find_loops (Parrot_Interp interpreter) {
  +find_loops (Parrot_Interp interpreter)
  +{
       int i, succ_index;
       Set* dom;
       Edge* edge;
  @@ -845,7 +860,8 @@
   /* Incresases the loop_depth of all the nodes in a loop */
   
   static void
  -mark_loop (Parrot_Interp interpreter, Edge* e){
  +mark_loop (Parrot_Interp interpreter, Edge* e)
  +{
       Set* loop;
       Basic_block *header, *footer, *enter;
       int i;
  @@ -921,7 +937,9 @@
       IMCC_INFO(interpreter)->loop_info = 0;
   }
   
  -void search_predecessors_not_in(Basic_block *node, Set* s) {
  +void
  +search_predecessors_not_in(Basic_block *node, Set* s)
  +{
      Edge *edge;
      Basic_block *pred;
   
  @@ -939,8 +957,8 @@
   /*** Utility functions ***/
   
   static void
  -init_basic_blocks(Parrot_Interp interpreter) {
  -
  +init_basic_blocks(Parrot_Interp interpreter)
  +{
       if (IMCC_INFO(interpreter)->bb_list != NULL)
           clear_basic_blocks(interpreter);
       IMCC_INFO(interpreter)->bb_list =
  @@ -950,7 +968,9 @@
       IMCC_INFO(interpreter)->edge_list = 0;
   }
   
  -void clear_basic_blocks(Parrot_Interp interpreter) {
  +void
  +clear_basic_blocks(Parrot_Interp interpreter)
  +{
       int i;
       if (IMCC_INFO(interpreter)->bb_list) {
           for (i=0; i < IMCC_INFO(interpreter)->n_basic_blocks; i++)
  @@ -964,7 +984,8 @@
   }
   
   static Basic_block*
  -make_basic_block(Parrot_Interp interpreter, Instruction* ins) {
  +make_basic_block(Parrot_Interp interpreter, Instruction* ins)
  +{
       Basic_block *bb;
       int n;
   
  @@ -1000,7 +1021,9 @@
       return bb;
   }
   
  -Life_range* make_life_range(SymReg *r, int idx) {
  +Life_range *
  +make_life_range(SymReg *r, int idx)
  +{
      Life_range *l;
   
      l = calloc(1, sizeof(Life_range));
  @@ -1010,6 +1033,7 @@
      r->life_info[idx] = l;
      return l;
   }
  +
   /*
    * Local variables:
    * c-indentation-style: bsd
  
  
  
  1.59      +10 -5     parrot/imcc/main.c
  
  Index: main.c
  ===================================================================
  RCS file: /cvs/public/parrot/imcc/main.c,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -w -r1.58 -r1.59
  --- main.c    31 Oct 2003 11:08:10 -0000      1.58
  +++ main.c    4 Nov 2003 01:25:07 -0000       1.59
  @@ -26,13 +26,15 @@
   static char optimizer_opt[20];
   extern FILE *yyin;
   
  -static void usage(FILE* fp)
  +static void
  +usage(FILE* fp)
   {
       fprintf(fp,
       "parrot -[abcCEfgGhjpPrStvVwy.] [-d [FLAGS]] [-O [level]] [-o FILE] <file>\n");
   }
   
  -static void help_debug(void)
  +static void
  +help_debug(void)
   {
       printf(
       "parrot ... -d [Flags] ...\n"
  @@ -49,7 +51,8 @@
       "    0x4000    PBC fixups\n");
   }
   
  -static void help(void)
  +static void
  +help(void)
   {
       printf(
       "parrot [Options] <file>\n"
  @@ -88,7 +91,8 @@
   }
   
   
  -static void imcc_version(void)
  +static void
  +imcc_version(void)
   {
       printf("This is parrot version " PARROT_VERSION " built for "
               PARROT_ARCHNAME ".\n\
  @@ -390,7 +394,8 @@
       }
   }
   
  -int main(int argc, char * argv[])
  +int
  +main(int argc, char * argv[])
   {
       struct PackFile *pf;
       int obj_file;
  
  
  
  1.41      +24 -11    parrot/imcc/optimizer.c
  
  Index: optimizer.c
  ===================================================================
  RCS file: /cvs/public/parrot/imcc/optimizer.c,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -w -r1.40 -r1.41
  --- optimizer.c       23 Oct 2003 17:02:49 -0000      1.40
  +++ optimizer.c       4 Nov 2003 01:25:07 -0000       1.41
  @@ -62,7 +62,9 @@
   static int loop_optimization(struct Parrot_Interp *);
   static int clone_remove(struct Parrot_Interp *);
   
  -void pre_optimize(struct Parrot_Interp *interpreter) {
  +void
  +pre_optimize(struct Parrot_Interp *interpreter)
  +{
       if (optimizer_level & OPT_PRE) {
           info(interpreter, 2, "pre_optimize\n");
           subst_constants_mix(interpreter);
  @@ -76,7 +78,9 @@
       }
   }
   
  -int cfg_optimize(struct Parrot_Interp *interpreter) {
  +int
  +cfg_optimize(struct Parrot_Interp *interpreter)
  +{
       UNUSED(interpreter);
       if (dont_optimize)
           return 0;
  @@ -93,8 +97,9 @@
       return 0;
   }
   
  -int optimize(struct Parrot_Interp *interpreter) {
  -
  +int
  +optimize(struct Parrot_Interp *interpreter)
  +{
       int any = 0;
       if (optimizer_level & OPT_CFG) {
           info(interpreter, 2, "optimize\n");
  @@ -110,7 +115,8 @@
   }
   
   /* get negated opterator for op */
  -const char * get_neg_op(char *op, int *n)
  +const char *
  +get_neg_op(char *op, int *n)
   {
       static struct br_pairs {
           const char *op;
  @@ -138,7 +144,8 @@
    * branch L2            ---
    * L1:                  L2:
    */
  -static void if_branch(struct Parrot_Interp *interpreter)
  +static void
  +if_branch(struct Parrot_Interp *interpreter)
   {
       Instruction *ins, *last;
       int reg;
  @@ -184,10 +191,12 @@
           ins = ins->next;
       }
   }
  +
   /* these are run after constant simplification, so it is
    * guaranteed, that one operand is non constant, if opsize == 4
    */
  -static void strength_reduce(struct Parrot_Interp *interpreter)
  +static void
  +strength_reduce(struct Parrot_Interp *interpreter)
   {
       Instruction *ins, *tmp;
       const char *ops[] = { "add", "sub", "mul", "div" };
  @@ -805,7 +814,8 @@
    * branch L2
    *
    */
  -static int branch_branch(struct Parrot_Interp *interpreter)
  +static int
  +branch_branch(struct Parrot_Interp *interpreter)
   {
       Instruction *ins, *next;
       SymReg * r;
  @@ -836,7 +846,8 @@
       return changed;
   }
   
  -static int unused_label(struct Parrot_Interp *interpreter)
  +static int
  +unused_label(struct Parrot_Interp *interpreter)
   {
       Instruction *ins;
       int used;
  @@ -898,7 +909,8 @@
       return changed;
   }
   
  -static int dead_code_remove(struct Parrot_Interp *interpreter)
  +static int
  +dead_code_remove(struct Parrot_Interp *interpreter)
   {
       Basic_block *bb;
       int i;
  @@ -955,7 +967,8 @@
   }
   
   /* optimizations with CFG & life info built */
  -static int used_once(Parrot_Interp interpreter)
  +static int
  +used_once(Parrot_Interp interpreter)
   {
       Instruction *ins;
       SymReg * r;
  
  
  
  1.7       +1 -0      parrot/imcc/stacks.c
  
  Index: stacks.c
  ===================================================================
  RCS file: /cvs/public/parrot/imcc/stacks.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -w -r1.6 -r1.7
  --- stacks.c  23 Oct 2003 17:02:49 -0000      1.6
  +++ stacks.c  4 Nov 2003 01:25:07 -0000       1.7
  @@ -92,6 +92,7 @@
   
       return entry->value;
   }
  +
   /*
    * Local variables:
    * c-indentation-style: bsd
  
  
  
  1.35      +77 -25    parrot/imcc/symreg.c
  
  Index: symreg.c
  ===================================================================
  RCS file: /cvs/public/parrot/imcc/symreg.c,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -w -r1.34 -r1.35
  --- symreg.c  23 Oct 2003 17:02:49 -0000      1.34
  +++ symreg.c  4 Nov 2003 01:25:07 -0000       1.35
  @@ -1,4 +1,11 @@
   /*
  + * symreg.c
  + *
  + * XXX: SymReg stuff has become overused. SymReg should be for symbolic
  + * registers, reg allocation, etc. but we are now using it for extensive
  + * symbol table management. Need to convert much of this over the use Symbol
  + * and SymbolTable (see symbol.h and symbol.c)
  + *
    * imcc symbol handling
    */
   
  @@ -10,7 +17,9 @@
   static SymReg * dup_sym(SymReg *r);
   
   
  -void push_namespace(char * name) {
  +void
  +push_namespace(char * name)
  +{
       Namespace * ns = (Namespace *) malloc(sizeof(*ns));
       ns->parent = namespace;
       ns->name = name;
  @@ -18,7 +27,9 @@
       namespace = ns;
   }
   
  -void pop_namespace(char * name) {
  +void
  +pop_namespace(char * name)
  +{
       Namespace * ns = namespace;
       if (ns == NULL) {
           fprintf(stderr, "pop() on empty namespace stack\n");
  @@ -44,7 +55,9 @@
   /* symbolic registers */
   
   /* Makes a new SymReg from its varname and type */
  -SymReg * _mk_symreg(SymReg* hsh[],char * name, int t) {
  +SymReg *
  +_mk_symreg(SymReg* hsh[],char * name, int t)
  +{
       SymReg * r;
       if((r = _get_sym(hsh, name)) && r->set == t) {
        free(name);
  @@ -66,18 +79,23 @@
       return r;
   }
   
  -SymReg * mk_symreg(char * name, int t) {
  +SymReg *
  +mk_symreg(char * name, int t)
  +{
       return _mk_symreg(hash, name, t);
   }
   
  -SymReg * mk_temp_reg(int t) {
  +SymReg *
  +mk_temp_reg(int t)
  +{
       char buf[128];
       static int temp;
       sprintf(buf, "__imcc_temp_%d", ++temp);
       return mk_symreg(str_dup(buf), t);
   }
   
  -SymReg * mk_pcc_sub(char * name, int proto) {
  +SymReg *
  +mk_pcc_sub(char * name, int proto) {
       SymReg *r = _mk_symreg(hash, name, proto);
       r->type = VT_PCC_SUB;
       r->pcc_sub = calloc(1, sizeof(struct pcc_sub_t));
  @@ -144,7 +162,8 @@
       r->pcc_sub->cc->type = VT_REGP;
   }
   
  -SymReg * mk_pasm_reg(char * name) {
  +SymReg * mk_pasm_reg(char * name)
  +{
       SymReg * r;
       if((r = _get_sym(hash, name))) {
        free(name);
  @@ -159,7 +178,9 @@
       return r;
   }
   
  -char * _mk_fullname(Namespace * ns, const char * name) {
  +char *
  +_mk_fullname(Namespace * ns, const char * name)
  +{
       char * result;
   
       if (ns == NULL) return str_dup(name);
  @@ -168,12 +189,14 @@
       return result;
   }
   
  -char * mk_fullname(const char * name) {
  +char * mk_fullname(const char * name)
  +{
       return _mk_fullname(namespace, name);
   }
   
   /* Makes a new identifier */
  -SymReg * mk_ident(char * name, int t) {
  +SymReg * mk_ident(char * name, int t)
  +{
       char * fullname = _mk_fullname(namespace, name);
       Identifier * ident;
       SymReg * r;
  @@ -204,19 +227,25 @@
   }
   
   /* Makes a new constant*/
  -SymReg * _mk_const(SymReg *hsh[], char * name, int t) {
  +SymReg *
  +_mk_const(SymReg *hsh[], char * name, int t)
  +{
       SymReg * r = _mk_symreg(hsh, name, t);
       r->type = VTCONST;
       r->use_count++;
       return r;
   }
   
  -SymReg * mk_const(char * name, int t) {
  +SymReg *
  +mk_const(char * name, int t)
  +{
       return _mk_const(ghash, name, t);
   }
   
   /* Makes a new address */
  -SymReg * _mk_address(SymReg *hsh[], char * name, int uniq) {
  +SymReg *
  +_mk_address(SymReg *hsh[], char * name, int uniq)
  +{
       SymReg * r;
       if (uniq == U_add_all) {
   
  @@ -247,10 +276,12 @@
   }
   
   
  -SymReg * mk_address(char * name, int uniq) {
  +SymReg * mk_address(char * name, int uniq)
  +{
       SymReg ** h = *name == '_' ? ghash : hash;
       return _mk_address(h, name, uniq);
   }
  +
   /* link keys to a keys structure = SymReg
    *
    * we might have
  @@ -289,7 +320,8 @@
    *
    */
   
  -static SymReg * dup_sym(SymReg *r)
  +static SymReg *
  +dup_sym(SymReg *r)
   {
       SymReg * new = malloc(sizeof(SymReg));
       if (!new)
  @@ -299,7 +331,8 @@
       return new;
   }
   
  -SymReg * link_keys(int nargs, SymReg * keys[])
  +SymReg *
  +link_keys(int nargs, SymReg * keys[])
   {
       SymReg * first, *key, *keychain;
       int i;
  @@ -383,21 +416,29 @@
   
   /*
    * This functions manipulate the hash of symbols.
  + * XXX: Migrate to use Symbol and SymbolTable
    *
    */
   
   /* Stores a symbol into the hash */
  -void _store_symreg(SymReg *hsh[], SymReg * r) {
  +void
  +_store_symreg(SymReg *hsh[], SymReg * r)
  +{
       int i = hash_str(r->name) % HASH_SIZE;
       r->next = hsh[i];
       hsh[i] = r;
   }
  -void store_symreg(SymReg * r) {
  +
  +void
  +store_symreg(SymReg * r)
  +{
       _store_symreg(hash, r);
   }
   
   /* Gets a symbol from the hash */
  -SymReg * _get_sym(SymReg * hsh[], const char * name) {
  +SymReg *
  +_get_sym(SymReg * hsh[], const char * name)
  +{
       SymReg * p;
       int i = hash_str(name) % HASH_SIZE;
       for(p = hsh[i]; p; p = p->next) {
  @@ -406,13 +447,17 @@
       }
       return 0;
   }
  -SymReg * get_sym(const char * name) {
  +
  +SymReg *
  +get_sym(const char * name)
  +{
       return _get_sym(hash, name);
   }
   
   /* find a symbol hash or ghash */
   SymReg *
  -_find_sym(Namespace * nspace, SymReg * hsh[], const char * name) {
  +_find_sym(Namespace * nspace, SymReg * hsh[], const char * name)
  +{
       Namespace * ns;
       SymReg *p;
   
  @@ -433,13 +478,16 @@
   }
   
   
  -SymReg * find_sym(const char * name) {
  +SymReg *
  +find_sym(const char * name)
  +{
       return _find_sym(namespace, hash, name);
   }
   
   
   void
  -_delete_sym(Parrot_Interp interpreter, SymReg * hsh[], const char * name) {
  +_delete_sym(Parrot_Interp interpreter, SymReg * hsh[], const char * name)
  +{
       SymReg ** p;
       int i = hash_str(name) % HASH_SIZE;
       for(p = &hsh[i]; *p; p = &(*p)->next) {
  @@ -457,7 +505,8 @@
   
   /* Deletes all symbols */
   void
  -clear_tables(Parrot_Interp interpreter, SymReg * hsh[]) {
  +clear_tables(Parrot_Interp interpreter, SymReg * hsh[])
  +{
       int i;
       SymReg * p, *next;
       for(i = 0; i < HASH_SIZE; i++) {
  @@ -477,7 +526,9 @@
   
   /* utility functions: */
   
  -unsigned int hash_str(const char * str) {
  +unsigned int
  +hash_str(const char * str)
  +{
       unsigned long key = 0;
       const char * s;
       for(s=str; *s; s++)
  @@ -494,3 +545,4 @@
    *
    * vim: expandtab shiftwidth=4:
   */
  +
  
  
  

Reply via email to