2005-07-06 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22319
Fix PR tree-optimization/22140
Fix PR tree-optimization/22310
* tree-ssa-structalias.c (do_structure_copy): Give up earlier on
variable sized types.
Use correct type for intermediate structure on *a = *b structure
copies.
From-SVN: r101658
* config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE):
Remove.
(STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA.
(machine_function): Move typedef to...
* config/rs6000/rs6000.c (machine_function): ... here. Add
varargs_save_offset field.
(rs6000_stack_t): Remove varargs_size field.
(setup_incoming_varargs): Allocate varargs save area using
assign_stack_local, try to make it as small as possible.
Save offset from virtual_stack_vars_rtx to the save area
in cfun->machine->varargs_save_offset. Use UNITS_PER_FP_WORD
instead of magic 8 when fp word byte size is used.
(rs6000_va_start): Use cfun->machine->varargs_save_offset
instead of -RS6000_VARARGS_SIZE.
(rs6000_stack_info, debug_stack_info,
rs6000_initial_elimination_offset): Remove all traces of
varargs_size.
* config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove.
* config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add
RS6000_VARARGS_AREA.
From-SVN: r101655
PR tree-optimization/21963
* tree-ssa-loop-ivopts.c (get_computation_aff): Use
constant_multiple_of in the same way get_computation_cost_at does.
From-SVN: r101654
* config/sparc/sparc.h (sparc_compare_emitted): New extern.
* config/sparc/sparc.c (sparc_compare_emitted): New variable.
(gen_compare_reg): If sparc_compare_emitted is set, clear it
and return its previous value.
(emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL.
* config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
constants.
(stack_protect_set, stack_protect_test): New expanders.
(stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
stack_protect_testdi): New insns.
* config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define.
From-SVN: r101653
* tree-ssa-dce.c (cfg_altered): New global.
(tree_dce_init): Initialize cfg_altered.
(remove_dead_stmt): If we remove an edge in the CFG, then set
CFG_ALTERED.
(perform_tree_ssa_dce): If we altered the CFG, then invalidate
the dominators.
* gcc.c-torture/compile/pr21356.c: New test.
From-SVN: r101652
* Makefile.in (stamp-collect-ld): Use
$(ORIGINAL_LD_FOR_TARGET) instead of $<. Don't remove
./collect-ld if it already exists.
(stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<.
Don't remove ./nm if it already exists.
From-SVN: r101651
* pa.c (function_value): Handle small aggregates on 32-bit targets.
(function_arg): Pass small aggregates in general registers on 32-bit
targets.
* som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
From-SVN: r101646
2005-07-05 Paolo Carlini <pcarlini@suse.de>
Add class __versa_string, a versatile "basic_string-type" class:
an additional, non-standard, template parameter allows to specify
the preferred base class. Two are provided: __rc_string_base,
which implements a behavior very similar to our standard string,
and __sso_string_base, not reference-counted and optimized for
short strings.
* include/ext/rc_string_base.h: New.
* include/ext/sso_string_base.h: Likewise.
* include/ext/vstring.h: Likewise.
* include/ext/vstring.tcc: Likewise.
* include/ext/vstring_fwd.h: Likewise.
* include/ext/vstring_util.h: Likewise.
* include/Makefile.am: Add.
* include/Makefile.in: Regenerate.
* testsuite/ext/vstring/explicit_instantiation/1.cc: New.
* testsuite/ext/vstring/explicit_instantiation/2.cc: Likewise.
* testsuite/ext/vstring/explicit_instantiation/char/1.cc: Likewise.
* testsuite/ext/vstring/explicit_instantiation/wchar_t/1.cc: Likewise.
* Makefile.in: Regenerate with autotools 1.9.3 (to date, the version
officially used by v3).
* aclocal.m4: Likewise.
* libmath/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
From-SVN: r101639
PR c/22308
* c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
testsuite:
* gcc.dg/pr22308-1.c: New test.
From-SVN: r101629
2005-07-04 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-structalias.c (get_constraint_exp_from_ssa_var):
Only fall back to saying it points to readonly memory if
we can't do better.
From-SVN: r101625
PR target/21723
* pa.md: Remove fcpy alternative from movhi and movqi patterns.
* pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
for complex modes when generating code for PA 1.0.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
(CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
* pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
(VALID_FP_MODE_P): New macro.
(HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
sets for all general and floating point modes. Align wide floating
point modes to even register boundaries to comply with architectural
requirements.
From-SVN: r101613
* gcc.dg/compare1.c: Add -fno-short-enums. Don't skip on any
target.
* gcc.dg/compare9.c: Use -fshort-enums instead of
-fno-short-enums. Change the last test to dg-bogus.
From-SVN: r101611
* gcc.dg/compare1.c: Add -fno-short-enums. Don't skip on any
target.
* gcc.dg/compare9.c: Use -fshort-enums instead of
-fshort-enums. Change the last test to dg-bogus.
From-SVN: r101610
2005-07-04 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/22279
* tree-ssa-structalias.c (offset_overlaps_with_access): Use
correct operator.
From-SVN: r101603
* gnu/classpath/jdwp/processor/CommandSet.java: New file.
* gnu/classpath/jdwp/processor/PacketProcessor.java: Use
CommandSets to handle JdwpCommandPackets.
* gnu/classpath/jdwp/transport/JdwpReplyPacket.java: New
Constructor.
From-SVN: r101601
2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
Thomas Quinot <quinot@adacore.com>
* Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
new target gen-soccon.
2005-07-04 Robert Dewar <dewar@adacore.com>
* s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
2005-07-04 Thomas Quinot <quinot@adacore.com>
* g-socket.ads (Check_Selector): Minor rewording of comment.
2005-07-04 Vincent Celier <celier@adacore.com>
* vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
2005-07-04 Thomas Quinot <quinot@adacore.com>
* gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
2005-07-04 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi: Add description of --eol gnatpp option
2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
Thomas Quinot <quinot@adacore.com>
* gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
if the user wants all calls of a subprogram to be flagged,
independently of whether they are made from within the same unit or
another unit.
Mention restriction for pragma Linker_Alias on some platforms.
Document pragma Linker_Constructor and Linker_Destructor.
Rewrite documentation of Weak_External, Linker_Section and
Linker_Alias pragmas.
From-SVN: r101598
2005-07-04 Vincent Celier <celier@adacore.com>
* makegpr.adb (Build_Global_Archive): Make sure the list of sources is
correctly computed and the main project data is not modified while
doing so.
(Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
(Choose_C_Plus_Plus_Link_Process): Do not generate shell script
c++linker as this does not work on some platforms.
From-SVN: r101596
2005-07-04 Vincent Celier <celier@adacore.com>
* vms_conv.adb (Initialize): Allow multiple ALI files to be given to
the GNAT BIND command, as gnatbind accepts multiples ALI files with
the -L or -n switches.
From-SVN: r101595
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_Object_Reference): An indexed or selected component
whose prefix is an implicit dereference is an object reference. Removes
spurious errors when compiling with -gnatc.
From-SVN: r101592
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* sem_type.adb (Covers): Verify that Corresponding_Record_Type is
present before checking whether an interface type covers a synchronized
type.
From-SVN: r101591
2005-07-04 Thomas Quinot <quinot@adacore.com>
* sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
actual that is a view conversion of a bit packed array reference.
From-SVN: r101590
2005-07-04 Gary Dismukes <dismukes@adacore.com>
* sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
constraint of full view of a private view T1 if present, when T2 is a
discriminated full view.
From-SVN: r101589
2005-07-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Conforming_Types): If the types are anonymous access
types check whether some designated type is a limited view, and use
the non-limited view if available.
From-SVN: r101588