Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.2
libgcj33
pathlength.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pathlength.patch of Package libgcj33
* Makefile.in (cse.o): Add params.h dependency. * cse.c: Include params.h. (PATHLENGTH): Removed. (struct cse_basic_block_data): Make path array dynamic. (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead of PATHLENGTH. (cse_main, cse_basic_block): Allocate path array. * params.def (PARAM_MAX_CSE_PATH_LENGTH): New. Index: Makefile.in =================================================================== RCS file: /cvsroot/gcc/gcc/gcc/Makefile.in,v retrieving revision 1.955.2.17 diff -c -3 -p -r1.955.2.17 Makefile.in *** gcc/Makefile.in 1 May 2003 09:55:35 -0000 1.955.2.17 --- gcc/Makefile.in 2 Jun 2003 14:27:16 -0000 *************** cselib.o : cselib.c $(CONFIG_H) $(SYSTEM *** 1508,1514 **** output.h function.h cselib.h $(GGC_H) $(TM_P_H) gt-cselib.h cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h flags.h \ real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h output.h function.h \ ! $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h \ flags.h real.h insn-config.h ggc.h $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) \ function.h output.h toplev.h $(TM_P_H) $(PARAMS_H) except.h gt-gcse.h --- 1508,1514 ---- output.h function.h cselib.h $(GGC_H) $(TM_P_H) gt-cselib.h cse.o : cse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h flags.h \ real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h output.h function.h \ ! $(BASIC_BLOCK_H) $(GGC_H) $(TM_P_H) $(TIMEVAR_H) $(PARAMS_H) gcse.o : gcse.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(REGS_H) hard-reg-set.h \ flags.h real.h insn-config.h ggc.h $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) \ function.h output.h toplev.h $(TM_P_H) $(PARAMS_H) except.h gt-gcse.h Index: cse.c =================================================================== RCS file: /cvsroot/gcc/gcc/gcc/cse.c,v retrieving revision 1.243.2.3 diff -c -3 -p -r1.243.2.3 cse.c *** gcc/cse.c 1 May 2003 09:55:38 -0000 1.243.2.3 --- gcc/cse.c 2 Jun 2003 14:27:16 -0000 *************** Software Foundation, 59 Temple Place - S *** 38,43 **** --- 38,44 ---- #include "output.h" #include "ggc.h" #include "timevar.h" + #include "params.h" /* The basic idea of common subexpression elimination is to go through the code, keeping a record of expressions that would *************** static struct table_elt *last_jump_equiv *** 561,570 **** static int constant_pool_entries_cost; - /* Define maximum length of a branch path. */ - - #define PATHLENGTH 10 - /* This data describes a block that will be processed by cse_basic_block. */ struct cse_basic_block_data --- 562,567 ---- *************** struct cse_basic_block_data *** 588,594 **** except that it is used when the destination label is not preceded by a BARRIER. */ enum taken {TAKEN, NOT_TAKEN, AROUND} status; ! } path[PATHLENGTH]; }; /* Nonzero if X has the form (PLUS frame-pointer integer). We check for --- 585,591 ---- except that it is used when the destination label is not preceded by a BARRIER. */ enum taken {TAKEN, NOT_TAKEN, AROUND} status; ! } *path; }; /* Nonzero if X has the form (PLUS frame-pointer integer). We check for *************** cse_end_of_basic_block (insn, data, foll *** 6981,6987 **** In this case invalidate_skipped_block will be called to invalidate any registers set in the block when following the jump. */ ! else if ((follow_jumps || skip_blocks) && path_size < PATHLENGTH - 1 && GET_CODE (p) == JUMP_INSN && GET_CODE (PATTERN (p)) == SET && GET_CODE (SET_SRC (PATTERN (p))) == IF_THEN_ELSE --- 6978,6984 ---- In this case invalidate_skipped_block will be called to invalidate any registers set in the block when following the jump. */ ! else if ((follow_jumps || skip_blocks) && path_size < PARAM_VALUE (PARAM_MAX_CSE_PATH_LENGTH) - 1 && GET_CODE (p) == JUMP_INSN && GET_CODE (PATTERN (p)) == SET && GET_CODE (SET_SRC (PATTERN (p))) == IF_THEN_ELSE *************** cse_main (f, nregs, after_loop, file) *** 7111,7116 **** --- 7108,7116 ---- rtx insn = f; int i; + val.path = xmalloc (sizeof (struct branch_path) + * PARAM_VALUE (PARAM_MAX_CSE_PATH_LENGTH)); + cse_jumps_altered = 0; recorded_label_ref = 0; constant_pool_entries_cost = 0; *************** cse_main (f, nregs, after_loop, file) *** 7234,7239 **** --- 7234,7240 ---- end_alias_analysis (); free (uid_cuid); free (reg_eqv_table); + free (val.path); return cse_jumps_altered || recorded_label_ref; } *************** cse_basic_block (from, to, next_branch, *** 7411,7417 **** --- 7412,7421 ---- following branches in this case. */ to_usage = 0; val.path_size = 0; + val.path = xmalloc (sizeof (struct branch_path) + * PARAM_VALUE (PARAM_MAX_CSE_PATH_LENGTH)); cse_end_of_basic_block (insn, &val, 0, 0, 0); + free (val.path); /* If the tables we allocated have enough space left to handle all the SETs in the next basic block, Index: params.def =================================================================== RCS file: /cvsroot/gcc/gcc/gcc/params.def,v retrieving revision 1.16.2.6 diff -c -3 -p -r1.16.2.6 params.def *** gcc/params.def 1 May 2003 09:55:43 -0000 1.16.2.6 --- gcc/params.def 2 Jun 2003 14:27:16 -0000 *************** DEFPARAM(PARAM_MAX_CROSSJUMP_EDGES, *** 257,262 **** --- 257,268 ---- "The maximum number of incoming edges to consider for crossjumping", 100) + /* The maximum length of path considered in cse. */ + DEFPARAM(PARAM_MAX_CSE_PATH_LENGTH, + "max-cse-path-length", + "The maximum length of path considered in cse.", + 10) + #ifdef ENABLE_GC_ALWAYS_COLLECT # define GGC_MIN_EXPAND_DEFAULT 0 # define GGC_MIN_HEAPSIZE_DEFAULT 0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor