neil [Tue, 18 Jun 2002 06:27:40 +0000 (06:27 +0000)]
* cpplib.c (dtable): Update.
(end_directive): Decrement expansion prevention count.
Clear state.in_expression.
(prepare_directive_trad): Set state.in_expression.
Increment expansion prevention count.
* cpptrad.c (enum ls): New.
(_cpp_overlay_buffer): Set overlaid_buffer.
(_cpp_remove_overlay): Use overlaid_buffer.
(_cpp_read_logcial_line_trad): Update buffer when it might
have changed.
(scan_out_logical_line): Handle state transitions for assertions
and defined() in #if, and for funlike invocations including the
directive case. Handle '<' and '>' as a quote mechanism in
#include. Warn about unterminated macro invocations.
* cpphash.h (struct lexer_state): New member in_expression.
(struct cpp_reader): New member overlaid buffer.
aldyh [Tue, 18 Jun 2002 01:35:47 +0000 (01:35 +0000)]
2002-06-16 Aldy Hernandez <aldyh@redhat.com>
* gcc.c-torture/execute/simd-1.c: New.
* gcc.dg/simd-1.c: New.
* doc/extend.texi (Vector Extensions): Document that we can
specify simd types not specifically supported by the hardware.
Document that simd types can be used as function arguments.
Document that signness does make a difference in SIMD types.
Misc cleanups and revisions to the "vector extensions" section.
* simplify-rtx.c (simplify_subreg): Simplify subregs of vector
constants.
* expr.c (vector_mode_valid_p): New.
* expr.h: Add vector_mode_valid_p.
* defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
* emit-rtl.c (immed_double_const): Do not abort on vectors.
* c-common.c (type_for_mode): Always build vector nodes regardless
of VECTOR_MODE_SUPPORTED_P.
(handle_mode_attribute): Error if we can't emulate a nonexisting
vector mode.
(handle_vector_size_attribute): Same.
schwab [Mon, 17 Jun 2002 19:13:46 +0000 (19:13 +0000)]
* 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.
amylaar [Mon, 17 Jun 2002 11:33:20 +0000 (11:33 +0000)]
* reload1.c (merge_assigned_reloads): Don't change reloads
other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
to RELOAD_OTHER when there are conflicting input reloads.
neil [Sun, 16 Jun 2002 21:13:11 +0000 (21:13 +0000)]
* config.gcc: Add an i386/sysv4-cpp.h. Remove i386-aout.h from
vxworks.
config/i386:
* i386-aout.h, i386elf.h, sysv4.h: Remove CPP_PREDEFINES.
* linux64.h: Use TARGET_OS_CPP_BUILTINS rather than
CPP_PREDEFINES and part of CPP_SPEC.
i386elf.h, mach.h, netware.h, rtemself.h, sco5.h, sol2.h,
vsta.h, vxi386.h, win32.h: Similarly.
* sysv4-cpp.h: New.
rth [Sun, 16 Jun 2002 19:09:30 +0000 (19:09 +0000)]
* c-common.c (flag_ms_extensions): Move from c++ front end.
* c-common.h (flag_ms_extensions): Declare.
* c-decl.c (c_decode_option): Add -fms-extensions.
(grokfield): Don't accept anonymous structures in ISO C mode;
accept only unnamed anonymous structures in GNU C mode; accept
Plan 9 extensions in MS mode.
* c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from
SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers.
(extension): Clear flag_iso.
* doc/invoke.texi (C Dialect Options): Add -fms-extensions.
* cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
hp [Sun, 16 Jun 2002 18:54:43 +0000 (18:54 +0000)]
PR target/7042
* reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit
early if current_function_epilogue_delay_list is non-empty.
* config/cris/cris.md ("return"): Add sanity check asserting that
current_function_epilogue_delay_list is empty.
sayle [Sat, 15 Jun 2002 20:21:22 +0000 (20:21 +0000)]
* expr.c (compare_from_rtx): Call simplify_relational_operation
on all comparisons, not just those between integer constants,
with the correct (possibly unsigned) comparison code.
(do_compare_rtx_and_jump): Likewise.
* java/text/ChoiceFormat.java: Update comments from Classpath.
* java/text/ParseException.java (serialVersionUID): New
field from Classpath.
* java/text/ParseException.java: Update formatting & comments
from Classpath.
tromey [Sat, 15 Jun 2002 18:31:13 +0000 (18:31 +0000)]
* java/util/zip/InflaterInputStream.java (read): Loop if data has
been read but none output by inflater.
* java/util/zip/natDeflater.cc (reset): Set is_finished.
* java/util/zip/natInflater.cc (reset): Set dist_needed and
is_finished.
* java/util/zip/ZipOutputStream.java: Replaced with Classpath
version.
* java/util/zip/ZipFile.java: Replaced with Classpath version.
* java/util/zip/ZipEntry.java: Replaced with Classpath version.
* java/util/zip/ZipInputStream.java: Replaced with Classpath
version.
* java/util/zip/ZipConstants.java: Replaced with Classpath version.
sayle [Sat, 15 Jun 2002 16:55:24 +0000 (16:55 +0000)]
* fold-const.c (comparison_to_compcode): New function to convert
an comparison TREE CODE into a bit-based representation.
(compcode_to_comparison): New function to convert from this bit
based representation back to a comparison TREE CODE.
(fold_truthop): Simplify (x<y) && (x==y) and related composite
comparisons.
* gcc.c-tortuture/execute/compare-1.c: New test case.
* gcc.c-tortuture/execute/compare-2.c: New test case.
* gcc.c-tortuture/execute/compare-3.c: New test case.
* stor-layout.c (compute_record_mode): Remove check for
FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for
MEMBER_TYPE_FORCES_BLK. Pass new mode field to
MEMBER_TYPE_FORCES_BLK.
rth [Sat, 15 Jun 2002 01:16:28 +0000 (01:16 +0000)]
* configure.in (USE_UNWIND_EXCEPTIONS): Add support to set
USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set.
* configure, config.in: Regenerate.
* g++spec.c (LIBUNWIND): New.
(lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
rth [Sat, 15 Jun 2002 01:10:49 +0000 (01:10 +0000)]
* loop.c (check_final_value): Use v->always_executed
instead of v->always_computable.
* unroll.c (final_giv_value): Don't calculate the final
value as a function of the biv if the giv is not computed
for every loop iteration.
rth [Sat, 15 Jun 2002 00:40:49 +0000 (00:40 +0000)]
* convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass
the truncation down when the target type is signed.
[trunc1]: Use unsigned arithmetic for LSHIFT_EXPR.
* fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through
the conversion if the target type is a smaller type.
law [Fri, 14 Jun 2002 16:25:36 +0000 (16:25 +0000)]
* gcse.c (delete_null_pointer_checks_1): Inform caller if any
null pointer checks were eliminated. Update prototype.
(delete_null_pointer_checks): Similarly.
* rtl.h (delete_null_pointer_checks): Update prototype.
* toplev.c (rest_of_compilation): Only run cleanup_cfg if
delete_null_pointer_checks deletes one or more null
pointer checks. Do not run cleanup_cfg before gcse, the
CFG is accurate and optimized at that point..
amylaar [Fri, 14 Jun 2002 11:06:38 +0000 (11:06 +0000)]
Fri Jun 14 12:04:02 2002 Dhananjay R. Deshpande <dhananjayd@kpit.com>
* sh.h: Define HARD_REGNO_RENAME_OK
* sh.c: sh_hard_regno_rename_ok: New. If current function has
interrupt_handler attribute, only registers saved on stack are OK.
* sh-protos.h: Declare sh_hard_regno_rename_ok.
kkojima [Fri, 14 Jun 2002 09:49:18 +0000 (09:49 +0000)]
* config/sh/sh.md (jump): Emit jump insn.
(call_pcrel): Get pattern of the result of gen_call_site.
(call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
neil [Fri, 14 Jun 2002 05:43:13 +0000 (05:43 +0000)]
* cpphash.h (struct cpp_buffer): Remove saved_line_base.
* cpptrad.c: Update comments.
(skip_whitespace, copy_comment): Take a new parameter.
(skip_escaped_newlines): Don't duplicate escaped newline test.
(copy_comment): Different location for CUR, decide here how
to copy / replace the comment.
(skip_whitespace): Copy whitespace.
(_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base.
(scan_out_logical_line): Let copy comment handle keeping or
replacing comments.
(scan_parameters, _cpp_create_trad_definition): Update.
amylaar [Thu, 13 Jun 2002 19:23:28 +0000 (19:23 +0000)]
Individual processor configurations for sh-elf / sh-linux:
gcc:
* config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*.
* config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
* sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros.
(SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise.
(SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise.
(SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise.
(SELECT_SH5_COMPACT_NOFPU): Likewise.
(TARGET_SWITCHES): Use them.
(TARGET_CPU_DEFAULT): Define if not already defined.
(TARGET_DEFAULT): Use it.
(LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT.
* config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN.
* config/sh/t-monolib: New file.
bfd:
config.bfd: Add support for sh[1234]l*-*-elf* | sh3el*-*-elf*,
sh[1234]*-elf*.
ld:
* configure.tgt: Add support for sh[1234]*le*-*-elf, sh[1234]*-*-elf.
Still outstanding:
config.sub:
* config.sub: Add support for sh[12], sh3e, sh[1234]le, sh3ele,
shle, sh[1234]le, sh3ele, sh64le.
tromey [Thu, 13 Jun 2002 16:46:01 +0000 (16:46 +0000)]
2002-06-13 Akim Demaille <akim@epita.fr>
* parse.y (class_declaration, interface_declaration): Make sure
all their rules have an action, in order to avoid meaningless `$$
= $1' and their type clashes.
law [Thu, 13 Jun 2002 16:14:55 +0000 (16:14 +0000)]
* emit-rtl.c (static_regno_reg_rtx): Define.
(init_emit_once): Initialize static_regno_reg_rtx.
(init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead
of building new hard reg objects once per function.
(gen_rtx_REG): Try to share hard regs.
* regclass.c (init_fake_stack_mems): New function broken out from
init_regs.
* rtl.h (init_fake_stack_mems): Declare.
* toplev.c (lang_independent_init): Call init_regs before
init_emit_once. Call init_fake_stack_mems after init_emit_once.
gdr [Thu, 13 Jun 2002 12:40:54 +0000 (12:40 +0000)]
* diagnostic.c (output_format): Recognize "%H" as a format
specifier for a location_t.
(text_specifies_location): New function.
(diagnostic_set_info): Use it.