gcc/
* real.c (real_to_decimal): Accept BUF_SIZE and CROP_TRAILING_ZEROS
as arguments. Bound DIGITS by the available buffer size.
(real_to_hexadecimal): Likewise.
* real.h (real_to_decimal, real_to_hexadecimal): Update prototypes.
(REAL_VALUE_TO_DECIMAL): Remove.
* c-common.c, c-pretty-print.c, print-rtl.c, print-tree.c,
sched-vis.c, config/arc/arc.c, config/c4x/c4x.c, config/fr30/fr30.c,
config/i370/i370.h, config/i386/i386.c, config/i960/i960.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/hp320.h, config/m68k/m68k.h, config/m68k/sun2o4.h,
config/m68k/sun3.h, config/mips/mips.c, config/ns32k/ns32k.c,
config/pdp11/pdp11.h, config/vax/vax.h: Update all callers to
use real_to_decimal directly, and with the proper arguments.
* doc/tm.texi (REAL_VALUE_TO_DECIMAL): Remove.
gcc/cp/
* error.c (dump_expr): Use real_to_decimal directly, and with
the new arguments.
gcc/f/
* target.h (ffetarget_print_real1, ffetarget_print_real2): Use
real_to_decimal directly, and with the new arguments.
From-SVN: r58187
* real.c (real_to_decimal): Crop trailing zeros for DIGITS < 0.
(real_to_hexadecimal): Likewise.
* print-rtl.c (print_rtx): If we are linked with real.c, don't
dump the XWINT fields of a floating point CONST_DOUBLE.
From-SVN: r57719
* rtl.def (CODE_LABEL): Remove slot 8.
* rtl.h (struct rtx_def): Document new uses of jump and call fields.
(LABEL_ALTERNATE_NAME): Delete.
(LABEL_KIND, SET_LABEL_KIND, LABEL_ALT_ENTRY_P): New.
* defaults.h: Remove default for ASM_OUTPUT_ALTERNATE_LABEL_NAME.
* final.c (output_alternate_entry_point): New.
(final_scan_insn): Use it instead of
ASM_OUTPUT_ALTERNATE_LABEL_NAME. Do not consider possibility
of a case label being an alternate entry point.
* cfgbuild.c (make_edges, find_bb_boundaries): Use LABEL_ALT_ENTRY_P.
* emit-rtl.c (gen_label_rtx): Adjust call to gen_rtx_CODE_LABEL.
Do not clear LABEL_NUSES (unnecessary) or LABEL_ALTERNATE_NAME
(field deleted).
* print-rtl.c, ra-debug.c: Update code to output CODE_LABELs.
* doc/rtl.texi: Document LABEL_KIND, SET_LABEL_KIND, and
LABEL_ALT_ENTRY_P; not LABEL_ALTERNATE_NAME.
* doc/tm.texi: Delete documentation of
ASM_OUTPUT_ALTERNATE_LABEL_NAME.
From-SVN: r55597
* print-rtl.c (print_rtx): Print space before vector, not after.
(debug_rtx): Clear sawclose before printing.
(debug_rtx_list): Print newline after each list element.
(debug_rtx_range): Likewise.
From-SVN: r54712
* real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
Always make REAL_VALUE_TYPE a struct containing an array of
HOST_WIDE_INT, not a double. Tidy up the code deciding how
big it is. Don't declare or use union real_extract.
* emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
decode_rtx_const, output_constant_pool), config/a29k/a29k.c
(print_operand), config/arm/arm.c (output_move_double),
config/arm/arm.md (consttable_4, consttable_8),
config/romp/romp.c (output_fpops), config/s390/s390.h
(ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
(xtensa_output_literal): Don't use union real_extract.
* config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
(sfmode_constant_to_ulong), config/ns32k/merlin.h
(PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
(PRINT_OPERAND): Don't use local version of union
real_extract.
* config/convex/convex.c (check_float_value), config/vax/vax.c
(vax_float_literal), config/m88k/m88k.md (divdf3),
config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
config/pdp11/pdp11.c (output_move_quad): Don't do host
arithmetic on target floating point quantities.
* config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
(output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
* fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
* real.c (earith): Test INFINITY rather than REAL_INFINITY;
NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
INFINITY.
* print-rtl.c (print_rtx): Disable code which needs
floating-point emulator.
* libgcc2.c: Include float.h and use DBL_MANT_DIG,
FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
depending on HOST_FLOAT_FORMAT to be defined properly.
* ch/grant.c, cp/error.c: Always use REAL_VALUE_TO_DECIMAL;
don't test REAL_IS_NOT_DOUBLE.
* config/1750a/1750a.c (get_double, float_label): Delete.
(print_operand): Delete huge commented-out chunk. Use
REAL_VALUE_TO_DECIMAL.
* config/1750a/1750a-protos.h: Delete prototypes of deleted
functions.
* config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
IEEE_FLOAT_FORMAT.
* config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
Use REAL_VALUE_TO_DECIMAL as ELF version does.
* config/m88k/m88k.c (real_power_of_2_operand,
legitimize_operand): Take the REAL_VALUE_TYPE and/or union
real_extract out of the union; run the input through
REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
from that into the union.
* config/pdp11/pdp11.c (output_move_double): Rearrange
parentheses to make automatic indenter happy.
* doc/tm.texi (Cross-compilation): Rename node to "Floating
Point" and rewrite to describe current situation. Also adjust
documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
match code.
* doc/rtl.texi: Adjust cross reference.
From-SVN: r51210
* Makefile.in (print-rtl.o): Depend on TREE_H.
* alias.c (get_alias_set): Make two passes over objects to first
see if inner object is access via restricted pointer.
Defer allocating alias set for restricted pointer until here.
Call find_placeholder with second arg nonzero.
Minor cleanups.
* emit-rtl.c (set_mem_attributes): Set more attributes.
(set_mem_align, change_address, adjust_address_1): New functions.
(change_address_1): Now static.
(adjust_address, adjust_address_nv): Deleted.
(replace_equiv_address): Call change_address_1.
* expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR.
(find_placeholder): Get starting point from PLIST arg.
(expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg.
* expr.h (set_mem_align, change_address, adjust_address_1): New decls.
(adjust_address, adjust_address_nv): New macros.
* print-rtl.c (tree.h): New include.
(print_rtx, case MEM): Print all memory attributes.
From-SVN: r46313
* print-rtl.c (xspaces): Remove.
(print_rtx): Use printf field-width, rather than xpsaces, to
indent.
* toplev.c (main): Disable sibling-call optimization if we are
handling exceptions.
* reload1.c (reload): Delete all USEs generated during reload.
From-SVN: r42917
* print-rtl.c (print_rtx): Cast enums to int for comparison.
* c-decl.c (grokdeclarator): Cast enums to int for comparison and
shifts.
* c-format.c (C_STD_VER): Cast to int for comparisons.
(check_function_format): Cast various enums to int for &.
(maybe_read_dollar_number): Likewise.
(check_format_info): Likewise.
(check_format_info_main): Likewise.
* expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison.
(safe_from_p): Likewise.
* varasm.c (const_hash): Cast enum to int for %.
* emit-rtl.c (init_emit_once): Use int loop variable to work around
pcc enum problems with < and ++ operators.
* regclass.c (init_reg_sets_1): Cast enums for comparison.
(choose_hard_reg_mode): Use unsigned int to iterate over CCmodes.
(regclass_init): Change enum class to int to iterate over reg_classes.
* genrecog.c (merge_trees): Cast enums for comparison.
* rtl.h (GET_CODE): Cast to enum rtx_code.
(PUT_CODE): Cast to ENUM_BITFIELD(rtx_code).
(GET_MODE): Cast to enum machine_mode.
(PUT_MODE): Cast to ENUM_BITFIELD(machine_mode).
(GET_NOTE_INSN_NAME): Cast enum to int.
* tree.h (TREE_CODE): Cast to enum tree_code.
(TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code).
* timevar.c (timevar_print): Change loop variable id from enum to
unsigned int.
* fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int.
* config/i386/i386.md: Use PUT_MODE for mode assignment.
* toplev.c (compile_file): Cast enum DFI to int.
(decode_d_option): Likewise.
From-SVN: r40193
* flags.h (flag_dump_rtl_in_asm): Declare.
* toplev.c (flag_dump_rtl_in_asm): Define.
(decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
if -dP is specified.
* rtl.h (print_rtx_head): Declare.
* print-rtl.c (print_rtx_head): Define.
(print_rtx): Print the string pointed to by print_rtx_head
at beginning of each dump line.
(print_rtl): Likewise.
(print_rtl_single): Likewise.
* final.c (final_scan_insn): Dump the insn in the assembly
file for debugging.
* gcc.1: Document -dP option.
* invoke.texi (Debugging Options): Likewise.
From-SVN: r36394
* print-rtl.c (debug_call_placeholder_verbose): New variable.
(print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
set.
* integrate.c (copy_rtx_and_substitute): Don't share
LEAF_REG_REMAPpable registers with the inlined function. Don't
share the function value with calling sequences.
From-SVN: r36329
* print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
to print the alias set.
* print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
From-SVN: r34507
* diagnostic.c: Eliminate implicit int.
* except.c, gcc.c: Add static prototypes.
* final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
* gensupport.c (process_rtx): Use XVEC to initialize vector
slot of 'split'.
* print-rtl.c: If DEBUG_REGISTER_NAMES, define static
debug_reg_names instead of static reg_names. If not, define
global reg_names.
* regclass.c: Don't define global reg_names unless
DEBUG_REGISTER_NAMES is defined.
* reload1.c (order_regs_for_reload): Remove unused variable.
* varasm.c: Include output.h after defaults.h. Define
eh_frame_section as function of no args, not of unspecified args.
* gcc.c: Constify argbuf; arguments to store_arg,
process_command, main; elements of struct command and struct
switchstr; local variables in execute, process_command, main.
cp:
* except.c: Add static prototypes.
From-SVN: r34054
* print-rtl.c (print_rtx): Only print note line number as string
if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
* final.c (final_scan_insn): Do nothing for note line number 0.
From-SVN: r33997
* Makefile.in (final.o): Depend on BASIC_BLOCK_H.
* final.c (final_end_function): Use app_disable. Rearrange note
handling into a switch. Emit deleted labels.
(output_asm_label): Generate label strings for deleted labels.
* flow.c (tail_recursion_label_list): New.
(find_basic_blocks_1): Set label_value_list directly. Collect list
of tail recursion labels from call_placeholders. Don't add deleted
labels to the label value list.
(cleanup_cfg): Use free_EXPR_LIST_list.
(flow_delete_insn_chain): Turn non-removable labels into notes.
(flow_delete_block): Don't disable deleting the block because of
a non-removable label.
(tail_recursion_label_p): New.
(merge_blocks_move_predecessor_nojumps): Don't disable the merge
because of a label.
(merge_blocks_move_successor_nojumps): Likewise. Also move a
jump table.
(merge_blocks): Disable a merge because of tail recursion labels.
* ifcvt.c (merge_if_block): Don't disable a merge because of a label.
Use a more accurate measure of not merging the join block.
(find_if_block): Don't disable conversion because of a label.
(find_if_case_1, find_if_case_2): Likewise.
* jump.c (duplicate_loop_exit_test): Preserve the kind of list
element when copying.
(squeeze_notes): Also leave EH notes.
(mark_jump_label): Ignore deleted labels. Use an INSN_LIST for
REG_LABEL notes.
(delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
deleting a label.
* print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref
referring to a deleted label. Convert tail handling to a switch.
* rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
for NOTE_INSN_DELETED_LABEL.
(NOTE): Fix commentary.
* rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
(REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
(CODE_LABEL_NUMBER, LABEL_NAME): Update index.
(LABEL_NUSES, LABEL_REFS): Likewise.
* unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
From-SVN: r33876