2006-01-24 David Ayers <d.ayers@inode.at>
PR libobjc/9751
* gc.c (class_ivar_set_gcinvisible): Replace strncpy with memcpy
and insure the new strings are '\0' termintated.
From-SVN: r110187
2006-01-24 David Ayers <d.ayers@inode.at>
PR libobjc/13946
* configure.ac: Add include directives for --enable-objc-gc.
* Makefile.in: Ditto.
* configure: Regenerate.
* gc.c (__objc_class_structure_encoding): Increment the used bytes
instead of the local pointer to them.
From-SVN: r110182
* prims.cc (next_property_value): Never return NULL.
(process_gcj_properties): Copy 'props' before using it.
Co-Authored-By: Tom Tromey <tromey@redhat.com>
From-SVN: r110177
* genautomata.c (process_state_for_insn_equiv_partition):
Use xcalloc for insn_arcs_array.
* vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
(DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
From-SVN: r110172
2006-01-23 Paolo Bonzini <bonzini@gnu.org>
PR rtl-optimization/25890
PR rtl-optimization/25905
* combine.c (expand_compound_operation, expand_field_assignment):
Fail if the bitfield's final position is out of bounds.
From-SVN: r110170
PR c++/25552
* parser.c (cp_parser_unqualified_id): Check that destructor name
and scope match.
* call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
Adjust comment. Return early if possible.
Use same_type_p to compare types.
* typeck.c (lookup_destructor): Adjust call to check_dtor_name.
* g++.dg/parse/dtor8.C: New test.
From-SVN: r110168
2006-01-24 Ed Smith-Rowland <3dw4rd@verizon.net>
* docs/html/faq/index.html ([5.2]): Mention TR1 and point to
paragraph [5.5], describing it.
([5.5]): New.
* docs/html/ext/tr1.html: New.
From-SVN: r110165
PR testsuite/25891
* lib/target-supports.exp (check_effective_target_fopenmp): New proc.
* gcc.dg/gomp/gomp.exp: Return without testing anything if
check_effective_target_fopenmp returns 0.
From-SVN: r110148
PR preprocessor/25717
* init.c (cpp_init_builtins): If __STDC__ will not change value
between system headers and other sources, define it as a normal
macro rather than a builtin.
* macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
cpp_in_system_header condition.
From-SVN: r110144
* configure.host (disable_dladdr): Remove variable and its
documentation.
* configure.ac: Do not test for disable_dladdr.
* configure: Regenerate.
* include/config.h.in: Regenerate.
From-SVN: r110139
* configure.host (disable_dladdr): Remove variable and its
documentation.
* configure.ac: Do not test for disable_dladdr.
* configure: Regenerate.
From-SVN: r110137
2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
Daniel Berlin <dberlin@dberlin.org>
PR tree-opt/25315
PR tree-opt/25857
* tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
return from the function.
2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/25857
* g++.dg/opt/pr25857.C: New test.
Co-Authored-By: Daniel Berlin <dberlin@dberlin.org>
From-SVN: r110127
r110130@banpei: zack | 2006-01-22 14:52:43 -0800
* rtl.def (match_code): Add second argument.
* genpreds.c (write_extract_subexp): New function.
(write_match_code): Add path argument. Use write_extract_subexp.
(write_predicate_expr): Pass path to write_match_code.
(mark_mode_tests): MATCH_CODE applied to a subexpression does
not perform a mode test.
* genrecog.c (compute_predicate_codes): MATCH_CODE applied to
a subexpression does not constrain the top-level code set.
* read-rtl.c (read_rtx_variadic): New function.
(read_rtx_1): Use it; allow AND and IOR to be variadic.
* doc/md.texi: Document new notation.
* config/i386/predicates.md (cmpsi_operand_1): Fold into ...
(cmpsi_operand): ... here, using new notation.
From-SVN: r110126
r110128@banpei: zack | 2006-01-22 14:50:42 -0800
* genautomata.c (output_reserved_units_table): Emit nothing if
description->query_units_num is zero. Remove extra blank line.
(output_cpu_unit_reservation_p): Short circuit
if description->query_units_num is zero.
From-SVN: r110124
r110127@banpei: zack | 2006-01-22 14:49:27 -0800
* genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE
and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls
nor any of the random handful of variables that used to be necessary
when this program was linked with rtlanal.o. Prune set of forward
function declarations.
(struct attr_desc): Remove static_p field.
(hash_obstack, temp_obstack, attr_hash_table, attr_printf)
(check_attr_test, make_internal_attr, make_numeric_value): Make static.
(attr_string): Do not read the character one past the length of
the string.
(write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
(struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
(n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
(n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
(make_automaton_attrs): New.
(main): Do not call into genautomata. Call local gen_bypass
and gen_insn_reserv as appropriate. Call make_automaton_attrs.
Remove special case for insn_alts.
* genautomata.c: Include gensupport.h; not genattrtab.h nor
varray.h (leftover from previous change). Prune set of forward
function declarations. Remove state_alts fields from all
structures. Remove state_alts_table from struct automaton.
Make everything except main static. Do not maintain num_dfa_decls.
Do not maintain state_alts fields of various structures.
(process_decls): Don't validate condexp for dm_insn_reserv decls.
(add_arc): Remove state_alts argument. All callers updated.
(output_reserved_units_table): Emit #ifdef here...
(output_tables): ...not here. Don't generate state_alts tables.
(expand_automata): Don't generate attributes.
(write_automata): Don't generate state_alts functions.
(main): New function.
(it_is_empty_reserv_sets, output_state_alts_full_vect_name)
(output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
(AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
(STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
(BYPASS_P_FUNC_NAME, output_state_alts_table)
(output_automata_list_state_alts_code, output_internal_state_alts_func)
(output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
(make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
Delete.
* genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
* genattrtab.h: Delete file.
* Makefile.in (OBJS-common): Add insn-automata.o.
(insn-automata.o): New rule.
(simple_generated_c): Add insn-automata.c.
(build/genattrtab.o, build/genautomata.o): Update dependencies.
(genprogmd): Add automata.
(build/genattrtab): Needs no extra objects nor libraries.
(build/genautomata): Needs build/vec.o and -lm.
From-SVN: r110123
r110126@banpei: zack | 2006-01-22 14:47:42 -0800
* genautomata.c (process_state_longest_path, max_dfa_issue_rate)
(output_dfa_max_issue_rate, locked_states_num): Delete.
(struct automaton): Add locked_states field.
(output_dead_lock_vect): Save number of locked states in
automaton->locked_states. If it is zero, don't print anything.
(output_max_insn_queue_index_def): Define max_insn_queue_index const.
(output_internal_dead_lock_func): Only test the dead_lock_vect
for automata that have locked states.
(output_statistics): Always print the number of locked states for
each automaton. Calculate total number of locked states here.
(write_automata): Don't call output_dfa_max_issue_rate.
* genattrtab.c: Define length_unit_log as a const variable.
* genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare
max_insn_queue_index const.
* final.c (length_unit_log): Declare const.
* doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
From-SVN: r110122
r110125@banpei: zack | 2006-01-22 14:46:46 -0800
* genautomata.c: Include vec.h, not varray.h.
Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
VLA_HWINT_ macros. Change vla_hwint_t to a typedef for
VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to
VEC_* macros operating on appropriately typed vectors, or to
malloced arrays when the size is known in advance. Const-ify
many char* variables and function arguments. No functional changes.
* Makefile.in (build/varray.o): Delete rule.
(build/genattrtab): Depend on build/vec.o instead of build/varray.o.
(build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
From-SVN: r110121
r110123@banpei: zack | 2006-01-22 14:44:34 -0800
* genconditions.c (condition_table, add_condition): Delete.
(write_conditions): Don't emit n_insn_conditions nor
insn_elision_unavailable. Issue the gcc version #ifdef here,
inside the table, with no #else clause ...
(write_header): ...not here.
(write_writer): New function.
(main): Don't initialize condition_table. Use add_c_test.
Call write_writer.
* gensupport.c (init_md_reader_args_cb): Handle multiple input
files on the command line.
(maybe_eval_c_test): Don't check insn_elision_unavailable.
Return -1 if there is no entry in the table, don't abort.
(add_c_test, traverse_c_tests): New functions.
* gensupport.h (insn_elision_unavailable, insn_conditions)
(n_insn_conditions): Delete declarations.
(add_c_test, traverse_c_tests): Declare.
* read-rtl.c: Include gensupport.h.
(read_conditions): New function.
(read_rtx): If read_rtx_1 returns 0, treat as EOF.
(read_rtx_1): If we get EOF when we were looking for an initial
open paren, return 0. Call read_conditions when appropriate.
* Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
dummy-conditions.o. Eliminate references to insn-conditions.o,
or change them to build/gencondmd.o, as appropriate. Remove
insn-constants.h from $(simple_generated_h) and insn-conditions.c
from $(simple_generated_c). For all files remaining in those
two lists, add insn-conditions.md to the generator command line.
Give insn-constants.h/s-constants their own rules. Add rules
for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
(build/read-rtl.o): Depend on gensupport.h.
(genprognormal): Include preds.
(genprogearly): Rename genprognoprint; only difference is now that
they don't link with $(BUILD_PRINT).
* dummy-conditions.c: Delete.
From-SVN: r110119
r110122@banpei: zack | 2006-01-22 14:41:17 -0800
* genextract.c: Don't include insn-config.h. Do include vec.h.
Declare vectors of int, char, and locstr.
(locstr): New typedef.
(struct extraction): Make all array fields into bare pointers.
(insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
(insn_code_number): Delete.
(accum_extract): New struct.
(VEC_safe_set_locstr, VEC_char_to_string): New functions.
(gen_insn): Take insn_code_number as an argument. Use an
accum_extract structure instead of loading data directly into
a struct extraction, and having to know how big it might get.
(walk_rtx): Operate entirely on an accum_extract structure.
(print_path): Avoid unnecessary use of printf.
(print_header): New function, split out of main. Distinguish
more carefully between an unrecognizable insn and an insn that
has the code number of a define_expand.
(main): Pass insn_code_number to gen_insn. Call print_header
only after parsing. Avoid unnecessary use of printf.
* Makefile.in (build/vec.o): New rule.
(build/genextract): Depend on build/vec.o.
(build/genextract.o): Don't depend on insn-config.h.
From-SVN: r110118