Age | Commit message (Collapse) | Author | Files | Lines |
|
* Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
(mostlyclean): Likewise.
* toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
(struct dump_file_info, enum dump_file_index, dump_file): New.
(open_dump_file): Take a dump_file_index not a suffix, and a decl
not a string. Clean out file if we havn't yet done so. Do nothing
if the dump isn't enabled.
(close_dump_file): Do nothing if the dump isn't open. Dump
graph data if requested.
(dump_rtl, clean_dump_file): Remove.
(compile_file): Don't clean the dump files. Only finalize .bp dump
if flag_test_coverage or flag_branch_probabilities. Only finalize
.combine dump if optimizing. Iterate over dump_file to finalize the
graph dumps.
(rest_of_compilation): Update for open_dump_file/close_dump_file.
Convert all uses of dump_rtl.
(decode_d_option): Iterate over dump_file to implement 'a' and to
locate pass-specific dumps.
From-SVN: r32857
|
|
From-SVN: r32856
|
|
* cppexp.c: Redefine priority constants.
(_cpp_parse_expr): Replace left and right priority scheme with
single priority logic. Move LOGICAL to same place as COMPARE.
Remove bogus check for multiple unary +/- operators.
From-SVN: r32855
|
|
switch statement.
* cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
within the switch statement. Binary operations break out of
the switch naturally. '(' tokens handled by forcing
immediate shift. ')' handled by forcing immediate reduce to
the previous '('. New error messages.
From-SVN: r32854
|
|
* config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
part', it's already in use. Use %K instead. Add a return at the
end of what is now %K.
* config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
From-SVN: r32853
|
|
From-SVN: r32852
|
|
allocate_dynamic_stack_space.
* builtins.c (expand_builtin_apply): Pass proper parameters to
allocate_dynamic_stack_space.
* calls.c (emit_call_1): Do not adjust stack pointer for SIB,
update stack_pointer_delta; do not update arg_size_so_far.
(compute_argument_block_size): Use stack_delta instead of
stack_pointer_pending and arg_size_so_far.
(expand_call): Add sanity checking for stack_pointer_delta;
save and restore stack_pointer_delta for SIB, use
stack_pointer_delta for alignment; do not update arg_space_so_far.
(emit_library_call_value): Use stack_pointer_delta for alignment.
(store_one_arg): Do not update arg_space_so_far.
* explow.c (adjust_stack, anti_adjust_stack): Update
stack_pointer_delta.
(allocate_dynamic_stack_space): Add sanity checking for
stack_pointer_delta.
* expr.c (init_expr, clear_pending_stack_adjust): Clear
stack_pointer_delta.
(emit_push_insn): Update stack_pointer_delta.
* function.h (struct expr_status): Add x_stack_pointer_delta;
remove x_arg_space_so_far.
(arg_space_so_far): Remove.
(stack_pointer_delta): New macro.
From-SVN: r32851
|
|
* cpplib.h: Merge struct cpp_options into struct cpp_reader.
Reorder struct cpp_options and struct cpp_reader for better
packing. Replace CPP_OPTIONS macro with CPP_OPTION which
takes two args. Change all 'char' flags to 'unsigned char'.
Move show_column flag into struct cpp_options. Don't
prototype cpp_options_init.
* cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
cppinit.c, cpplex.c, cpplib.c:
Replace CPP_OPTIONS (pfile)->whatever with
CPP_OPTION (pfile, whatever), and likewise for
opts = CPP_OPTIONS (pfile); ... opts->whatever;
* cppinit.c (merge_include_chains): Take a cpp_reader *.
Extract CPP_OPTION (pfile, pending) and work with that
directly.
(cpp_options_init): Delete.
(cpp_reader_init): Turn on on-by-default options here.
Allocate the pending structure here.
(cl_options, enum opt_code): Define these from the same table,
kept in a large macro. Add -fshow-column and -fno-show-column
options.
* cpperror.c (v_message): If show_column is off, don't print
the column number.
* cppmain.c: Update for new interface.
* fix-header.c: Likewise.
From-SVN: r32850
|
|
* config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
definition.
* Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
are passed to any invocation of AR_FOR_TARGET.
(AR_CREATE_FOR_TARGET): New macro.
(AR_EXTRACT_FOR_TARGET): New macro.
(ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
AR_EXTRACT_FOR_TARGET.
(many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
`$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and
AR_EXTRACT_FOR_TARGET to sub-makes.
From-SVN: r32849
|
|
* cppexp.c: Delete SKIP_OPERAND. Correct priority
PAREN_INNER_PRIO.
(_cpp_parse_expr): Check for multiple unary +/- operators.
Correct priorities of ':' and '?'. Treat ')' as having a
value. Ensure conditional expression is not void.
From-SVN: r32848
|
|
* alias.c (canon_rtx): Make it global.
(rtx_equal_for_memref_p): CONST_INT equality is now pointer
equality.
* cse.c (struct table_elt): Add canon_exp.
(insert): Clear it.
(invalidate): Canonicalize expressions only once.
* rtl.h (canon_rtx): Declare.
From-SVN: r32845
|
|
* Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
* alias.c (reg_known_value): Add comments.
(init_alias_analysis): Likewise.
* cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
address.
(cse_basic_block): Fix typo in comment.
* emit-rtl.c: Include hashtab.h.
(const_int_htab): New variable.
(const_int_htab_hash): New function.
(const_int_htab_eq): Likewise.
(rtx_htab_mark_1): Likewise.
(rtx_htab_mark): Likewise.
(gen_rtx_CONST_INT): Cache all CONST_INTs.
(unshare_all_rtx): Fix formatting.
(init_emit_once): Initialize const_int_htab.
* rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
address.
* rtl.texi: Document the fact that all CONST_INTs with the same
value are shared.
From-SVN: r32844
|
|
From-SVN: r32843
|
|
From-SVN: r32841
|
|
is used to generate c-parse.y.
* c-parse.in (cast_expr): Move change from March 21 into c-parse.in
since it is used to generate c-parse.y.
* objc-parse.c, objc-parse.y: Regenerated.
From-SVN: r32840
|
|
hunk.
Thu Mar 30 15:26:56 2000 Alexandre Petit-Bianco <apbianco@dcygnus.com>
* expr.c (java_lang_expand_expr): Added Anthony's Thu Jan 6 2000
patch missing hunk. Fixed indentation.
From-SVN: r32839
|
|
* configure.in: Comment out --enable-c-cpplib stanza.
* configure: Regenerate.
From-SVN: r32838
|
|
offset is variable.
* expr.c (store_constructor): Properly compute displacement and
alignment when offset is variable.
From-SVN: r32837
|
|
* expmed.c (store_bit_field, store_fixed_bit_field): Fix more
cases of alignment in bytes.
From-SVN: r32836
|
|
in bits, not bytes.
* function.c (expand_function_end): Pass alignment argument to
emit_block_move in bits, not bytes.
From-SVN: r32835
|
|
From-SVN: r32833
|
|
HOST_FLOAT_WORDS_BIG_ENDIAN and...
* gjavah.c (D_NAN_MASK): Only define as word-reversed when
HOST_FLOAT_WORDS_BIG_ENDIAN and HOST_WORDS_BIG_ENDIAN disagree.
From-SVN: r32832
|
|
* expr.c (move_by_pieces_ninsns): Fix one more missing align
correction.
From-SVN: r32831
|
|
From-SVN: r32830
|
|
* calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
* explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
* function.c (assign_parms): Likewise.
* integrate.c (expand_inline_function): Likewise.
* stmt.c (expand_decl): Likewise.
(copy_rtx_and_substitute): Likewise.
* expr.c (expand_expr, expand_expr_unaligned): Likewise.
(clear_by_pieces): Fix error in last change.
* emit-rtl.c (init_emit): Set known registers alignment in bits.
* function.h (regno_pointer_align): Now unsigned.
* config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
is in bits.
* config/i386/i386.c (aligned_operand): Likewise.
* config/sparc/sparc.c (mem_min_alignment): Likewise.
* config/alpha/alpha.c (aligned_memory_operand): Likewise.
(unaligned_memory_operand): Likewise.
(alpha_expand_block_move, alpha_expand_block_clear): Likewise.
Also make alignments and sizes unsigned and some whitespace cleanup.
(alpha_va_start): Do nothing if VALIST's type is error_mark_node.
From-SVN: r32829
|
|
* rtti.c (class_hint_flags): Rename flags.
(class_initializer): Remove flags.
(synthesize_tinfo_var): Combine offset and flags. Add flags
for __vmi_class_type_info.
(create_tinfo_types): Remove flags from __class_type_info and
__si_class_type_info. Merge flags and offset from
base_class_type_info.
* inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags.
(__base_class_info::is_virtual_p): Adjust.
(__base_class_info::is_public_p): Adjust.
(__base_class_info::offset): New accessor.
(__class_type_info::details): Remove member.
(__class_type_info::__class_type_info): Lose details.
(__class_type_info::detail_masks): Remove.
(__si_class_type_info::__si_class_type_info): Lose details.
(__vmi_class_type_info::details): New member.
(__vmi_class_type_info::__vmi_class_type_info): Adjust.
(__vmi_class_type_info::detail_masks): New member.
* tinfo.cc (__class_type_info::do_upcast): Initialize result
with unknown_details_mask.
(__vmi_class_type_info::do_find_public_src): Adjust
(__vmi_class_type_info::do_dyncast): Adjust.
(__vmi_class_type_info::do_upcast): Set result details, if
needed. Adjust.
(__dynamic_cast): Temporarily #if out optimization.
From-SVN: r32828
|
|
* builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
(expand_builtin_apply): Pass alignment to emit_block_move in bits.
(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
(expand_builtin_memset): Likewise, but to clear_storage.
* calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
(restore_fixed_argument_area): Likewise.
(store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
(load_register_parameters): Likewise, to emit_group_load.
(expand_call): Likewise, to emit_group_store and emit_block_move.
(emit_library_call_value_1): Likewise, to emit_block_move.
(store_one_arg): Likewise, and to emit_push_insn.
* expmed.c (extract_bit_field): Alignment is in bits, not bytes.
(extract_fixed_bit_field, extract_split_bit_field): Likewise.
* expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
(emit_block_move, emit_group_load, emit_group_store): Likewise.
(clear_by_pieces, clear_storage, emit_push_insn): Likewise.
(expand_assigment, store_expr, store_constructor_field): Likewise.
(expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
(store_constructor, store_field, get_inner_reference): Likewise.
Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
(expand_expr, case COMPONENT_REF): Likewise.
(copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
and positions; reindent code.
* expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
* function.c (purge_addressof_1): Pass bit align to store_bit_field.
(assign_parms): Likewise to emit_group_store.
* optbas.c (prepare_cmp_insn): Alignment is in bits.
(emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
* stmt.c (expand_value_return): Pass align in bits to emit_group_load.
(expand_return): Likewise to {extract,store}_bit_field.
* stor-layout.c (get_mode_alignment): Minor cleanup.
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
* config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
* ch/expr.c (chill_expand_expr): Pass bit alignment to emit_block_move.
From-SVN: r32827
|
|
From-SVN: r32826
|
|
reading in the primary source file.
* cppinit.c (cpp_start_read): Call initialize_dependency_output
only after reading in the primary source file.
From-SVN: r32825
|
|
From-SVN: r32824
|
|
From-SVN: r32822
|
|
__builtin_va_start and __builtin_va_copy is now either a...
* c-common.c (c_common_nodes_and_builtins): The first parameter to
__builtin_va_start and __builtin_va_copy is now either a 'va_list'
or a reference to a va_list.
* builtins.c (stabilize_va_list): Simplify now we don't have to
work around C array address decay.
* c-typeck.c (convert_for_assignment): Handle assignment to
a reference parameter by taking the address of the RHS.
* ginclude/stdarg.h (va_start): Don't take address of first parameter.
(va_copy): Likewise.
(__va_copy): Likewise.
* ginclude/varargs.h (va_start): Likewise.
(__va_copy): Likewise.
From-SVN: r32821
|
|
From-SVN: r32820
|
|
From-SVN: r32819
|
|
From-SVN: r32818
|
|
From-SVN: r32817
|
|
Undo effects of previous delta. Do not define ASM_SPEC and SUBTARGET_EXTRA_ASM_SPEC
oin arm.h as it conflicts with builds for non GAS using targets
From-SVN: r32816
|
|
From-SVN: r32815
|
|
* tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
been expanded.
From-SVN: r32814
|
|
* stor-layout.c (bit_from_pos, byte_from_pos): New functions.
(pos_from_byte, pos_from_bit, normalize_offset): Likewise.
(normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
* tree.c (bit_position, byte_position): Likewise.
* tree.h: Declare new functions.
From-SVN: r32813
|
|
Add definitions of ASM_SPEC and SUBTARGET_EXTRA_ASM_SPEC to arm.h if not
already defined.
From-SVN: r32810
|
|
* cppfiles.c (cpp_read_file): Don't pass zero-length string to
_cpp_calc_hash.
From-SVN: r32808
|
|
output it as unsigned.
* dwarf2out.c (gen_enumeration_type_die): If enum has a negative
value, don't output it as unsigned.
From-SVN: r32807
|
|
From-SVN: r32806
|
|
declaring builtin bzero/bcmp...
* c-common.c (c_common_nodes_and_builtins): Don't special case
cplus_mode when declaring builtin bzero/bcmp, always avoid
prototype arguments.
From-SVN: r32805
|
|
From-SVN: r32804
|
|
* calls.c (PUSH_ARGS_REVERSED) Change to expression.
(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
(struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
(save_fixed_argument_area, restore_fixed_argument_area):
conditionize by #ifdef REG_PARM_STACK_SPACE only.
(emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
(precompute_register_parameters): Avoid #ifdefs on
ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
(stire_one_args): Likewise.
(expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
(emit_library_call_value_1): Likewise.
(compute_argument_block_size): Align to STACK_BOUNDARY only for
ACCUMULATE_OUTGOING_ARGS.
* combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
value.
(nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
(use_crosses_set_p): Likewise.
* all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
#define ACCUMULATE_OUTGOING_ARGS 1.
* i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
frames.
* i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
constants.
(TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
(TARGET_SWITCHES): Add push-args, no-push-args,
accumulate-outgoing-args and no-accumulate-outgoing-args.
(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
* expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
(push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
and PUSH_ROUNDING.
(emit_push_insn): Likewise.
* final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
(final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
* function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
(STACK_DYNAMIC_OFFSET): Define correctly for both
ACCUMULATE_OUTGOING_ARGS and normal mode.
* invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
* tm.texi (PUSH_ARGS): Document.
(ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
From-SVN: r32803
|
|
* flags.h (flag_optimize_sibling_calls): Declare.
* calls.c (expand_call): Fail sibcall when
!flag_optimize_sibling_calls
* invoke.texi (flag_optimize_sibling_calls): Document.
* toplev.c (flag_optimize_sibling_calls): New global variable.
(f_options): Add flag_optimize_sibling_calls.
(rest_of_compilation): Conditionize
optimize_sibling_and_tail_recursive_calls by
flag_optimize_sibling_calls.
(main): Set flag_optimize_sibling_calls for -O2.
* stmt.c (expand_return): Conditionize tail recursion by
flag_optimize_sibling_calls.
From-SVN: r32802
|
|
* config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
(ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
From-SVN: r32801
|
|
From-SVN: r32800
|