aboutsummaryrefslogtreecommitdiff
path: root/gcc/hosthooks.h
AgeCommit message (Collapse)AuthorFilesLines
2022-01-03Update copyright years.Jakub Jelinek1-1/+1
2021-12-09pch: Add support for relocation of the PCH data [PR71934]Jakub Jelinek1-4/+6
The following patch adds support for relocation of the PCH blob on PCH restore if we don't manage to get the preferred map slot for it. The GTY stuff knows where all the pointers are, after all it relocates it once during PCH save from the addresses where it was initially allocated to addresses in the preferred map slot. But, if we were to do it solely using GTY info upon PCH restore, we'd need another set of GTY functions, which I think would make it less maintainable and I think it would also be more costly at PCH restore time. Those functions would need to call something to add bias to pointers that haven't been marked yet and make sure not to add bias to any pointer twice. So, this patch instead builds a relocation table (sorted list of addresses in the blob which needs relocation) at PCH save time, stores it in a very compact form into the gch file and upon restore, adjusts pointers in GTY roots (that is right away in the root structures) and the addresses in the relocation table. The cost on stdc++.gch/O2g.gch (previously 85MB large) is about 3% file size growth, there are 2.5 million pointers that need relocation in the gch blob and the relocation table uses uleb128 for address deltas and needs ~1.01 bytes for one address that needs relocation, and about 20% compile time during PCH save (I think it is mainly because of the need to qsort those 2.5 million pointers). On PCH restore, if it doesn't need relocation (the usual case), it is just an extra fread of sizeof (size_t) data and fseek (in my tests real time on vanilla tree for #include <bits/stdc++.h> CU was ~0.175s and with the patch but no relocation ~0.173s), while if it needs relocation it took ~0.193s, i.e. 11.5% slower. Without PCH that #include <bits/stdc++.h> int i; testcase compiles with -O2 -g in ~1.199s, i.e. 6.2 times slower than PCH with relocation and 6.9 times than PCH without relocation. The discovery of the pointers in the blob that need relocation is done in the relocate_ptrs hook which does the pointer relocation during PCH save. Unfortunately, I had to make one change to the gengtype stuff due to the nested_ptr feature of GTY, which some libcpp headers and stringpool.c use. The relocate_ptrs hook had 2 arguments, pointer to the pointer and a cookie. When relocate_ptrs is done, in most cases it is called solely on the subfields of the current object, so e.g. if ((void *)(x) == this_obj) op (&((*x).u.fld[0].rt_rtx), cookie); so relocate_ptrs can assert that ptr_p is within the state->ptrs[state->ptrs_i]->obj .. state->ptrs[state->ptrs_i]->obj+state->ptrs[state->ptrs_i]->size-sizeof(void*) range and compute from that the address in the blob which will need relocation (state->ptrs[state->ptrs_i]->new_addr is the new address given to it and ptr_p-state->ptrs[state->ptrs_i]->obj is the relative offset. Unfortunately, for nested_ptr gengtype emits something like: { union tree_node * x0 = ((*x).val.node.node) ? HT_IDENT_TO_GCC_IDENT (HT_NODE (((*x).val.node.node))) : NULL; if ((void *)(x) == this_obj) op (&(x0), cookie); (*x).val.node.node = (x0) ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT ((x0))) : NULL; } so relocate_ptrs is called with an address of some temporary variable and so doesn't know where the pointer will finally be. So, I've added another argument to relocate_ptrs (and to gt_pointer_operator). For the most common case I pass NULL as the new middle argument to that function, first one remains pointer to the pointer that needs adjustment and last the cookie. The NULL seems to be cheap to compute and short in the gt*.[ch] files and stands for ptr_p is an address within the this_obj's range, remember its address. For the nested_ptr case, the new middle argument contains actual address of the pointer that might need to be relocated, so instead of the above op (&(x0), &((*x).val.node.node), cookie); in there. And finally, e.g. for the reorder case I need a way to tell restore_ptrs to ignore a particular address for the relocation purposes and only treat it the old way. I've used for that the case when the first and second arguments are equal. In order to enable support for mapping PCH as fallback at different addresses than the preferred ones, a small change is needed to the host pch_use_address hooks. One change I've done to all of them is the change of the type of the first argument from void * to void *&, such that the actual address can be told to the callers (or shall I instead use void **?), but another change that still needs to be done in them if they want the relocation is actually not fail if they couldn't get a preferred address, but instead modify what the first argument refers to. I've done that only for host-linux.c and Iain is testing similar change for host-darwin.c. Didn't change hpux, netbsd, openbsd, solaris, mingw32 or the fallbacks because I can't test those. Tested also with the: --- gcc/config/host-linux.c.jj 2021-12-06 22:22:42.007777367 +0100 +++ gcc/config/host-linux.c 2021-12-07 00:21:53.052674040 +0100 @@ -191,6 +191,8 @@ linux_gt_pch_use_address (void *&base, s if (size == 0) return -1; +base = (char *) base + ((size + 8191) & (size_t) -4096); + /* Try to map the file with MAP_PRIVATE. */ addr = mmap (base, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, offset); hack which forces all PCH restores to be relocated. An earlier version of the patch has been also regrest with base = (char *) base + 16384; in that spot, so both relocation to a non-overlapping spot and to an overlapping spot have been tested. 2021-12-09 Jakub Jelinek <jakub@redhat.com> PR pch/71934 * coretypes.h (gt_pointer_operator): Use 3 pointer arguments instead of two. * gengtype.c (struct walk_type_data): Add in_nested_ptr argument. (walk_type): Temporarily set d->in_nested_ptr around nested_ptr handling. (write_types_local_user_process_field): Pass a new middle pointer to gt_pointer_operator op calls, if d->in_nested_ptr pass there address of d->prev_val[2], otherwise NULL. (write_types_local_process_field): Likewise. * ggc-common.c (relocate_ptrs): Add real_ptr_p argument. If equal to ptr_p, do nothing, otherwise if NULL remember ptr_p's or if non-NULL real_ptr_p's corresponding new address in reloc_addrs_vec. (reloc_addrs_vec): New variable. (compare_ptr, read_uleb128, write_uleb128): New functions. (gt_pch_save): When iterating over objects through relocate_ptrs, save current i into state.ptrs_i. Sort reloc_addrs_vec and emit it as uleb128 of differences between pointer addresses into the PCH file. (gt_pch_restore): Allow restoring of PCH to a different address than the preferred one, in that case adjust global pointers by bias and also adjust by bias addresses read from the relocation table as uleb128 differences. Otherwise fseek over it. Perform gt_pch_restore_stringpool only after adjusting callbacks and for callback adjustments also take into account the bias. (default_gt_pch_use_address): Change type of first argument from void * to void *&. (mmap_gt_pch_use_address): Likewise. * ggc-tests.c (gt_pch_nx): Pass NULL as new middle argument to op. * hash-map.h (hash_map::pch_nx_helper): Likewise. (gt_pch_nx): Likewise. * hash-set.h (gt_pch_nx): Likewise. * hash-table.h (gt_pch_nx): Likewise. * hash-traits.h (ggc_remove::pch_nx): Likewise. * hosthooks-def.h (default_gt_pch_use_address): Change type of first argument from void * to void *&. (mmap_gt_pch_use_address): Likewise. * hosthooks.h (struct host_hooks): Change type of first argument of gt_pch_use_address hook from void * to void *&. * machmode.h (gt_pch_nx): Expect a callback with 3 pointers instead of two in the middle argument. * poly-int.h (gt_pch_nx): Likewise. * stringpool.c (gt_pch_nx): Pass NULL as new middle argument to op. * tree-cfg.c (gt_pch_nx): Likewise, except for LOCATION_BLOCK pass the same &(block) twice. * value-range.h (gt_pch_nx): Pass NULL as new middle argument to op. * vec.h (gt_pch_nx): Likewise. * wide-int.h (gt_pch_nx): Likewise. * config/host-darwin.c (darwin_gt_pch_use_address): Change type of first argument from void * to void *&. * config/host-darwin.h (darwin_gt_pch_use_address): Likewise. * config/host-hpux.c (hpux_gt_pch_use_address): Likewise. * config/host-linux.c (linux_gt_pch_use_address): Likewise. If it couldn't succeed to mmap at the preferred location, set base to the actual one. Update addr in the manual reading loop instead of base. * config/host-netbsd.c (netbsd_gt_pch_use_address): Change type of first argument from void * to void *&. * config/host-openbsd.c (openbsd_gt_pch_use_address): Likewise. * config/host-solaris.c (sol_gt_pch_use_address): Likewise. * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Likewise. * config/rs6000/rs6000-gen-builtins.c (write_init_file): Pass NULL as new middle argument to op in the generated code. * doc/gty.texi: Adjust samples for the addition of middle pointer to gt_pointer_operator callback. gcc/ada/ * gcc-interface/decl.c (gt_pch_nx): Pass NULL as new middle argument to op. gcc/c-family/ * c-pch.c (c_common_no_more_pch): Pass a temporary void * var with NULL value instead of NULL to host_hooks.gt_pch_use_address. gcc/c/ * c-decl.c (resort_field_decl_cmp): Pass the same pointer twice to resort_data.new_value. gcc/cp/ * module.cc (nop): Add another void * argument. * name-lookup.c (resort_member_name_cmp): Pass the same pointer twice to resort_data.new_value.
2021-01-04Update copyright years.Jakub Jelinek1-1/+1
2020-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r279813
2019-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r267494
2018-01-03Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r256169
2017-01-01Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r243994
2016-01-04Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r232055
2015-01-05Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r219188
2014-01-02Update copyright years in gcc/Richard Sandiford1-1/+1
From-SVN: r206289
2013-01-10Update copyright years in gcc/Richard Sandiford1-1/+1
From-SVN: r195098
2009-11-25Remove trailing white spaces.H.J. Lu1-1/+1
2009-11-25 H.J. Lu <hongjiu.lu@intel.com> * alias.c: Remove trailing white spaces. * alloc-pool.c: Likewise. * alloc-pool.h: Likewise. * attribs.c: Likewise. * auto-inc-dec.c: Likewise. * basic-block.h: Likewise. * bb-reorder.c: Likewise. * bt-load.c: Likewise. * builtins.c: Likewise. * builtins.def: Likewise. * c-common.c: Likewise. * c-common.h: Likewise. * c-cppbuiltin.c: Likewise. * c-decl.c: Likewise. * c-format.c: Likewise. * c-lex.c: Likewise. * c-omp.c: Likewise. * c-opts.c: Likewise. * c-parser.c: Likewise. * c-pretty-print.c: Likewise. * c-tree.h: Likewise. * c-typeck.c: Likewise. * caller-save.c: Likewise. * calls.c: Likewise. * cfg.c: Likewise. * cfganal.c: Likewise. * cfgexpand.c: Likewise. * cfghooks.c: Likewise. * cfghooks.h: Likewise. * cfglayout.c: Likewise. * cfgloop.c: Likewise. * cfgloop.h: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.c: Likewise. * cgraph.h: Likewise. * cgraphbuild.c: Likewise. * cgraphunit.c: Likewise. * cif-code.def: Likewise. * collect2.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * coverage.c: Likewise. * crtstuff.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * dbgcnt.c: Likewise. * dbgcnt.def: Likewise. * dbgcnt.h: Likewise. * dbxout.c: Likewise. * dce.c: Likewise. * ddg.c: Likewise. * ddg.h: Likewise. * defaults.h: Likewise. * df-byte-scan.c: Likewise. * df-core.c: Likewise. * df-problems.c: Likewise. * df-scan.c: Likewise. * df.h: Likewise. * dfp.c: Likewise. * diagnostic.c: Likewise. * diagnostic.h: Likewise. * dominance.c: Likewise. * domwalk.c: Likewise. * double-int.c: Likewise. * double-int.h: Likewise. * dse.c: Likewise. * dwarf2asm.c: Likewise. * dwarf2asm.h: Likewise. * dwarf2out.c: Likewise. * ebitmap.c: Likewise. * ebitmap.h: Likewise. * emit-rtl.c: Likewise. * et-forest.c: Likewise. * except.c: Likewise. * except.h: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * expr.h: Likewise. * final.c: Likewise. * flags.h: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * function.h: Likewise. * fwprop.c: Likewise. * gcc.c: Likewise. * gcov-dump.c: Likewise. * gcov-io.c: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * genattrtab.c: Likewise. * genautomata.c: Likewise. * genchecksum.c: Likewise. * genconfig.c: Likewise. * genflags.c: Likewise. * gengtype-parse.c: Likewise. * gengtype.c: Likewise. * gengtype.h: Likewise. * genmddeps.c: Likewise. * genmodes.c: Likewise. * genopinit.c: Likewise. * genpreds.c: Likewise. * gensupport.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * ggc-zone.c: Likewise. * ggc.h: Likewise. * gimple-iterator.c: Likewise. * gimple-low.c: Likewise. * gimple-pretty-print.c: Likewise. * gimple.c: Likewise. * gimple.def: Likewise. * gimple.h: Likewise. * gimplify.c: Likewise. * graphds.c: Likewise. * graphite-clast-to-gimple.c: Likewise. * gthr-nks.h: Likewise. * gthr-posix.c: Likewise. * gthr-posix.h: Likewise. * gthr-posix95.h: Likewise. * gthr-single.h: Likewise. * gthr-tpf.h: Likewise. * gthr-vxworks.h: Likewise. * gthr.h: Likewise. * haifa-sched.c: Likewise. * hard-reg-set.h: Likewise. * hooks.c: Likewise. * hooks.h: Likewise. * hosthooks.h: Likewise. * hwint.h: Likewise. * ifcvt.c: Likewise. * incpath.c: Likewise. * init-regs.c: Likewise. * integrate.c: Likewise. * ipa-cp.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * ipa-pure-const.c: Likewise. * ipa-reference.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa-struct-reorg.h: Likewise. * ipa-type-escape.c: Likewise. * ipa-type-escape.h: Likewise. * ipa-utils.c: Likewise. * ipa-utils.h: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-conflicts.c: Likewise. * ira-costs.c: Likewise. * ira-emit.c: Likewise. * ira-int.h: Likewise. * ira-lives.c: Likewise. * ira.c: Likewise. * jump.c: Likewise. * lambda-code.c: Likewise. * lambda-mat.c: Likewise. * lambda-trans.c: Likewise. * lambda.h: Likewise. * langhooks.c: Likewise. * lcm.c: Likewise. * libgcov.c: Likewise. * lists.c: Likewise. * loop-doloop.c: Likewise. * loop-init.c: Likewise. * loop-invariant.c: Likewise. * loop-iv.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lto-cgraph.c: Likewise. * lto-compress.c: Likewise. * lto-opts.c: Likewise. * lto-section-in.c: Likewise. * lto-section-out.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.c: Likewise. * lto-streamer.h: Likewise. * lto-symtab.c: Likewise. * lto-wpa-fixup.c: Likewise. * matrix-reorg.c: Likewise. * mcf.c: Likewise. * mode-switching.c: Likewise. * modulo-sched.c: Likewise. * omega.c: Likewise. * omega.h: Likewise. * omp-low.c: Likewise. * optabs.c: Likewise. * optabs.h: Likewise. * opts-common.c: Likewise. * opts.c: Likewise. * params.def: Likewise. * params.h: Likewise. * passes.c: Likewise. * plugin.c: Likewise. * postreload-gcse.c: Likewise. * postreload.c: Likewise. * predict.c: Likewise. * predict.def: Likewise. * pretty-print.c: Likewise. * pretty-print.h: Likewise. * print-rtl.c: Likewise. * print-tree.c: Likewise. * profile.c: Likewise. * read-rtl.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * reg-stack.c: Likewise. * regcprop.c: Likewise. * reginfo.c: Likewise. * regmove.c: Likewise. * regrename.c: Likewise. * regs.h: Likewise. * regstat.c: Likewise. * reload.c: Likewise. * reload1.c: Likewise. * resource.c: Likewise. * rtl.c: Likewise. * rtl.def: Likewise. * rtl.h: Likewise. * rtlanal.c: Likewise. * sbitmap.c: Likewise. * sched-deps.c: Likewise. * sched-ebb.c: Likewise. * sched-int.h: Likewise. * sched-rgn.c: Likewise. * sched-vis.c: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-dump.h: Likewise. * sel-sched-ir.c: Likewise. * sel-sched-ir.h: Likewise. * sel-sched.c: Likewise. * sel-sched.h: Likewise. * sese.c: Likewise. * sese.h: Likewise. * simplify-rtx.c: Likewise. * stack-ptr-mod.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * stringpool.c: Likewise. * stub-objc.c: Likewise. * sync-builtins.def: Likewise. * target-def.h: Likewise. * target.h: Likewise. * targhooks.c: Likewise. * targhooks.h: Likewise. * timevar.c: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. * toplev.h: Likewise. * tracer.c: Likewise. * tree-affine.c: Likewise. * tree-affine.h: Likewise. * tree-browser.def: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-chrec.c: Likewise. * tree-chrec.h: Likewise. * tree-complex.c: Likewise. * tree-data-ref.c: Likewise. * tree-data-ref.h: Likewise. * tree-dfa.c: Likewise. * tree-dump.c: Likewise. * tree-dump.h: Likewise. * tree-eh.c: Likewise. * tree-flow-inline.h: Likewise. * tree-flow.h: Likewise. * tree-if-conv.c: Likewise. * tree-inline.c: Likewise. * tree-into-ssa.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-loop-linear.c: Likewise. * tree-mudflap.c: Likewise. * tree-nested.c: Likewise. * tree-nomudflap.c: Likewise. * tree-nrv.c: Likewise. * tree-object-size.c: Likewise. * tree-optimize.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-parloops.c: Likewise. * tree-pass.h: Likewise. * tree-phinodes.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-profile.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree-ssa-copy.c: Likewise. * tree-ssa-copyrename.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-dse.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-ifcombine.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-live.h: Likewise. * tree-ssa-loop-ch.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-loop-unswitch.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-operands.c: Likewise. * tree-ssa-operands.h: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-sink.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-ter.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-uncprop.c: Likewise. * tree-ssa.c: Likewise. * tree-ssanames.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-tailcall.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-generic.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vectorizer.c: Likewise. * tree-vectorizer.h: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * tree.def: Likewise. * tree.h: Likewise. * treestruct.def: Likewise. * unwind-compat.c: Likewise. * unwind-dw2-fde-glibc.c: Likewise. * unwind-dw2.c: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. * varpool.c: Likewise. * vec.c: Likewise. * vec.h: Likewise. * vmsdbgout.c: Likewise. * web.c: Likewise. * xcoffout.c: Likewise. From-SVN: r154645
2007-07-26Change copyright header to refer to version 3 of the GNU General Public ↵Nick Clifton1-5/+4
License and to point readers at the COPYING3 file and the FSF's license web page. From-SVN: r126948
2005-06-25Update FSF address.Kelley Cook1-2/+2
From-SVN: r101317
2004-06-05toplev.c (init_asm_output): Add explicit 'b' to mode when opening asm_out_file.Danny Smith1-0/+4
* toplev.c (init_asm_output): Add explicit 'b' to mode when opening asm_out_file. * c-pch.c (c_common_write_pch): Remove unnecessary fflush before reading asm_out_file. Replace fflush after reading asm_out_file with fseek. * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define default and add to HOST_HOOKS_INITIALIZER. * hosthooks.h (gt_pch_alloc_granularity): Declare hook function. * ggc-common.c (default_gt_pch_alloc_granularity): New function. (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity to set mmi.offset padding. * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to $(srcdir)/config/i386/winnt.c. (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise. (i[34567]86-*-uwin*): Likewise. *i[34567]86-*-interix3*): Likewise. * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj. * config/i386/host-mingw32.c: New file. * config/i386/x-mingw32: Add rule for host-mingw32.o. * config/i386/winnt.c: (struct extern_list) Tag as GTY. (extern_head): Likewise. (struct export_list) Likewise. (export_head): Likewise. (i386_pe_record_external_function): Use ggc_alloc. (i386_pe_record_exported_symbol): Likewise. Include "gt-winnt.h" at end. * doc/hostconfig.texi: Document HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY. From-SVN: r82643
2004-03-15c-incpath.c, [...]: Update copyright.Kazu Hirata1-1/+1
gcc/ * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c, et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h, hosthooks.h, params.h, ra-colorize.c, web.c, config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c, config/avr/avr-protos.h, config/avr/avr.md, config/fr30/fr30-protos.h, config/fr30/fr30.md, config/h8300/fixunssfsi.c, config/i386/darwin.h, config/i386/freebsd.h, config/i386/freebsd64.h, config/ia64/hpux.h, config/ia64/unwind-ia64.c, config/ip2k/libgcc.S, config/m32r/xm-m32r.h, config/mmix/mmix-modes.def, config/ns32k/netbsd.h, config/ns32k/ns32k.md, config/pa/pa64-hpux.h, config/pa/pa64-regs.h, config/rs6000/aix41.h, config/rs6000/aix43.h, config/rs6000/host-darwin.c, config/sparc/aout.h, config/sparc/freebsd.h, config/sparc/litecoff.h, config/vax/vax-protos.h, doc/hostconfig.texi, doc/include/gcc-common.texi: Update copyright. gcc/cp/ * cp-lang.c, ptree.c: Update copyright. From-SVN: r79506
2004-03-10c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address extra arguments.Richard Henderson1-2/+10
* c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address extra arguments. * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj and host_xmake_file fragments. * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change. (gt_pch_restore): Similarly for gt_pch_use_address. (default_gt_pch_get_address): New. (mmap_gt_pch_get_address): Split out of gt_pch_save. (default_gt_pch_use_address): Split out of gt_pch_restore. (mmap_gt_pch_use_address): Likewise. * hooks.c (hook_voidp_size_t_null): Remove. (hook_bool_voidp_size_t_false): Remove. * hooks.h: Likewise. * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the default_ or mmap_ definitions. (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise. * hosthooks.h (struct host_hooks): Update gt_pch_get_address and gt_pch_use_address. * config/host-linux.c, config/host-solaris.c: New files. * config/x-linux, config/x-solaris: New files. * config/rs6000/host-darwin.c darwin_rs6000_gt_pch_get_address): Update for changed definition. (darwin_rs6000_gt_pch_use_address): Likewise. * doc/hostconfig.texi: Update docs. From-SVN: r79295
2003-07-29c-common.c (allow_pch): Remove.Geoffrey Keating1-0/+3
2003-07-29 Geoffrey Keating <geoffk@apple.com> * c-common.c (allow_pch): Remove. * c-common.h (allow_pch): Remove. (c_common_no_more_pch): Declare. * c-lex.c (c_lex): Call c_common_no_more_pch when appropriate. * c-pch.c: Include hosthooks.h. (c_common_valid_pch): Don't check allow_pch. (c_common_read_pch): Clear valid_pch to prevent reading PCH files. (c_common_no_more_pch): New. * ggc-common.c: Include hosthooks.h. (gt_pch_save): Call gt_pch_get_address. (gt_pch_restore): Call gt_pch_use_address. * hooks.c (hook_voidp_size_t_null): New. (hook_bool_voidp_size_t_false): New. * hooks.h (hook_voidp_size_t_null): New. (hook_bool_voidp_size_t_false): New. * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New. (HOST_HOOKS_GT_PCH_USE_ADDRESS): New. (HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS. * hosthooks.h (struct host_hooks): Add gt_pch_get_address, gt_pch_use_address. * doc/hostconfig.texi (Host Common): Document HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS. * Makefile.in (c-pch.o): Depend on hosthooks.h. (ggc-common.o): Likewise. * config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define. (HOST_HOOKS_GT_PCH_USE_ADDRESS): Define. (pch_address_space): New. (darwin_rs6000_gt_pch_get_address): New. (darwin_rs6000_gt_pch_use_address): New. Index: cp/ChangeLog 2003-07-29 Geoffrey Keating <geoffk@apple.com> * parser.c (cp_lexer_new_main): Use c_common_no_more_pch instead of setting valid_pch by hand. From-SVN: r69944
2003-07-06gcc.c: Convert prototypes to ISO C90.Andreas Jaeger1-2/+2
* gcc.c: Convert prototypes to ISO C90. * gcc.h: Likewise. * gcov-dump.c: Likewise. * gcov-iov.c: Likewise. * gcse.c: Likewise. * genattrtab.h: Likewise. * ggc.h: Likewise. * global.c: Likewise. * graph.c: Likewise. * graph.h: Likewise. * hosthooks.h: Likewise. * hooks.h: Likewise. * hooks.c: Likewise. * hashtable.h: Likewise. * hashtable.c: Likewise. * haifa-sched.c: Likewise. * integrate.h: Likewise. * integrate.c: Likewise. * input.h: Likewise. * ifcvt.c: Likewise. From-SVN: r68995
2003-03-13genattrtab.h, [...]: Replace "GNU CC" with "GCC".Nathanael Nerode1-4/+4
* genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h, langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC". From-SVN: r64298
2003-02-06Makefile.in (host_hook_obj): New.Geoffrey Keating1-0/+34
* Makefile.in (host_hook_obj): New. (OBJS): Add $(host_hook_obj). (host_default.o): New rule. * config.gcc (host_hook_obj): New, default to host-default.o. (powerpc-*-darwin*): Use host-darwin.o. (out_host_hook_obj): New. * configure: Regenerate. * configure.in: Print information about out_host_hook_obj, substitute into output files. * host-default.c: New file. * hosthooks.h: New file. * toplev.c (general_init): Call host_hooks.extra_signals. * config/rs6000/host-darwin.c: New file. * config/rs6000/x-darwin: New file. * doc/hostconfig.texi: Add documentation for new host hook. Rearrange existing documentation. From-SVN: r62470