Thomas Koenig [Mon, 26 Feb 2007 21:16:00 +0000 (21:16 +0000)]
re PR fortran/30865 ([4.1, 4.2 only] optional argument passed on to size(...,dim=))
2007-02-26 Thomas Koenig <Thomas.Koenig@online.de>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/30865
* trans-intrinsic.c (gfc_conv_intrinsic_size):
If dim is an optional argument, check for its
presence and call size0 or size1, respectively.
2007-02-26 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/30865
* size_optional_dim_1.f90: New test.
Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
From-SVN: r122342
Paolo Carlini [Mon, 26 Feb 2007 09:36:39 +0000 (09:36 +0000)]
PR libstdc++/28080 (partial)
2007-02-26 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28080 (partial)
* include/std/bitset: Do not include <istream> and <ostream>,
<ios> is enough.
* include/std/iomanip: Do not include the whole <istream>,
<ios> is enough; do not include <functional>; reformat.
* include/std/functional: Do not include <cstddef>.
* include/std/list: Do not include <bits/stl_uninitialized.h>.
* include/std/numeric: Do not include the whole <iterator> and
<bits/stl_function.h>.
* include/std/valarray: Do not include <numeric>.
* include/bits/stl_numeric.h: Include <bits/concept_check.h>.
* src/iostream-inst.cc: Include <istream>.
* include/ext/functional: Include <cstddef>.
* testsuite/util/testsuite_hooks.h: Do not include <locale>,
<ctime> is enough; qualify tm.
* testsuite/util/testsuite_hooks.cc: Qualify tm.
Uros Bizjak [Sun, 25 Feb 2007 23:18:45 +0000 (00:18 +0100)]
re PR tree-optimization/30938 (Bootstrap fails on x86_64 for -ftree-vectorize)
PR tree-optimization/30938
* tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
use &dt[nargs-1] instead of &dt[nargs] in the call to
vect_is_simple_use().
Ulrich Weigand [Sun, 25 Feb 2007 20:56:46 +0000 (20:56 +0000)]
reload.c (find_reloads_address_1): Handle PLUS expressions resulting from register elimination as PRE_MODIFY /...
* reload.c (find_reloads_address_1): Handle PLUS expressions resulting
from register elimination as PRE_MODIFY / POST_MODIFY increments.
Do not attempt to handle MEM inside auto-inc expressions.
* reload1.c (eliminate_regs_1): Do not attempt to handle elimination
of a register modified by an auto-inc expression. However, do handle
elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
(elimination_effects): Prohibit elimination of a register modified
by an auto-inc expression. Disable register elimination rules whose
target register is modified by an auto-inc expression with variable
increment.
* tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
off-by-one error.
(array_at_struct_end_p): New function.
(idx_infer_loop_bounds): Use it.
(estimate_numbers_of_iterations_loop): Export.
* predict.c (predict_loops): Use estimated_loop_iterations_int.
Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
(tree_estimate_probability): Call record_loop_exits.
* tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
(estimated_loop_iterations, estimated_loop_iterations_int,
estimated_loop_iterations_tree): New functions.
(analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
(analyze_miv_subscript): Use estimated_loop_iterations_tree.
* predict.def (PRED_LOOP_ITERATIONS): Update comment.
(PRED_LOOP_ITERATIONS_GUESSED): New.
* cfgloop.c (record_loop_exits): Do nothing if there are no loops.
* cfgloop.h (estimate_numbers_of_iterations_loop,
estimated_loop_iterations_int): Declare.
Jan Hubicka [Sun, 25 Feb 2007 17:37:37 +0000 (17:37 +0000)]
re PR target/30778 (invalid code generation for memset() with -mtune=k8)
PR target/30778
* i386.c (counter_mode): New function.
(expand_set_or_movmem_via_loop): Use it.
(expand_movmem_epilogue): Likewise; fix pasto.
(ix86_expand_movmem): Do emit guard even for constant counts.
(ix86_expand_setmem): Likewise.
Bernd Schmidt [Sat, 24 Feb 2007 13:40:54 +0000 (13:40 +0000)]
loop-iv.c (implies_p): Detect additional cases where A implies B.
* loop-iv.c (implies_p): Detect additional cases where A implies B.
(determine_max_iter): Take additional LOOP arg; all callers changed.
Lose broken logic dealing with PLUS. Try to limit the upper bound by
one using simplifications.
Paul Thomas [Fri, 23 Feb 2007 16:35:25 +0000 (16:35 +0000)]
re PR fortran/30660 (Allocatable components of a derived type "require" the SAVE attribute.)
2007-02-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30660
* resolve.c (has_default_initializer): New function.
(resolve_fl_variable): Call has_default_initializer to determine if
the derived type has a default initializer to its ultimate
components.
2007-02-23 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30660
* gfortran.dg/alloc_comp_basics_4.f90: Add component with an
allocatable component.
Jakub Jelinek [Fri, 23 Feb 2007 15:13:18 +0000 (15:13 +0000)]
re PR libgcj/17002 (java.util.TimeZone.getDefault() is broken)
2007-02-22 Jakub Jelinek <jakub@redhat.com>
PR libgcj/17002
PR classpath/28550
* java/util/VMTimeZone.java (getDefaultTimeZoneId): To read
/etc/localtime, use ZoneInfo.readTZFile instead of
VMTimeZone.readtzFile. Get better timezone name for /etc/localtime,
either if it is a symlink or through /etc/sysconfig/clock.
(readSysconfigClockFile): New static method.
(readtzFile): Removed.
* java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments.
* posix.cc (_Jv_platform_initProperties): Set
gnu.java.util.zoneinfo.dir.
* sources.am (gnu_java_util_source_files): Add
classpath/gnu/java/util/ZoneInfo.java.
* Makefile.in: Regenerated.
* java/util/VMTimeZone.h: Regenerated.
* java/util/TimeZone.h: Regenerated.
* gnu/java/util/ZoneInfo.h: Generated.
testsuite:
* gcc.dg/torture/builtin-logb-1.c: New test.
* gcc.dg/torture/builtin-math-2.c: Test logb/ilogb.
* gcc.dg/torture/builtin-nonneg-1.c: Test significand.
* gcc.dg/torture/builtin-frexp-1.c: Use -fno-finite-math-only on
sh* targets.
H.J. Lu [Fri, 23 Feb 2007 09:34:34 +0000 (01:34 -0800)]
i386.c (bdesc_1arg): Initialize IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with...
2007-02-23 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (bdesc_1arg): Initialize
IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
"__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
(ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
and IX86_BUILTIN_MOVSLDUP.
Jerry DeLisle [Fri, 23 Feb 2007 07:14:04 +0000 (07:14 +0000)]
options.c (set_default_std_flags): New function to consolidate setting the flags.
2007-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* options.c (set_default_std_flags): New function to consolidate
setting the flags.
(gfc_init_options): Use new function.
(gfc_handle_option): Use new function.
Mark Mitchell [Thu, 22 Feb 2007 23:49:15 +0000 (23:49 +0000)]
gcc.c (getenv_spec_function): New function.
* gcc.c (getenv_spec_function): New function.
(static_spec_functions): Add it.
* config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
(VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
header files.
Jakub Jelinek [Thu, 22 Feb 2007 16:04:55 +0000 (17:04 +0100)]
re PR libgcj/17002 (java.util.TimeZone.getDefault() is broken)
libjava/
PR libgcj/17002
PR classpath/28550
* java/util/VMTimeZone.java (getDefaultTimeZoneId): To read
/etc/localtime, use ZoneInfo.readTZFile instead of
VMTimeZone.readtzFile. Get better timezone name for /etc/localtime,
either if it is a symlink or through /etc/sysconfig/clock.
(readSysconfigClockFile): New static method.
(readtzFile): Removed.
* java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments.
* posix.cc (_Jv_platform_initProperties): Set
gnu.java.util.zoneinfo.dir.
* sources.am (gnu_java_util_source_files): Add
classpath/gnu/java/util/ZoneInfo.java.
* Makefile.in: Regenerated.
* java/util/VMTimeZone.h: Regenerated.
* java/util/TimeZone.h: Regenerated.
* gnu/java/util/ZoneInfo.h: Generated.
libjava/classpath/
* java/util/Date.java (parse): Properly parse 09:01:02 as
hours/minutes/seconds, not as hours/minutes/year.
* java/util/SimpleTimeZone.java (SimpleTimeZone): Simplify
{start,end}TimeMode constructor by calling shorter constructor,
set {start,end}TimeMode fields after it returns.
(setStartRule): Don't adjust startTime into WALL_TIME. Set
startTimeMode to WALL_TIME.
(endStartRule): Similarly.
(getOffset): Handle properly millis + dstOffset overflowing into the
next day. Adjust startTime resp. endTime based on startTimeMode
resp. endTimeMode.
* java/util/TimeZone.java (zoneinfo_dir, availableIDs, aliases0): New
static fields.
(timezones): Remove synchronized keyword. Set zoneinfo_dir.
If non-null, set up aliases0 and don't put anything into
timezones0.
(defaultZone): Call getTimeZone instead of timezones().get.
(getDefaultTimeZone): Fix parsing of EST5 or EST5EDT6. Use
getTimeZoneInternal instead of timezones().get.
(parseTime): Parse correctly hour:minute.
(getTimeZoneInternal): New private method.
(getTimeZone): Do the custom ID checking first, canonicalize
ID for custom IDs as required by documentation. Call
getTimeZoneInternal to handle the rest.
(getAvailableIDs(int)): Add locking. Handle zoneinfo_dir != null.
(getAvailableIDs(File,String,ArrayList)): New private method.
(getAvailableIDs()): Add locking. Handle zoneinfo_dir != null.
* gnu/java/util/ZoneInfo.java: New file.
Dorit Nuzman [Thu, 22 Feb 2007 08:16:18 +0000 (08:16 +0000)]
re PR tree-optimization/30858 (ice for legal code with -O2 -ftree-vectorize)
PR tree-optimization/30858
* tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
in the reduction cycle have a single use in the loop.
* tree-vectorizer.h (relevant): Add documentation.
Mark Mitchell [Thu, 22 Feb 2007 04:39:35 +0000 (04:39 +0000)]
wrapper.exp (${tool}_maybe_build_wrapper): Allow the caller to set options for compiling testglue.
* lib/wrapper.exp (${tool}_maybe_build_wrapper): Allow the caller
to set options for compiling testglue.
* lib/g++.exp (g++_init): Compile testglue with -fexceptions.
* lib/obj-c++.exp (obj-c++_init): Likewise.
* testsuite/lib/libstdc++.exp (libstdc++_init): Compile testglue
with -fexceptions.
Change the defaults of some parameters and options.
* config/spu/spu-protos.h (spu_optimization_options): Declare.
* config/spu/spu.c (spu_optimization_options): Add.
(spu_override_options): Change params in spu_optimization_options.
* config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
Register 127 is only 16 byte aligned when used as a frame pointer.
* config/spu/spu-protos.h (spu_init_expanders): Declare.
* config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
HARD_FRAME_POINTER_REGNUM.
(spu_legitimate_address): Use regno_aligned_for_reload.
(regno_aligned_for_load): HARD_FRAME_POINTER_REGNUM is only 16 byte
aligned when frame_pointer_needed is true.
(spu_init_expanders): New. Set alignment of HARD_FRAME_POINTER_REGNUM
to 8 bits.
* config/spu/spu.h (INIT_EXPANDERS): Define.
Make sure shift and rotate instructions have valid immediate operands.
* config/spu/predicates.md (spu_shift_operand): Remove.
* config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
* config/spu/constraints.md (W, O): Extend range.
* config/spu/spu.md (umask, nmask): Define.
(ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
spu_nonmem_operand instead of spu_shift_operands. Use new modifiers.
(lshr<mode>3_reg): Fix rtl description.
Make sure mulhisi immediate operands are valid.
* config/spu/predicates.md (imm_K_operand): Add.
* config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
Generate constants using fsmbi and andi.
* config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
(print_operand, spu_split_immediate, classify_immediate,
fsmbi_const_p): Handle IC_FSMBI2.
Correctly handle a CONST_VECTOR containing symbols.
* config/spu/spu.c (print_operand): Handle HIGH correctly.
(spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
(immediate_load_p): Allow symbols that use 2 instructions to create.
(classify_immediate, spu_builtin_splats): Don't accept a CONST_VECTOR
with symbols when flag_pic is set.
(const_vector_immediate_p): New.
(logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
accept a CONST_VECTOR with symbols.
(spu_legitimate_constant_p): Use const_vector_immediate_p. Don't
accept a CONST_VECTOR with symbols when flag_pic is set. Handle HIGH
correctly.
* config/spu/spu.md (high, low): Delete.
(low_<mode>): Define.
More accurate warnings about run-time relocations.
* config/spu/spu.c (reloc_diagnostic): Test in_section.
Correctly warn about immediate arguments to specific intrinsics.
* config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
(spu_expand_builtin_1): Call spu_check_builtin_parm before checking
the instruction predicate.
Fix tree check errors with latest update.
* config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
CALL_EXPR_ARG.
(spu_expand_builtin): Use CALL_EXPR_FN.
Add missing specific intrinsics.
* config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
si_bislede.
* config/spu/spu_internals.h: Ditto.
Fix incorrect operand modifiers.
* config/spu/spu-builtins.md (spu_mpy, spu_mpyu): Remove use of %H.
* config/spu/spu.md (xor<mode>3): Change %S to %J.
Optimize one case of zero_extend of a vec_select.
* config/spu/spu.md (_vec_extractv8hi_ze): Add.
Accept any immediate for hbr.
* config/spu/spu.md (hbr): Change s constraints to i.
PR ada/18819
* sem_ch3.adb (Create_Constrained_Components): for a subtype of an
untagged derived type, add hidden components to keep discriminant
layout consistent, when a given discriminant of the derived type
constraints several discriminants of the parent type.
Ulrich Weigand [Wed, 21 Feb 2007 15:05:01 +0000 (15:05 +0000)]
re PR middle-end/30761 (Error: unsupported relocation against sfp)
PR middle-end/30761
* reload1.c (eliminate_regs_in_insn): In the single_set special
case, attempt to re-recognize the insn before falling back to
having reload fix it up.
Janis Johnson [Tue, 20 Feb 2007 23:11:43 +0000 (23:11 +0000)]
invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
* configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
cmpb instruction.
(HAVE_GAS_DFP): Check for assembler support of decimal floating
point instructions.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/rs6000.opt (mcmpb, mdfp): New.
* config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
masks to power6 and power6x and to POWERPC_MASKS.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
_ARCH_PWR6.
* config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
* config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
Access PROTOTYPE as variable, not mask.
Steven Bosscher [Tue, 20 Feb 2007 22:14:41 +0000 (22:14 +0000)]
rtl.h (remove_reg_equal_equiv_notes): New prototype.
* rtl.h (remove_reg_equal_equiv_notes): New prototype.
* rtlanal.c (remove_reg_equal_equiv_notes): New function.
* combine.c (adjust_for_new_dest): Use it.
* postreload.c (reload_combine): Likewise.
Matthias Klose [Tue, 20 Feb 2007 19:46:57 +0000 (19:46 +0000)]
Makefile.am: Add rules to build and install man pages from texinfo docs.
ChangeLog
2007-02-20 Matthias Klose <doko@ubuntu.com>
* doc/Makefile.am: Add rules to build and install man pages
from texinfo docs.
* doc/hacking.texinfo doc/tools.texinfo, doc/vmintegration.texinfo:
Rename, prefix files with "cp-".
* doc/cp-tools.texinfo: Add markup for man page generation,
add documentation for command line options for gjar, gjavah,
gnative2ascii, gorbd, grmid, grmiregistry, gserialver, gtnameserv.
doc/texi2pod.pl: New, taken from the GCC sources.
ChangeLog.gcj
2007-02-20 Matthias Klose <doko@ubuntu.com>
* Merge doc update from classpath HEAD.
* doc/texi2pod.pl: Not imported.
* doc/Makefile.am: Use GCC's texi2pod.pl
* doc/Makefile.in: Regenerate.