* ifcvt.c (noce_process_if_block): Fail the conversion if X is
referenced bewteen the condition and the jump. Don't delete
anything but the jump.
From-SVN: r33563
* expr.c (cplus_expand_expr): Preserve temporaries when expanding
STMT_EXPRs.
* optimize.c (struct inline_data): Add target_exprs field.
(declare_return_variable): When a function returns an aggregate,
use the variable declared in the TARGET_EXPR as the remapped
DECL_RESULT.
(expand_call_inline): Update the pending target_exprs stack.
(optimize_function): Initialize the stack.
From-SVN: r33561
Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com>
* bb-reorder.c (scope_def): New struct.
(scope_forest_info): New struct.
(struct reorder_block_def): New member "scope".
(REORDER_BLOCK_SCOPE): New macro.
(relate_bbs_with_scopes): New function and prototype.
(make_new_scope): Likewise.
(build_scope_forest): Likewise.
(remove_scope_notes): Likewise.
(insert_intra_1): Likewise.
(insert_intra_bb_scope_notes): Likewise.
(insert_inter_bb_scope_notes): Likewise.
(rebuild_scope_notes): Likewise.
(free_scope_forest_1): Likewise.
(free_scope_forest): Likewise.
(dump_scope_forest): Likewise.
(dump_scope_forest_1): Likewise.
(chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
block.
(reorder_basic_blocks): Added calls to build_scope_scope_forest
and remove_scope_notes before reordering is done. Added calls to
rebuild_scope_notes, free_scope_forest, and reorder_blocks after
after reordering is done.
From-SVN: r33560
2000-04-30 Benjamin Kosnik <bkoz@gnu.org>
* mknumeric_limits (trait_name): Fix copyright notice.
* src/gen-num-limits.cc: Explicitly instantiate epsilon and
round_error data members of struct value. This works around
weak-linking issues on AIX, HPUX.
From-SVN: r33558
* optimize.c (initialize_inlined_parameters): If the parameter is
addressable, we need to make a new VAR_DECL, even if the
initializer is constant.
From-SVN: r33553
* cpplex.c (cpp_idcmp): New function.
* cpplib.h: Prototype it.
* scan_decls.c (scan_decls): Use it to inspect token names.
* fix-header.c (read_scan_file): Likewise. Set system_header_p on
the file being run through the preprocessor.
(check_macro_names): Provide length of token to cpp_defined.
* Makefile.in: Remove stale warning message.
From-SVN: r33552
* cppfiles.c (redundant_include_p): Provide length of token to
cpp_defined.
* cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
values are unsigned int.
(_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
(_cpp_lookup_slot): Do not calculate the hash, either.
* cpphash.h: Update prototypes.
* cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
Hashes are unsigned int. Calculate hash here, pass by value
to _cpp_lookup_slot.
From-SVN: r33551
2000-04-28 Loren J. Rittle <ljrittle@acm.org>
* mkcheck.in: Rely on exit status instead of the presence of a
core file. Added comments on how/where to save core and exe
files. Move shell wildcards outside quotes and fix core path.
From-SVN: r33550
* ifcvt.c: New file.
* Makefile.in (OBJS): Add it.
(ifcvt.o): New target.
* jump.c (jump_optimize_1): Remove all code related to if-conversion,
and conditional arithmetic.
(find_insert_position): Remove.
* timevar.def (TV_IFCVT, TV_IFCVT2): New.
* toplev.c (DFI_ce, DFI_ce2): New.
(dump_file): Add ce and ce2 dumps.
(rest_of_compilation): Run if_convert a couple o times. Set
cse_not_expected after cse2. Don't set no_new_pseudos until
after sched1 or recompute_reg_usage.
From-SVN: r33547
* cpphash.h (enum node_type: Take out T_MCONST.
(union hashval): Move into struct hashnode.
(struct hashnode): Pack tighter. Remove file, line, col
members.
* cpphash.c: Constify most of the macro-definition structures.
(struct definition): Replace by struct object_defn
and struct funct_defn. Put file, line, column information
here. All users updated to match.
(_cpp_create_definition, _cpp_macroexpand): Remove special
case for #define WORD OTHERWORD.
* cpplib.c (do_undef): Remove T_MCONST case.
From-SVN: r33538
* config/alpha/crtend.asm: Use C comments instead of #.
* config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden.
* config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
From-SVN: r33537
* cpphash.h: Move struct reflist, struct definition, and the
DEFINITION typedef to cpphash.c. Use 'struct definition *' in
union hashval. _cpp_free_definition takes a HASHNODE pointer.
* cpphash.c (_cpp_free_definition): Free data pointed to by
MCONST, XCONST, MACRO, and FMACRO nodes properly.
(_cpp_create_definition, del_HASHNODE): Just call
_cpp_free_definition to clear out a hashnode.
* cpplib.c (do_pragma_poison): Likewise.
From-SVN: r33536
* regmove.c (struct record_stack_memrefs_data): New.
(record_stack_memrefs): New function.
(combine_stack_adjustments_for_block): Use it.
From-SVN: r33529
(libiberty_demanglers): new table for demangle styles
(cplus_demangle_set_style): New function for setting style
(cplus_demangle_name_to_style): New function to translate name
* include/demangle.h
(libiberty_demanglers): new table for different styles
(cplus_demangle_set_style): New function for setting style
(cplus_demangle_name_to_style): New function to translate name
Co-Authored-By: Jason Merrill <jason@casey.cygnus.com>
From-SVN: r33525
* configure.in (sparc-hal-solaris2*): protect [] glob from
my expansion.
(mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
rather than hard-coded constants in target_cpu_default2.
* configure: Regenerate.
From-SVN: r33520
* tree.c (get_callee_fndecl): Extract the initial value from
a readonly decl.
* cp/optimize.c (initialize_inlined_parameters): Call
c_apply_type_quals_to_decl. Set DECL_INITIAL.
From-SVN: r33518
* calls.c (combine_pending_stack_adjustment_and_call): Return the
adjustment; don't do the stack adjust.
(expand_call): Call compute_argument_block_size right before
allocating the block; update comment; don't do alignment sanity
checking for sibling call; use args_size instead of
unadjusted_args_size before args_size is adjusted. Use
combine_pending_stack_adjustment_and_call to compute stack adjust
for must_preallocate case.
* expr.c (push_block): Remove shadow `temp' in inner scope.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r33516