From 092a498dbc2650cf1b84a659e6c1bceaf50e8985 Mon Sep 17 00:00:00 2001 From: jakub Date: Tue, 1 Sep 2009 10:18:34 +0000 Subject: * boehm.c (mark_reference_fields): Compute % in HOST_WIDE_INT type. * gcc-interface/utils2.c (maybe_wrap_malloc, maybe_wrap_free): Cast POINTER_SIZE to HOST_WIDE_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151263 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/boehm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc/java/boehm.c') diff --git a/gcc/java/boehm.c b/gcc/java/boehm.c index 5c65c8bb0cc..04af74b5948 100644 --- a/gcc/java/boehm.c +++ b/gcc/java/boehm.c @@ -1,5 +1,5 @@ /* Functions related to the Boehm garbage collector. - Copyright (C) 2000, 2003, 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2000, 2003, 2004, 2006, 2009 Free Software Foundation, Inc. This file is part of GCC. @@ -111,7 +111,7 @@ mark_reference_fields (tree field, we already covered, then we are doomed. */ gcc_assert (offset > *last_view_index); - if (offset % (POINTER_SIZE / BITS_PER_UNIT)) + if (offset % (HOST_WIDE_INT) (POINTER_SIZE / BITS_PER_UNIT)) { *all_bits_set = -1; *pointer_after_end = 1; -- cgit v1.2.1 From 0f363ae8fef0b8aba64812a2132d26354cf8334e Mon Sep 17 00:00:00 2001 From: aesok Date: Wed, 23 Jun 2010 19:18:10 +0000 Subject: /java * decl.c (java_init_decl_processing): Use double_int_to_tree instead of build_int_cst_wide. * boehm.c (set_bit): Remove. (mark_reference_fields): Use double_int type for 'mask' argument. Use double_int_setbit instead of set_bit. (get_boehm_type_descriptor): Use double_int_setbit instead of set_bit. Use double_int_to_tree instead of build_int_cst_wide. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161288 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/boehm.c | 49 ++++++++++++++----------------------------------- 1 file changed, 14 insertions(+), 35 deletions(-) (limited to 'gcc/java/boehm.c') diff --git a/gcc/java/boehm.c b/gcc/java/boehm.c index 04af74b5948..35ba68d0fb3 100644 --- a/gcc/java/boehm.c +++ b/gcc/java/boehm.c @@ -27,17 +27,15 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "system.h" #include "coretypes.h" +#include "double-int.h" #include "tm.h" #include "tree.h" #include "java-tree.h" #include "parse.h" #include "toplev.h" -static void mark_reference_fields (tree, unsigned HOST_WIDE_INT *, - unsigned HOST_WIDE_INT *, unsigned int, +static void mark_reference_fields (tree, double_int *, unsigned int, int *, int *, int *, HOST_WIDE_INT *); -static void set_bit (unsigned HOST_WIDE_INT *, unsigned HOST_WIDE_INT *, - unsigned int); /* A procedure-based object descriptor. We know that our `kind' is 0, and `env' is likewise 0, so we have a simple @@ -47,30 +45,10 @@ static void set_bit (unsigned HOST_WIDE_INT *, unsigned HOST_WIDE_INT *, Here DS_PROC == 2. */ #define PROCEDURE_OBJECT_DESCRIPTOR 2 -/* Treat two HOST_WIDE_INT's as a contiguous bitmap, with bit 0 being - the least significant. This function sets bit N in the bitmap. */ -static void -set_bit (unsigned HOST_WIDE_INT *low, unsigned HOST_WIDE_INT *high, - unsigned int n) -{ - unsigned HOST_WIDE_INT *which; - - if (n >= HOST_BITS_PER_WIDE_INT) - { - n -= HOST_BITS_PER_WIDE_INT; - which = high; - } - else - which = low; - - *which |= (unsigned HOST_WIDE_INT) 1 << n; -} - /* Recursively mark reference fields. */ static void mark_reference_fields (tree field, - unsigned HOST_WIDE_INT *low, - unsigned HOST_WIDE_INT *high, + double_int *mask, unsigned int ubit, int *pointer_after_end, int *all_bits_set, @@ -81,7 +59,7 @@ mark_reference_fields (tree field, if (DECL_NAME (field) == NULL_TREE) { mark_reference_fields (TYPE_FIELDS (TREE_TYPE (field)), - low, high, ubit, + mask, ubit, pointer_after_end, all_bits_set, last_set_index, last_view_index); field = TREE_CHAIN (field); @@ -130,7 +108,7 @@ mark_reference_fields (tree field, bits for all words in the record. This is conservative, but the size_words != 1 case is impossible in regular java code. */ for (i = 0; i < size_words; ++i) - set_bit (low, high, ubit - count - i - 1); + *mask = double_int_setbit (*mask, ubit - count - i - 1); if (count >= ubit - 2) *pointer_after_end = 1; @@ -159,9 +137,11 @@ get_boehm_type_descriptor (tree type) int last_set_index = 0; HOST_WIDE_INT last_view_index = -1; int pointer_after_end = 0; - unsigned HOST_WIDE_INT low = 0, high = 0; + double_int mask; tree field, value, value_type; + mask = double_int_zero; + /* If the GC wasn't requested, just use a null pointer. */ if (! flag_use_boehm_gc) return null_pointer_node; @@ -192,7 +172,7 @@ get_boehm_type_descriptor (tree type) goto procedure_object_descriptor; field = TYPE_FIELDS (type); - mark_reference_fields (field, &low, &high, ubit, + mark_reference_fields (field, &mask, ubit, &pointer_after_end, &all_bits_set, &last_set_index, &last_view_index); @@ -215,23 +195,22 @@ get_boehm_type_descriptor (tree type) that we don't have to emit reflection data for run time marking. */ count = 0; - low = 0; - high = 0; + mask = double_int_zero; ++last_set_index; while (last_set_index) { if ((last_set_index & 1)) - set_bit (&low, &high, log2_size + count); + mask = double_int_setbit (mask, log2_size + count); last_set_index >>= 1; ++count; } - value = build_int_cst_wide (value_type, low, high); + value = double_int_to_tree (value_type, mask); } else if (! pointer_after_end) { /* Bottom two bits for bitmap mark type are 01. */ - set_bit (&low, &high, 0); - value = build_int_cst_wide (value_type, low, high); + mask = double_int_setbit (mask, 0); + value = double_int_to_tree (value_type, mask); } else { -- cgit v1.2.1 From 0b205f4ca112a643f4f1b9c9886648b569e0b380 Mon Sep 17 00:00:00 2001 From: manu Date: Thu, 8 Jul 2010 04:22:54 +0000 Subject: =?UTF-8?q?2010-07-08=20=20Manuel=20L=C3=B3pez-Ib=C3=A1=C3=B1ez=20?= =?UTF-8?q?=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * toplev.h: Do not include diagnostic-core.h. Include diagnostic-core.h in every file that includes toplev.h. * c-tree.h: Do not include toplev.h. * pretty-print.h: Update comment. * Makefile.in: Update dependencies. * alias.c: Include diagnostic-core.h in every file that includes toplev.h. * attribs.c: Likewise. * auto-inc-dec.c: Likewise. * bb-reorder.c: Likewise. * bt-load.c: Likewise. * caller-save.c: Likewise. * calls.c: Likewise. * cfg.c: Likewise. * cfganal.c: Likewise. * cfgbuild.c: Likewise. * cfgcleanup.c: Likewise. * cfghooks.c: Likewise. * cfgloop.c: Likewise. * combine.c: Likewise. * config/alpha/alpha.c: Likewise. * config/arc/arc.c: Likewise. * config/arm/arm.c: Likewise. * config/arm/pe.c: Likewise. * config/avr/avr.c: Likewise. * config/bfin/bfin.c: Likewise. * config/cris/cris.c: Likewise. * config/crx/crx.c: Likewise. * config/darwin-c.c: Likewise. * config/darwin.c: Likewise. * config/fr30/fr30.c: Likewise. * config/frv/frv.c: Likewise. * config/h8300/h8300.c: Likewise. * config/host-darwin.c: Likewise. * config/i386/i386.c: Likewise. * config/i386/netware.c: Likewise. * config/i386/nwld.c: Likewise. * config/i386/winnt-cxx.c: Likewise. * config/i386/winnt-stubs.c: Likewise. * config/i386/winnt.c: Likewise. * config/ia64/ia64-c.c: Likewise. * config/ia64/ia64.c: Likewise. * config/iq2000/iq2000.c: Likewise. * config/lm32/lm32.c: Likewise. * config/m32c/m32c-pragma.c: Likewise. * config/m32c/m32c.c: Likewise. * config/m32r/m32r.c: Likewise. * config/m68hc11/m68hc11.c: Likewise. * config/m68k/m68k.c: Likewise. * config/mcore/mcore.c: Likewise. * config/mep/mep-pragma.c: Likewise. * config/mep/mep.c: Likewise. * config/mmix/mmix.c: Likewise. * config/mn10300/mn10300.c: Likewise. * config/moxie/moxie.c: Likewise. * config/pa/pa.c: Likewise. * config/pdp11/pdp11.c: Likewise. * config/picochip/picochip.c: Likewise. * config/rs6000/rs6000-c.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rx/rx.c: Likewise. * config/s390/s390.c: Likewise. * config/score/score.c: Likewise. * config/score/score3.c: Likewise. * config/score/score7.c: Likewise. * config/sh/sh.c: Likewise. * config/sh/symbian-base.c: Likewise. * config/sh/symbian-c.c: Likewise. * config/sh/symbian-cxx.c: Likewise. * config/sol2-c.c: Likewise. * config/sol2.c: Likewise. * config/sparc/sparc.c: Likewise. * config/spu/spu.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/v850/v850-c.c: Likewise. * config/v850/v850.c: Likewise. * config/vax/vax.c: Likewise. * config/vxworks.c: Likewise. * config/xtensa/xtensa.c: Likewise. * convert.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * dbgcnt.c: Likewise. * dbxout.c: Likewise. * ddg.c: Likewise. * dominance.c: Likewise. * emit-rtl.c: Likewise. * explow.c: Likewise. * expmed.c: Likewise. * fixed-value.c: Likewise. * fold-const.c: Likewise. * fwprop.c: Likewise. * gcse.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * ggc-zone.c: Likewise. * gimple-low.c: Likewise. * gimplify.c: Likewise. * graph.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * implicit-zee.c: Likewise. * integrate.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-conflicts.c: Likewise. * ira-costs.c: Likewise. * ira-lives.c: Likewise. * ira.c: Likewise. * lists.c: Likewise. * loop-doloop.c: Likewise. * loop-iv.c: Likewise. * lto-opts.c: Likewise. * lto-symtab.c: Likewise. * main.c: Likewise. * modulo-sched.c: Likewise. * optabs.c: Likewise. * params.c: Likewise. * plugin.c: Likewise. * postreload-gcse.c: Likewise. * postreload.c: Likewise. * predict.c: Likewise. * profile.c: Likewise. * real.c: Likewise. * regcprop.c: Likewise. * reginfo.c: Likewise. * regmove.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * rtl.c: Likewise. * rtlanal.c: Likewise. * sched-deps.c: Likewise. * sched-ebb.c: Likewise. * sched-rgn.c: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * simplify-rtx.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * targhooks.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-dump.c: Likewise. * tree-eh.c: Likewise. * tree-inline.c: Likewise. * tree-nomudflap.c: Likewise. * tree-object-size.c: Likewise. * tree-optimize.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-phinodes.c: Likewise. * tree-profile.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-ssa.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vrp.c: Likewise. * varasm.c: Likewise. * vec.c: Likewise. * web.c: Likewise. * xcoffout.c: Likewise. c-family/ * c-common.h: Include diagnostic-core.h. Error if already included. * c-semantics.c: Do not define GCC_DIAG_STYLE here. cp/ * cp-tree.h: Do not include toplev.h. java/ * boehm.c: Include diagnostic-core.h in every file that includes toplev.h. * class.c: Likewise. * constants.c: Likewise. * decl.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * jcf-parse.c: Likewise. * mangle.c: Likewise. * mangle_name.c: Likewise. * resource.c: Likewise. * typeck.c: Likewise. * verify-glue.c: Likewise. ada/ * gcc-interface/utils.c: Include diagnostic-core.h in every file that includes toplev.h. lto/ * lto-coff.c: Include diagnostic-core.h in every file that includes toplev.h. * lto-elf.c: Likewise. * lto-lang.c: Likewise. * lto-macho.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161943 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/boehm.c | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/java/boehm.c') diff --git a/gcc/java/boehm.c b/gcc/java/boehm.c index 35ba68d0fb3..f77530802e9 100644 --- a/gcc/java/boehm.c +++ b/gcc/java/boehm.c @@ -32,6 +32,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "tree.h" #include "java-tree.h" #include "parse.h" +#include "diagnostic-core.h" #include "toplev.h" static void mark_reference_fields (tree, double_int *, unsigned int, -- cgit v1.2.1 From 1767a056f10a2ccbc900df04d01193da73a3d272 Mon Sep 17 00:00:00 2001 From: froydnj Date: Thu, 15 Jul 2010 14:31:28 +0000 Subject: gcc/ * tree.h (DECL_CHAIN): Define. * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * c-decl.c: Likewise. * c-parser.c: Likewise. * c-typeck.c: Likewise. * cfgexpand.c: Likewise. * cgraph.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * config/alpha/alpha.c: Likewise. * config/arm/arm.c: Likewise. * config/frv/frv.c: Likewise. * config/i386/i386.c: Likewise. * config/i386/winnt-cxx.c: Likewise. * config/ia64/ia64.c: Likewise. * config/iq2000/iq2000.c: Likewise. * config/mep/mep.c: Likewise. * config/mips/mips.c: Likewise. * config/pa/som.h: Likewise. * config/rs6000/rs6000.c: Likewise. * config/s390/s390.c: Likewise. * config/sh/sh.c: Likewise. * config/sh/symbian-cxx.c: Likewise. * config/sparc/sparc.c: Likewise. * config/spu/spu.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/vxworks.c: Likewise. * config/xtensa/xtensa.c: Likewise. * coverage.c: Likewise. * dbxout.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expr.c: Likewise. * function.c: Likewise. * gimple-low.c: Likewise. * gimple-pretty-print.c: Likewise. * gimplify.c: Likewise. * integrate.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * ipa-split.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa-type-escape.c: Likewise. * langhooks.c: Likewise. * lto-cgraph.c: Likewise. * omp-low.c: Likewise. * stor-layout.c: Likewise. * tree-cfg.c: Likewise. * tree-complex.c: Likewise. * tree-dfa.c: Likewise. * tree-dump.c: Likewise. * tree-inline.c: Likewise. * tree-mudflap.c: Likewise. * tree-nested.c: Likewise. * tree-object-size.c: Likewise. * tree-pretty-print.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-tailcall.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. gcc/ada/ * gcc-interface/decl.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. * gcc-interface/utils2.c: Likewise. gcc/c-family/ * c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * c-format.c: Likewise. gcc/cp/ * cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. * call.c: Likewise. * class.c: Likewise. * cp-gimplify.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * init.c: Likewise. * mangle.c: Likewise. * name-lookup.c: Likewise. * optimize.c: Likewise. * parser.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. * semantics.c: Likewise. * typeck.c: Likewise. * typeck2.c: Likewise. gcc/fortran/ * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * trans-common.c: Likewise. * trans-decl.c: Likewise. * trans-types.c: Likewise. * trans.c: Likewise. gcc/java/ * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. * boehm.c: Likewise. * class.c: Likewise. * decl.c: Likewise. * expr.c: Likewise. * jcf-parse.c: Likewise. * typeck.c: Likewise. * verify-glue.c: Likewise. gcc/objc/ * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. gcc/testsuite/ * g++.dg/plugin/attribute_plugin.c: Carefully replace TREE_CHAIN with DECL_CHAIN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162223 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/java/boehm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc/java/boehm.c') diff --git a/gcc/java/boehm.c b/gcc/java/boehm.c index f77530802e9..2a0690ce51d 100644 --- a/gcc/java/boehm.c +++ b/gcc/java/boehm.c @@ -63,10 +63,10 @@ mark_reference_fields (tree field, mask, ubit, pointer_after_end, all_bits_set, last_set_index, last_view_index); - field = TREE_CHAIN (field); + field = DECL_CHAIN (field); } - for (; field != NULL_TREE; field = TREE_CHAIN (field)) + for (; field != NULL_TREE; field = DECL_CHAIN (field)) { HOST_WIDE_INT offset; HOST_WIDE_INT size_bytes; -- cgit v1.2.1