mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-23 11:18:54 +00:00
16727 lines
604 KiB
Plaintext
16727 lines
604 KiB
Plaintext
2006-12-29 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR bootstrap/29544
|
||
* gcc/Makefile.in (STAGE1_CHECKING): Rename to...
|
||
(STAGE1_CHECKING_CFLAGS): ... this.
|
||
|
||
2006-12-28 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
Backport from mainline:
|
||
2006-12-02 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/30040
|
||
* config/i386/driver-i386.c: Include "coretypes.h" and "tm.h".
|
||
(host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite
|
||
processor detection.
|
||
|
||
* config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for
|
||
-march=native if there is no -mtune=*.
|
||
|
||
* config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H)
|
||
coretypes.h.
|
||
|
||
2006-12-27 Ian Lance Taylor <iant@google.com>
|
||
|
||
PR debug/26964
|
||
* dwarf2out.c (gen_type_die): Don't write out a DIE for
|
||
ENUMERAL_TYPE if it was already written out.
|
||
|
||
2006-12-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* dwarf2out.c (dbx_reg_number): Do leaf register remapping
|
||
only if the function is leaf.
|
||
(multiple_reg_loc_descriptor): Likewise.
|
||
|
||
2006-12-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/30262
|
||
PR middle-end/30263
|
||
* tree-nested.c (walk_asm_expr): New function.
|
||
(walk_stmts): Use it for ASM_EXPR.
|
||
|
||
PR target/30230
|
||
* config/ia64/ia64.c (ia64_add_bundle_selector_before): New function.
|
||
(bundling): Use it.
|
||
|
||
2006-12-17 Matthias Klose <doko@debian.org>
|
||
|
||
PR libstdc++/11953
|
||
* gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend.
|
||
|
||
2006-12-16 Joseph Myers <joseph@codesourcery.com>
|
||
David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/24036
|
||
* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
|
||
HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
|
||
* defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
|
||
HARD_REGNO_NREGS_WITH_PADDING): Define.
|
||
* config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
|
||
HARD_REGNO_NREGS_WITH_PADDING): Define.
|
||
* rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
|
||
Use new macros to detect modes with holes; do not look at integer
|
||
units.
|
||
(subreg_offset_representable_p): Check for and disallow cases
|
||
where the modes use different numbers of bits from registers.
|
||
* config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
|
||
constant for soft-float.
|
||
(rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
|
||
containing doubles.
|
||
(rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
|
||
in E500 double case.
|
||
* config/rs6000/rs6000.md (movtf): Allow soft-float.
|
||
(movtf_softfloat): New.
|
||
|
||
2006-12-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/30185
|
||
* config/rs6000/rs6000.md (div<mode>3): Use correct mode in
|
||
force_reg call.
|
||
|
||
2006-12-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
* ipa-inline.c (cgraph_flatten_node): Replace leafify with
|
||
flatten.
|
||
(cgraph_decide_inlining): Likewise.
|
||
|
||
2006-12-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
* ipa-reference.c (scan_for_static_refs): Also scan
|
||
tcc_comparison class trees.
|
||
|
||
2006-12-12 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-structalias.c (handle_ptr_arith): Return false when we
|
||
can't handle the pointer arithmetic.
|
||
|
||
2006-12-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/11953
|
||
* gthr-posix.h (_REENTRANT): Only define if __osf__ is defined.
|
||
|
||
* config/ia64/linux.h (CPP_SPEC): Define.
|
||
* config/s390/linux.h (CPP_SPEC): Define.
|
||
|
||
2006-12-12 Jim Wilson <wilson@specifix.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/27761
|
||
* combine.c (try_combine): Don't create a useless garbage SET
|
||
if PATTERN (i2) is a PARALLEL. If added_sets_1, save
|
||
PATTERN (i1) resp. SET from i1src to i1dest in i1pat
|
||
and use it to prevent accidental modification of i1src.
|
||
|
||
2006-12-12 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/30147
|
||
* fold-const.c (fold_read_from_constant_string): Only fold read
|
||
from constant string if the result type is integer.
|
||
|
||
2006-12-09 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* haifa-sched.c (schedule_block): Remove excessive sanity check.
|
||
|
||
2006-12-08 Mike Stump <mrs@apple.com>
|
||
|
||
* config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build
|
||
libgcc with -mmacosx-version-min=10.4.
|
||
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to
|
||
G4 for 10.5+ unless doing kernel builds.
|
||
|
||
2006-12-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/30039
|
||
* pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
|
||
patterns. Correct length of high:DI instruction sequence.
|
||
|
||
2006-12-07 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
PR target/29794
|
||
* sched-rgn.c (add_block1): Use correct initializer.
|
||
|
||
2006-12-05 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR driver/30074
|
||
* config.host: Add driver-i386.o only if compiling for x86 or
|
||
x86_64.
|
||
|
||
2006-12-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libgomp/29947
|
||
* omp-low.c (expand_omp_for_static_nochunk,
|
||
expand_omp_for_static_chunk): Do all arithmetics in signed rather than
|
||
unsigned type.
|
||
|
||
PR middle-end/29965
|
||
* omp-low.c (determine_parallel_type): Don't try to optimize combined
|
||
parallels if region->exit or region->inner->exit is NULL.
|
||
(expand_omp_parallel): Handle NULL region->exit even if cfg is already
|
||
built.
|
||
(expand_omp_for_generic): Handle NULL region->cond and region->exit.
|
||
(expand_omp_for): Use expand_omp_for_generic if either region->cond
|
||
or region->exit is NULL.
|
||
(expand_omp_sections): Handle NULL region->cond or region->exit.
|
||
(expand_omp_synch):
|
||
|
||
2006-12-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* doc/install.texi: Update MPFR prerequisite to version 2.2.1.
|
||
|
||
2006-12-02 Andrew Pinski <pinskia@gmail.com>
|
||
|
||
PR tree-opt/29984
|
||
* tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
|
||
and MIN_EXRP.
|
||
|
||
2006-11-29 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/predicates.md (gpc_reg_operand): Check
|
||
invalid_e500_subreg.
|
||
* config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
|
||
SImode subregs of SPE vectors.
|
||
* config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
|
||
* jump.c (true_regnum): Require subregs to satisfy
|
||
subreg_offset_representable_p.
|
||
|
||
2006-11-29 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
|
||
|
||
2006-11-29 Jim Tison <jtison@us.ibm.com>
|
||
|
||
* gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
|
||
__gthread_recursive_mutex_init): Define.
|
||
|
||
2006-11-29 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
|
||
STRICT_ALIGNMENT and the type is more aligned than the saved
|
||
registers, copy via a temporary.
|
||
|
||
2006-11-28 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* function.c (instantiate_virtual_regs_in_insn): Call force_reg
|
||
inside start_sequence / end_sequence pair.
|
||
|
||
2006-11-27 Michael Matz <matz@suse.de>
|
||
Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
PR target/29319
|
||
* config/s390/predicates.md (larl_operand): Check addend of larl
|
||
operand to be in range of -/+2GB.
|
||
* config/s390/s390.c (legitimize_pic_address): Likewise.
|
||
Changed type of variable even to HOST_WIDE_INT.
|
||
|
||
2006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* doc/install.texi: Remove documentation for --with-mpfr-dir
|
||
and --with-gmp-dir, add documentation for --with-mpfr-include,
|
||
--with-mpfr-lib, --with-gmp-include and --with-gmp-lib.
|
||
|
||
2006-11-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||
|
||
PR tree-opt/29964
|
||
* ipa-pure-const.c (check_tree): If the original tree
|
||
is volatile return early and say the function is not pure
|
||
nor const. Remove the volatile check for writes.
|
||
(analyze_function): Print out the result of the local
|
||
analysis pass.
|
||
|
||
2006-11-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/29955
|
||
* c-tree.h (c_maybe_initialize_eh): New prototype.
|
||
* c-decl.c (finish_decl): Move EH initialization...
|
||
(c_maybe_initialize_eh): ... here. New function.
|
||
* c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
|
||
if not #pragma omp atomic.
|
||
|
||
PR c/29736
|
||
* c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
|
||
or UNION_TYPE inner types.
|
||
|
||
2006-11-24 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/eabispe.h (TARGET_DEFAULT): Include
|
||
MASK_STRICT_ALIGN.
|
||
* config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_override_options): Use
|
||
MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to
|
||
POWERPC_MASKS.
|
||
|
||
2006-11-24 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390.c (s390_emit_compare_and_swap): New function.
|
||
(s390_expand_cs_hqi, s390_expand_atomic): Call
|
||
s390_emit_compare_and_swap.
|
||
|
||
2006-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
|
||
|
||
2006-11-22 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/spe.md (SPE64): New mode macro.
|
||
(mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0. Add
|
||
memory load.
|
||
(mov_si<mode>_e500_subreg0_2): New.
|
||
(mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4. Add
|
||
memory load.
|
||
(mov_si<mode>_e500_subreg4_2): New.
|
||
* config/rs6000/predicates.md (input_operand): Do not allow
|
||
invalid E500 subregs.
|
||
(rs6000_nonimmediate_operand): Check for invalid E500 subregs also
|
||
if TARGET_SPE.
|
||
* config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
|
||
involving DFmode if TARGET_E500_DOUBLE. Check for subregs
|
||
involving vector modes if TARGET_SPE.
|
||
|
||
2006-11-20 Anatoly Sokolov <aesok@post.ru>
|
||
|
||
PR target/18553
|
||
PR target/29449
|
||
* config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
|
||
|
||
* config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
|
||
|
||
2006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/29114
|
||
* pa.c (emit_move_sequence): Don't split constants with PLUS for modes
|
||
larger than BITS_PER_WORD.
|
||
|
||
2006-11-19 Richard Guenther <rguenther@suse.de>
|
||
|
||
Backport from mainline:
|
||
2006-11-15 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR middle-end/29753
|
||
* gimplify.c (fold_indirect_ref_rhs): Use
|
||
STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
|
||
|
||
2006-11-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR fortran/27885
|
||
PR middle-end/28176
|
||
* stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
|
||
to MAX_FIXED_MODE_SIZE.
|
||
|
||
2006-11-18 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* doc/invoke.texi: Fix mno-isel typo.
|
||
|
||
2006-11-18 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/spe.md (movv4hi_internal): Add alternative for
|
||
easy vector constant loads.
|
||
|
||
2006-11-18 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
|
||
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
|
||
__NO_LWSYNC__ if TARGET_NO_LWSYNC.
|
||
* config/rs6000/sync.md (lwsync): Emit plain sync if
|
||
TARGET_NO_LWSYNC.
|
||
|
||
2006-11-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/29584
|
||
* tree-ssa-forwprop.c (simplify_switch_expr): Don't
|
||
optimize if DEF doesn't have integral type.
|
||
|
||
2006-11-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_function_sseregparm): Fix comment:
|
||
number of arguments passed to local functions in SSE registers is 3.
|
||
|
||
* doc/invoke.texi (Function Attributes) [sseregparm]: Correct
|
||
number of arguments passed in SSE registers to 3.
|
||
|
||
2006-11-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR middle-end/26306
|
||
* gimplify.c (gimplify_expr): Only force a load for references to
|
||
non-BLKmode volatile values.
|
||
* doc/implement-c.texi (Qualifiers implementation): Document the
|
||
interpretation of what a volatile access is.
|
||
* doc/extend.texi (C++ Extensions): Rework same documentation.
|
||
|
||
2006-11-16 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||
|
||
PR tree-opt/29788
|
||
* fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
|
||
to what is the const decl is a place holder for.
|
||
|
||
2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
PR target/29201
|
||
* cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
|
||
bb to ...
|
||
(get_last_bb_insn): ... new global function.
|
||
(basic_block.h): Declare it.
|
||
* haifa-sched.c (create_recovery_block): Use it.
|
||
|
||
2006-11-16 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
|
||
memory operand.
|
||
|
||
2006-11-15 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
|
||
routines for integer division.
|
||
|
||
2006-11-15 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR other/25028
|
||
* config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
|
||
_fixunstfdi, and _floatditf
|
||
|
||
2006-11-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/29581
|
||
* lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
|
||
REPLACEMENTS, FIRSTBSI arguments. If initial condition or
|
||
type is different between Y and USE, create a temporary
|
||
variable, initialize it at the beginning of the body bb
|
||
and use it as replacement instead of Y.
|
||
|
||
2006-11-15 Richard Guenther <rguenther@suse.de>
|
||
|
||
Backport from mainline:
|
||
2006-11-12 Michael Matz <matz@suse.de>
|
||
Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR rtl-optimization/29797
|
||
* ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
|
||
BITS_BIG_ENDIAN targets.
|
||
|
||
2006-11-14 Eric Christopher <echristo@apple.com>
|
||
|
||
* configure: Regenerate with autoconf 2.59.
|
||
|
||
2006-11-13 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.c (m32c_prepare_shift): Use a separate
|
||
temporary for intermediates.
|
||
|
||
2006-11-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
|
||
test.
|
||
* configure: Rebuilt.
|
||
|
||
* configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
|
||
style versions.
|
||
* configure: Rebuilt.
|
||
|
||
2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||
|
||
PR tree-opt/29439
|
||
* tree-vrp.c (vrp_int_const_binop): Use the correct tree when
|
||
checking for overflow.
|
||
|
||
2006-11-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
Backport from mainline:
|
||
2006-10-23 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/21032
|
||
* convert.c (convert_to_real): Fold (float)-x to -(float)x
|
||
only if not flag_rounding_math.
|
||
|
||
2006-11-12 Jason Merrill <jason@redhat.com>
|
||
Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/28915
|
||
* gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
|
||
vector ctors.
|
||
* tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
|
||
vector ctors.
|
||
* expmed.c (make_tree): Handle CONST, SYMBOL_REF.
|
||
* tree.c (build_vector): Handle non-_CST elements.
|
||
|
||
2006-11-12 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/29587
|
||
* tree-ssa-structalias.c (process_constraint): Don't
|
||
mark address taken due only to escaped vars constraint.
|
||
|
||
2006-11-12 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
Revert
|
||
2006-11-11 Jie Zhang <jie.zhang@analog.com>
|
||
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
|
||
and __BFIN__.
|
||
|
||
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
|
||
instead of builtin_define for bfin and BFIN.
|
||
|
||
2006-11-11 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
|
||
and __BFIN__.
|
||
|
||
2006-11-11 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR middle-end/27528
|
||
* stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
|
||
constraints accept neither registers or memories.
|
||
|
||
2006-11-11 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
|
||
(NO_PROFILE_COUNTERS): Define as 1.
|
||
|
||
2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
|
||
|
||
PR middle-end/29726
|
||
* fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
|
||
|
||
2006-11-09 Eric Christopher <echristo@apple.com>
|
||
|
||
PR bootstrap/26892
|
||
PR bootstrap/27814
|
||
PR other/28994
|
||
* configure: Regenerate.
|
||
* configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
|
||
* config.gcc (powerpc64-*-darwin*): New target.
|
||
* config.host: Ditto.
|
||
* config/rs6000/darwin64.h: New file.
|
||
* config/rs6000/x-darwin64: Ditto.
|
||
* config/rs6000/host-ppc64-darwin.c: Ditto.
|
||
|
||
2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
|
||
|
||
* doc/invoke.texi: Minor formatting fixes in option lists.
|
||
|
||
2006-11-08 Eric Christopher <echristo@apple.com>
|
||
|
||
Backport from mainline:
|
||
* config.gcc: Add x86_64-darwin host support.
|
||
* config.host: Ditto.
|
||
* config/i386/darwin64.h: New file.
|
||
* config/i386/t-darwin64: Ditto.
|
||
|
||
2006-11-08 Janis Johnson <janis187@us.ibm.com>
|
||
|
||
* gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
|
||
and output-exists-not.
|
||
|
||
2006-11-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/29610
|
||
* tree-cfgcleanup.c (cleanup_control_flow): Honor return value
|
||
of tree_purge_dead_eh_edges as it may free dominators.
|
||
|
||
* g++.dg/other/pr29610.C: New testcase.
|
||
|
||
2006-11-07 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* gcc.c (process_command): Treat -b as normal switch if its argument
|
||
has no dash.
|
||
|
||
2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
|
||
|
||
Backport from mainline:
|
||
* config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do not
|
||
set inhibit_libc.
|
||
* config/arm/t-strongarm-elf: Likewise.
|
||
* config/arm/t-pe: Likewise.
|
||
* config/arm/t-arm-elf: Likewise.
|
||
* config/arm/t-xscale-elf: Likewise.
|
||
* config/arm/t-arm-coff: Likewise.
|
||
* config/arm/t-xscale-coff: Likewise.
|
||
* config/arm/t-wince-pe: Likewise.
|
||
|
||
2006-11-06 Richard Guenther <rguenther@suse.de>
|
||
|
||
Backport from mainline:
|
||
2006-10-21 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR target/19116
|
||
* config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
|
||
if flag_unsafe_math_optimizations is specified. We have
|
||
flag_finite_math_only for that.
|
||
* config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
|
||
or flag_unsafe_math_optimizations.
|
||
|
||
PR middle-end/28796
|
||
* simplify-rtx.c (simplify_const_relational_operation):
|
||
Do not constant-fold ORDERED and UNORDERED for
|
||
flag_unsafe_math_optimizations but only we do not need to
|
||
honor NaNs for the given mode.
|
||
|
||
2006-11-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/29695
|
||
* fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
|
||
simplification.
|
||
|
||
2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
|
||
|
||
* doc/invoke.texi: Fix mfp-trap-mode typo.
|
||
|
||
2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
|
||
instructions.
|
||
(sparc64-sun-solaris2*): Likewise.
|
||
|
||
2006-11-02 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/29377
|
||
* config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
|
||
argument to HOST_WIDE_INT. Update function prototype.
|
||
(round_frame_size): Change return type to HOST_WIDE_INT. Change
|
||
"size" argument to HOST_WIDE_INT. Update function prototype.
|
||
|
||
2006-11-01 Chris Johns <chris@contemporary.net.au>
|
||
|
||
PR bootstrap/28400
|
||
* Makefile.in (install-driver): Use exeext when installing
|
||
$target-gcc-$version.
|
||
|
||
2006-11-01 Andrew Haley <aph@redhat.com>
|
||
|
||
* fold-const.c (fold_unary): Don't fold (t1)(t2) to (t1) if this
|
||
is a Java program.
|
||
|
||
2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
|
||
|
||
2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR target/24071
|
||
* gthr-posix.h (__gthread_active_p): New implementation on Solaris.
|
||
* gthr-posix95.h (__gthread_active_p): Likewise.
|
||
|
||
2006-10-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/29637
|
||
* tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
|
||
of the innertype is the innertype itself.
|
||
|
||
* gcc.dg/pr29637.c: New test.
|
||
|
||
2006-10-27 Mike Stump <mrs@apple.com>
|
||
|
||
* config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
|
||
__DYNAMIC__ from here back to ...
|
||
* config/darwin.h (CPP_SPEC): ... here.
|
||
|
||
2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_init_frame_layout): Check positive
|
||
frame_size.
|
||
|
||
2006-10-26 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* doc/extend.texi (Variable Attributes): Typo fix.
|
||
|
||
2006-10-25 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
|
||
Add unix98.o to link line.
|
||
|
||
2006-10-25 Richard Sandiford <richard@codesourcery.com>
|
||
David Daney <ddaney@avtrex.com>
|
||
|
||
PR middle-end/29519
|
||
* rtlanal.c (nonzero_address_p): Remove check for values wrapping.
|
||
|
||
2006-10-25 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-structalias.c (intra_create_variable_infos):
|
||
Don't recreate nonlocal_all if it already exists.
|
||
|
||
2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* config/s390/predicates.md ("bras_sym_operand"): Do not accept
|
||
nonlocal function symbols if flag_pic.
|
||
|
||
2006-10-22 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips.c (mips_split_const): Don't accept bare PLUS
|
||
expressions.
|
||
|
||
2006-10-20 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* DEV-PHASE: Mark as prerelease.
|
||
|
||
2006-10-20 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree.h (DECL_PTA_ARTIFICIAL): Remove.
|
||
(tree_decl_with_vis): Remove artificial_pta_var flag.
|
||
* tree-flow.h (referenced_var_check_and_insert): Expose.
|
||
(nonlocal_all): New prototype.
|
||
* tree-ssa-structalias.c (nonlocal_for_type): Remove.
|
||
(nonlocal_all): Make global.
|
||
(nonlocal_lookup): Remove.
|
||
(nonlocal_insert): Ditto.
|
||
(create_nonlocal_var): Do not call nonlocal_insert.
|
||
(get_nonlocal_id_for_type): Remove.
|
||
(find_global_initializers): Mark new vars we find for renaming.
|
||
(intra_create_variable_infos): Only create one nonlocal.
|
||
(expand_nonlocal_solutions): Remove.
|
||
(compute_points_to_sets): Don't call it.
|
||
(ipa_pta_execute): Ditto.
|
||
(init_alias_heapvars): Don't create nonlocal_for_type.
|
||
(delete_alias_heapvars): Don't remove it.
|
||
* tree-ssa-operands.c (access_can_touch_variable): Don't prune
|
||
nonlocal_all.
|
||
|
||
2006-10-19 Brooks Moses <bmoses@stanford.edu>
|
||
|
||
* doc/install.texi (Downloading GCC): Clarify mention of
|
||
Fortran in the "full distribution" description.
|
||
|
||
2006-10-19 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/28778
|
||
Fix PR tree-optimization/29156
|
||
Fix PR tree-optimization/29415
|
||
* tree.h (DECL_PTA_ARTIFICIAL): New macro.
|
||
(tree_decl_with_vis): Add artificial_pta_var flag.
|
||
* tree-ssa-alias.c (is_escape_site): Remove alias info argument,
|
||
pushed into callers.
|
||
* tree-ssa-structalias.c (nonlocal_for_type): New variable.
|
||
(nonlocal_all): Ditto.
|
||
(struct variable_info): Add directly_dereferenced member.
|
||
(var_escaped_vars): New variable.
|
||
(escaped_vars_tree): Ditto.
|
||
(escaped_vars_id): Ditto.
|
||
(nonlocal_vars_id): Ditto.
|
||
(new_var_info): Set directly_dereferenced.
|
||
(graph_size): New variable
|
||
(build_constraint_graph): Use graph_size.
|
||
(solve_graph): Don't process constraints that cannot change the
|
||
solution, don't try to propagate an empty solution to our
|
||
successors.
|
||
(process_constraint): Set directly_dereferenced.
|
||
(could_have_pointers): New function.
|
||
(get_constraint_for_component_ref): Don't process STRING_CST.
|
||
(nonlocal_lookup): New function.
|
||
(nonlocal_insert): Ditto.
|
||
(create_nonlocal_var): Ditto.
|
||
(get_nonlocal_id_for_type): Ditto.
|
||
(get_constraint_for): Allow results vector to be empty in the case
|
||
of string constants.
|
||
Handle results of calls properly.
|
||
(update_alias_info): Update alias info stats on number and type of
|
||
calls.
|
||
(find_func_aliases): Use could_have_pointers.
|
||
(make_constraint_from_escaped): Renamed from
|
||
make_constraint_to_anything, and changed to make constraints from
|
||
escape variable.
|
||
(make_constraint_to_escaped): New function.
|
||
(find_global_initializers): Ditto.
|
||
(create_variable_info_for): Make constraint from escaped to any
|
||
global variable, and from any global variable to the set of
|
||
escaped vars.
|
||
(intra_create_variable_infos): Deal with escaped instead of
|
||
pointing to anything.
|
||
(set_uids_in_ptset): Do type pruning on directly dereferenced
|
||
variables.
|
||
(find_what_p_points_to): Adjust call to set_uids_with_ptset.
|
||
(init_base_vars): Fix comment, and initialize escaped_vars.
|
||
(need_to_solve): Removed.
|
||
(find_escape_constraints): New function.
|
||
(expand_nonlocal_solutions): Ditto.
|
||
(compute_points_to_sets): Call find_escape_constraints and
|
||
expand_nonlocal_solutions.
|
||
(delete_points_to_sets): Don't fall off the end of the graph.
|
||
(init_alias_heapvars): Initialize nonlocal_for_type and
|
||
nonlocal_all.
|
||
(delete_alias_heapvars): Free nonlocal_for_type and null out
|
||
nonlocal_all.
|
||
|
||
2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fold-const.c (add_double): Rename to add_double_with_sign.
|
||
Add 'unsigned_p' parameter and take it into account for the overflow.
|
||
(mul_double): Rename to mul_double_with_sign.
|
||
Add 'unsigned_p' parameter and take it into account for the overflow.
|
||
(fold_div_compare): Call add_double_with_sign instead of add_double
|
||
and mul_double_with_sign instead of mul_double, passing them the
|
||
unsignedness of the type.
|
||
* tree.h (add_double): Macroize.
|
||
(add_double_with_sign): New prototype.
|
||
(mul_double): Macroize.
|
||
(mul_double_with_sign): New prototype.
|
||
|
||
2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
|
||
|
||
* config/score/crti.asm: New file.
|
||
* config/score/crtn.asm: New file.
|
||
* config/score/elf.h: New file.
|
||
* config/score/mac.md: New file.
|
||
* config/score/misc.md: New file.
|
||
* config/score/mul-div.S: New file.
|
||
* config/score/predicates.md: New file.
|
||
* config/score/score7.md: New file.
|
||
* config/score/score.c: New file.
|
||
* config/score/score-conv.h: New file.
|
||
* config/score/score.h: New file.
|
||
* config/score/score.md: New file.
|
||
* config/score/score-mdaux.c: New file.
|
||
* config/score/score-mdaux.h: New file.
|
||
* config/score/score-modes.def: New file.
|
||
* config/score/score.opt: New file.
|
||
* config/score/score-protos.h: New file.
|
||
* config/score/score-version.h: New file.
|
||
* config/score/t-score-elf: New file.
|
||
* config.gcc: Add score*-*-* configurations(Update before).
|
||
* doc/invoke.texi (Score Options): New section.
|
||
* doc/md.texi (Score family): New section to document constraints.
|
||
|
||
2006-10-19 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/arm/arm.c: Fix spelling typo.
|
||
|
||
2006-10-18 Tom Tromey <tromey@redhat.com>
|
||
|
||
* doc/install.texi (Prerequisites): Mention automake 1.9.6.
|
||
|
||
2006-10-18 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/29299
|
||
* cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
|
||
are used.
|
||
|
||
2006-10-18 Marcin Dalecki <martin@dalecki.de>
|
||
|
||
* omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
|
||
TSI_SAME_STMT, since that's the desired entity.
|
||
|
||
2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
|
||
|
||
* config/s390/contraints.md: New file.
|
||
* config/s390/s390-protos.h (s390_mem_constraint,
|
||
s390_O_constraint_str, s390_N_constraint_str,
|
||
s390_float_const_zero_p): Function prototypes added.
|
||
* config/s390/s390.c (s390_extra_constraint_str,
|
||
s390_const_double_ok_for_constraint_p,
|
||
s390_const_ok_for_constraint_p): Functions removed.
|
||
(s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
|
||
s390_float_const_zero_p): New functions.
|
||
* config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
|
||
CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
|
||
EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
|
||
Macro definitions removed.
|
||
(s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
|
||
s390_extra_constraint_str): Functions removed.
|
||
|
||
2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
|
||
Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR target/29413
|
||
* config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
|
||
* config/mips/mips.h (CC1_SPEC): Override any earlier definition.
|
||
|
||
2006-10-16 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
|
||
(DWARF2_FRAME_REG_OUT): Likewise.
|
||
* config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
|
||
(DWARF2_FRAME_REG_OUT): Likewise.
|
||
|
||
2006-10-17 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
|
||
|
||
2006-10-16 Brooks Moses <bmoses@stanford.edu>
|
||
|
||
* doc/contrib.texi, doc/install.texi, doc/standards.texi:
|
||
Standardize on "GNU Fortran" as the official name of the Fortran
|
||
compiler.
|
||
|
||
2006-10-16 Mike Stump <mrs@apple.com>
|
||
|
||
* doc/invoke.texi (Darwin Options): Document -mkernel.
|
||
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
|
||
-mkernel support.
|
||
(C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
|
||
SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
|
||
(CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
|
||
(OS_MISSING_ALTIVEC): Add.
|
||
* config/i386/i386.c (override_options): Add
|
||
SUBSUBTARGET_OVERRIDE_OPTIONS callout.
|
||
* config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
|
||
-mkernel, -static or -mdynamic-no-pic is given.
|
||
(C_COMMON_OVERRIDE_OPTIONS): Add.
|
||
* config/darwin.opt (fapple-kext): Add.
|
||
(mkernel): Add.
|
||
* config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
|
||
-fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
|
||
-mkernel support.
|
||
(SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
|
||
(SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
|
||
(CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
|
||
(SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
|
||
(TARGET_CXX_CDTOR_RETURNS_THIS): Add.
|
||
(flag_mkernel): Add.
|
||
(flag_apple_kext): Add.
|
||
(TARGET_KEXTABI): Add.
|
||
* config/darwin.c (darwin_handle_kext_attribute): Add.
|
||
(DARWIN_VTABLE_P): Add.
|
||
(darwin_binds_local_p): Add partial support for rebinding vtables
|
||
in kexts.
|
||
(darwin_kextabi_p): Add.
|
||
(darwin_override_options): Add.
|
||
* config/darwin-protos.h (darwin_handle_kext_attribute): Add.
|
||
(darwin_kextabi_p): Add.
|
||
(darwin_override_options): Add.
|
||
* config/darwin-c.c (darwin_cpp_builtins): ... move defines for
|
||
__DYNAMIC__ and __STATIC__ here.
|
||
|
||
2006-10-16 Brooks Moses <bmoses@stanford.edu>
|
||
|
||
* doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
|
||
Added mention of "make pdf" target, and Texinfo requirements for
|
||
same.
|
||
|
||
2006-10-16 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/s390/s390.c (s390_decompose_address): Allow symbol+offset
|
||
into the GOT in case we need a subreg of the address.
|
||
|
||
2006-10-16 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR target/25519
|
||
* doc/extend.texi (X86 Built-in Functions): Fix typos in
|
||
SSE builtin documentation. Document SSE2 builtins.
|
||
|
||
2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
|
||
symbol in the output file for non-shared links when -nostdlib or
|
||
-nodefaultlibs isn't specified.
|
||
|
||
* config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
|
||
posix thread support.
|
||
|
||
2006-10-15 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/29241
|
||
* cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
|
||
declared always_inline even when not inlining.
|
||
|
||
2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
Andrew Pinski <pinskia@gmail.com>
|
||
|
||
PR middle-end/29111
|
||
* builtins.c (get_pointer_alignment): Return 0 if TER is not run.
|
||
|
||
2006-10-15 Jan Hubicka <jh@suse.cz>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/29299
|
||
* cgraphunit.c (cgraph_finalize_compilation_unit): Call
|
||
process_function_and_variable_attributes on all variables, including
|
||
those discovered during cgraph construction phase.
|
||
|
||
2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
|
||
|
||
* final.c: Update Copyright year. Commentary typo fix. Fix whitespace
|
||
|
||
2006-10-14 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
* config/i386/athlon.md (athlon_fist): Add fisttp.
|
||
|
||
2006-10-13 David Edelsohn <edelsohn@gnu.org>
|
||
Ian Lance Taylor <ian@airs.com>
|
||
|
||
PR middle-end/29250
|
||
* expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
|
||
CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
|
||
recursing.
|
||
|
||
2006-10-14 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* config/score/score.c, config/score/score.h: Fix comment
|
||
typos.
|
||
|
||
2006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
PR bootstrap/29402
|
||
* Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
|
||
shell pipeline.
|
||
|
||
2006-10-13 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
|
||
|
||
2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
Revert this change:
|
||
2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
|
||
* config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
|
||
alignment supported by 32-bit ELF.
|
||
|
||
2006-10-13 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/darwin.c (darwin_emit_unwind_label): Strip
|
||
name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
|
||
|
||
2006-10-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/29446
|
||
* tree-vrp.c (fix_equivalence_set): Remove.
|
||
(extract_range_from_assert): Do not call fix_equivalence_set.
|
||
(debug_value_range): Print a newline.
|
||
(compare_name_with_value): For equivalence sets with
|
||
inconsistent value ranges conservatively bail out.
|
||
(compare_names): Likewise.
|
||
|
||
2006-10-13 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
|
||
and MPFR for gfortran.
|
||
|
||
2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
|
||
alignment supported by 32-bit ELF.
|
||
|
||
2006-10-13 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR c/29092
|
||
|
||
* c-typeck.c (digest_init): Always allow initializing vectors
|
||
that have static storage duration with compound literals.
|
||
* tree.c (build_type_attribute_qual_variant): New, based on
|
||
build_type_attribute_variant.
|
||
(build_type_attribute_variant): Rewrite using the former.
|
||
(make_vector_type): Use build_type_attribute_qual_variant to build
|
||
type variants. Use type_hash_canon on the others.
|
||
|
||
2006-10-13 Daniel Berlin <dberlin@dberlin.org>
|
||
Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com>
|
||
|
||
* tree-flow-inline.h (zero_ssa_operands): Fix comment.
|
||
|
||
2006-10-12 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR c/28419
|
||
* c-decl.c (c_make_fname_decl): Do not segfault in case where
|
||
current_function_decl is set but current_function_scope is not.
|
||
|
||
2006-10-12 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
|
||
emit_insn to emit eh_return_internal instruction.
|
||
(eh_return_internal): Explicitly set pc.
|
||
|
||
2006-10-11 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/28230
|
||
* tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
|
||
to the correct place.
|
||
|
||
2006-10-11 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR inline-asm/29119
|
||
* gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
|
||
addressable.
|
||
|
||
2006-10-10 Brooks Moses <bmoses@stanford.edu>
|
||
|
||
* configure.ac: Added pdf to "Make-hooks"
|
||
* Makefile.in: Added TEXI2PDF definition, and various pdf-file
|
||
targets and *.pdf file patterns in cleanup targets.
|
||
* configure: Regenerated.
|
||
|
||
2006-10-10 Anatoly Sokolov <aesok@post.ru>
|
||
|
||
* config/avr/predicates.md: New file.
|
||
* config/avr/avr.md: Include it.
|
||
(REG_SP): New constant.
|
||
(peepholes): Use predicates.
|
||
(sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
|
||
difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
|
||
sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
|
||
|
||
2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
|
||
avoid alias set 0.
|
||
|
||
2006-10-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/29272
|
||
* builtins.c (var_decl_component_p): New function.
|
||
(fold_builtin_memset, fold_builtin_memory_op): Restrict
|
||
single entry optimization to variables and components thereof.
|
||
|
||
2006-10-10 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/29323
|
||
* except.c (set_nothrow_function_flags): For functions
|
||
that do not bind local bail out early.
|
||
|
||
2006-10-10 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
|
||
-mdlmzb option.
|
||
|
||
2006-10-09 Richard Henderson <rth@redhat.com>
|
||
|
||
Revert emutls patch.
|
||
|
||
2006-10-09 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/29254
|
||
* cgraphunit.c (verify_cgraph_node): Bail out on earlier
|
||
errors.
|
||
|
||
2006-10-09 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR target/27880
|
||
* unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
|
||
* configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
|
||
2006-10-09 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
|
||
|
||
2006-10-08 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips.c (mips_legitimize_tls_address): Implement
|
||
all TLS models in the same way as local exec if !TARGET_ABICALLS.
|
||
Remove stray newline.
|
||
|
||
2006-10-08 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips.c (mips_classify_symbol): Do not return
|
||
SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
|
||
(mips_in_small_data_p): Tweak comments.
|
||
|
||
2006-10-08 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
|
||
|
||
2006-10-07 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* gimplify.c, sched-int.h: Fix comment typos.
|
||
|
||
* sched-int.h: Fix comment typos.
|
||
|
||
2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
|
||
New macros.
|
||
* sched-ebb.c (begin_schedule_ready): Use them.
|
||
* haifa-sched.c (schedule_insn, move_insn, try_ready,
|
||
add_to_speculative_block, create_check_block_twin, speculate_insn,
|
||
fix_jump_move, move_block_after_check): Ditto.
|
||
* sched-rgn.c (new_ready): Ditto.
|
||
|
||
2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
PR rtl-optimization/29128
|
||
* sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
|
||
* sched-ebb.c (advance_target_bb): Use it to fix condition to
|
||
allow interblock movement of speculation checks.
|
||
|
||
2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR middle-end/29256
|
||
* tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
|
||
casted to integer type.
|
||
(get_address_cost): Decrease cost of [symbol + index] addressing modes
|
||
if they are significantly more expensive than [reg + index] ones.
|
||
|
||
2006-10-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/29330
|
||
* tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
|
||
(initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
|
||
on newly allocated ddrs.
|
||
(find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
|
||
to VEC (loop_p, heap) pointer.
|
||
(compute_data_dependences_for_loop): Adjust caller.
|
||
(free_dependence_relations): Free DDR_LOOP_NEST.
|
||
|
||
* tree-loop-linear.c (linear_transform_loops): Don't forget to
|
||
free DEPENDENCE_RELATIONS and DATAREFS.
|
||
|
||
PR target/28924
|
||
* builtins.c (expand_builtin_sync_operation,
|
||
expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
|
||
Use convert_to_mode to handle promoted arguments.
|
||
|
||
2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* print-tree.c (print_node_brief, print_node): Print sign of Inf.
|
||
|
||
2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
|
||
|
||
2006-10-05 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
* config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
|
||
"sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
|
||
Use <modeconstraint> instead of "r" as operand 1 constraint.
|
||
|
||
2006-10-06 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
|
||
Don't recurse on the pointed-to type.
|
||
* c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
|
||
DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
|
||
types with components of variable size.
|
||
|
||
2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
|
||
|
||
config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
|
||
|
||
2006-10-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/29290
|
||
* tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
|
||
multiple exits.
|
||
|
||
PR target/29198
|
||
* config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
|
||
* config/i386/predicates.md (local_symbolic_operand): Likewise.
|
||
|
||
PR c/29091
|
||
* varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
|
||
the number of vector elements fill the rest with zeros.
|
||
|
||
2006-10-05 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips.c (mips_pass_by_reference): Do not return false
|
||
for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
|
||
instead.
|
||
|
||
2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/bfin/bfin.md (subsi3): Lose expander, change previously
|
||
unnamed pattern into subsi3. Use correct constraints/predicates.
|
||
* config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
|
||
* config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
|
||
|
||
2006-10-05 Ira Rosen <irar@il.ibm.com>
|
||
|
||
* doc/loop.texi: Add data references analysis description.
|
||
|
||
2006-10-04 Brooks Moses <bmoses@stanford.edu>
|
||
|
||
* doc/gcov.texi: Add formatting to "Invoking gcov" section head.
|
||
|
||
2006-10-04 Richard Henderson <rth@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
|
||
* builtin-types.def (BT_WORD): Make unsigned.
|
||
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
|
||
* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
|
||
(BUILT_IN_EMUTLS_REGISTER_COMMON): New.
|
||
* c-decl.c (grokdeclarator): Don't error if !have_tls.
|
||
* c-parser.c (c_parser_omp_threadprivate): Likewise.
|
||
* cgraph.c (decide_is_variable_needed): Look at force_output.
|
||
Recurse for emulated tls.
|
||
* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
|
||
checks redundant with decide_is_variable_needed.
|
||
(cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
|
||
* dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
|
||
emulated tls.
|
||
* expr.c (emutls_var_address): New.
|
||
(expand_expr_real_1): Expand emulated tls.
|
||
(expand_expr_addr_expr_1): Likewise.
|
||
* libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
|
||
* output.h (emutls_finish): Declare.
|
||
* toplev.c (compile_file): Call it.
|
||
* tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
|
||
address before wrapping in CONST.
|
||
* varasm.c (emutls_htab, emutls_object_type): New.
|
||
(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
|
||
(get_emutls_object_name, get_emutls_object_type): New.
|
||
(get_emutls_init_templ_addr, emutls_decl): New.
|
||
(emutls_common_1, emutls_finish): New.
|
||
(assemble_variable): When emulating tls, swap decls; generate
|
||
constructor for the emutls objects.
|
||
(do_assemble_alias): When emulating tls, swap decl and target name.
|
||
(default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
|
||
for emulated tls.
|
||
* emutls.c: New file.
|
||
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
|
||
tls_object for real tls.
|
||
|
||
2006-10-04 Zack Weinberg <zackw@panix.com>
|
||
|
||
Fix bug in constraint-check generator, reported by Rask Ingemann
|
||
Lambertsen:
|
||
* genpreds.c (add_constraint): Don't remove anything from the
|
||
expression here.
|
||
(write_tm_constrs_h): Detect whether "op" argument is used, and
|
||
mark it ARG_UNUSED if it isn't.
|
||
(write_insn_const_int_ok_for_constraint): Skip the part of the
|
||
expression that would test whether "op" (which is not available
|
||
here) is a CONST_INT.
|
||
|
||
2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
|
||
|
||
PR c++/28448
|
||
* doc/invoke.texi (fdiagnostics-show-option): Fix typos.
|
||
|
||
2006-10-03 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
|
||
current Leopard versions.
|
||
* config/rs6000/darwin-libgcc.10.5.ver: Likewise.
|
||
|
||
2006-10-03 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* doc/install.texi: Fix typos.
|
||
|
||
2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
|
||
* doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
|
||
* config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
|
||
|
||
2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
|
||
|
||
* unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
|
||
arg to be struct mach_header_64* instead.
|
||
|
||
2006-10-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/29154
|
||
* gimplify.c (gimplify_self_mod_expr): Run inner expression's post
|
||
side effects after the outer expression's post side effects.
|
||
|
||
2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
|
||
comments to reflect actual behavior and relationship between
|
||
DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
|
||
|
||
* doc/c-tree.texi (Working with declarations): Fix documentation
|
||
of FIELD_DECL likewise.
|
||
|
||
2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
|
||
|
||
PR c/20533
|
||
* doc/extend.texi: Add used variable attribute description.
|
||
|
||
2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR c/24010
|
||
* c.opt (Woverride-init): New.
|
||
* c-opts.c (c_common_post_options): Default warn_override_init to
|
||
extra_warnings.
|
||
* c-typeck.c (add_pending_init, output_init_element): Warn for
|
||
overriding initializers without side effects.
|
||
* doc/invoke.texi (-Woverride-init): Document.
|
||
(-Wextra): Update.
|
||
|
||
2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/28096
|
||
* ifcvt.c (check_cond_move_block): Return FALSE if the source of an
|
||
assignment has already been used as a destination earlier in the block.
|
||
|
||
2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* builtins.c (expand_builtin_setjmp): Delete.
|
||
(expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
|
||
<BUILT_IN_SETJMP_SETUP>: New case.
|
||
<BUILT_IN_SETJMP_DISPATCHER>: Likewise.
|
||
<BUILT_IN_SETJMP_RECEIVER>: Likewise.
|
||
* builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
|
||
(BUILT_IN_SETJMP_DISPATCHER): Likewise.
|
||
(BUILT_IN_SETJMP_RECEIVER): Likewise.
|
||
* gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
|
||
(lower_function_body): Initialize it to false. If it is set to true
|
||
at the end of the processing, emit the setjmp dispatcher.
|
||
(lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
|
||
is __builtin_setjmp and set calls_builtin_setjmp to true as well.
|
||
<MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
|
||
on the rhs of the assignment.
|
||
(lower_builtin_setjmp): New function.
|
||
* tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
|
||
BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
|
||
* tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
|
||
to detect calls that can go to non-local labels. Use specific
|
||
helper to create the abnormal edges associated with them.
|
||
<MODIFY_EXPR>: Likewise.
|
||
(make_abnormal_goto_edges): New function extracted from...
|
||
(make_goto_expr_edges): ...here. Call it for computed gotos.
|
||
(simple_goto_p): Minor tweak.
|
||
(tree_can_make_abnormal_goto): New predicate.
|
||
(tree_redirect_edge_and_branch): Return zero on all abnormal edges.
|
||
(tree_purge_dead_abnormal_call_edges): New function.
|
||
* tree-flow.h (tree_can_make_abnormal_goto): Declare.
|
||
(tree_purge_dead_abnormal_call_edges): Likewise.
|
||
(make_abnormal_goto_edges): Likewise.
|
||
* tree-inline.c (expand_call_inline): Simplify statement frobbing.
|
||
Purge all dead abnormal edges if the call was in the last statement.
|
||
* tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
|
||
(execute_fixup_cfg): If there are non-local labels in the function,
|
||
scan the basic blocks and split them at calls that can go to non-local
|
||
labels or add missing abnormal call edges. Write down the CFG in the
|
||
dump file.
|
||
(pass_fixup_cfg): Remove TODO_dump_func flag.
|
||
* unwind-sjlj.c: Poison setjmp.
|
||
* doc/install.texi (enable-sjlj-exceptions): Use more general wording.
|
||
* doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
|
||
(TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
|
||
(DONT_USE_BUILTIN_SETJMP): Document it.
|
||
|
||
2006-09-28 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
PR target/28617
|
||
* config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
|
||
to 1 when __ppc64__ is defined.
|
||
* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
|
||
darwin-64.c.
|
||
* config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
|
||
|
||
2006-09-28 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
|
||
* config/ia64/unwind-hpux.c: Delete.
|
||
|
||
2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
|
||
on the element before gimplifying it, instead of punting if it is of
|
||
variable size.
|
||
|
||
2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* doc/loop.texi: New file.
|
||
* doc/gccint.texi: Reference loop.texi.
|
||
* Makefile.in (loop.texi): Add.
|
||
|
||
2006-09-27 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
|
||
__sysctl.
|
||
* config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
|
||
* config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
|
||
|
||
2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.md (divsi_inv_m0): Remove unused variable.
|
||
|
||
2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
|
||
|
||
* doc/install.texi: Document required versions of GMP and MPFR.
|
||
|
||
2006-09-27 Paul Brook <paul@codesourcery.com>
|
||
|
||
PR target/29230
|
||
* config/arm/arm.md (arith_adjacentmem): Handle large offsets.
|
||
|
||
2006-09-27 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* reload1.c (alter_reg): Require the alignment of the stack slot to
|
||
be at least reg_max_ref_width bytes.
|
||
(scan_paradoxical_subregs): Record the largest width in
|
||
reg_max_ref_width.
|
||
|
||
2006-09-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/25261
|
||
PR middle-end/28790
|
||
* tree-nested.c (struct nesting_info): Added static_chain_added.
|
||
(convert_call_expr): Set static_chain_added when adding static
|
||
chain. Handle OMP_PARALLEL and OMP_SECTION.
|
||
|
||
2006-09-25 Matthias Klose <doko@debian.org>
|
||
|
||
* doc/invoke.texi: Add missing full stop.
|
||
|
||
2006-09-25 Richard Henderson <rth@redhat.com>
|
||
|
||
* cgraph.c (dump_cgraph_varpool_node): Don't crash if called
|
||
before cgraph_function_flags_ready.
|
||
|
||
2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
|
||
Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* tree-ssa-loop-ivopts.c (aff_combination_convert,
|
||
determine_common_wider_type): New functions.
|
||
(get_computation_aff): Use them to simplify arithmetic between
|
||
UBASE and CBASE if they are shortened from the same type.
|
||
|
||
2006-09-24 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR target/28911
|
||
* config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
|
||
-2147483647 - 1 instead of 0x80000000.
|
||
|
||
2006-09-23 Revital1 Eres <ERES@il.ibm.com>
|
||
|
||
* flags.h (HONOR_NANS): Fix typo in comment.
|
||
|
||
2006-09-23 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
|
||
|
||
2006-09-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/28706
|
||
PR c/28712
|
||
* tree.c (merge_attributes, attribute_list_contained): If both
|
||
TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
|
||
simple_cst_equal.
|
||
* c-typeck.c (comptypes_internal): Don't consider aggregates
|
||
in different TUs as compatible if there one set of attributes is
|
||
not a subset of the other type's attributes.
|
||
(composite_type): Try harder not to create a new aggregate type.
|
||
|
||
2006-09-22 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/i386/driver-i386.c: Always define host_detect_local_cpu.
|
||
* config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
|
||
or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
|
||
(CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
|
||
than replicating condition above.
|
||
* config.host (i[34567]86-*-*): Always use driver-i386.o.
|
||
|
||
* config/darwin.h (LINK_SYSROOT_SPEC): New.
|
||
(LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
|
||
the linker by default.
|
||
|
||
2006-09-22 Mike Stump <mrs@apple.com>
|
||
|
||
* config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
|
||
code.
|
||
|
||
2006-09-22 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28964
|
||
* cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
|
||
sort of stack variables stable.
|
||
|
||
2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
PR middle-end/28690
|
||
* explow.c (force_reg): Set REG_POINTER flag according to
|
||
MEM_POINTER flag.
|
||
|
||
2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/28888
|
||
* tree-if-conv.c (combine_blocks): Rewritten.
|
||
* tree-cfg.c (tree_verify_flow_info): Check that edges with
|
||
EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
|
||
|
||
2006-09-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
|
||
needed.
|
||
|
||
2006-09-21 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* varasm.c (copy_constant): Fix reversed gcc_assert check.
|
||
|
||
2006-09-21 Janis Johnson <janis187@us.ibm.com>
|
||
|
||
* ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
|
||
|
||
2006-09-21 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR debug/29132
|
||
* dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
|
||
dw_fde_current_label, to be the start of the function, i.e. the same
|
||
value as dw_fde_begin.
|
||
|
||
2006-09-20 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
|
||
* config/mips/mips.md (UNSPEC_ABS_PS): New constant.
|
||
(UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
|
||
(UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
|
||
(*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
|
||
(*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
|
||
(abs<mode>2, neg<mode>2): Likewise.
|
||
* config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
|
||
(*mips_abs_ps): New define_insn.
|
||
|
||
2006-09-20 Josh Conner <jconner@apple.com>
|
||
|
||
PR middle-end/25505
|
||
* calls.c (expand_call): Allow reuse of structure return stack
|
||
temp.
|
||
|
||
2006-09-20 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
|
||
positive offsets.
|
||
|
||
2006-09-20 Janis Johnson <janis187@us.ibm.com>
|
||
|
||
* doc/extend.texi (Decimal Float): Update for latest draft TR,
|
||
clean up terminology.
|
||
|
||
2006-09-20 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR target/28574
|
||
* ifcvt.c (dead_or_predicable): Don't predicate then blocks
|
||
with tablejumps in them.
|
||
|
||
2006-09-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/28046
|
||
* c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
|
||
wrap it into TARGET_EXPR.
|
||
|
||
2006-09-20 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/i386/i386.c (x86_fisttp): Remove.
|
||
* config/i386/i386.h (x86_fisttp): Ditto.
|
||
(TARGET_FISTTP): Ditto.
|
||
|
||
2006-09-19 Eric Christopher <echristo@apple.com>
|
||
|
||
* doc/tm.texi (OBJC_JBLEN): Describe.
|
||
* config/i386/darwin.h (OBJC_JBLEN): Define.
|
||
* config/rs6000/darwin.h: Ditto.
|
||
|
||
2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR rtl-optimization/21299
|
||
* reload1.c (reload): Purge invalid ASMs in the final pass.
|
||
|
||
2006-09-19 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR 28490
|
||
* config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
|
||
pointers as legitimate constants.
|
||
|
||
2006-09-19 Paul Brook <paul@codesourcery.com>
|
||
|
||
PR target/28516
|
||
* config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
|
||
|
||
2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/28887
|
||
* tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
|
||
component parts from the reference.
|
||
(gather_memory_references_ref): Record the reference without the
|
||
nonaddressable component parts.
|
||
|
||
2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR c/25993
|
||
* c-opts.c (c_common_handle_option): Ignore the -std options
|
||
if the input language is assembly.
|
||
|
||
2006-09-17 Ira Rosen <irar@il.ibm.com>
|
||
|
||
PR tree-opt/21591
|
||
* tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
|
||
tag first.
|
||
(ptr_ptr_may_alias_p): Likewise.
|
||
(record_record_differ_p): New function.
|
||
(base_object_differ_p): Call record_record_differ_p.
|
||
|
||
2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/29059
|
||
* tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
|
||
away for the expr argument.
|
||
|
||
2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR tree-opt/27742
|
||
* tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
|
||
before using it for dumping after vectorizing loops.
|
||
|
||
2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
|
||
Jack Howarth <howarth@bromo.med.uc.edu>
|
||
|
||
PR target/29030
|
||
* config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
|
||
skip on error_mark_node.
|
||
(rs6000_darwin64_record_arg_recurse): Likewise.
|
||
|
||
2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
|
||
* doc/rtl.texi: Remove related documentation.
|
||
|
||
2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
|
||
printf.
|
||
|
||
2006-09-15 Jim Wilson <wilson@specifix.com>
|
||
|
||
* config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
|
||
Handle symbol offsets same as they are handled in ia64_expand_move
|
||
and move_operand.
|
||
|
||
2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
|
||
|
||
* loop-doloop.c (doloop_optimize): Change type of max_cost to int.
|
||
Add forgotten parameter to the fprintf call.
|
||
|
||
2006-09-15 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
|
||
|
||
2006-09-15 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
* doc/contrib.texi: Add my entry.
|
||
|
||
2006-09-15 Nick Clifton <nickc@redhat.com>
|
||
|
||
* doc/md.texi (Processor pipeline description): Fix typo in
|
||
example of how to use the absence_set directive and reword the
|
||
description to make it slightly easier to read.
|
||
|
||
2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
|
||
* loop-doloop.c (doloop_optimize): Use it to limit costs of
|
||
expanding the number of iterations.
|
||
* config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
|
||
|
||
* cfgrtl.c (emit_insn_at_entry): New function.
|
||
* rtl.h (emit_insn_at_entry): Declare it.
|
||
* integrate.c (emit_initial_value_sets): Use it.
|
||
|
||
* cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
|
||
|
||
* config/bfin/bfin.c (struct loop_info): New members block_bitmap and
|
||
bad.
|
||
(struct loop_work and related VEC declarations): Delete.
|
||
(bfin_dump_loops): Print out new member bad.
|
||
(bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
|
||
(bfin_scan_loop): Don't recurse.
|
||
(bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
|
||
loops. No longer need to update outer loops if the current one is
|
||
found bad. Move some validitiy checks to bfin_discover_loop.
|
||
(bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
|
||
but changed not to check for nesting. Also changed to use the new bad
|
||
flag.
|
||
(bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
|
||
time. Use bitmap based test to discover loop nesting.
|
||
|
||
2006-09-15 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
|
||
one line.
|
||
|
||
2006-09-14 Richard Guenther <rguenther@suse.de>
|
||
Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR middle-end/28884.
|
||
* doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
|
||
(FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
|
||
Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
|
||
with TARGET_FUNCTION_VALUE.
|
||
|
||
2006-09-14 Anatoly Sokolov <aesok@post.ru>
|
||
|
||
PR target/26504
|
||
* config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
|
||
|
||
2006-09-13 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
|
||
of a RETURN_EXPR
|
||
|
||
2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR debug/28980
|
||
* dwarf2out.c (loc_descriptor_from_tree_1): Handle
|
||
FUNCTION_DECL.
|
||
|
||
2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* basic_block.h (bb_has_eh_pred): Fix comment.
|
||
|
||
2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* flow.c (calculate_global_regs_live): Invalidate eh registers
|
||
on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
|
||
(propagate_block): Handle eh registers as if they were set at basic
|
||
block start.
|
||
* except.c (dw2_build_landing_pads): Don't emit clobbers for eh
|
||
registers.
|
||
* global.c (global_conflicts): Make eh registers to conflict with
|
||
pseudos live at basic block begin.
|
||
* basic_block.h (bb_has_eh_pred): New function.
|
||
|
||
2006-09-13 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR rtl-optimization/28982
|
||
* reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
|
||
index of a PRE_MODIFY or POST_MODIFY address.
|
||
* reload1.c (inc_for_reload): Use find_replacement on the original
|
||
base and index registers.
|
||
|
||
2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* doc/invoke.texi (mpreferred-stack-boundary): Remove exception
|
||
for -Os. Update __m128 alignment requirement.
|
||
|
||
2006-09-13 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
|
||
|
||
2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/28243
|
||
* combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
|
||
the insn to which the note was originally attached.
|
||
|
||
2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
|
||
Roger Sayle <roger@eyesopen.com>
|
||
|
||
* dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
|
||
outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
|
||
on platforms that don't use dwarf for debug info.
|
||
|
||
2006-09-12 Jason Merrill <jason@redhat.com>
|
||
|
||
PR middle-end/28493
|
||
* builtins.c (expand_builtin_setjmp_receiver): Clobber
|
||
hard_frame_pointer_rtx after using it to update the frame pointer.
|
||
|
||
2006-09-12 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
|
||
(TARGET_ASM_CLOSE_PAREN): Likewise.
|
||
* config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
|
||
(TARGET_ASM_CLOSE_PAREN): Likewise.
|
||
|
||
2006-09-12 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/22223
|
||
* config/alpha/alpha.c (alpha_start_function): Don't emit stack
|
||
frame information for frames larger than 512 Kbytes on Tru64 when
|
||
using the native assembler.
|
||
|
||
2006-09-12 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/4520
|
||
PR bootstrap/28784
|
||
* cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
|
||
and symbols. Instead use the implementation from cse.c's hash_rtx.
|
||
|
||
2006-09-12 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
|
||
(vect_transform_loop): Likewise.
|
||
* tree-vectorizer.c (new_loop_vec_info): Likewise.
|
||
(new_loop_vec_info): Likewise.
|
||
(destroy_loop_vec_info): Likewise.
|
||
* tree-dfa.c (create_var_ann): Use GCC_CNEW.
|
||
(create_stmt_ann): Likewise.
|
||
(create_tree_ann): Rename to ...
|
||
(create_tree_common_ann): ... this one; allocate only the common part
|
||
of annotations.
|
||
* tree-vn.c (set_value_handle): Use get_tree_common_ann.
|
||
(get_value_handle): Likewise.
|
||
* tree-ssa-pre.c (phi_translate): Delay annotation allocation for
|
||
get_tree_common_ann.
|
||
* tree-vectorizer.h (set_stmt_info): Take stmt annotation.
|
||
(vinfo_for_stmt): Use stmt annotations.
|
||
* tree-flow.h (tree_ann_common_t): New type.
|
||
(tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
|
||
(tree_ann, get_tree_ann, create_tree_ann): New.
|
||
* tree-flow-inline.h (get_function_ann): Do more type checking.
|
||
(stmt_ann): Likewise.
|
||
(tree_ann): Rename to ...
|
||
(tree_common_ann): ... this one; return ony common_ann
|
||
(get_tree_ann): Rename to ...
|
||
(tree_common_ann): This one; return only common_ann.
|
||
* tree-vect-patterns.c (vect_pattern_recog_1): Update call
|
||
of set_stmt_info.
|
||
|
||
2006-09-11 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config.gcc (i[34567]86-*-darwin*): Set with_arch and
|
||
with_cpu by default.
|
||
|
||
* dwarf2out.c (dwarf_file_data): New.
|
||
(enum dw_val_class): Add dw_val_class_file.
|
||
(struct dw_val_struct): Add val_file.
|
||
(file_table): Change to a hash table.
|
||
(file_table_emitted): Delete.
|
||
(file_table_last_lookup_index): Delete.
|
||
(emitcount): Delete.
|
||
(last_emitted_file): New.
|
||
(lookup_filename): Change prototype to return a struct dwarf_file_data.
|
||
(init_file_table): Delete.
|
||
(maybe_emit_file): Change prototype to take a struct dwarf_file_data.
|
||
(AT_addr): Add comment.
|
||
(add_AT_file): New.
|
||
(AT_file): New.
|
||
(get_AT_file): New.
|
||
(print_die): Handle dw_val_class_file.
|
||
(print_dwarf_line_table): Update for new file table structure.
|
||
(attr_checksum): Do checksum a filename.
|
||
(same_dw_val_p, same_attr_p): Do compare a filename.
|
||
(size_of_die): Handle dw_val_class_file.
|
||
(value_format): Likewise.
|
||
(output_die): Likewise. Also, call maybe_emit_file here.
|
||
(struct file_info): Constify filenames. Make file_idx a pointer
|
||
to a struct dwarf_file_data.
|
||
(struct dir_info): Constify directory names. Remove 'used' field.
|
||
(struct file_name_acquire_data): New.
|
||
(file_name_acquire): New.
|
||
(output_file_names): Modify to handle new file data structures.
|
||
(add_src_coords_attributes): Use add_AT_file.
|
||
(add_call_src_coords_attributes): Likewise.
|
||
(dwarf2out_imported_module_or_decl): Likewise.
|
||
(gen_subprogram_die): Modify for new file data structures.
|
||
(gen_variable_die): Likewise.
|
||
(file_table_eq): New.
|
||
(file_table_hash): New.
|
||
(file_table_last_lookup): New.
|
||
(lookup_filename): Rewrite to handle new file data structures.
|
||
(maybe_emit_file): Rewrite to handle new file data structures.
|
||
(dwarf2out_source_line): Always call lookup_filename and
|
||
maybe_emit_file.
|
||
(dwarf2out_init): Create file_table here.
|
||
(prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
|
||
(file_table_relative_p): New.
|
||
(dwarf2out_finish): Change detection of relative filenames
|
||
to work with new file data structures. Move output_line_info call
|
||
after debug_info output.
|
||
|
||
2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/13685
|
||
PR target/27537
|
||
PR target/28621
|
||
* config/i386/i386.c (override_options): Always default to 16
|
||
byte stack boundary.
|
||
|
||
2006-09-11 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR target/28672
|
||
* var-tracking.c (dump_dataflow_set): Start dumping at
|
||
register zero.
|
||
(clobber_variable_part): Kill only the variable part in
|
||
registers holding it, leaving other variables alone.
|
||
|
||
2006-09-11 Josh Triplett <josh@freedesktop.org>
|
||
|
||
* doc/extend.texi (Other Builtins): Actually use the macro
|
||
argument in the documentation example for
|
||
__builtin_types_compatible_p.
|
||
|
||
2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/28726
|
||
* sched-deps.c (sched_analyze_reg): New function extracted from...
|
||
(sched_analyze_1): ...here. Call it to analyze references to
|
||
registers. Treat again writes to a stack register as writing to the
|
||
register.
|
||
(sched_analyze_2): ...and here. Call it to analyze references to
|
||
registers. Treat again reads of a stack register as reading the
|
||
register.
|
||
|
||
2006-09-11 Guenter Roeck <guenter@roeck-us.net>
|
||
David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/27287
|
||
* config/rs6000/spe.md (frob_df_di): Remove %H.
|
||
(frob_di_df): Remove %H. Change evmergelo to mr.
|
||
(frob_di_df_2): Remove %H. Change evldd to two loads.
|
||
|
||
2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
|
||
|
||
* doc/cpp.texi: Fix names of charset options.
|
||
|
||
2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/29009
|
||
* config/i386/i386.c (override_options): Use 128-bit
|
||
stack boundary always for 64bits.
|
||
|
||
2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/28636
|
||
* combine.c (force_to_mode): Test for side-effects before
|
||
substituting by zero.
|
||
(simplify_shift_const): Likewise for zero or other constants.
|
||
|
||
2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR middle-end/26983
|
||
* builtins.c (expand_builtin_setjmp): Force next_lab to be
|
||
preserved.
|
||
|
||
2006-09-10 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR target/29006
|
||
* config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
|
||
* config/mips/mips.c (mips_expand_unaligned_store): Use the mode
|
||
returned by mode_for_size, rather than the mode of src itself,
|
||
to choose between 32-bit and 64-bit patterns.
|
||
(mips_mem_fits_mode_p): New function.
|
||
* config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
|
||
that the size of the source matches the size of the destination.
|
||
(mov_<store>l, mov_<store>r): Likewise.
|
||
|
||
2006-09-10 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
|
||
for literal16.
|
||
|
||
2006-09-09 Eric Christopher <echristo@apple.com>
|
||
|
||
PR target/28995
|
||
* config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
|
||
for literal16.
|
||
|
||
2006-09-09 Roger Sayle <roger@eyesopen.com>
|
||
Nicolas Setton <setton@adacore.com>
|
||
|
||
* dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
|
||
|
||
2006-09-10 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/m68k/m68k.md (bungt_rev): New pattern.
|
||
|
||
2006-09-09 Paolo Bonzini <bonzini@gnu.org>
|
||
Dale Johannesen <dalej@apple.com>
|
||
|
||
PR target/26778
|
||
* regclass.c (struct reg_pref): Update documentation.
|
||
(regclass): Set prefclass to NO_REGS if memory is the best option.
|
||
(record_reg_classes): Cope with a prefclass set to NO_REGS.
|
||
|
||
2006-09-08 Eric Christopher <echristo@apple.com>
|
||
|
||
* config.gcc (i?86-*-darwin): Add 64-bit HWI support.
|
||
* config/t-slibgcc-darwin: Support x86_64 multilib.
|
||
* config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
|
||
Return 1 for x86_64-darwin.
|
||
* config/i386/t-darwin: Add m64 multilib.
|
||
(LIB2_SIDITI_CONV_FUNCS): Use.
|
||
(LIB2FUNCS_EXTRA): Ditto.
|
||
* config/i386/darwin.h: Support x86_64.
|
||
* config/i386/i386.c (override_options): Turn on flag_pic
|
||
for x86_64-darwin. Disable flag_omit_pointer.
|
||
(get_pc_thunk_name): Assert !TARGET_64BIT.
|
||
(legitimate_address_p): Disable machopic addressing for
|
||
x86_64.
|
||
(legitimize_pic_address): Ditto.
|
||
(ix86_expand_move): Ditto.
|
||
(ix86_expand_call): Ditto.
|
||
(machopic_output_stub): Ditto.
|
||
* config/darwin.c (machopic_select_section): Support literal16.
|
||
(machopic_select_rtx_section): Ditto.
|
||
* config/darwin-sections.def: Ditto.
|
||
* config/darwin-64.c: New.
|
||
|
||
2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR c/28504
|
||
* c-tree.h (struct c_arg_info): Add pending_sizes.
|
||
* c-parser.c (c_parser_parms_declarator,
|
||
c_parser_parms_list_declarator): Initialize pending_sizes.
|
||
* c-decl.c (get_parm_info): Initialize pending_sizes.
|
||
(get_parm_info): Set pending_sizes.
|
||
(grokdeclarator): Call put_pending_sizes for parameters for
|
||
function definition only.
|
||
|
||
2006-09-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR middle-end/27724
|
||
* varasm.c (output_constant): Only strip actual no-op conversions.
|
||
|
||
PR target/13685
|
||
* config/i386/i386.c (override_options): Use 128-bit
|
||
stack boundary if -msse.
|
||
|
||
2006-09-07 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
|
||
comment.
|
||
* config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
|
||
Redefine.
|
||
|
||
2006-09-07 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c: Remove strange characters from comment above
|
||
dwarf2out_frame_debug_expr.
|
||
|
||
2006-09-07 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
|
||
* config/darwin.h: ... to here.
|
||
|
||
2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (x86_partial_flag_reg_stall): New.
|
||
|
||
* config/i386/i386.h (x86_partial_flag_reg_stall): New.
|
||
(TARGET_PARTIAL_FLAG_REG_STALL): New.
|
||
|
||
* config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
|
||
TARGET_PARTIAL_FLAG_REG_STALL.
|
||
(*ashldi3_cconly_rex64): Likewise.
|
||
(*ashlsi3_cmp): Likewise.
|
||
(*ashlsi3_cconly): Likewise.
|
||
(*ashlsi3_cmp_zext): Likewise.
|
||
(*ashlhi3_cmp): Likewise.
|
||
(*ashlhi3_cconly): Likewise.
|
||
(*ashlqi3_cmp): Likewise.
|
||
(*ashlqi3_cconly): Likewise.
|
||
(*ashrdi3_cmp_rex64): Likewise.
|
||
(*ashrdi3_cconly_rex64): Likewise.
|
||
(*ashrsi3_cmp): Likewise.
|
||
(*ashrsi3_cconly): Likewise.
|
||
(*ashrsi3_cmp_zext): Likewise.
|
||
(*ashrhi3_cmp): Likewise.
|
||
(*ashrhi3_cconly): Likewise.
|
||
(*ashrqi3_cmp): Likewise.
|
||
(*ashrqi3_cconly): Likewise.
|
||
(*lshrdi3_cmp_rex64): Likewise.
|
||
(*lshrdi3_cconly_rex64): Likewise.
|
||
(*lshrsi3_cmp): Likewise.
|
||
(*lshrsi3_cconly): Likewise.
|
||
(*lshrsi3_cmp_zext): Likewise.
|
||
(*lshrhi3_cmp): Likewise.
|
||
(*lshrhi3_cconly): Likewise.
|
||
(*lshrqi2_cmp): Likewise.
|
||
(*lshrqi2_cconly): Likewise.
|
||
|
||
2006-09-07 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
PR target/28946
|
||
* config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
|
||
"*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
|
||
"*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
|
||
"*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
|
||
"*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
|
||
"*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
|
||
"*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
|
||
"*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
|
||
"*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
|
||
implement only CC setting effects of shift instructions.
|
||
|
||
2006-09-07 Martin Michlmayr <tbm@cyrius.com>
|
||
|
||
* doc/contrib.texi: Add myself.
|
||
|
||
2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/28862
|
||
* stor-layout.c (relayout_decl): Don't zero the alignment if it
|
||
was set by the user.
|
||
|
||
2006-09-07 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR target/27117
|
||
* config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
|
||
(divsi_inv_m1): Use them.
|
||
(UNSPEC_DIV_INV_TABLE): New constant.
|
||
|
||
2006-09-06 James E Wilson <wilson@specifix.com>
|
||
|
||
PR rtl-opt/27883
|
||
* flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
|
||
then call count_or_remove_death_notes.
|
||
|
||
2006-09-06 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/27371
|
||
* tree-inline.c (copy_result_decl_to_var): New fn.
|
||
(declare_return_variable): Use it. Call declare_inline_vars here.
|
||
(expand_call_inline): Not here.
|
||
|
||
2006-09-06 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* doc/contrib.texi: Update my entry.
|
||
|
||
2006-09-06 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
|
||
|
||
2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/28937
|
||
* tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
|
||
(canonicalize_induction_variables): Likewise.
|
||
(tree_unroll_loops_completely): Likewise.
|
||
(tree_ssa_prefetch_arrays): Likewise.
|
||
(remove_empty_loops): Likewise.
|
||
* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
|
||
TODO_cleanup_cfg instead of directly calling
|
||
cleanup_tree_cfg_loop.
|
||
* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
|
||
Likewise.
|
||
(tree_unroll_loops_completely): Likewise.
|
||
(remove_empty_loops): Likewise.
|
||
* tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
|
||
* tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
|
||
of tree_ssa_unswitch_loops.
|
||
(tree_ssa_loop_ivcanon): Use the return value of
|
||
canonicalize_induction_variables.
|
||
(tree_ssa_empty_loop): Use the return value of
|
||
remove_empty_loops.
|
||
(tree_complete_unroll): Use the return value of
|
||
tree_unroll_loops_completely.
|
||
(tree_ssa_loop_prefetch): Use the return value of
|
||
tree_ssa_prefetch_arrays.
|
||
* passes.c (execute_todo): Before Cleanup CFG, set
|
||
updating_used_alone and after cleanup CFG, call
|
||
recalculate_used_alone.
|
||
|
||
2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/28952
|
||
* tree-vect-transform.c (vectorizable_condition): Move the check
|
||
for the type after the check for simple condition.
|
||
|
||
2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
|
||
Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
PR target/28764
|
||
* mode-switching.c (optimize_mode_switching): Make the destination
|
||
block of an abnormal edge have no anticipatable mode. Don't
|
||
insert mode switching code at the end of the source block of
|
||
an abnormal edge.
|
||
|
||
2006-09-05 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR rtl-optimization/26847
|
||
* simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
|
||
(simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
|
||
(simplify_plus_minus): Count n_constants while filling ops. Replace
|
||
qsort with insertion sort. Before going through the array to simplify
|
||
pairs, sort it. Delay early exit until after the first sort, exiting
|
||
only if no swaps occurred. Simplify pairs in reversed order, without
|
||
special-casing the first iteration. Pack ops after simplifying pairs.
|
||
|
||
2006-09-05 Anatoly Sokolov <aesok@post.ru>
|
||
|
||
* config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
|
||
* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
|
||
* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
|
||
(avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
|
||
|
||
2006-09-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/28900
|
||
* tree-if-conv.c (find_phi_replacement_condition): Gimplify
|
||
compound conditional before creating COND_EXPR condition.
|
||
|
||
2006-09-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/28905
|
||
* tree-vrp.c (fix_equivalence_set): Manually implement
|
||
!value_ranges_intersect_p to also handle symbolic ranges.
|
||
|
||
2006-09-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28935
|
||
* tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
|
||
of a COND_EXPR.
|
||
|
||
2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/27616
|
||
* cse.c (table_size): New static variable.
|
||
(new_basic_block): Initialize it to 0.
|
||
(remove_from_table): Decrement it.
|
||
(insert): Increment it.
|
||
(fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
|
||
(fold_rtx_mem): Enforce a cap on the recursion depth. Call
|
||
fold_rtx_mem_1 if under the cap.
|
||
(fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
|
||
the lookup of the equivalent expression and test for equality of the
|
||
first operand of the equivalent expression before in turn looking up
|
||
an equivalent constant for the second operand.
|
||
|
||
2006-09-02 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
Revert this change:
|
||
2006-03-17 Alexandre Oliva <aoliva@redhat.com>
|
||
* dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
|
||
pointer, instead of assuming it is possible to derive the
|
||
correct args size from a call insn.
|
||
|
||
2006-09-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/27567
|
||
* builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
|
||
(fold_builtin_mempcpy): Rename to...
|
||
(fold_builtin_memory_op): ... this. Optimize one element copy
|
||
into an assignment.
|
||
(fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
|
||
functions.
|
||
(expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
|
||
(expand_builtin_memcpy, expand_builtin_mempcpy,
|
||
expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
|
||
(fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
|
||
BUILT_IN_BCOPY. Use fold_builtin_memory_op for
|
||
BUILT_IN_MEM{CPY,PCPY,MOVE}.
|
||
|
||
2006-09-01 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
|
||
(stzx_16): Likewise.
|
||
("stzx_24_<mode>"): Likewise.
|
||
("stzx_reversed_<mode>"): Likewise, and make mode-specific.
|
||
("cmp<mode>_op"): New.
|
||
(cmp<mode>): Change to expander; just save operands.
|
||
(b<code>_op): New.
|
||
(b<code>): Change to expander, emit compare here.
|
||
(s<code>_op): Change to use split and expander.
|
||
(s<code>_24_op): Likewise.
|
||
(s<code>_<mode>): New.
|
||
(s<code>_<mode>_24): New.
|
||
(movqicc_<code>_<mode): New.
|
||
(movhicc_<code>_<mode>): New.
|
||
(s<code>): New.
|
||
(s<code>_24): New.
|
||
* config/m32c/m32c.c (compare_op0, compare_op1): New.
|
||
(m32c_pend_compare): New.
|
||
(m32c_unpend_compare): New.
|
||
(m32c_expand_scc): New.
|
||
(m32c_expand_movcc): Emit the compare also.
|
||
* config/m32c/predicates.md (mra_nopp_operand): New.
|
||
|
||
2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
|
||
Richard Guenther <rguenther@suse.de>
|
||
Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
PR middle-end/27226
|
||
* builtins.c (get_pointer_alignment): Handle more forms
|
||
of base addresses that can be used to derive more precise
|
||
information about alignment.
|
||
|
||
2006-09-01 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/28899
|
||
* gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
|
||
want_value.
|
||
|
||
* gimplify.c (voidify_wrapper_expr): Handle null type.
|
||
|
||
2006-09-01 Josh Conner <jconner@apple.com>
|
||
|
||
PR c++/25505
|
||
* tree-nrv.c (dest_safe_for_nrv_p): New function.
|
||
(execute_return_slot_opt): Use it.
|
||
|
||
2006-08-31 Josh Conner <jconner@apple.com>
|
||
|
||
PR c++/25505
|
||
* tree-gimple.c (is_gimple_mem_rhs): Recognize functions
|
||
returning aggregates.
|
||
|
||
2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/28839
|
||
* tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
|
||
blocks in that phi arguments appear.
|
||
|
||
2006-08-31 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR other/22313
|
||
* dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
|
||
NULL, otherwise use an advance_loc4 to adjust relative to the
|
||
current label.
|
||
(output_cfi) <DW_CFA_set_loc>: Update the current label.
|
||
(dwarf2out_switch_text_section): Reset the current label to avoid
|
||
using advance_loc4 over section boundaries.
|
||
|
||
2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
PR target/24367
|
||
* config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
|
||
r12 + SYMBOLIC_CONST.
|
||
|
||
2006-08-30 Richard Guenther <rguenther@suse.de>
|
||
|
||
* Makefile.in (see.o): Add $(EXPR_H) dependency.
|
||
|
||
2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/27735
|
||
* cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
|
||
Add new argument to keep track of whether an irreducible region
|
||
was affected. All callers changed.
|
||
(fix_irreducible_loops): Removed.
|
||
(remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
|
||
flags were invalidated.
|
||
|
||
2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
|
||
instead of SF operands.
|
||
(*fop_df_comm_sse): Likewise.
|
||
(*fop_df_comm_i387): Likewise.
|
||
(*fop_df_1_mixed): Likewise.
|
||
(*fop_df_1_sse): Likewise.
|
||
|
||
2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
|
||
J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR tree-optimization/17506
|
||
* tree-ssa.c (warn_uninit): If warning about a location outside of
|
||
the current function, note where the variable was declared.
|
||
|
||
2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/28411
|
||
* double-int.c (double_int_div): Use double_int_divmod.
|
||
(double_int_divmod, double_int_sdivmod, double_int_udivmod,
|
||
double_int_mod, double_int_smod, double_int_umod): New functions.
|
||
* double-int.h (double_int_divmod, double_int_sdivmod,
|
||
double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
|
||
Declare.
|
||
* tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
|
||
in double_int.
|
||
(get_computation_aff, get_computation_cost_at): Handle double_int
|
||
return type of constant_multiple_of.
|
||
|
||
2006-08-28 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR middle-end/26632
|
||
* convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
|
||
an implicit conversion.
|
||
|
||
2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
|
||
|
||
* config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
|
||
|
||
2006-08-27 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
|
||
x87 instructions.
|
||
|
||
2006-08-27 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* config/i386/crtfastmath.c: Fix a comment typo.
|
||
|
||
2006-08-26 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
|
||
temporary visit flags on CASE_LABEL_EXPRs.
|
||
* c-common.c (match_case_to_enum): Add function comment. Avoid
|
||
O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
|
||
(c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
|
||
CASE_HIGH_SEEN for enumerated types. If the switch expression is
|
||
a constant, only warn if that constant value isn't handled.
|
||
|
||
2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR c++/24009
|
||
* input.h (restore_input_file_stack): Declare.
|
||
(INPUT_FILE_STACK_BITS): Define.
|
||
* toplev.c (fs_p, input_file_stack_history,
|
||
input_file_stack_restored, restore_input_file_stack): New.
|
||
(push_srcloc, pop_srcloc): Check for input_file_stack_tick
|
||
overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
|
||
(pop_srcloc): Don't free old state of stack.
|
||
|
||
2006-08-26 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/27544
|
||
* doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
|
||
(PowerPC Type Attributes): New.
|
||
|
||
2006-08-26 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* config/xtensa/xtensa.c (function_arg_boundary): New.
|
||
(function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
|
||
STACK_BOUNDARY.
|
||
* config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
|
||
function_arg_boundary function that limits alignment to STACK_BOUNDARY.
|
||
|
||
2006-08-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/28683
|
||
* cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
|
||
3 following insns.
|
||
|
||
2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
* flow.c (verify_wide_reg): Use internal_error for consistency failure.
|
||
(verify_local_live_at_start): Likewise.
|
||
|
||
2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR c/27893
|
||
* gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
|
||
omp_add_variable): Treat sizes as variable whenever not
|
||
INTEGER_CST.
|
||
|
||
2006-08-26 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28814
|
||
* fold-const.c (fold_binary): Fold temporary to correct
|
||
type before constructing new comparison.
|
||
|
||
2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
|
||
|
||
PR c/28418
|
||
* c-gimplify.c (gimplify_compound_literal_expr): Don't add
|
||
variable again if DECL_SEEN_IN_BIND_EXPR_P.
|
||
|
||
2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR c/28299
|
||
* c-decl.c (start_function): Don't try to process prototype
|
||
information from old declaration that isn't a function.
|
||
|
||
2006-08-25 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR target/28621
|
||
* config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
|
||
|
||
2006-08-25 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/27075
|
||
* config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
|
||
for 8 byte objects.
|
||
|
||
2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR tree-optimization/16876
|
||
* c-typeck.c (c_convert_parm_for_inlining): Don't take early
|
||
exit if PARM doesn't match VALUE.
|
||
|
||
2006-08-25 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
|
||
literal_prefix directive.
|
||
(XTENSA_DECLARE_FUNCTION_SIZE): Delete.
|
||
* config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
|
||
* config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
|
||
|
||
2006-08-25 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/28753
|
||
* config/rs6000/rs6000.md (movcc_internal1): Change operand 1
|
||
predicate to general_operand. Add 0->y and I->r alternatives.
|
||
|
||
2006-08-25 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* doc/tm.texi: Fix a typo.
|
||
* predict.c: Fix comment typos.
|
||
|
||
2006-08-25 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
|
||
assertions of "cpu" and "machine".
|
||
|
||
2006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/28807
|
||
* tree-ssa-operands.c (access_can_touch_variable): Don't say
|
||
the access through a base which has an alias set of 0 cannot
|
||
touch the variable.
|
||
|
||
2006-08-24 Bill Wendling <wendling@apple.com>
|
||
|
||
* doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
|
||
|
||
2006-08-24 Jan Hubicka <jh@suse.cz>
|
||
|
||
* reload1.c (emit_reload_insns): Fix yet another typo in my patch.
|
||
|
||
2006-08-24 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR debug/26881
|
||
* cgraph.c: Fix comments.
|
||
(cgraph_varpool_mark_needed_node): Mark only variables not already
|
||
output to file.
|
||
* cgraphunit.c: Update comments; include gt-cgraphunit.h
|
||
(cgraph_varpool_assembled_nodes_queue): New static variable.
|
||
(cgraph_varpool_assemble_decl): Record output decls for debug out code.
|
||
(cgraph_varpool_output_debug_info): New function.
|
||
(cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
|
||
* Makefile.in: Add gt-cgraphunit.h
|
||
|
||
2006-08-24 Jan Hubicka <jh@suse.cz>
|
||
|
||
* predict.c (probability_reliable_p): New predicate.
|
||
(edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
|
||
(predict_loops): Do not predict loop exit with less than 2%
|
||
probability.
|
||
* basic-block.h (edge_probability_reliable_p,
|
||
br_prob_note_reliable_p): Declare.
|
||
* ia64.h (ia64_print_operand): Do not disable on-chip branch
|
||
prediction when static predictor is not reliable.
|
||
* rs6000.c (output_cbranch): Likewise.
|
||
|
||
2006-08-23 Stuart Hastings <stuart@apple.com>
|
||
|
||
PR 28825
|
||
* gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
|
||
ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
|
||
|
||
2006-08-21 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
PR debug/28692
|
||
* dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
|
||
complex values, nor for generic vector values.
|
||
|
||
2006-08-22 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28776
|
||
* tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
|
||
parameter. Convert arguments to arithmetic expression to the
|
||
chrecs type.
|
||
(analyze_scalar_evolution_1): Adjust caller.
|
||
|
||
2006-08-22 Jan Hubicka <jh@suse.cz>
|
||
|
||
Patch by Paolo Bonzini
|
||
* reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
|
||
my previous patch.
|
||
|
||
2006-08-22 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
PR tree-optimization/28003
|
||
* tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
|
||
before grouping aliases.
|
||
|
||
2006-08-22 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
|
||
if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
|
||
|
||
2006-08-21 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/27115
|
||
* gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
|
||
wrapper. Loop to handle nested wrappers.
|
||
(gimplify_bind_expr): Remove temp parameter.
|
||
(gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
|
||
and STATEMENT_LIST on the rhs.
|
||
(gimplify_statement_list): Voidify the STATEMENT_LIST.
|
||
(gimplify_expr): Pass pre_p to gimplify_statement_list.
|
||
(gimplify_target_expr): Remove special BIND_EXPR handling.
|
||
|
||
2006-08-21 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
|
||
#if !__SHMEDIA__ .
|
||
|
||
2006-08-21 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
|
||
Arrange for the temporary captures of components overlapping the lhs
|
||
to happen before the lhs is possibly cleared.
|
||
|
||
2006-08-21 Mark Shinwell <shinwell@codesourcery.com>
|
||
|
||
* config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
|
||
necessary places to pass the correct "number of registers" values
|
||
to _Unwind_VRS_Pop.
|
||
|
||
2006-08-20 Jan Hubicka <jh@suse.cz>
|
||
|
||
* tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
|
||
(create_name_tags): Instead of quadratic checking use hashtable.
|
||
* bitmap.h: Include hashtab.h.
|
||
(bitmap_hash): Declare.
|
||
* bitmap.c (bitmap_hash): New function.
|
||
|
||
2006-08-20 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* tree-optimize.c (tree_rest_of_compilation): Do not remove edges
|
||
twice.
|
||
* tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
|
||
* ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
|
||
(cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
|
||
cgraph_decide_inlining_incrementally): Update use of
|
||
cgraph_check_inline_limits.
|
||
* cgraph.c (edge_hash, edge_eq): New function.
|
||
(cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
|
||
cgraph_edge_remove_caller, cgraph_node_remove_callees,
|
||
cgraph_remove_node): Maintain call site hash.
|
||
* cgraph.h (struct cgraph_node): Add call_site_hash.
|
||
(cgraph_set_call_stmt): New function.
|
||
|
||
2006-08-20 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* reload1.c (reg_has_output_reload): Turn into regset.
|
||
(reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
|
||
choose_reload_regs, emit_reload_insns): Update to new
|
||
reg_has_output_reload.
|
||
|
||
2006-08-20 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/28779
|
||
* ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
|
||
function body sizes.
|
||
* cgraphunit.c (cgraph_analyze_function): Don't do so.
|
||
|
||
2006-08-20 Danny Smith <dannysmith@users.sourceforge.net>
|
||
|
||
PR target/28648 c:
|
||
* tree.c (handle_dll_attribute): Return early if not a
|
||
var or function decl.
|
||
|
||
2006-08-18 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
PR target/27565
|
||
* config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
|
||
alignment of SPE vector types.
|
||
|
||
2006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
|
||
|
||
* tree.c (is_attribute_with_length_p): Remove a duplicated assert.
|
||
|
||
2006-08-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/28744
|
||
* cgraph.h (struct cgraph_node): Remove externally_visible
|
||
bitfield.
|
||
* cgraphunit.c (process_function_and_variable_attributes): Set
|
||
local.externally_visible rather than externally_visible.
|
||
|
||
PR c/28744
|
||
* c-common.c (handle_externally_visible_attribute): First look
|
||
at TREE_CODE and only if it is function or var decl, check for
|
||
non-public objects. Don't warn for DECL_EXTERNAL.
|
||
* cgraphunit.c (process_function_and_variable_attributes): Warn
|
||
if externally_visible attribute is used on non-public object.
|
||
|
||
2006-08-17 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/27865
|
||
* reload1.c (forget_marked_reloads): New function.
|
||
(forget_old_reloads_1): When data are passed, just mark the registers
|
||
for later removal.
|
||
(reload_as_needed): Use the new mechanizm.
|
||
|
||
2006-08-17 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR target/28146
|
||
* reload.h (reg_equiv_alt_mem_list): New declaration.
|
||
* reload1.c (reg_equiv_alt_mem_list): New definition.
|
||
(reload): Initialize it and release it.
|
||
(delete_output_reload): Use it.
|
||
* reload.c (push_reg_equiv_alt_mem): New function.
|
||
(find_reloads_toplev): Call it.
|
||
(find_reloads_address, find_reloads_address_1): Likewise.
|
||
(find_reloads_subreg_address): Likewise.
|
||
|
||
2006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
PR rtl-optimization/28489
|
||
* sched-ebb.c (begin_schedule_ready): Create basic block
|
||
at the right place.
|
||
(advance_target_bb): Skip empty blocks.
|
||
* haifa-sched.c (bb_note): Make global.
|
||
* sched-int.h (bb_note): Add prototype.
|
||
|
||
2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27865
|
||
* tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
|
||
for pointer types.
|
||
* tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
|
||
fold_used_pointer, pointer_used_p): New functions.
|
||
(analyze_scalar_evolution_1): Use fold_used_pointer.
|
||
* tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
|
||
* tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
|
||
for pointers.
|
||
|
||
2006-08-17 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR c++/28573
|
||
* c-common.c (fold_offsetof_1): Add an argument and recurse down to it
|
||
or the INTEGER_CST. Fail on a CALL_EXPR.
|
||
(fold_offsetof): Pass new argument to fold_offsetof_1.
|
||
* c-parser.c (c_parser_postfix_expression): Don't include a NULL
|
||
operand into an INDIRECT_REF.
|
||
* c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
|
||
|
||
2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR gcov/profile/26570
|
||
* value-prof.c (static_values): Removed.
|
||
(tree_find_values_to_profile): Do not set static_values.
|
||
(find_values_to_profile): Do not free static_values.
|
||
* profile.c (instrument_values): Do not free the values.
|
||
(branch_prob): Free the values.
|
||
|
||
2006-08-16 Naveen.H.S <naveenh@kpitcummins.com>
|
||
|
||
* config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
|
||
|
||
2006-08-16 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR c/27697
|
||
* c-typeck.c (build_component_ref): Combine qualifiers of
|
||
structure or union and field.
|
||
|
||
2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
|
||
* dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
|
||
* tree-into-ssa.c (struct dom_dfsnum): New.
|
||
(cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
|
||
functions.
|
||
(insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
|
||
compute_global_livein.
|
||
(prepare_block_for_update, prepare_use_sites_for): Mark the uses
|
||
in phi nodes in the correct blocks.
|
||
|
||
2006-08-16 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/28364
|
||
* tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
|
||
correctly.
|
||
(fold_affine_expr): New function.
|
||
(may_eliminate_iv): Use fold_affine_expr.
|
||
|
||
2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c/27489
|
||
* c-typeck.c (c_start_case): Handle invalid orig_type correctly.
|
||
Clean up.
|
||
|
||
2006-08-16 Mike Stump <mrs@apple.com>
|
||
|
||
* doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
|
||
* doc/cppopts.texi (-MD): Likewise.
|
||
|
||
2006-08-15 Danny Smith <dannysmith@users.sourceforge.net>
|
||
|
||
PR c/28287
|
||
* c-common.c (handle_weak_attribute): Ignore and warn if
|
||
not a FUNCTION_ or VAR_DECL.
|
||
|
||
2006-07-15 Mike Stump <mrs@apple.com>
|
||
|
||
PR c/28280
|
||
* c-parser.c (c_parser_typeof_specifier): Don't use
|
||
c_finish_expr_stmt, open code desired semantics instead.
|
||
|
||
2006-08-15 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
|
||
fragment to tmake_file only if threads are enabled.
|
||
* config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
|
||
* config/i386/t-gthr-win32: New file. ... here.
|
||
|
||
2006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c/28649
|
||
* c-parser.c (c_parser_compound_statement_nostart): Reset
|
||
parser->error after each statement.
|
||
|
||
2006-08-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/28713
|
||
* omp-low.c (lower_omp_parallel): Convert t to
|
||
receiver_decl's type.
|
||
(expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
|
||
source before comparison.
|
||
|
||
PR middle-end/28724
|
||
* gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
|
||
to itype in assignment to oldival2.
|
||
|
||
2006-07-14 Andrew Pinski <pinksia@physics.uc.edu>
|
||
|
||
PR c/27490
|
||
PR c/27489
|
||
* c-typeck.c (build_compound_expr): If the second expression
|
||
is an error mark, then just return an error mark instead of
|
||
creating a COMPOUND_EXPR.
|
||
|
||
2006-07-14 Mike Stump <mrs@apple.com>
|
||
|
||
* Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
|
||
|
||
2006-08-14 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* c-decl.c, var-tracking.c: Fix comment typos.
|
||
|
||
2006-08-14 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR rtl-optimization/28634
|
||
* reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
|
||
for floating-point modes unless flag_unsafe_math_optimizations.
|
||
|
||
2006-08-13 Alexandre Oliva <aoliva@redhat.com>
|
||
Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR c/27184
|
||
* tree.c (build_array_type): Unify array types with
|
||
unspecified index_type.
|
||
* c-decl.c (grokdeclarator): Make sure we do not modify a
|
||
unified incomplete array type.
|
||
* c-typeck.c (store_init_value): Create distinct type before
|
||
filling in the index type in an initializer from a compound
|
||
literal.
|
||
|
||
* c-decl.c (grokdeclarator): Remove code where we copy the
|
||
array type over.
|
||
|
||
2006-08-13 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* tree-pass.h (TODO_update_ssa): Fix which bit is used to take
|
||
into account for TODO_dump_cgraph.
|
||
(TODO_update_ssa_no_phi): Likewise.
|
||
(TODO_update_ssa_full_phi): Likewise.
|
||
(TODO_update_ssa_only_virtuals): Likewise.
|
||
(TODO_remove_unused_locals): Likewise.
|
||
(TODO_set_props): Likewise.
|
||
(TODO_update_stmt_usage): Likewise.
|
||
|
||
2006-08-13 Dirk Mueller <dmueller@suse.de>
|
||
|
||
* c-common.c (strict_aliasing_warning): Fix formatting.
|
||
|
||
2006-08-13 Matthias Klose <doko@debian.org>
|
||
|
||
* doc/invoke.texi: Fix spelling errors.
|
||
|
||
2006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/23454
|
||
* reorg.c (relax_delay_slots): Update comment.
|
||
|
||
2006-08-11 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28651
|
||
* simplify-rtx.c (simplify_const_relational_operation):
|
||
Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
|
||
codes.
|
||
|
||
2006-08-10 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree.c (build1_stat): Also propagate the TREE_CONSTANT and
|
||
TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
|
||
|
||
2006-08-10 Paul Brook <paul@codesourcery.com>
|
||
|
||
* final.c (final_scan_insn): Clear current_insn_predicate before
|
||
outputting inline asm.
|
||
|
||
2006-08-10 Dorit Nuzman <dorit@il.ibm.com>
|
||
|
||
PR tree-optimization/26197
|
||
* tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
|
||
get_ref_base_and_extent and overlap_subvar to add only relevant
|
||
subvars as may-aliases.
|
||
(add_may_alias_for_new_tag): New function, factored out of
|
||
new_type_alias.
|
||
* tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
|
||
with additional argument.
|
||
* tree-flow.h (new_type_alias): Takes additional argument.
|
||
|
||
2006-08-09 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* gcov.c (no_data_file): New flag.
|
||
(read_count_file): Set it if data file not present. Assume counts
|
||
zero if not found.
|
||
(output_lines): Don't name the data file, if there wasn't one.
|
||
|
||
2006-08-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
|
||
(rs6000_generate_compare): Tweak comments.
|
||
* config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
|
||
|
||
2006-08-09 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* var-tracking.c (enum micro_operation_type): Add MO_COPY.
|
||
(var_debug_decl): New function.
|
||
(var_reg_set): Follow debug decl link. Add location even if
|
||
reg is already known to hold some other variable.
|
||
(var_mem_set): Follow debug decl link.
|
||
(var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
|
||
decl link. Delete other known locations of the variable part
|
||
if requested.
|
||
(var_reg_delete, var_mem_delete): Delete other known locations
|
||
of the variable part if requested.
|
||
(same_variable_part_p): New function.
|
||
(add_stores): Select MO_COPY when appropriate.
|
||
(vt_initialize): Handle it.
|
||
(compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete
|
||
known locations for MO_SET and MO_CLOBBER.
|
||
(find_variable_location_part): New function.
|
||
(set_variable_part, delete_variable_part): Use it.
|
||
(clobber_variable_part): New function.
|
||
* dwarf2out.c (dwarf2out_var_location): Do not follow debug
|
||
decl link.
|
||
|
||
2006-08-07 Victor Kaplansky <victork@il.ibm.com>
|
||
|
||
PR tree-optimization/26969
|
||
* tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
|
||
with an empty list of PHIs.
|
||
|
||
2006-08-06 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR target/27827
|
||
|
||
* conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
|
||
instructions.
|
||
|
||
2006-08-06 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
|
||
string. Whitespace and comment fixup.
|
||
|
||
2006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c/28502
|
||
* c-decl.c (validate_proto_after_old_defn): Return false on invalid
|
||
argument.
|
||
|
||
PR c/27721
|
||
* c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
|
||
|
||
PR c/28136
|
||
* c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
|
||
|
||
2006-08-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR target/26655
|
||
PR target/28270
|
||
* reload.c (push_reload): Patch out the mismatching instruction;
|
||
return early.
|
||
(find_reload): Bail out if the instruction was patched out.
|
||
|
||
2006-08-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/24888
|
||
* tree-inline.c (expand_call_inline): Do not re-record variables.
|
||
(declare_inline_vars): Add variable to unexpanded_var_list.
|
||
|
||
2006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR rtl-optimization/26244
|
||
* cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
|
||
inner_const are negative or greater than or equal to the bitsize of
|
||
MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
|
||
Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
|
||
Simplify complicated if statement. For ASHIFT and LSHIFTRT, return
|
||
CONST0_RTX (mode) when the new shift count is greater than or equal to
|
||
to the bitsize of the object being shifted and XEXP (y, 0) has no side
|
||
effects.
|
||
|
||
2006-08-04 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree-cfg.c: Fix a comment typo.
|
||
|
||
2006-08-03 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
PR c++/28148
|
||
* varasm.c (output_constant): Give the front end another chance to
|
||
expand constants, after stripping NOPs.
|
||
|
||
2006-08-03 Jan Hubicka <jh@suse.cz>
|
||
|
||
* domwalk.c (walk_dominator_tree): Reorganize to non-recursive
|
||
implementation.
|
||
|
||
2006-08-03 Dorit Nuzman <dorit@il.ibm.com>
|
||
|
||
PR tree-optimization/27770
|
||
* tree-vectorizer.h (get_vectype_for_scalar_type): Function
|
||
declaration removed (moved to tree-flow.h).
|
||
(vect_can_force_dr_alignment_p): Likewise.
|
||
* tree-flow.h (get_vectype_for_scalar_type): New function declaration
|
||
(moved from tree-vectorizer.h).
|
||
(vect_can_force_dr_alignment_p): Likewise.
|
||
* tree-vectorizer.c (vect_print_dump_info): Allow calling this function
|
||
from outside the vectorizer - in particular from cgraph stage.
|
||
* tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
|
||
the alignment of global arrays when -fsection-anchors is enabled.
|
||
* cgraphunit.c (cgraph_increase_alignment): New function.
|
||
(cgraph_optimize): Call cgraph_increase_alignment.
|
||
|
||
2006-08-03 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/27566
|
||
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
|
||
not reload a SPE symbol_ref into a lo_sum address.
|
||
|
||
2006-08-02 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
PR debug/28063
|
||
* dwarf2out.c (prune_unused_types_prune): Move call to
|
||
prune_unused_types_update_strings to cover the parent DIE also.
|
||
|
||
2006-08-02 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR gcov/profile/28480
|
||
* tree-cfg.c (change_bb_for_stmt): New function.
|
||
(tree_merge_blocks, tree_split_blocks): Use it.
|
||
|
||
2006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c++/28250
|
||
PR c++/28257
|
||
PR c++/28259
|
||
PR c++/28267
|
||
* toplev.c (compile_file): Return early on errorcount or sorrycount.
|
||
* cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
|
||
(cgraph_optimize): Likewise.
|
||
|
||
2006-08-01 Stuart Hastings <stuart@apple.com>
|
||
|
||
* rtl.h (UINTVAL) New.
|
||
* config/rs6000/rs6000.c (SMALL_INT) Use it.
|
||
* testsuite/gcc.dg/20060801-1.c: New.
|
||
|
||
2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
PR debug/23336
|
||
* c-typeck.c (build_external_type): Mark used enum types.
|
||
* dwarf2out.c (dwarf2out_abstract_function): Save and restore
|
||
cfun also.
|
||
(gen_subprogram_die): Whitespace fix.
|
||
|
||
2006-08-01 Jan Hubicka <jh@suse.cz>
|
||
|
||
* tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
|
||
bitmap when not needed.
|
||
* tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
|
||
bitmaps.
|
||
|
||
2006-08-01 Dirk Mueller <dmueller@suse.de>
|
||
|
||
* tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
|
||
|
||
2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
* Makefile.in: Revert part of previous patch:
|
||
Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
|
||
and REGS_H.
|
||
|
||
2006-07-30 Eric Christopher <echristo@apple.com>
|
||
|
||
PR target/27543
|
||
* doc/extend.texi (i386 Variable Attributes): Add anchor.
|
||
(PowerPC Variable Attributes): New section.
|
||
|
||
2006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp>
|
||
|
||
PR target/28126 (partial fix)
|
||
* config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
|
||
|
||
2006-07-28 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* cfgrtl.c (rtl_delete_block): Free regsets.
|
||
* flow.c (allocate_bb_life_data): Re-use regsets if available.
|
||
|
||
2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
* Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
|
||
and variables used in dependencies.
|
||
|
||
2006-07-27 Arjan van de Ven <arjan@linux.intel.com>
|
||
|
||
* config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
|
||
%fs for -mcmodel=kernel.
|
||
(stack_tls_protect_test_di): Likewise.
|
||
|
||
2006-07-27 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* Makefile.in: Use mkinstalldirs.
|
||
|
||
2006-07-27 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR driver/28437
|
||
* opts-common.c (prune_options): Skip joined switches.
|
||
|
||
2006-07-27 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* cselib.c (cselib_process_insn): Don't remove useless values too
|
||
often for very large hashtables.
|
||
|
||
2006-07-27 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* global.c (greg_obstack): New obstack.
|
||
(allocate_bb_info): Use it.
|
||
(free_bb_info): Likewise.
|
||
(modify_reg_pav): Likewise.
|
||
|
||
2006-07-27 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (fold_fixed_mathfn): When long and long long are the
|
||
same size, canonicalize llceil*, llfloor*, llround* and llrint*
|
||
functions to their lceil*, lfloor*, lround* and lrint* forms.
|
||
|
||
2006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
|
||
|
||
PR gcc/28508
|
||
* config/m32r/m32r.md (branch_insn): Reduce pc range for short
|
||
branch.
|
||
(rev_branch_insn): Likewise.
|
||
|
||
2006-07-27 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
|
||
(reg_set_in_bb, max_reg_computed): New static variables.
|
||
(regmove_optimize): Free the new array.
|
||
(fixup_match_1): Update call of reg_is_remote_constant_p.
|
||
|
||
2006-07-26 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR tree-optimization/27882
|
||
* cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
|
||
and decl fields.
|
||
* cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
|
||
next pointer
|
||
(cgraph_analyze_compilation_unit): Likewise.
|
||
* ipa.c (cgraph_remove_unreachable_nodes): Likewise.
|
||
* ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
|
||
(cgraph_early_inlinine): Make order garbage collected.
|
||
* Makefile.in (gt-ipa-inline): New garbagecollected file.
|
||
|
||
2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
* dbxout.c (output_types_sort): Add a comment.
|
||
(output_used_types): Free the VEC.
|
||
|
||
2006-07-26 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
* function.c (reorder_fix_fragments): Delete.
|
||
(reorder_blocks): Don't call it.
|
||
(reorder_blocks_1): Put all subblocks under the origin block.
|
||
|
||
2006-07-26 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/27907
|
||
* expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
|
||
FLOAT_TRUNCATE.
|
||
|
||
2006-07-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/28473
|
||
* convert.c (convert_to_integer): When transforming (T)foo(x) into
|
||
bar(x) check that bar's result type can represent all the values of T.
|
||
|
||
2006-07-25 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
|
||
|
||
2006-07-25 Nick Clifton <nickc@redhat.com>
|
||
|
||
* ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
|
||
size_lookup[] array.
|
||
(ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
|
||
(ggc_pch_count_object): Likewise.
|
||
(ggc_pch_alloc_object): Likewise.
|
||
(ggc_pch_write_object): Likewise.
|
||
(init_ggc): Do not attempt to initialize entries in the
|
||
size_lookup[] array for objects whose size is greater than than
|
||
the length of the array.
|
||
|
||
2006-07-25 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
* dbxout.c (output_used_types_helper): Push queued types
|
||
on a VEC.
|
||
(output_types_sort): New.
|
||
(output_used_types): Collect used types on a VEC and sort them
|
||
before emission.
|
||
|
||
2006-07-24 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28463
|
||
* cgraph.c (cgraph_remove_node): Do not check if dumps
|
||
are enabled.
|
||
* cgraphunit.c (cgraph_optimize): Likewise.
|
||
|
||
2006-07-24 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
|
||
* tree-iterator.c (tsi_split_statement_list_before): Do not crash when
|
||
splitting before first stmt.
|
||
|
||
2006-07-24 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR rtl-optimization/28071
|
||
* ipa-inline.c (update_caller_keys): Remove edges that
|
||
are no longer inline candidates.
|
||
|
||
2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
PR debug/27473
|
||
* dbxout.c (output_used_types_helper, output_used_types): New.
|
||
(dbxout_symbol): Call output_used_types.
|
||
|
||
2006-07-23 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR c/25795
|
||
PR c++/27369
|
||
* cgraph.c (cgraph_varpool_nodes): Export.
|
||
(decide_is_variable_needed): Ignored "used" attribute in
|
||
unit-at-a-time mode.
|
||
* cgraph.h (cgraph_varpool_nodes): Declare.
|
||
* cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
|
||
unit-at-a-time mode.
|
||
|
||
2006-07-23 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/28247
|
||
* gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
|
||
mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of
|
||
the __gthrw form of thr_keycreate.
|
||
(__gthread_key_delete): Silence the unused argument warning.
|
||
|
||
2006-07-23 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR debug/25468
|
||
* config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
|
||
Cache the last found '\0' marker to avoid quadratic behavior.
|
||
|
||
2006-07-23 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.md (subsi_3_zext): Fix output template.
|
||
|
||
2006-07-21 Mike Stump <mrs@apple.com>
|
||
|
||
* doc/invoke.texi (C++ Dialect Options): Note that
|
||
-fvisibility-inlines-hidden doesn't affect explicitly
|
||
instantiationed inline methods.
|
||
|
||
2006-07-20 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
|
||
if the target assembler is GNU binutils' gas.
|
||
* config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
|
||
whether to pass GNU gas or native as command line options.
|
||
|
||
2006-07-20 Jason Merrill <jason@redhat.com>
|
||
|
||
* tree.c (remove_attribute): New fn.
|
||
* tree.h: Declare it.
|
||
|
||
2006-07-20 Paul Brook <paul@codesourcery.com>
|
||
|
||
PR 27363
|
||
* cse.c (cse_insn): Add destination addresses to hash table. Check if
|
||
they are invalidated by this instruction.
|
||
|
||
2006-07-21 Danny Smith <dannysmith@users.sourceforge.net>
|
||
|
||
PR target/28427
|
||
* config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
|
||
|
||
2006-07-20 Eric Christopher <echristo@apple.com>
|
||
|
||
PR target/26877
|
||
* config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
|
||
|
||
2006-07-19 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/t-slibgcc-darwin (stmp-lipo): Remove.
|
||
Rewrite dependencies for libgcc_s.1.dylib.
|
||
|
||
2006-07-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* except.c (duplicate_eh_regions_1): Clear next_peer.
|
||
|
||
2006-07-17 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* doc/invoke.texi (RS/6000 and PowerPC Options): Document that
|
||
-mlongcall does not guarantee all calls will be long.
|
||
* doc/extend.texi (long_call/short_call): Document that longcall
|
||
does not guarantee a long call will be used.
|
||
(longcall/shortcall): Likewise.
|
||
|
||
2006-07-18 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/28283
|
||
* expmed.c (expand_shift): Additionally check that the shift_cost
|
||
is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
|
||
before implementing a LSHIFT_EXPR as a sequence of additions.
|
||
* config/sh/sh.c (shift_costs): Return MAX_COST to inform the
|
||
middle-end that DImode shifts need to be synthesized by expand.
|
||
|
||
2006-07-18 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR 28410
|
||
* tree-ssa-operands.c (access_can_touch_variable): Update
|
||
comment.
|
||
Return true if ALIAS is .GLOBAL_VAR.
|
||
|
||
2006-07-18 David Daney <ddaney@avtrex.com>
|
||
|
||
* gcc.c (display_help): Fix typo in help text.
|
||
|
||
2006-07-18 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* tree.h (categorize_ctor_elements): Adjust prototype and add
|
||
descriptive comment, both in accordance with the interface change
|
||
described below.
|
||
* varasm.c (constructor_static_from_elts_p): New function.
|
||
Whether a constructor node is a valid static constant initializer
|
||
if all its elements are.
|
||
(initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
|
||
* output.h: Declare it.
|
||
* expr.c (categorize_ctor_elements_1): Return whether the constructor
|
||
is a valid constant initializer instead of computing the number of
|
||
non-constant elements. Use constructor_static_from_elts_p for this
|
||
purpose. Replace the head comment with an indication that this is a
|
||
helper for categorize_ctor_elements.
|
||
(categorize_ctor_elements): Same interface change as for the _1
|
||
helper. Former head comment from this helper moved here, adjusted to
|
||
account for the interface changes.
|
||
(mostly_zeros_p): Adjust call to categorize_ctor_elements.
|
||
(all_zeros_p): Likewise.
|
||
* gimplify.c (gimplify_init_constructor): Decide whether we can make
|
||
static versions of the constructor from the categorize_ctor_elements
|
||
return value instead of the formerly computed number of non-constant
|
||
elements.
|
||
|
||
2006-07-18 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* configure: Regenerate.
|
||
* Makefile.in (build_libsubdir): New configure substitution
|
||
(build_libobjdir): New variable.
|
||
(BUILD_LIBIBERTY): Use it.
|
||
|
||
2006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c/28286
|
||
* c-pragma.c (handle_pragma_pack): Handle invalid constants.
|
||
|
||
2006-07-18 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR c/26993
|
||
* c-common.c (handle_weakref_attribute): Ignore attribute in
|
||
the same conditions the alias attribute is ignored.
|
||
|
||
2006-07-17 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* dbxout.c (dbxout_function_end): Do not increment scope_labelno.
|
||
(dbxout_begin_prologue): Increment scope_labelno.
|
||
|
||
2006-07-17 Richard Henderson <rth@redhat.com>
|
||
|
||
PR 27889
|
||
* tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
|
||
if needed.
|
||
|
||
2006-07-17 Roger Sayle <roger@eyesopen.com>
|
||
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||
|
||
* config/i386/gmon-sol2.c: Silence compilation warnings by partially
|
||
synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0
|
||
blocks. #include "tconfig.h" and "tsystem.h" to prototype system
|
||
functions such as sbrk, write, etc.. Add function prototypes.
|
||
Convert function declarations from K&R to ISO C. Cast pointers
|
||
to "long" and "unsigned long" instead of "int" and "unsigned int".
|
||
Convert tokens following #endif into comments.
|
||
|
||
2006-07-17 Toon Moene <toon@moene.indiv.nluug.nl>
|
||
|
||
* invoke.texi: Remove mention of f77; Reformat table for
|
||
inline parameter options correctly; mention that -malign-double
|
||
is default on x86-64 targets.
|
||
|
||
2006-07-17 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-chrec.c (avoid_arithmetics_in_type_p): New.
|
||
(convert_affine_scev, chrec_convert_aggressive): Use
|
||
avoid_arithmetics_in_type_p. Do not check for the subtypes
|
||
separately.
|
||
|
||
2006-07-17 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR middle-end/28403
|
||
* optabs.c (expand_doubleword_shift): Wrap the call to
|
||
do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
|
||
|
||
2006-07-17 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR middle-end/28402
|
||
* optabs.c (expand_binop): Pass next_methods rather than methods
|
||
to expand_doubleword_shift.
|
||
|
||
2006-07-17 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR other/28251
|
||
* tree.h (dump_addr): Declare.
|
||
* print-tree.c (dump_addr): New function.
|
||
(print_node_brief, print_node): Use it.
|
||
* print-rtl.c (print_rtx): Likewise.
|
||
* common.opt (-fdump-noaddr): New option.
|
||
* doc/invoke.texi (-fdump-noaddr): Document.
|
||
* loop-unroll.c (si_info_hash): Make hash independent of addresses.
|
||
(ve_info_hash): Likewise.
|
||
|
||
2006-07-13 Andrew Haley <aph@redhat.com>
|
||
|
||
PR tree-optimization/19505
|
||
* tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
|
||
edge leaving this block, make sure that the destination of this
|
||
block has only one predecessor.
|
||
|
||
2006-07-17 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/28238
|
||
* tree-inline.c (copy_bb): Check if we produced valid
|
||
gimple copying and substituting a stmt. If not, gimplify
|
||
it.
|
||
|
||
2006-07-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* optabs.c (maybe_encapsulate_block): New function extracted from...
|
||
(emit_libcall_block): ...here. Invoke it on the block of insns to
|
||
maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
|
||
(emit_no_conflict_block): Likewise.
|
||
|
||
2006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
|
||
|
||
2006-07-15 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
|
||
a new NOP_EXPR case of the switch statement.
|
||
|
||
2006-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
PR middle-end/28160
|
||
* stor-layout.c (place_field): Take the bit field with
|
||
an excessive size into account in the ms-bitfiled case.
|
||
|
||
PR middle-end/28161
|
||
* stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
|
||
the previous bit field.
|
||
|
||
2006-07-14 Eliot Dresselhaus <eliot@sonic.net>
|
||
|
||
PR target/27287
|
||
* config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
|
||
|
||
2006-07-14 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
|
||
signal frames correctly even when the signal was installed with
|
||
sa_restorer set.
|
||
|
||
2006-07-14 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
|
||
(dbxout_function_end): Use local label LFBB. Remove hook
|
||
DBX_OUTPUT_NFUN.
|
||
(dbxout_source_line): Use local label LFBB.
|
||
(dbxout_block): Likewise.
|
||
(dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
|
||
(dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
|
||
* config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
|
||
and DBX_OUTPUT_NFUN.
|
||
|
||
2006-07-13 Janis Johnson <janis187@us.ibm.com>
|
||
|
||
* doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
|
||
|
||
2006-07-13 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
|
||
align_variable.
|
||
* output.h (align_variable): Declare.
|
||
* varasm.c (align_variable): Export.
|
||
* value-prof.c (tree_value_profile_transformations): Recompute iterator
|
||
when basic block changed.
|
||
|
||
2006-07-13 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
|
||
walking the LOG_LINKS chain.
|
||
|
||
2006-07-12 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* doc/invoke.texi (C++ Dialect Options): Explain difference
|
||
between -fvisibility-inlines-hidden and setting hidden
|
||
visibility explicitly.
|
||
|
||
2006-07-12 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
|
||
(stmp-lipo): Depend on libgcc.a.
|
||
|
||
2006-07-12 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree.c: Fix a comment typo.
|
||
|
||
2006-07-12 Naveen.H.S <naveenh@kpitcummins.com>
|
||
|
||
* config/m32c/muldiv.md (umulhisi3_c): Use only registers for
|
||
dest.
|
||
(umulhisi3_r): Likewise.
|
||
|
||
2006-07-12 Paolo Carlini <pcarlini@suse.de>
|
||
|
||
PR libstdc++/27878
|
||
* doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
|
||
x < 19, vs wchar_t support.
|
||
|
||
2006-07-12 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
|
||
instead of -isa=sh4.
|
||
|
||
2006-07-12 Mike Stump <mrs@apple.com>
|
||
|
||
* protoize.c (edit_fn_definition): Add volatile to clean_text_p.
|
||
|
||
2006-07-10 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/t-slibgcc-darwin: Rewrite.
|
||
|
||
2006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
|
||
|
||
PR bootstrap/20437
|
||
* Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
|
||
dependencies.
|
||
|
||
2006-07-08 Matthias Klose <doko@debian.org>
|
||
|
||
* doc/sourcebuild.texi: Fix typo.
|
||
|
||
2006-07-07 Mike Stump <mrs@apple.com>
|
||
|
||
* toplev.c (process_options): Don't give -ffunction-sections may
|
||
affect debugging warning for Mach-O.
|
||
|
||
2006-07-07 James E Wilson <wilson@specifix.com>
|
||
|
||
* config/mips/mips.md (cpu): Add sb1a.
|
||
* config/mips/sb1.md: Modify almost all patterns to accept sb1a in
|
||
addition to sb1. Adjust comments to clarify SB-1A differences from
|
||
SB-1.
|
||
(ir_sb1a_load): New. Modify bypasses to use it.
|
||
(ir_sb1a_simple_alu): Likewise.
|
||
* config/mips/mips.c (mips_cpu_info_table): Add sb1a.
|
||
(mips_rtx_cost_data): Add PROCESSOR_SB1A support.
|
||
(mips_issue_rate): Add PROCESSOR_SB1A.
|
||
(mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
|
||
* config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
|
||
(TARGET_SB1): Add PROCESSOR_SB1A check.
|
||
(TUNE_SB1): Likewise.
|
||
|
||
* config/mips/mips-protos.h (mips_store_data_bypass_p): New.
|
||
* config/mips/mips.c (mips_store_data_bypass_p): New.
|
||
* config/mips/sb1.md: Use mips_store_data_bypass_p instead of
|
||
store_data_bypass_p.
|
||
|
||
2006-07-08 Paul Brook <paul@codesourcery.com>
|
||
|
||
PR target/27991
|
||
* config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
|
||
|
||
2006-07-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28268
|
||
* tree.h (build_one_cst): Declare.
|
||
* tree.c (build_one_cst): New function.
|
||
* tree-ssa-math-opts.c (get_constant_one): Remove.
|
||
(insert_reciprocals): Use build_one_cst.
|
||
* fold-const.c (fold_plusminus_mult): Likewise.
|
||
|
||
2006-07-07 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* pointer-set.c (pointer_set_destroy): Correct whitespace.
|
||
* cfgloopanal.c (dump_graph): Likewise.
|
||
* dojump.c (discard_pending_stack_adjust): Likewise.
|
||
* fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
|
||
Likewise.
|
||
* alloc-pool.c (dump_alloc_pool_statistics): Likewise.
|
||
* function.c (finalize_block_changes): Likewise.
|
||
* gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
|
||
* tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
|
||
* rtl.c (dump_rtx_statistics): Likewise.
|
||
* tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
|
||
Likewise.
|
||
* varray.c (dump_varray_statistics): Likewise.
|
||
* dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
|
||
decode_decimal64, encode_decimal128, decode_decimal128,
|
||
decimal_real_to_decimal): Likewise.
|
||
|
||
2006-07-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/28187
|
||
* tree-vrp.c (vrp_operand_equal_p): New function.
|
||
(vrp_bitmap_equal_p): Likewise.
|
||
(update_value_range): Use them to compare old and new
|
||
max and min values.
|
||
|
||
2006-07-06 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
|
||
a default case to switch statement to silence compiler warnings.
|
||
|
||
2006-07-06 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/27968
|
||
* configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
|
||
the configured assembler supports the x87's ffreep mnemonic.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
|
||
* config/i386/i386.c (output_387_ffreep): New function.
|
||
(output_fp_compare): Use output_387_ffreep to emit ffreep insns.
|
||
(output_387_reg_move): Likewise.
|
||
|
||
2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
|
||
|
||
Port to hosts whose 'sort' and 'tail' implementations
|
||
treat operands with leading '+' as file names, as POSIX
|
||
has required since 2001. However, make sure the code still
|
||
works on pre-POSIX hosts.
|
||
* Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
|
||
which says you should use "tail -c +N" rather than "tail +Nc".
|
||
Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
|
||
|
||
2006-07-06 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
|
||
argument name.
|
||
|
||
2006-07-06 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/28150
|
||
* config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
|
||
PRE_{INC,DEC} of TFmode.
|
||
|
||
2006-07-06 David Edelsohn <edelsohn@gnu.org>
|
||
Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/28170
|
||
* config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
|
||
bounds. Simplify.
|
||
|
||
2006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||
|
||
PR target/28285
|
||
* config/alpha/predicates.md (alpha_swapped_comparison_operator):
|
||
Remove duplicate gtu.
|
||
|
||
2006-07-05 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/13983
|
||
PR c++/17519
|
||
* stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
|
||
* c-common.c (handle_packed_attribute): So don't copy it here.
|
||
* c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
|
||
|
||
2006-07-05 Mike Stump <mrs@apple.com>
|
||
|
||
* doc/invoke.texi (Invoking G++): Clarify prose for g++.
|
||
|
||
2006-07-05 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/26146
|
||
* config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
|
||
|
||
2006-07-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR target/28158
|
||
* config/i386/i386.md (*negdf2_1): Restrict pattern to
|
||
TARGET_SSE2 targets if using SSE math.
|
||
(*absdf2_1): Likewise.
|
||
|
||
2006-07-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/28162
|
||
* fold-const.c (fold_binary): For (-A) * (-B) -> A * B
|
||
make sure to convert the operands to the correct type.
|
||
|
||
2006-07-04 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR tree-optimization/28218
|
||
|
||
* tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
|
||
to calculate and free the dominator information.
|
||
|
||
2006-07-04 Peter O'Gorman <peter@pogma.com>
|
||
|
||
* mklibgcc.in: chmod 644 before ranlib during install.
|
||
|
||
2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
|
||
J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* configure.ac (.eh_frame data check): Use diff -b.
|
||
|
||
2006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR bootstrap/18058
|
||
* Makefile.in (BUILD_RTL): Add build/vec.o.
|
||
(build/gencondmd.o): Filter out -fkeep-inline-functions.
|
||
(build/genextract): Delete.
|
||
(build/genautomata): Likewise.
|
||
|
||
2006-07-04 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/28207
|
||
* config/rs6000/rs6000.c (function_arg_boundary): Double-word align
|
||
128-bit IBM long doubles for ABI_V4.
|
||
|
||
2006-07-03 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree.c (range_in_array_bounds_p): New predicate.
|
||
* tree.h (range_in_array_bounds_p): Declare it.
|
||
* tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
|
||
return a less conservative answer.
|
||
* tree-sra.c (struct sra_elt): Add new pointer field 'groups'
|
||
and flag 'is_group'.
|
||
(IS_ELEMENT_FOR_GROUP): New macro.
|
||
(FOR_EACH_ACTUAL_CHILD): Likewise.
|
||
(next_child_for_group): New helper function.
|
||
(can_completely_scalarize_p): Take into account groups.
|
||
(sra_hash_tree): Handle RANGE_EXPR.
|
||
(sra_elt_eq): Likewise.
|
||
(lookup_element): Be prepared for handling groups.
|
||
(is_valid_const_index): Delete.
|
||
(maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
|
||
instead of is_valid_const_index.
|
||
<ARRAY_RANGE_REF>: New case.
|
||
(sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
|
||
is_valid_const_index.
|
||
<ARRAY_RANGE_REF>: Do not unconditionally punt.
|
||
(scan_dump): Dump info for groups too.
|
||
(decide_instantiation_1): Likewise.
|
||
(decide_block_copy): Assert that the element is not a group.
|
||
Propagate decision to groups.
|
||
(generate_one_element_ref): Handle RANGE_EXPR.
|
||
(mark_no_warning): Iterate over actual childs.
|
||
(generate_copy_inout): Likewise.
|
||
(generate_element_copy): Likewise.
|
||
(generate_element_zero): Likewise.
|
||
(generate_element_init_1): Likewise.
|
||
(dump_sra_elt_name): Handle RANGE_EXPR.
|
||
|
||
2006-07-03 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR tree-optimization/26251
|
||
* tree-ssa-threadupdate.c (redirection_block_p): New function.
|
||
(thread_block): When optimizing for size refuse to thread jumps
|
||
that would require duplication of blocks other than redirection
|
||
blocks.
|
||
|
||
2006-07-03 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* configure.ac: Fix thinko in previous check-in.
|
||
* configure: Regenerate.
|
||
|
||
2006-07-03 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR other/27063
|
||
* configure.ac (for lang...): Simplify nesting of conditionals.
|
||
Test subdir_requires for non-enabled languages. Move processing
|
||
of lang_opt_files and lang_tree_fiels below that test.
|
||
* configure: Regenerate.
|
||
* doc/sourcebuild.texi (Front End Config): Document subdir_requires.
|
||
|
||
2006-07-01 Martin Michlmayr <tbm@cyrius.com>
|
||
|
||
* doc/gcov.texi (Invoking Gcov): Add a missing word.
|
||
|
||
2006-06-30 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
|
||
comment typos.
|
||
|
||
2006-06-29 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/26905
|
||
PR c++/26612
|
||
PR c++/27000
|
||
PR c++/26984
|
||
PR c++/19134
|
||
* tree.c (build_decl_stat): Don't hande #pragma visibility here.
|
||
* c-common.c (c_determine_visibility): Handle it here.
|
||
* c-decl.c (finish_decl): Call c_determine_visibility for
|
||
functions, too.
|
||
* flags.h (enum symbol_visibility): Sort from most to least visibility.
|
||
* tree.h: Likewise.
|
||
* varasm.c (default_assemble_visibility): Likewise.
|
||
* c-common.c (handle_visibility_attribute): Complain about trying
|
||
to give visibility to an already defined class, or trying to change
|
||
declared visibility. Always attach the attribute.
|
||
|
||
PR c++/26905
|
||
PR c++/21675
|
||
PR c++/17470
|
||
* attribs.c (decl_attributes): Ignore type-in-place attributes
|
||
once the type has been defined.
|
||
|
||
2006-06-29 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/27428
|
||
* c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
|
||
to indicate the cpplib has issued an error message for us.
|
||
|
||
2006-06-29 Asher Langton <langton2@llnl.gov>
|
||
|
||
PR target/25765
|
||
* config/i386/i386.c (ix86_output_function_epilogue): Don't
|
||
insert a label at the end of an function under Mach-O.
|
||
|
||
2006-06-29 Eric Christopher <echristo@apple.com>
|
||
Evan Cheng <evan.cheng@apple.com>
|
||
|
||
* predicates.md (vector_all_ones_operand): New.
|
||
(nonimmediate_or_sse_const_operand): Ditto.
|
||
* config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
|
||
* config/i386/i386.c (standard_sse_constant_opcode): Define.
|
||
(standard_sse_mode_p): Ditto.
|
||
(standard_sse_constant_p): Add case for -1 vector.
|
||
(ix86_expand_vector_move): Try to use.
|
||
* sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
|
||
Call standard_sse_constant_opcode.
|
||
(*movv4sf_internal): Ditto.
|
||
(*movv2df_internal): Ditto.
|
||
|
||
2006-06-29 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* genpreds.c (write_match_code_switch): Correctly use XSTR instead
|
||
of XEXP to extract the operands of a MATCH_CODE rtx.
|
||
|
||
2006-06-28 Andrew Pinski <pinskia@gmail.com>
|
||
|
||
* tree.c (tree_size): Do not waste tail padding in
|
||
struct tree_string and make the size be the same as
|
||
build_string will generate.
|
||
|
||
2006-06-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/27768
|
||
* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
|
||
may_aliases already in the tag's annotations to the bitmap.
|
||
|
||
2006-06-28 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
|
||
|
||
2006-06-28 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* genpreds.c (generate_switch_p): New function.
|
||
(add_mode_tests): Push the new mode test down inside an AND expr
|
||
if this allows the switch-suitable MATCH_CODE to be near the root.
|
||
(write_match_code_switch): New function to write a MATCH_CODE as
|
||
a switch statement.
|
||
(write_predicate_stmts): New function to write a predicate RTX
|
||
expression as a sequence of statements.
|
||
(write_one_predicate_function): Use write_predicate_stmts.
|
||
(write_tm_constrs_h): Likewise.
|
||
|
||
2006-06-26 Fred Fish <fnf@specifix.com>
|
||
|
||
* config/mips/t-sb1: New file.
|
||
* config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
|
||
tmake_file list.
|
||
|
||
2006-06-26 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
|
||
|
||
2006-06-26 Naveen H.S <naveenh@kpitcummins.com>
|
||
Jayant Sonar <jayants@kpitcummins.com>
|
||
Jaydeep Vipradas <jaydeepv@kpitcummins.com>
|
||
|
||
* config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
|
||
(subsi3, subsi3_1, subsi3_2): New.
|
||
* config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
|
||
* config/m32c/mov.md (SI mov peephole): New.
|
||
* config/m32c/m32.c (m32c_immd_dbl_mov): New.
|
||
* config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
|
||
|
||
2006-06-26 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
|
||
a CALL_EXPR target function declaration.
|
||
|
||
2006-06-26 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree.c (build_string): Do not waste tail padding in
|
||
struct tree_string.
|
||
|
||
2006-06-26 Richard Guenther <rguenther@suse.de>
|
||
|
||
* ggc-page.c (init_ggc): Add missing element to size_lookup
|
||
table.
|
||
|
||
Revert
|
||
2006-06-23 Richard Guenther <rguenther@suse.de>
|
||
|
||
* ggc-page.c (init_ggc): Do not round up the extra_order_size_table
|
||
sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
|
||
alignment requests instead. Add verification code.
|
||
Add struct tree_function_decl and struct tree_binfo size to
|
||
extra_order_size_table. Add missing element to size_lookup
|
||
table.
|
||
|
||
2006-06-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR middle-end/28151
|
||
* fold-const.c (const_binop): Be prepared for self returning zero.
|
||
Simplify code handling complex values.
|
||
|
||
2006-06-24 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
|
||
(gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
|
||
aggregate types.
|
||
|
||
2006-06-24 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
|
||
ARRAY_REF, so have the callback called for the low bound expression.
|
||
|
||
2006-06-23 Janis Johnson <janis187@us.ibm.com>
|
||
|
||
* tree.h (DECIMAL_FLOAT_TYPE_P): New.
|
||
* c-typeck.c (c_common_type): Disallow operations on decimal float
|
||
types and other float types.
|
||
* convert.c (convert_to_real): Don't ignore conversions involving
|
||
decimal float types.
|
||
|
||
2006-06-23 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* tree.c (max_int_size_in_bytes): New function, inspired from
|
||
code in function.c:assign_temp.
|
||
* tree.h (max_int_size_in_bytes): Declare.
|
||
* function.c (assign_temp): Use it.
|
||
* gimplify.c (create_tmp_var): Relax the assertions on the type
|
||
properties, not mandating constant size any more.
|
||
(force_constant_size): New static function.
|
||
(gimple_add_tmp_var): Use it, forcing variable size to a
|
||
constant upper bound if it is not constant on entry.
|
||
|
||
2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
|
||
|
||
PR target/27789
|
||
* config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
|
||
for initialization and setting of one_only flag to ...
|
||
(i386_pe_encode_section_info): ...here.
|
||
(i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
|
||
Recheck that the symbol has not been defined.
|
||
|
||
2006-06-23 Richard Guenther <rguenther@suse.de>
|
||
|
||
* ggc-page.c (init_ggc): Do not round up the extra_order_size_table
|
||
sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour
|
||
alignment requests instead. Add verification code.
|
||
Add struct tree_function_decl and struct tree_binfo size to
|
||
extra_order_size_table. Add missing element to size_lookup
|
||
table.
|
||
|
||
2006-06-22 Roger Sayle <roger@eyesopen.com>
|
||
John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR middle-end/28131
|
||
* expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
|
||
call to lang_hooks.types.type_for_mode returned NULL_TREE.
|
||
|
||
2006-06-23 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
|
||
negate dn -- manipulate it directly.
|
||
|
||
2006-06-22 Roger Sayle <roger@eyesopen.com>
|
||
Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
PR target/27531
|
||
* reload1.c (gen_reload): Call mark_jump_label on the new insns
|
||
generated by gen_move_insn to add REG_LABEL notes if necessary.
|
||
|
||
2006-06-22 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
|
||
(leaf_entry): Remove use of MIN_ESA.
|
||
|
||
2006-06-22 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/28121
|
||
* cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
|
||
the entry edge.
|
||
|
||
2006-06-21 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
|
||
(TN-16C-A156A/E).
|
||
(mulhisi3_r): Likewise.
|
||
|
||
2006-06-21 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR middle-end/28034
|
||
* coverage.c (coverage_counter_alloc): Leave the index type
|
||
unspecified.
|
||
(coverage_counter_alloc): Use null arguments for operands 2 and 3
|
||
of the ARRAY_REF.
|
||
|
||
2006-06-21 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
|
||
section from the "Options for Code Generation Conventions".
|
||
|
||
2006-06-21 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/26347
|
||
PR target/27082
|
||
* config/alpha/predicates.md (small_symbolic_operand): Deny weak
|
||
symbols.
|
||
(global_symbolic_operand): Allow weak symbols, even if local_p.
|
||
|
||
2006-06-21 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
|
||
(find_interesting_uses_address): Punt if above function returns true.
|
||
|
||
2006-06-21 Richard Guenther <rguenther@suse.de>
|
||
|
||
* configure: Regenerated.
|
||
|
||
2006-06-21 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/mips/mips.c (function_arg): Where one part of a
|
||
complex argument is in registers and the other part in the stack,
|
||
return a REG not a PARALLEL.
|
||
|
||
2006-06-21 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* configure.ac: Set gcc_gxx_include_dir to $target/include/c++
|
||
when cross-compiling. Do not substitute libstdcxx_incdir.
|
||
* configure: Regenerated.
|
||
|
||
2006-06-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* varasm.c (mergeable_string_section): Check for embedded NULs and
|
||
NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
|
||
rather than TREE_STRING_LENGTH bytes.
|
||
|
||
2006-06-21 Richard Guenther <rguenther@suse.de>
|
||
|
||
* ggc-page.c (extra_order_size_table): Add var_ann_d,
|
||
tree_ssa_name, bitmap_element and phi_node with 4 arguments
|
||
sizes.
|
||
|
||
2006-06-21 Richrad Guenther <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-niter.c (simplify_using_initial_conditions):
|
||
Limit iteration over the dominators.
|
||
|
||
2006-06-20 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
|
||
(SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
|
||
|
||
2006-06-20 Richard Guenther <rguenther@suse.de>
|
||
Michael Matz <matz@suse.de>
|
||
|
||
* alloc-pool.h (free_alloc_pool_if_empty): Prototype new
|
||
function.
|
||
* alloc-pool.c (free_alloc_pool_if_empty): New function.
|
||
* et-forest.h (et_free_pools): Prototype new function.
|
||
* et-forest.c (et_free_tree_force): Free parent occurrence.
|
||
(et_free_pools): New function.
|
||
* dominance.c (free_dominance_info): Free et-forest alloc
|
||
pools.
|
||
|
||
2006-06-20 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
|
||
integer modes, attempt to directly construct an integer constant.
|
||
|
||
* fold-const.c (native_encode_vector): Determine the size of each
|
||
element from the vector type instead of the first vector element.
|
||
|
||
* tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
|
||
if all of its elements/components are constant.
|
||
(build_constructor_from_list): Likewise.
|
||
|
||
2006-06-20 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27331
|
||
* tree-data-ref.c (free_data_ref): New function.
|
||
(create_data_ref): Fail if the data reference has unknown access
|
||
function.
|
||
(free_data_refs): Use free_data_ref.
|
||
|
||
2006-06-19 Andrew Pinski <pinskia@gmail.com>
|
||
|
||
PR middle-end/28075
|
||
* tree-inline.c (setup_one_parameter): Strip useless
|
||
type conversion before adding it to the IR.
|
||
(declare_return_variable): Likewise.
|
||
|
||
2006-06-19 Martin Michlmayr <tbm@cyrius.com>
|
||
|
||
PR c/27149
|
||
* c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
|
||
|
||
2006-06-19 Mike Stump <mrs@apple.com>
|
||
|
||
* tree.c (variably_modified_type_p): VM arguments don't make the
|
||
type a VM type.
|
||
|
||
2006-06-19 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-ssa-pre.c (try_combine_conversion): Strip useless
|
||
type conversions after folding.
|
||
|
||
2006-06-19 Richard Guenther <rguenther@suse.de>
|
||
|
||
* ggc-page.c (extra_order_size_tab): Add entries with
|
||
size of struct function and basic_block.
|
||
(size_lookup): Extend to cover sizes up to 511.
|
||
(ggc_alloc_stat): Adjust user.
|
||
(ggc_pch_count_object): Likewise.
|
||
(ggc_pch_alloc_object): Likewise.
|
||
(ggc_pch_write_object): Likewise.
|
||
|
||
2006-06-19 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-loop-niter.c (implies_ge_p): New function.
|
||
(derive_constant_upper_bound): Handle OP0 - CST in unsigned types
|
||
correctly.
|
||
|
||
2006-06-19 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/libgcc.S : Correct my wrong previous commit.
|
||
|
||
2006-06-19 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/27861
|
||
* expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
|
||
have stripped a SUBREG from the shift count, so we may need to
|
||
convert_to_mode back to the type's mode before calling make_tree.
|
||
Use new_amount instead of amount to avoid expanding a tree twice.
|
||
|
||
2006-06-19 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/28045
|
||
* fold-const.c (operand_equal_p): Check if the argument types
|
||
have the same precision before stripping NOPs.
|
||
|
||
2006-06-19 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/27341
|
||
* tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
|
||
statement we get.
|
||
* tree-complex.c (pass_lower_complex): Update SMT usage.
|
||
|
||
2006-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
|
||
Add a new alternative to the constraint strings. Add move of
|
||
operand 1 to 3 to the splitter definition.
|
||
("doloop_si_long"): Second contraint alternative removed.
|
||
|
||
2006-06-08 Anatoly Sokolov <aesok@post.ru>
|
||
|
||
* config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
|
||
(TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
|
||
__AVR_HAVE_LPMX__.
|
||
(AVR_HAVE_MOVW) Define.
|
||
(ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
|
||
(ASM_SPEC): Add avr25.
|
||
(LINK_SPEC): Add avr25.
|
||
* config/avr/avr.c (avr_have_movw_lpmx_p): Add.
|
||
(base_arch_s): Add new member 'have_movw_lpmx'.
|
||
(avr_arch_types): Init 'have_movw_lpmx'.
|
||
(avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
|
||
attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
|
||
attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
|
||
(avr_override_options): Init 'avr_have_movw_lpmx_p'.
|
||
(output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
|
||
AVR_HAVE_MOVW.
|
||
(avr_file_start): Do not output '.arh' derective.
|
||
* config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
|
||
(__do_copy_data): Use __AVR_HAVE_LPMX__.
|
||
* config/avr/avr.md (mcu_enhanced): Delete.
|
||
(mcu_have_movw): Define.
|
||
(negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
|
||
(call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
|
||
* config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
|
||
(MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
|
||
attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
|
||
attiny861 and at86rf401 devices.
|
||
|
||
2006-06-18 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
|
||
of 4096.
|
||
|
||
2006-06-17 Karl Berry <karl@gnu.org>
|
||
|
||
* doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
|
||
doc/gccint.texi, doc/install.texi (@dircategory): Use
|
||
"Software development" instead of "Programming", following
|
||
the Free Software Directory.
|
||
|
||
2006-06-17 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* config/i386/i386.c (legitimate_tls_address)
|
||
<TARGET_GNU2_TLS>: Add tp after DTPOFF.
|
||
* config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
|
||
(*tls_dynamic_gnu2_combine_64): Likewise.
|
||
|
||
2006-06-16 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/27116
|
||
* fold-const.c (negate_expr_p): Do not introduce undefined
|
||
overflow in negating INTEGER_CSTs.
|
||
(fold_negate_expr): Rename from negate_expr. Revert last
|
||
change for folding BIT_NOT_EXPR. Change semantics to
|
||
return NULL_TREE for non-simplified negations. Do not
|
||
strip type conversions and unify type handling.
|
||
(negate_expr): New function, wrap around fold_negate_expr
|
||
but ensure building a tree always. Strip type conversions
|
||
here, fold to result type.
|
||
(fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
|
||
|
||
2006-06-16 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/27802
|
||
* reg-stack.c (subst_stack_regs): Handle noreturn function calls
|
||
that (would) return their results in stack registers.
|
||
|
||
2006-06-16 Michael Matz <matz@suse.de>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
* fold-const.c (fold_truthop): Only return new tree node if
|
||
we canonicalized something.
|
||
|
||
2006-06-16 Richard Guenther <rguenther@suse.de>
|
||
|
||
* function.h (enum function_frequency): Move declaration
|
||
out of struct function.
|
||
(struct function): Move bool fields and the enum to the bitfield
|
||
section. Reorder elements to avoid padding. Remove unused
|
||
fields left over from the RTL inliner removal.
|
||
* function.c (free_after_compilation): Do not zero removed fields.
|
||
* Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
|
||
(ipa-type-escape.o): Likewise.
|
||
|
||
2006-06-16 Richard Guenther <rguenther@suse.de>
|
||
|
||
* cgraph.h (struct cgraph_local_info): Turn bool elements
|
||
into a bitfield.
|
||
(struct cgraph_node): Likewise.
|
||
(struct cgraph_varpool_node): Likewise.
|
||
|
||
2006-06-15 Richard Guenther <rguenther@suse.de>
|
||
|
||
* fold-const.c (fold_truth_not_expr): Rename from
|
||
invert_truthvalue. Give it fold_* semantics to avoid
|
||
generating garbage.
|
||
(invert_truthvalue): New function. Wrapper around
|
||
fold_truth_not_expr.
|
||
(optimize_minmax_comparison): Avoid creating garbage.
|
||
(fold_unary): Use fold_truth_not_expr for folding
|
||
TRUTH_NOT_EXPR.
|
||
(fold_ternary): Replace uses of invert_truthvalue with
|
||
fold_truth_not_expr where applicable.
|
||
* tree.h (fold_truth_not_expr): Prototype.
|
||
|
||
2006-06-16 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27781
|
||
* Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
|
||
* ipa-pure-const.c (target.h): Include.
|
||
(analyze_function): Do not analyze functions that do not
|
||
bind locally.
|
||
|
||
2006-06-15 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
PR middle-end/27793
|
||
* tree-dfa.c (referenced_vars_dup_list): Remove.
|
||
(find_referenced_vars): Remove assert.
|
||
(referenced_var_check_and_insert): Replace dup list with assert.
|
||
* tree-ssa.c (delete_tree_ssa): Remove dup list processing.
|
||
* tree-flow.h (referenced_vars_dup_list): Remove extern decl.
|
||
|
||
2006-06-15 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (alias_get_name): Avoid creating
|
||
extra unused identifiers if not dumping.
|
||
(create_variable_info_for): Likewise.
|
||
|
||
2006-06-15 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
|
||
(derive_constant_upper_bound): Derive more precise upper bound in
|
||
common cases. Return type changed to double_int.
|
||
(record_estimate): Reflect the changed return type of
|
||
derive_constant_upper_bound.
|
||
* double-int.c (double_int_zext, double_int_sext): Fix.
|
||
|
||
2006-06-15 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* configure.ac (CFLAGS): Get them from the toplevel or from the
|
||
configure invocation.
|
||
* configure: Regenerate.
|
||
* Makefile.in (CFLAGS): Substitute value provided by configure.
|
||
|
||
2006-06-14 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
PR c++/26559
|
||
* c-common.h (c_finish_omp_atomic): Adjust declaration.
|
||
* c-omp.c (c_finish_omp_atomic): Return the expression to perform,
|
||
rather than calling add_stmt on it.
|
||
* c-parser.c (c_parser_omp_atomic): Adjust accordingly.
|
||
|
||
2006-06-14 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
PR middle-end/27959
|
||
* reload1.c (reload): Remove registers returned by update_eliminables
|
||
from used_spill_regs.
|
||
|
||
2006-06-13 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
|
||
|
||
2006-06-13 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
|
||
html__strip_dir, html__mkdir_p. Enhance install-html target.
|
||
* configure.ac: AC_SUBST datarootdir, docdir and htmldir.
|
||
* configure: Regenerate.
|
||
|
||
2006-06-13 Fariborz Jahanian <fjahanian@apple.com>
|
||
|
||
* fold-const.c (fold_cond_expr_with_comparison): Check for
|
||
Objective-C++ as language in deciding COND_EXPR transformation.
|
||
|
||
2006-06-06 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR target/28014:
|
||
* config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
|
||
* config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
|
||
* config/sh/lib1funcs.h (SL, SL1): Define.
|
||
* config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
|
||
* longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
|
||
* config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
|
||
(OBJS_Os_4_200): New variable.
|
||
($(T)libgcc-Os-4-200.a): Use it.
|
||
* sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
|
||
when dividing 1 and/or by 0.
|
||
|
||
2006-06-13 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
|
||
before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
|
||
* configure: Regenerate.
|
||
|
||
2006-06-13 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
|
||
for real instruction.
|
||
|
||
2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
PR middle-end/26807
|
||
* haifa-sched.c (check_cfg): Handle special case.
|
||
|
||
2006-06-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR debug/26754
|
||
* gimplify.c (declare_tmp_vars): Rename into declare_vars.
|
||
Add debug_info parameter. Chain the vars to the BLOCK instead
|
||
of the BIND_EXPR if debug info are requested for them.
|
||
(pop_gimplify_context): Adjust for above change.
|
||
(gimple_add_tmp_var): Likewise.
|
||
* tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
|
||
Add bool parameter.
|
||
* tree-nested.c (convert_nonlocal_reference): Adjust for above change.
|
||
(convert_local_reference): Likewise.
|
||
(get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
|
||
(finalize_nesting_tree_1): Request that debug info be emitted
|
||
for debug_var_chain.
|
||
|
||
2006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
|
||
for PR target/27863.
|
||
|
||
2006-06-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/27536
|
||
* except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
|
||
|
||
2006-06-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27830
|
||
* tree-inline.c (copy_body_r): For copying the operand
|
||
of an ADDR_EXPR make sure to fold &* afterwards.
|
||
|
||
2006-06-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
|
||
lvalues in the fb_none case with side-effects.
|
||
|
||
2006-06-12 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree-flow.h: Remove the prototype for
|
||
compute_phi_arg_on_exit.
|
||
* tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
|
||
protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
|
||
Remove.
|
||
|
||
2006-06-12 Mark Shinwell <shinwell@codesourcery.com>
|
||
|
||
* builtins.c (expand_builtin_return_addr): Only use
|
||
frame_pointer_rtx when count == 0 and we are expanding
|
||
__builtin_return_address.
|
||
|
||
2006-06-12 Fred Fish <fnf@specifix.com>
|
||
|
||
* config/mips/mips.c (mips_file_start): Create special section
|
||
".gcc_compiled_longXX" for o64 ABI as well as EABI.
|
||
|
||
2006-06-11 Eric Christopher <echristo@apple.com>
|
||
|
||
PR middle-end/27948
|
||
* stor-layout.c (place_field): Remove check for
|
||
remaining_in_alignment when aligning at the end of a run.
|
||
|
||
2006-06-11 Eric Christopher <echristo@apple.com>
|
||
|
||
PR 27542
|
||
* doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
|
||
pragma.
|
||
|
||
2006-06-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/27858
|
||
Revert incorrect fix for PR target/27158
|
||
2006-05-08 Roger Sayle <roger@eyesopen.com>
|
||
* reload.c (find_reloads_toplev): Only return the simplified SUBREG
|
||
of a reg_equiv_constant if the result is a legitimate constant.
|
||
|
||
2006-06-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/27158
|
||
* config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
|
||
extract a CONST_VECTOR element and interpret it as an integer.
|
||
(vspltis_constant): Use const_vector_elt_as_int instead of the
|
||
macro CONST_VECTOR_ELT in order to handle FP vector modes.
|
||
* config/rs6000/predicates.md (easy_vector_const): Consider
|
||
floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
|
||
|
||
2006-06-11 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
PR middle-end/27942
|
||
* stor-layout.c (update_alignment_for_field): Don't add extra
|
||
alignment for packed non-bitfield fields in ms_bitfield_layout_p
|
||
code.
|
||
|
||
2006-06-09 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||
|
||
* config/mips/t-rtems: Add EL/EB multilib variants.
|
||
|
||
2006-06-09 Mike Stump <mrs@apple.com>
|
||
|
||
* c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
|
||
|
||
2006-06-09 David Daney <ddaney@avtrex.com>
|
||
|
||
* doc/install.texi: Add binutils version recommendation for mips-*-*.
|
||
|
||
2006-06-09 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* reload.c (find_reloads): Unset force_reload for 'X' constraint.
|
||
|
||
2006-06-09 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26998
|
||
* tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
|
||
of signed types, only TYPE_MIN_VALUE is special, but for both,
|
||
minimum and maximum value. Likewise VR_ANTI_RANGE is special
|
||
in this case, as is -fwrapv.
|
||
|
||
2006-06-08 Mike Stump <mrs@apple.com>
|
||
|
||
PR target/26427
|
||
* config/darwin.c (darwin_asm_output_anchor): Disable
|
||
-fsection-anchors on darwin for now.
|
||
* config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
|
||
* rs6000/rs6000.c (optimization_options): Likewise.
|
||
|
||
2006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR target/27421
|
||
* config/i386/i386.c (classify_argument): Skip fields with invalid
|
||
types in unions.
|
||
|
||
2006-06-08 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
|
||
(cse_insn): Likewise for the stack_pointer_rtx.
|
||
|
||
2006-06-08 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree-ssa-dom.c (record_conditions): Only record "unordered"
|
||
conditions from floating point comparisons.
|
||
|
||
2006-06-08 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR middle-end/27733
|
||
* expmed.c (struct alg_hash_entry): Fix type of field T
|
||
to match synth_mult argument.
|
||
(NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
|
||
|
||
2006-06-08 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
PR target/27863
|
||
* haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
|
||
block boundaries.
|
||
|
||
2006-06-08 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/27116
|
||
* fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
|
||
only, if overflow is defined and not trapping.
|
||
(negate_expr): Likewise.
|
||
|
||
2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27872
|
||
* tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
|
||
flag on the new exit edge of the unrolled loop.
|
||
|
||
2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26449
|
||
* loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
|
||
|
||
2006-06-07 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
PR middle-end/27793
|
||
* tree-dfa.c (referenced_vars_dup_list): New. List of duplicate
|
||
referenced_variables with matching DECL_UID's.
|
||
(find_referenced_vars): Make sure duplicate list is empty to start.
|
||
(referenced_var_p): Remove.
|
||
(referenced_var_check_and_insert): Renamed from referenced_var_insert.
|
||
Check if var is in the list, and add if needed. Update the duplicate
|
||
list if a different var is in the list with the same DECL_UID.
|
||
(add_referenced_var): Call routine to check and insert.
|
||
* tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
|
||
* tree-flow.h (referenced_vars_dup_list): External declaration.
|
||
|
||
2006-06-07 Fred Fish <fnf@specifix.com>
|
||
|
||
* config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
|
||
into single entry.
|
||
|
||
2006-06-07 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR target/27390
|
||
* reg-stack.c (subst_stack_regs_pat): Reorder resetting of
|
||
the imaginary and real parts of a clobbered register.
|
||
Emit insn to set the imaginary part.
|
||
|
||
2006-06-06 Peter Lemieszewski <lemie@us.ibm.com>
|
||
|
||
* config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
|
||
in lieu of unwind-dw2-fde.c.
|
||
|
||
2006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||
|
||
* config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
|
||
|
||
2006-06-06 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
PR target/27842
|
||
* config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
|
||
("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
|
||
("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
|
||
V4SImode temporaries and operations instead.
|
||
|
||
2006-06-06 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
|
||
dp-bit.c.
|
||
|
||
2006-06-06 Mike Stump <mrs@apple.com>
|
||
|
||
* Makefile.in: Rename to htmldir to build_htmldir to avoid
|
||
installing during build.
|
||
|
||
2006-06-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
|
||
value to 0.
|
||
* doc/invoke.texi (max-sched-extend-regions-iters): Document.
|
||
* config/ia64/ia64.c (params.h): New header.
|
||
(ia64_optimization_options): New function to adjust parameters.
|
||
* config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
|
||
* config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
|
||
* config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
|
||
|
||
2006-06-05 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* stor-layout.c (debug_rli): Fix a typo in a debug message.
|
||
|
||
2006-06-05 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR target/27051
|
||
* config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
|
||
|
||
2006-06-05 Dorit Nuzman <dorit@il.ibm.com>
|
||
Victor Kaplansky <victork@il.ibm.com>
|
||
|
||
PR tree-optimization/26360
|
||
* tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
|
||
stmts.
|
||
|
||
2006-06-04 Roger Sayle <roger@eyesopen.com>
|
||
Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/27382
|
||
* c-common.c (c_common_truthvalue_conversion): Explicitly check
|
||
for LABEL_DECL before calling DECL_WEAK.
|
||
|
||
PR c/27150
|
||
* c-typeck.c (build_binary_op): Likewise, explicitly check for
|
||
LABEL_DECL and PARM_DECL.
|
||
|
||
2006-06-05 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR c/25161
|
||
PR c/27020
|
||
* c-decl.c (grokdeclarator): Disallow variably modified types at
|
||
file scope. Avoid marking shared array type of constant size as
|
||
VLA.
|
||
|
||
2006-06-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c++/27601
|
||
* c-common.c (fold_offsetof_1): Handle static members.
|
||
|
||
2006-06-04 Eric Christopher <echristo@apple.com>
|
||
|
||
* stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
|
||
(debug_rli): Output value for remaining_in_alignment.
|
||
(update_alignment_for_field): Unconditionalize
|
||
ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
|
||
extra alignment code.
|
||
(place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
|
||
ms_bitfield_layout_p code. Rewrite handling of structure fields.
|
||
* tree.h (record_layout_info_s): Remove prev_packed.
|
||
* doc/extend.texi (ms_struct): Add documentation of format.
|
||
|
||
2006-06-04 Mark Shinwell <shinwell@codesourcery.com>
|
||
|
||
* tree.h: Declare folding_initializer.
|
||
* builtins.c (fold_builtin_constant_p): Give definite answer
|
||
if folding inside an initializer.
|
||
* fold-const.c: Define folding_initializer.
|
||
(START_FOLD_INIT): Save and then set folding_initializer.
|
||
(END_FOLD_INIT): Restore folding_initializer.
|
||
|
||
2006-06-04 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27039
|
||
* fold-const.c (fold_comparison): Handle pointer comparison
|
||
again for all comparison codes. Compare offsets in signed
|
||
size type.
|
||
(fold_binary): Move code from here.
|
||
|
||
2006-06-03 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/26223
|
||
* config/i386/i386.c (construct_container): Split static issued_error
|
||
flag into issued_sse_arg_error, issued_sse_ret_error and
|
||
issued_x87_ret_error. Issue a daignostic if the x86-64 ABI
|
||
requires the use of x87 registers and the user explicitly
|
||
specified the -mno-80387 command line option.
|
||
|
||
2006-06-02 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
|
||
HAVE_DECL_SIGALTSTACK.
|
||
(MC_FLD): New.
|
||
(segv_handler): Use MC_FLD.
|
||
* configure.ac: Check for a sigaltstack declaration.
|
||
Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
|
||
2006-06-03 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR other/27850
|
||
* Makefile.in (stmp-fixinc): Fix typo.
|
||
|
||
2006-06-02 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
|
||
are type correct. Clean-up.
|
||
<REALPART_EXPR>: Likewise. Optimize creal(~z) as creal(z).
|
||
<IMAGPART_EXPR>: Likewise. Optimize cimag(~z) as -cimag(z).
|
||
|
||
2006-06-01 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
|
||
shift, as we've disabled the "switch" insn that needs it.
|
||
|
||
2006-06-01 Per Bothner <bothner@bothner.com>
|
||
|
||
Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
|
||
* c-opts.c (finish_options): Use internal line 0 for <command-line>.
|
||
* c-ppoutput.c (cb_define): Don't increment line 0.
|
||
|
||
2006-06-01 Pete Steinmetz <steinmtz@us.ibm.com>
|
||
|
||
* doc/invoke.texi: Add cpu_type power6.
|
||
* config.gcc: Add cpu_type power6.
|
||
* config/rs6000/rs6000.c (rs6000_override_options): Alias power6
|
||
to power5+ with Altivec.
|
||
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
|
||
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
|
||
|
||
2006-05-30 Anatoly Sokolov <aesok@post.ru>
|
||
|
||
* config/avr/avr.h (SET_ASM_OP): Define.
|
||
|
||
2006-06-01 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* config/bfin/bfin.c: Fix comment typos.
|
||
|
||
2006-06-01 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR 25453
|
||
* doc/install.texi: Document --enable-bootstrap and
|
||
--disable-bootstrap.
|
||
|
||
2006-06-01 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* doc/install.texi: Document that InfoZIP can replace jar.
|
||
|
||
2006-05-31 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
|
||
isn't available, directly generate the simpler x87 patterns without
|
||
the (use (const_int 0)).
|
||
* config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
|
||
implementation isn't available.
|
||
(*negdf2_1): Likewise.
|
||
(*negxf2_1): XF mode negation is always done using the x87.
|
||
(*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
|
||
|
||
2006-05-31 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (fold_builtin_cabs): Delete prototype. Require an
|
||
additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as
|
||
cabs(z).
|
||
(fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
|
||
|
||
2006-05-31 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
|
||
* config/bfin/bfin.c (basic-block.h): Include.
|
||
(struct machine_function): New.
|
||
(bfin_init_machine_status): New.
|
||
(override_options): Initialize init_machine_status.
|
||
(bfin_hardware_loop): New.
|
||
(MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
|
||
(DEF_VEC_P (loop_info)): New.
|
||
(DEF_VEC_ALLOC_P (loop_info,heap)): New.
|
||
(struct loop_info): New.
|
||
(loop_info): New typedef.
|
||
(struct loop_work): New.
|
||
(loop_work): New typedef.
|
||
(DEF_VEC_O (loop_work)): New.
|
||
(DEF_VEC_ALLOC_O (loop_work,heap)): New.
|
||
(bfin_dump_loops): New.
|
||
(bfin_bb_in_loop): New.
|
||
(bfin_scan_loop): New.
|
||
(bfin_optimize_loop): New.
|
||
(bfin_reorg_loops): New.
|
||
(bfin_reorg): Use bfin_reorg_loops.
|
||
* config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
|
||
loop registers.
|
||
(I_REGNO_P): Simplify.
|
||
(DP_REGNO_P, DPREG_P): New macros.
|
||
(REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
|
||
REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
|
||
(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
|
||
Add LT_REGS, LC_REGS, LB_REGS.
|
||
(REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
|
||
'l' for LB_REGS.
|
||
(REGNO_REG_CLASS): Deal with loop registers.
|
||
* config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
|
||
letters.
|
||
(REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
|
||
New constants for loop registers.
|
||
(UNSPEC_LSETUP_END): New.
|
||
(seq_insns): New define_attr. Set it for appropriate insns.
|
||
(movsi_insn): Add alternatives for move from/to
|
||
loop count registers.
|
||
(doloop_end): New define_expand.
|
||
(loop_end): New define_insn.
|
||
(define_split for bad doloop_end): New.
|
||
(lsetup_with_autoinit): New define_insn.
|
||
(lsetup_without_autoinit): New define_insn.
|
||
(rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
|
||
* config/bfin/predicates.md (lc_register_operand): New.
|
||
(lt_register_operand): New.
|
||
(lb_register_operand): New.
|
||
(nondp_register_operand): New.
|
||
(nondp_reg_or_memory_operand): New.
|
||
* doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
|
||
|
||
2006-05-31 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.c (bfin_delegitimize_address): New.
|
||
(TARGET_DELEGITIMIZE_ADDRESS): Define.
|
||
|
||
2006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
* Makefile.in (CATALOGS): Add po/ prefix.
|
||
* configure: Regenerated.
|
||
|
||
2006-05-31 Richard Earnshaw <richard.earnshaw@arm.com>
|
||
|
||
PR target/27829
|
||
* arm.c (arm_print_operand case 'S'): Validate that the operand is
|
||
a shift operand before calling shift_op. Avoid redundant call of
|
||
shift_op.
|
||
|
||
2006-05-30 Naveen.H.S <naveenh@kpitcummins.com>
|
||
DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.c (m32c_expand_insv): Check that the value
|
||
we're inserting is a singlt-bit constant.
|
||
|
||
2006-05-30 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
|
||
width to HOST_WIDE_INT to avoid comparison warnings on some targets.
|
||
|
||
2006-05-30 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR tree-optimization/23452
|
||
* fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
|
||
to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
|
||
(fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
|
||
complex values and with -ffast-math for FP complex values.
|
||
|
||
2006-05-30 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* c-common.h: Remove the prototype for yyparse.
|
||
* rtl.h: Remove the prototype for init_loop.
|
||
|
||
2006-05-30 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* cse.c (validate_canon_reg, cse_insn): Don't change insns without
|
||
calling recog.
|
||
|
||
2006-05-30 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* simplify-rtx.c (simplify_binary_operation): Unfactor the shift
|
||
and rotate cases.
|
||
<LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
|
||
log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
|
||
|
||
2006-05-30 Dirk Mueller <dmueller@suse.de>
|
||
|
||
PR c/27273
|
||
* c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
|
||
for CONSTANT_CLASS_P expresisons.
|
||
|
||
2006-05-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c/27718
|
||
* c-typeck.c (c_expr_sizeof_type): Handle invalid types.
|
||
|
||
2006-05-30 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27779
|
||
* tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
|
||
initial_condition instead of CHREC_LEFT.
|
||
|
||
2006-05-30 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
|
||
* config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
|
||
Make prototypes ISO C90.
|
||
|
||
2006-05-30 Mircea Namolaru <namolaru@il.ibm.com>
|
||
Leehod Baruch <leehod.baruch@weizmann.ac.il>
|
||
|
||
* see.c (see_analyze_one_def): Correct check.
|
||
(see_get_extension_data): Check if extension is parallel.
|
||
(see_get_extension_reg): Likewise.
|
||
|
||
2006-05-30 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
PR target/27790
|
||
* config/i386/i386.c (ix86_expand_int_vcond): Force cop0
|
||
into register for (code == GTU).
|
||
|
||
2006-05-29 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR tree-optimization/24964
|
||
* simplify-rtx.c (simplify_binary_operation_1): Add function comment.
|
||
<MULT>: Minor clean-up. Don't convert x*-1.0 into -x if we honor
|
||
signaling NaNs. Optimize -x*-x as x*x for all float modes, and
|
||
abs(x)*abs(x) as x*x for scalar floating point modes.
|
||
|
||
2006-05-29 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
PR middle-end/27745
|
||
* lambda-code.c (perfect_nestify): Don't copy statements
|
||
in the inner loop: move them to the inner loop header.
|
||
|
||
2006-05-29 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR 26237
|
||
* c-tree.texi: Document OpenMP directives and clauses.
|
||
|
||
2006-05-29 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* varasm.c (globalize_decl): Fix indentation.
|
||
|
||
2006-05-29 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR 26242
|
||
* doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
|
||
pass_fre, pass_store_ccp, pass_copy_prop,
|
||
pass_store_copy_prop, pass_merge_phi, pass_nrv,
|
||
pass_return_slot, pass_object_size, pass_lim,
|
||
pass_linear_transform, pass_empty_loop, pass_complete_unroll,
|
||
pass_loop_prefetch and pass_stdarg.
|
||
|
||
2005-05-29 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/bfin/bfin.opt (mfdpic): New option.
|
||
* config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
|
||
(EXTRA_MULTILIB_PARTS): Likewise.
|
||
(CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
|
||
(MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
|
||
multilib.
|
||
* config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
|
||
(CRT_CALL_STATIC_FUNCTION): New.
|
||
* config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
|
||
-shared.
|
||
(CRT_CALL_STATIC_FUNCTION): New.
|
||
* config/bfin/bfin.c (legitimize_pic_address): Now static. Handle
|
||
FD-PIC moves.
|
||
(n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
|
||
(print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
|
||
(initialize_trampoline): Changed to handle FD-PIC code generation.
|
||
(expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
|
||
(bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
|
||
(override_options): Disallow -mid-shared-library -mfdpic combination.
|
||
Can't do unaligned ops if FD-PIC.
|
||
Turn off flag_pic if trying to generate non-id-shared-library
|
||
non-fdpic code, since it's not supported.
|
||
(bfin_assemble_integer): New function.
|
||
(TARGET_ASM_INTEGER): Define.
|
||
* config/bfin/crti.s (__init, __fini): Save P3 on the stack if
|
||
__BFIN_FDPIC__.
|
||
* config/bfin/crtn.s: Restore them.
|
||
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
|
||
if TARGET_FDPIC.
|
||
(DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
|
||
LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
|
||
(FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
|
||
(TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
|
||
(CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
|
||
call-used.
|
||
(enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
|
||
FDPIC_REGS and FDPIC_FPTR_REGS.
|
||
(REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
|
||
* config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
|
||
UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
|
||
(load_funcdescsi): New pattern.
|
||
(call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
|
||
sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
|
||
call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
|
||
|
||
2006-05-29 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* gcse.c, rtlanal.c: Remove obsolete comments associated with
|
||
loop.c.
|
||
|
||
* config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
|
||
|
||
* tree-flow.h: Remove the prototype for add_type_alias.
|
||
* tree-ssa-alias.c (add_type_alias): Remove.
|
||
|
||
2006-05-28 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
|
||
config/fr30/fr30.md, config/i386/i386-interix.h,
|
||
config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
|
||
config/sh/superh64.h, config/v850/v850.c, df-core.c,
|
||
df-problems.c, df.h, except.c, final.c, haifa-sched.c,
|
||
lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
|
||
reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
|
||
tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
|
||
Follow spelling conventions.
|
||
* doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
|
||
Follow spelling conventions.
|
||
|
||
2006-05-27 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/27773
|
||
* fold-const.c (fold_plusminus_mult_expr): Use fold_convert
|
||
to produce a constant of value 1 of generic type.
|
||
|
||
2006-05-27 Dirk Mueller <dmueller@suse.de>
|
||
|
||
* cgraphunit.c (decide_is_function_needed): Fix wrong
|
||
PR reference.
|
||
|
||
2006-05-26 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
PR rtl-optimization/27661
|
||
* reload.c (find_reloads): When reloading a VOIDmode constant
|
||
as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
|
||
use Pmode as mode of the reload register.
|
||
|
||
2006-05-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
|
||
is enabled at -O and above.
|
||
|
||
2006-05-26 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR target/27571
|
||
* config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
|
||
table data.
|
||
|
||
2006-05-25 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
PR c++/20103
|
||
* gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
|
||
for anonymous variables explicitly declared by front ends.
|
||
|
||
2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
|
||
(struct alias_info): Add new field ref_all_symbol_mem_tag.
|
||
* tree-ssa-alias.c (compute_may_aliases): If the program contains
|
||
ref-all pointers, run a finalization pass for them.
|
||
(compute_flow_insensitive_aliasing): Skip ref-all pointers.
|
||
(finalize_ref_all_pointers): New function.
|
||
(is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
|
||
regular pointer type to a ref-all pointer type.
|
||
(get_tmt_for): Return the special memory tag for ref-all pointers.
|
||
|
||
2006-05-25 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/27743
|
||
* fold-const.c (fold_binary): Do not look at the stripped
|
||
op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
|
||
|
||
2006-05-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-vrp.c (extract_range_from_assert): Set the range to VARYING
|
||
for LT and GT if the computed range is effectively empty.
|
||
|
||
2006-05-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/27627
|
||
* pa/pa-modes.def: Use mips_single_format, mips_double_format and
|
||
mips_quad_format formats instead of ieee_single_format,
|
||
ieee_double_format and ieee_quad_format formats, respectively.
|
||
|
||
2006-05-24 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27639
|
||
PR tree-optimization/26719
|
||
* tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
|
||
call to scev_probably_wraps_p.
|
||
* tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
|
||
used_in_pointer_arithmetic_p, convert_step): Removed.
|
||
(nowrap_type_p): New function.
|
||
(scev_probably_wraps_p): Rewritten.
|
||
* tree-scalar-evolution.c (instantiate_parameters_1): Do not call
|
||
chrec_convert if chrec_convert_aggressive might have been used.
|
||
* tree-chrec.c (convert_affine_scev, chrec_convert_1,
|
||
scev_direction): New functions.
|
||
(chrec_convert): Changed to a wrapper over chrec_convert_1.
|
||
* tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
|
||
instead of convert_step.
|
||
* tree-flow.h (scev_probably_wraps_p): Declaration changed.
|
||
(convert_step): Declaration removed.
|
||
(convert_affine_scev, nowrap_type_p, scev_direction): Declare.
|
||
|
||
2006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df-core.c: Added to header comments.
|
||
* df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
|
||
df_ur_bb_info, df_urec_bb_info): Added comments.
|
||
* df-problems (df_ref_bitmap, ru, rd, lr, ur,
|
||
urec, ri problems): Fixed header comments.
|
||
(df_ru_transfer_function): Fixed in-out set dyslexia when copying
|
||
code from df_rd_transfer_function.
|
||
|
||
2006-05-23 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
|
||
(LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
|
||
MIN_UNITS_PER_WORD to set the default. Also use it in the guard.
|
||
|
||
2006-05-23 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* expr.c (undefined_operand_subword_p): New.
|
||
(emit_move_multi_word): Do not generate move from undefined bits
|
||
of a paradoxical subreg.
|
||
|
||
2006-05-23 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR rtl-optimization/27736
|
||
* combine.c (replaced_rhs_value): New variable.
|
||
(combine_instructions): Set it.
|
||
(distribute_notes): When distributing a note in replaced_rhs_insn,
|
||
check whether the value was used in replaced_rhs_value.
|
||
|
||
2006-05-23 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
PR c++/26757
|
||
* tree-ssa-loop-im.c (determine_invariantness_stmt): Use
|
||
add_referenced_var instead of add_referenced_tmp_var.
|
||
* tree-complex.c (create_one_component_var): Use add_referenced_var.
|
||
* tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
|
||
add_referenced_var.
|
||
* tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
|
||
tree_optimize_tail_calls_1): Use add_referenced_var.
|
||
* tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
|
||
* tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
|
||
Use add_referenced_var.
|
||
* tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
|
||
* gimplify.c (force_gimple_operand): Use add_referenced_var.
|
||
* tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
|
||
Use add_referenced_var.
|
||
* tree-dfa.c (struct walk_state): Remove.
|
||
(find_referenced_vars): Remove walk state and vars_found hash table.
|
||
(make_rename_temp): Use add_referenced_var.
|
||
(find_vars_r): Pass less parameters to add_referenced_var.
|
||
(referenced_var_p): New. Is var in referenced_var hash table.
|
||
(referenced_var_insert): Assert var isn't already in hash table.
|
||
(add_referenced_var): Don't need walk_state parameter. Add var if it
|
||
isn't already in the hash table.
|
||
(add_referenced_tmp_var): Remove.
|
||
(find_new_referenced_vars_1): Use add_referenced_var.
|
||
* tree-ssa-pre.c (create_expression_by_pieces,
|
||
insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
|
||
Use add_referenced_var.
|
||
* tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
|
||
* lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
|
||
lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
|
||
add_referenced_var.
|
||
* tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
|
||
vect_create_data_ref_ptr, vect_create_destination_var,
|
||
vect_init_vector, vect_build_loop_niters,
|
||
vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
|
||
vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
|
||
Use add_referenced_var.
|
||
* tree-outof-ssa.c (create_temp): Use add_referenced_var.
|
||
* tree-flow.h (add_referenced_tmp_var): Remove prototype
|
||
(add_referenced_var): Add prototype.
|
||
* tree-ssa-structalias.c (get_constraint_for,
|
||
intra_create_variable_infos): Use add_referenced_var.
|
||
|
||
2006-05-23 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
|
||
big-endian paradoxical subregs.
|
||
* var-tracking.c (struct micro_operation_def): Document that,
|
||
for modify micro operations, insn is the subsequent instruction.
|
||
(var_reg_delete_and_set, var_mem_delete_and_set): Split into...
|
||
(var_reg_set, var_mem_set): ... new functions.
|
||
(add_stores): Record subsequent insn.
|
||
(compute_bb_dataflow): Use new functions for MO_USE.
|
||
(emit_notes_in_bb): Use new functions for MO_USE. Emit use
|
||
notes after the insn, and modify notes before the insn known
|
||
to be the subsequent one.
|
||
(vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
|
||
|
||
2006-05-23 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR target/27696
|
||
* config/i386/i386.c (ix86_expand_builtin): Use
|
||
gen_sse3_monitor64 for TARGET_64BIT.
|
||
|
||
2006-05-22 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
PR rtl-optimization/26375
|
||
PR rtl-optimization/26855
|
||
* df-problems (df_ru_bb_local_compute_process_def): Removed update
|
||
to gen set.
|
||
(df_ru_bb_local_compute): Reversed statements and removed bogus
|
||
comment explaining why they should be in wrong order.
|
||
(df_ru_dump, df_rd_dump): Enhanced debug info.
|
||
* modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
|
||
debug info.
|
||
* ddg.c (add_deps_for_def): Converted use of reaching defs to
|
||
reaching uses and fixed space problem.
|
||
|
||
2006-05-23 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraphunit.c (decide_is_function_needed): Also nested functions
|
||
and functions declared inline can be optimized out at -O0.
|
||
|
||
2006-05-22 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/install.texi (Configuration): Remove reference to CrossGCC
|
||
FAQ which was gone.
|
||
(Building): Ditto.
|
||
|
||
2006-05-22 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR target/27266
|
||
* config/i386/i386.c (ix86_expand_branch): Jump to simple if
|
||
ix86_compare_emitted is non-NULL.
|
||
|
||
2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c++/27451
|
||
* stmt.c (expand_asm_operands): Skip asm statement with erroneous
|
||
clobbers.
|
||
|
||
2006-05-22 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR rtl-optimization/25514
|
||
* combine.c (replaced_rhs_insn): New variable.
|
||
(combine_instructions): Set replaced_rhs_insn when trying to replace
|
||
a SET_SRC with a REG_EQUAL note.
|
||
(distribute_notes): Use replaced_rhs_insn when determining the live
|
||
range of a REG_DEAD register.
|
||
|
||
2006-18-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
|
||
Anatoly Sokolov <aesok@post.ru>
|
||
|
||
* config/avr/avr.c (avr_mcu_types): Add support for attiny261,
|
||
attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
|
||
attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
|
||
atmega164p, atmega324p, atmega644p, atmega644, atmega329,
|
||
atmega3290, atmega649, atmega6490, atmega406, atmega640,
|
||
atmega1280, atmega1281, at90can32, at90can64, at90usb646,
|
||
at90usb647, at90usb1286 and at90usb1287 devices.
|
||
* config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
|
||
* config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
|
||
|
||
2006-05-22 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
|
||
|
||
2006-05-22 Richard Guenther <rguenther@suse.de>
|
||
|
||
Revert
|
||
2006-01-31 Richard Guenther <rguenther@suse.de>
|
||
Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* doc/install.texi (--disable-libgcc-math): Document.
|
||
|
||
2006-05-22 Richard Guenther <rguenther@suse.de>
|
||
|
||
Revert
|
||
2006-01-31 Richard Guenther <rguenther@suse.de>
|
||
|
||
* doc/invoke.texi (-msselibm): Document.
|
||
* target.h (expand_library_builtin): New target hook.
|
||
* builtins.c (expand_builtin): Use expand_library_builtin.
|
||
(default_expand_library_builtin): New function.
|
||
* gcc.c (LINK_GCC_MATH_SPEC): Define.
|
||
(LINK_COMMAND_SPEC): Handle %(link_gcc_math).
|
||
(link_gcc_math_spec): Declare.
|
||
(static_specs): Add link_gcc_math_spec.
|
||
* expr.h (default_expand_library_builtin): Declare.
|
||
* target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
|
||
(TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
|
||
* config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
|
||
* config/i386/i386.opt (msselibm): New target option.
|
||
* config/i386/i386.c (ix86_builtin_function_variants): New array.
|
||
(ix86_init_sse_abi_builtins): New function.
|
||
(ix86_expand_library_builtin): Likewise.
|
||
(TARGET_EXPAND_LIBRARY_BUILTIN): Define.
|
||
(override_options): Handle error conditions wrt -msselibm.
|
||
(ix86_builtins): Add function codes for SSE2 ABI builtins.
|
||
(ix86_init_builtins): Call ix86_init_sse_abi_builtins.
|
||
* doc/extend.texi (__builtin_sse2_*): Document new target specific
|
||
builtins.
|
||
|
||
2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c/27420
|
||
* c-common.c (self_promoting_args_p): Skip erroneous args.
|
||
|
||
PR c/26818
|
||
* c-decl.c (finish_struct): Skip erroneous fields.
|
||
|
||
2006-05-22 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/cris/cris.opt (march): Remove VarExists attribute.
|
||
(max-stackframe=): Likewise.
|
||
|
||
2006-05-22 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* doc/rtl.texi: Fix a typo.
|
||
* see.c: Fix comment typos.
|
||
|
||
* tree-ssa-structalias.h (alias_info): Remove num_references.
|
||
|
||
2006-05-21 Mike Stump <mrs@apple.com>
|
||
|
||
* config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
|
||
(BAD2): Add.
|
||
(darwin_pragma_options): Use BAD instead.
|
||
(darwin_pragma_unused): Likewise.
|
||
(darwin_pragma_ms_struct): Likewise.
|
||
|
||
2006-05-21 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.md (floatsitf2): Remove constraints.
|
||
|
||
2006-05-21 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR rtl-optimization/27671
|
||
* simplify-rtx.c (simplify_relational_operation_1): Fix
|
||
simplifications of (eq/ne (xor x y) y) and
|
||
(eq/ne (xor x y) x).
|
||
|
||
PR tree-optimization/26622.
|
||
* fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
|
||
on arg1.
|
||
|
||
2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
|
||
|
||
* tree-cfg.c: Prune whitespace.
|
||
(debug_tree_cfg): Point to correct header containing the
|
||
TDF_* defines.
|
||
|
||
2006-05-21 Bernhard Fischer <aldot@gcc.gnu.org>
|
||
|
||
PR middle-end/25776
|
||
* cgraphunit.c (verify_cgraph_node): Typo in error message.
|
||
|
||
2006-05-20 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/25776
|
||
* cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
|
||
or sorry count is non zero.
|
||
|
||
2006-05-20 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
|
||
|
||
2006-05-19 Daniel Berlin <dberlin@dberlin.org>
|
||
Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
PR rtl-optimization/26855
|
||
|
||
* df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
|
||
multiword refs.
|
||
(df_scan_alloc): Added code to properly handle multiword hard
|
||
registers and add all_blocks parameter.
|
||
(df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
|
||
code to properly handle multiword hard registers.
|
||
(df_rescan_blocks): Added code to remove deleted blocks from
|
||
bitmap.
|
||
(df_ref_create_structure, df_ref_record): Added code to properly
|
||
handle subregs.
|
||
(df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
|
||
and set DF_REF_PARTIAL.
|
||
(df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
|
||
(df_uses_record): Added DF_REF_PARTIAL for subreg.
|
||
(df_scan_add_problem): Added flags parameter.
|
||
(df_ref_create_structure): Changed switching structure.
|
||
(df_bb_refs_record): Fixed case where duplicate artificial refs
|
||
were created. Changed location of flags.
|
||
(df_record_entry_block_defs): Added code to make stack pointer
|
||
live in entry block. Refined cases where frame pointer is needed.
|
||
Changed location of flags.
|
||
(df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
|
||
(df_set_state): Removed function.
|
||
(df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
|
||
df_insn_create_insn_record, df_insn_refs_delete,
|
||
df_ref_create_structure): Formatting changes.
|
||
* df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
|
||
df_delete_basic_block): New function.
|
||
(df_init): Changed location of flags.
|
||
(df_add_problem): Added flags parameter and the way flags are
|
||
processed.
|
||
(df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
|
||
debug_df_chain): Improved debugging output.
|
||
(df_insn_debug, df_insn_uid_debug): Added multiword reg support.
|
||
(df_refs_chain_dump): Removed df parameter.
|
||
(df_iterative_dataflow): Added consistency check.
|
||
(df_prune_to_subcfg): Made public.
|
||
(df_analyze_problem): Added blocks_to_init parameter and made
|
||
public.
|
||
(df_ref_record, df_bb_refs_record, df_mark_reg,
|
||
df_record_exit_block_uses): Whitespace changes.
|
||
(df_dump): Whitespace changes.
|
||
* df.h: Some reordering to remove forward references.
|
||
(df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
|
||
DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
|
||
(df_ref_flags.DF_REF_CLOBBER): Deleted field.
|
||
(dataflow.flags): New field.
|
||
(df.flag): Deleted field.
|
||
(df_alloc_function): Added additional bitmap parameter.
|
||
(df_dependent_problem_function): New type.
|
||
(df_problem.changeable_flags): New field.
|
||
(df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
|
||
DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
|
||
(df_mw_hardreg): New struct.
|
||
(DF_INSN_UID_MWS): New macro.
|
||
(df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
|
||
parameter.
|
||
(df_add_problem, df_ru_add_problem, df_rd_add_problem,
|
||
df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
|
||
df_ri_add_problem, df_scan_add_problem): Added flags parameter.
|
||
(df_set_state): Removed function.
|
||
(df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
|
||
* df-problems.c (df_chain_dump): Removed df parameter.
|
||
(df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
|
||
df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
|
||
parameter.
|
||
(df_ru_alloc, df_rd_alloc): Now resets all blocks.
|
||
(df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
|
||
df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
|
||
Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
|
||
DF_REF_MUST_CLOBBER cases.
|
||
(df_ru_bb_local_compute_process_def,
|
||
df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
|
||
df_lr_bb_local_compute, df_ur_bb_local_compute,
|
||
df_chain_create_bb): Made subreg aware.
|
||
(df_ru_bb_local_compute, df_rd_bb_local_compute,
|
||
df_lr_bb_local_compute, df_lr_bb_local_compute,
|
||
df_chain_create_bb): Cleanup to use proper macros.
|
||
(df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
|
||
code to fixup bitvectors.
|
||
(df_ri_alloc): Cleared lifetime.
|
||
(df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
|
||
df_create_unused_note): New function.
|
||
(df_ri_bb_compute, df_ri_compute): Added code to create/update
|
||
REG_DEAD and REG_UNUSED notes as well as register information.
|
||
(df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
|
||
df_chains_dump): Fixed crash if problem was never run.
|
||
(df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
|
||
df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
|
||
df_ri_add_problem): Processes flags in uniform manner.
|
||
(df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
|
||
df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
|
||
df_rd_dump, df_urec_free_bb_info): Formatting changes.
|
||
(df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
|
||
df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
|
||
df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
|
||
df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
|
||
df_ur_dump, df_urec_free_bb_info, df_urec_dump,
|
||
df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
|
||
* modulo-sched.c (sms_schedule): Added flag parameter to calls.
|
||
* see.c (see_initialize_data): Ditto.
|
||
* final.c (rest_of_clean_state) Added regstack_completed.
|
||
* rtl.h (regstack_completed): Ditto.
|
||
* reg-stack.c (regstack_completed): Ditto.
|
||
|
||
2006-05-19 Mike Stump <mrs@apple.com>
|
||
|
||
* c-tree.h (default_conversion): Remove.
|
||
* c-common.h (default_conversion): Add.
|
||
|
||
2006-05-19 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-vrp.c (valid_value_p): New function.
|
||
(adjust_range_with_scev): Fail if the value of bound is not
|
||
simple.
|
||
|
||
2006-05-19 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/linux-unwind.h: Include <asm/unistd.h>
|
||
(mips_fallback_frame_state): Use syscall numbers to determine
|
||
the appropriate li instruction for the current ABI. Only use
|
||
__NR_sigreturn for o32.
|
||
|
||
2006-05-19 Nicolas Setton <setton@adacore.com>
|
||
|
||
* langhooks.h (struct lang_hooks): Add dwarf_name language hook.
|
||
* langhooks.c (lhd_dwarf_name): New function.
|
||
* langhooks-def.h (lhd_dwarf_name): Declare.
|
||
(LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
|
||
* dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
|
||
|
||
2006-05-19 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
|
||
libgcc2.h.
|
||
(LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
|
||
MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if
|
||
LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
|
||
* libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
|
||
Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
|
||
determine the size of Wtype, etc.
|
||
* mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
|
||
(swfloatfuncs): New variable.
|
||
(dwfloatfuncs): Likewise.
|
||
(lib2funcs): Remove floating-point conversion functions from
|
||
initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine
|
||
the set of conversion routines needed. Allow entries to specify
|
||
an object name, filename and word size. Update users accordingly.
|
||
* Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
|
||
* config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
|
||
|
||
Revert:
|
||
|
||
2006-02-08 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/22209
|
||
* config/fixtfdi.c: New libgcc source file.
|
||
* config/fixunstfdi.c: New source file.
|
||
* config/floatditf.c: New source file.
|
||
* config/floatunditf.c: New souce file.
|
||
* config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
|
||
files above instead of config/mips/_tilib.c.
|
||
* config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
|
||
|
||
2006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
|
||
* pa/pa-hpux11.h (LIB_SPEC): Update comment.
|
||
|
||
2006-05-18 Mike Stump <mrs@apple.com>
|
||
|
||
Fix up vla, vm and [*] sematics.
|
||
|
||
PR c/18740
|
||
PR c/7948
|
||
PR c/25802
|
||
PR c/27673
|
||
* c-tree.h (struct c_arg_info): Add had_vla_unspec.
|
||
(c_vla_unspec_p): Add.
|
||
(c_vla_type_p): Add.
|
||
* c-decl.c (struct c_scope): Add had_vla_unspec.
|
||
(build_array_declarator): Add support for [*].
|
||
(grokdeclarator): Likewise.
|
||
(grokparms): Likewise.
|
||
(get_parm_info): Likewise.
|
||
* c-objc-common.c (c_vla_unspec_p): Likewise.
|
||
* c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
|
||
* c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
|
||
typeof when argument is a variably modified type not inside sizeof or alignof.
|
||
(c_parser_direct_declarator_inner): Propagate errors.
|
||
(c_parser_sizeof_expression): Add support for [*].
|
||
(c_parser_parms_declarator): Initialize had_vla_unspec.
|
||
(c_parser_parms_list_declarator): Likewise.
|
||
* c-typeck.c (c_vla_type_p): Add.
|
||
(composite_type): Add support for vla compositing.
|
||
(comptypes_internal): Add support for vla compatibility.
|
||
(c_expr_sizeof_expr): Evaluate vla arguments.
|
||
* tree.c (variably_modified_type_p): Update comment for [*].
|
||
|
||
2006-05-18 Michael Matz <matz@suse.de>
|
||
|
||
PR target/27599
|
||
* config.host: Make assignments to host_xmake_file cumulative.
|
||
* config.host (*-darwin*): Test $host, not $target.
|
||
|
||
2006-05-12 Stuart Hastings <stuart@apple.com>
|
||
|
||
* config/i386/i386.opt (-mstackrealign): New flag.
|
||
* config/i386/i386.c (force_align_arg_pointer): New attribute.
|
||
(ix86_handle_cconv_attribute): Emit error when
|
||
force_align_arg_pointer attribute collides with too many regparms.
|
||
(ix86_function_regparm): Limit regparms when used with
|
||
force_align_arg_pointer attribute. (ix86_internal_arg_pointer):
|
||
Support stack-realigning prologue in non-main functions. Emit
|
||
warning for nested functions under -mstackrealign, emit error for
|
||
nested functions with force_align_arg_pointer attribute.
|
||
* doc/extend.texi (force_align_arg_pointer): Document it.
|
||
* doc/invoke.texi (-mstackrealign): Document it.
|
||
|
||
2006-05-17 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR rtl-optimization/27477
|
||
* combine.c (try_combine): Don't split a parallel consisting
|
||
of two sets into two individual sets if both sets reference
|
||
cc0.
|
||
|
||
2006-05-17 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/arm/arm.opt (target_fpe_name): Remove VarExists.
|
||
* config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
|
||
|
||
* doc/options.texi (VarExists): Updated.
|
||
|
||
2006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* unwind-dw2.c: Add declarations for uw_update_context and
|
||
uw_frame_state_for.
|
||
* pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
|
||
detected, advance frame state and context once to skip over stub.
|
||
|
||
2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
PR middle-end/20256
|
||
PR middle-end/26435
|
||
* tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
|
||
Call rewrite_into_loop_closed_ssa only when something changed.
|
||
* lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
|
||
* lambda-code.c (can_convert_to_perfect_nest): Declared.
|
||
(gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
|
||
Test for perfect_nest_p here. Fix formating.
|
||
(replace_uses_equiv_to_x_with_y): Fix formating.
|
||
(stmt_uses_op): Removed.
|
||
(can_convert_to_perfect_nest): Removed loopivs parameter.
|
||
Complete the test by checking the scalar dependences.
|
||
(perfect_nestify): Remove the test for can_convert_to_perfect_nest.
|
||
Fix formating.
|
||
|
||
2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
PR bootstrap/22541
|
||
From Dan Kegel <dank@kegel.com>:
|
||
* Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
|
||
|
||
2006-05-17 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
|
||
if the element type is variably modified without recursing.
|
||
|
||
2006-05-17 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
PR middle-end/27332
|
||
* tree-loop-linear.c (try_interchange_loops): Test for
|
||
no data dependences.
|
||
|
||
2006-05-17 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27548
|
||
* tree-scalar-evolution.c (scev_const_prop): Do not prolong life
|
||
range of ssa names that appear on abnormal edges.
|
||
* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
|
||
* tree-flow.h (contains_abnormal_ssa_name_p): Declare.
|
||
|
||
2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
PR middle-end/27620
|
||
* expr.c (safe_from_p): Handle CONSTRUCTOR again.
|
||
|
||
2006-05-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/27415
|
||
* tree.h (OMP_PARALLEL_COMBINED): Define.
|
||
* gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
|
||
(new_omp_context): Add is_combined_parallel argument.
|
||
(gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
|
||
new_omp_context caller.
|
||
(gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
|
||
Adjust gimplify_scan_omp_clauses callers.
|
||
(omp_is_private): Issue errors if iteration variable is firstprivate
|
||
or reduction in the current context.
|
||
* c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
|
||
on combined parallel workshare constructs.
|
||
|
||
2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
|
||
(gcc-options.o): New rule.
|
||
|
||
* optc-gen.awk: Protect variables for gcc-options.o with
|
||
#ifdef GCC_DRIVER/#endif.
|
||
|
||
2006-05-16 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/27373
|
||
* tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
|
||
(forward_propagate_addr_expr): Update call.
|
||
|
||
2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* doc/options.texi: Move the Negative option.
|
||
|
||
2006-05-16 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/22303
|
||
* tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
|
||
from STRING_CSTs.
|
||
(evaluate_stmt): Fall back to fold_const_aggregate_ref, if
|
||
ccp_fold did not simplify the statement.
|
||
|
||
2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR driver/26885
|
||
* Makefile.in (GCC_OBJS): New.
|
||
(OBJS-common): Add opts-common.o.
|
||
(xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
|
||
(cpp$(exeext)): Likewise.
|
||
(gcc.o): Also depend on opts.h.
|
||
(opts-common.o): New.
|
||
|
||
* common.opt (gcoff): Add Negative(gdwarf-2).
|
||
(gdwarf-2): Add Negative(gstabs).
|
||
(gstabs): Add Negative(gstabs+).
|
||
(gstabs+): Add Negative(gvms).
|
||
(gvms): Add Negative(gxcoff).
|
||
(gxcoff): Add Negative(gxcoff+).
|
||
(gxcoff+): Add Negative(gcoff).
|
||
* config/i386/i386.opt (m32): Add Negative(m64).
|
||
(m64): Add Negative(m32).
|
||
|
||
* doc/options.texi: Document the Negative option.
|
||
|
||
* gcc.c: Include "opts.h".
|
||
(main): Call prune_options after expandargv.
|
||
|
||
* optc-gen.awk: Generate common declarations for all flag
|
||
variables in options.c. Output the neg_index field.
|
||
|
||
* opts.c (find_opt): Moved to ...
|
||
* opts-common.c: Here. New file.
|
||
|
||
* opts.h (cl_option): Add a neg_index field.
|
||
(find_opt): New.
|
||
(prune_options): Likewise.
|
||
|
||
2006-05-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/27573
|
||
* omp-low.c (expand_omp_parallel): Don't assert
|
||
.OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
|
||
instead search for it.
|
||
|
||
PR c/27499
|
||
* gimplify.c (gimplify_omp_for): Remove assertion that iteration var
|
||
is signed.
|
||
|
||
2006-05-16 Andreas Schwab <schwab@suse.de>
|
||
|
||
* doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
|
||
defmac.
|
||
|
||
2006-05-15 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/26600
|
||
* config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
|
||
integer constants other than zero are only legitimate on TARGET_64BIT.
|
||
<CONST_VECTOR> Only zero vectors are legitimate.
|
||
(ix86_cannot_force_const_mem): Integral and vector constants can
|
||
always be put in the constant pool.
|
||
|
||
2006-05-16 DJ Delorie <dj@redhat.com>
|
||
|
||
* crtstuff.c (__dso_handle): Set section from
|
||
TARGET_LBIGCC_SDATA_SECTION if defined.
|
||
* doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
|
||
* config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
|
||
|
||
2006-05-16 Danny Smith <dannysmith@users.sourceforge.net>
|
||
|
||
PR target/27599
|
||
* config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
|
||
host_xmake_file.
|
||
|
||
2006-05-16 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
|
||
|
||
2006-05-15 Per Bothner <per@bothner.com>
|
||
|
||
* tree.c: (last_annotated_node): Use source_locus typedef.
|
||
This permits bootstrapping with --enable-mapped-location.
|
||
|
||
2006-05-15 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/26830
|
||
* tree-into-ssa.c (struct ssa_name_info): Add age field.
|
||
(info_for_ssa_name, current_info_for_ssa_name_age,
|
||
blocks_to_update): New variables.
|
||
(get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
|
||
(clear_ssa_name_info, initialize_flags_in_bb,
|
||
mark_block_for_update): New functions.
|
||
(mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
|
||
(insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
|
||
prepare_def_site_for): Use mark_block_for_update.
|
||
(mark_def_interesting): Assert that the processed block is marked in
|
||
blocks_to_update. Do not take blocks argument.
|
||
(prepare_use_sites_for, prepare_names_to_update): Do not take blocks
|
||
argument.
|
||
(rewrite_update_init_block, rewrite_update_stmt): Only process
|
||
blocks with statements to rewrite.
|
||
(delete_update_ssa): Do not clear SSA_NAME_AUX.
|
||
(update_ssa): Initialize and free blocks_to_update. Do not
|
||
clear flags on statements. Do not use blocks bitmap.
|
||
* tree.h (SSA_NAME_AUX): Removed.
|
||
(struct tree_ssa_name): Removed aux field.
|
||
* print-tree.c (print_node): Do not print SSA_NAME_AUX.
|
||
|
||
2006-05-15 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27603
|
||
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
|
||
Do computations in original type.
|
||
|
||
2006-05-15 Mircea Namolaru <namolaru@il.ibm.com>
|
||
|
||
* see.c: Code style changes such as redundant paranthesis,
|
||
redundant intialization of local variables etc.
|
||
(see_main): Declared now as static.
|
||
* doc/invoke.texi: Update that -fsee is not enabled by
|
||
default at -O3.
|
||
|
||
2006-05-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* omp-low.c (check_omp_nesting_restrictions): New function.
|
||
(scan_omp_1): Call it.
|
||
|
||
PR middle-end/27416
|
||
* omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
|
||
construct, return *VAR.
|
||
|
||
2006-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
PR rtl-optimization/27406
|
||
* bt-load.c (migrate_btr_def): Skip the block having abnormal
|
||
edges.
|
||
|
||
2006-05-14 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR rtl-optimization/27538
|
||
* combine.c (expand_compound_operation): Call gen_lowpart
|
||
before calling simplify_shift_const.
|
||
|
||
2006-05-14 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR rtl-optimization/22563
|
||
* expmed.c (store_fixed_bit_field): When using AND and IOR to store
|
||
a fixed width bitfield, always force the intermediates into psuedos.
|
||
|
||
2006-05-14 Bernhard Fischer <aldot@gcc.gnu.org>
|
||
|
||
PR 27501
|
||
* mkconfig.sh: Use operator = instead of == for test.
|
||
|
||
2006-05-13 Nick Clifton <nickc@redhat.com>
|
||
|
||
* dwarf2out.c (dbx_reg_number): Check return value from
|
||
LEAF_REG_REMAP and only use it if it is valid.
|
||
(multiple_reg_loc_descriptor): Likewise.
|
||
|
||
2006-05-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
* config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
|
||
host_xmake_file.
|
||
|
||
2006-05-13 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
|
||
information attached to non-INSNs such as NOTEs.
|
||
(df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
|
||
|
||
2006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
|
||
On contraint.
|
||
* config/s390/s390.md: Adjust comment describing On constraint.
|
||
|
||
2006-05-11 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraphunit.c (decide_is_function_needed): Don't force always_inline
|
||
to be output at -O0.
|
||
|
||
2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR middle-end/27384
|
||
* fold-const.c (size_binop): Move sanity check for arguments to
|
||
the beginning of the function.
|
||
|
||
PR middle-end/27488
|
||
* fold-const.c (tree_expr_nonnegative_p): Return early on invalid
|
||
expression.
|
||
|
||
2006-05-11 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/27529
|
||
* fold-const.c (fold_unary): Handle intermediate conversion
|
||
to a pointer type like intermediate conversion to an integer
|
||
type in folding of (T1)(T2)var to var.
|
||
Match the code to the comment in the final conversion for
|
||
(T1)(T2)var to (T1)var regarding to type precision. Rather
|
||
than disallow T1 being of pointer type, assert that both T1
|
||
and var are of pointer type or not. Make sure not to fall
|
||
over the frontends lazyness wrt array to pointer decay though.
|
||
|
||
2006-05-10 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm.c (arm_struct_value_rtx): Delete.
|
||
(TARGET_STRUCT_VALUE_RTX): Use the default definition.
|
||
(arm_init_cumulative_args): Always initialize nregs to zero.
|
||
|
||
2006-05-10 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27532
|
||
* tree-object-size.c (plus_expr_object_size): Fix typo.
|
||
|
||
2006-05-10 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR target/24949
|
||
* config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
|
||
ashrdi_const, ashrdi3): Use a scratch register.
|
||
|
||
2006-05-10 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27302
|
||
* fold-const.c (operand_equal_p): For two comparisons,
|
||
try comparison of one comparison code swapped if that yields
|
||
the same code.
|
||
|
||
2006-05-10 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* tree-pretty-print.c (pretty_print_string): No need to handle
|
||
'\0' as a special character.
|
||
|
||
* tree.h: Include "hashtab.h".
|
||
(iterative_hash_expr): Use hashval_t in its prototype.
|
||
* Makefile.in (TREE_H): Add $(HASHTAB_H).
|
||
|
||
2006-05-09 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR bootstrap/26872
|
||
* config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
|
||
(hppa*64*-*-hpux11*): Ditto.
|
||
(hppa[12]*-*-hpux11*): Ditto.
|
||
|
||
2006-05-09 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/26545
|
||
* config/rs6000/aix41.h (TARGET_64BIT): Define.
|
||
|
||
2006-05-09 Michael Matz <matz@suse.de>
|
||
|
||
* config.host (<i[34567]86-*-*, x86_64-*-*>): Set
|
||
host_extra_gcc_objs and host_xmake_file.
|
||
(<*-*-linux*>): Don't overwrite host_xmake_file.
|
||
* gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
|
||
* config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
|
||
(host_detect_local_cpu): Declare.
|
||
(CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
|
||
* config/i386/i386.c (override_options): Handle -mtune=native
|
||
as -mtune=generic.
|
||
* config/i386/x-i386: New file.
|
||
* config/i386/driver-i386.c: New file.
|
||
* doc/invoke.texi (<i386 and x86-64 Options>): Describe
|
||
cpu-type "native".
|
||
|
||
2006-05-09 Dirk Mueller <dmueller@suse.de>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/27498
|
||
* fold-const.c (fold_read_from_constant_string): Relax check
|
||
for matching types to matching modes.
|
||
|
||
2006-05-09 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/27335
|
||
* loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
|
||
loops.
|
||
|
||
2006-05-08 Chao-ying Fu <fu@mips.com>
|
||
Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
|
||
(vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
|
||
* config/mips/mips.md (UNSPEC_SCC): New constant.
|
||
* config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
|
||
* config/mips/mips.c (mips_reverse_fp_cond_p): New function.
|
||
(mips_emit_compare): Use it.
|
||
(mips_expand_vcondv2sf): New function.
|
||
|
||
2006-05-08 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/27093
|
||
* tree-ssa-alias.c (recalculate_used_alone): Mark variables for
|
||
renaming when they become not-used_alone.
|
||
|
||
2006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
|
||
relocation and relocation stubs.
|
||
|
||
2006-05-08 Eric Christopher <echristo@apple.com>
|
||
|
||
* unwind-dw2-fde-darwin.c (examine_objects): Only check data
|
||
section for ppc.
|
||
|
||
2006-05-08 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/24561
|
||
* cgraphunit.c (decide_is_function_needed): When not optimizing even
|
||
unused static functions are needed.
|
||
|
||
2006-05-08 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/27158
|
||
* reload.c (find_reloads_toplev): Only return the simplified SUBREG
|
||
of a reg_equiv_constant if the result is a legitimate constant.
|
||
|
||
2006-05-08 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
PR target/27277
|
||
* config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
|
||
standard 80387 constants, raise the cost to prevent
|
||
compress_float_constant() to generate load from memory.
|
||
|
||
2006-05-08 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* config/arm/constraints.md (c): Fix a typo.
|
||
|
||
* see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
|
||
typos.
|
||
|
||
2006-05-07 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/24879
|
||
* config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
|
||
inline function.
|
||
(_mm_mwait): Likewise.
|
||
|
||
* config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
|
||
"mwait".
|
||
(sse3_monitor): Make it 32bit only.
|
||
(sse3_monitor64): New. 64bit monitor.
|
||
|
||
2006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR target/27421
|
||
* config/i386/i386.c (classify_argument): Skip fields with invalid
|
||
types.
|
||
|
||
2006-05-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27409
|
||
* tree-ssa-structalias.c (get_constraint_for_component_ref):
|
||
Do not try to find zero-sized subvars.
|
||
|
||
2006-05-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27136
|
||
* tree-ssa-loop-niter.c (get_val_for): Correct function
|
||
comment, assert requirements.
|
||
(loop_niter_by_eval): Stop processing if the iterated
|
||
value did not simplify.
|
||
|
||
2006-05-07 Mircea Namolaru <namolaru@il.ibm.com>
|
||
|
||
* opts.c (flag_see): remove its setting at -O3.
|
||
|
||
2006-05-07 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* genpeep.c (main): Make insn-peep.c depend on flags.h.
|
||
* arm/constraints.md: New file.
|
||
* arm.h (REG_CLASS_FROM_LETTER_P): Delete.
|
||
(CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
|
||
(CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
|
||
(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
|
||
(CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
|
||
(EXTRA_MEMORY_CONSTRAINT): Likewise.
|
||
* arm.md: Include constraints.md.
|
||
(thumb_movsi_insn): Use satisfies_constraint_J.
|
||
(movhi, movqi): Use satisfies_constraint_I.
|
||
|
||
2006-04-29 Anatoly Sokolov <aesok@post.ru>
|
||
|
||
* config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
|
||
for atmeg a645 device.
|
||
|
||
2006-05-06 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27151
|
||
* tree-vect-transform.c (vectorizable_condition): Punt on
|
||
values that have a different type than the condition.
|
||
|
||
2006-05-03 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
PR/21391
|
||
* c-parser.c (c_parser_cast_expression): Only insert casts into
|
||
hash table if pointer.
|
||
* function.c (used_types_insert_helper): Rename from
|
||
used_types_insert.
|
||
(used_types_insert): Call used_types_insert_helper.
|
||
* function.h (used_types_insert): Accept only one argument.
|
||
|
||
2006-05-05 David Edelsohn <edesohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
|
||
scratch with output modifier.
|
||
|
||
2006-05-04 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/26481
|
||
* config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
|
||
with output modifier.
|
||
|
||
2006-05-04 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR target/26765
|
||
* config/mips/mips.c (mips_symbolic_address_p): Return true
|
||
for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
|
||
SYMBOL_GOTTPREL, and SYMBOL_TLS.
|
||
|
||
2006-05-04 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/14287
|
||
PR tree-optimization/14844
|
||
PR tree-optimization/19792
|
||
PR tree-optimization/21608
|
||
PR tree-optimization/27090
|
||
* tree-ssa-pre.c (try_combine_conversion): New function.
|
||
(compute_avail): After constructing the value-handle
|
||
expression, use try_combine_conversion to combine NOP_EXPRs
|
||
with previous value-handle expressions and use the result if it
|
||
is available.
|
||
|
||
2006-05-04 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
|
||
|
||
2006-05-04 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR middle-end/25962
|
||
* cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
|
||
|
||
2006-05-04 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/bfin/predicates.md (const01_rtx): Tell generator programs
|
||
that this only matches CONST_INTs. All users changed to VOIDmode
|
||
operands.
|
||
|
||
* config/bfin/bfin.c: Include "optabs.h".
|
||
(bfin_rtx_costs): Some costs for vector operations, to allow combine
|
||
to do more work.
|
||
(enum bfin_builtins): Add a number of fractional and vector builtins.
|
||
(bfin_init_builtins): Likewise.
|
||
(struct builtin_description, bdesc_2arg, bdesc_1arg): New.
|
||
(safe_vector_operand, bfin_expand_binop_builtin,
|
||
bfin_expand_unop_builtin): New functions.
|
||
(bfin_expand_builtin): Handle the new builtins.
|
||
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
|
||
__ADSPBLACKFIN__.
|
||
|
||
2006-05-04 Leehod Baruch <leehod@il.ibm.com>
|
||
|
||
* see.c: New file.
|
||
* Makefile.in (OBJS-common): Add see.o.
|
||
(see.o): Add dependencies.
|
||
* common.opt (fsee): New flag for the see optimization was added.
|
||
* opts.c (flag_see): Initialized.
|
||
* passes.c (init_optimization_passes, pass_see): New pass.
|
||
* rtl.h (see_main): Declaration as extern.
|
||
* timevar.def (TV_SEE): New.
|
||
* tree-pass.h (pass_see): Declaration as extern.
|
||
* invoke.texi (-fsee): Document.
|
||
* recog.c (validate_simplify_insn): New function.
|
||
* recog.h (validate_simplify_insn): Declaration as extern.
|
||
* df-problems.c (df_chain_dump): Check for NULL.
|
||
|
||
2006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* cfgrtl.c (insert_insn_bb_end_new): New function.
|
||
* basic-block.h (insert_insn_bb_end_new): Declaration as extern.
|
||
|
||
2006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il>
|
||
|
||
* df.h (struct web_entry): Moved from web.c.
|
||
(union_defs): Declaration as extern.
|
||
(unionfind_root): Likewise.
|
||
(unionfind_union): Likewise.
|
||
* web.c (struct web_entry): Moved to df.h.
|
||
(unionfind_root): Remove static declaration.
|
||
(unionfind_union): Likewise.
|
||
(union_defs): Likewise and generalize to use callback function.
|
||
(web_main): Update arguments for union_defs function call.
|
||
|
||
2006-05-04 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26447
|
||
* tree-ssa-pre.c (realify_fake_stores): For necessary loads
|
||
produce SSA_NAME copies before the store stmt to avoid
|
||
breaking exception handling.
|
||
|
||
2006-05-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/27388
|
||
* gimplify.c (omp_is_private): If var is shared in some outer context,
|
||
return false instead of true. Stop searching on parallel context
|
||
boundary.
|
||
|
||
2006-05-03 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR java/8260
|
||
* coverage.c: Use get_gcov_unsigned_t() instead of
|
||
unsigned_type_node all over.
|
||
|
||
2006-05-02 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
PR tree-optimization/27381
|
||
* tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
|
||
maintain the same immediate_use links.
|
||
* tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
|
||
node rather than segfaulting.
|
||
|
||
2006-05-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/27395
|
||
* gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
|
||
rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN
|
||
bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
|
||
|
||
2006-05-02 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/26626
|
||
* tree-ssa-structalias.c (compute_points_to_sets): For now, solve
|
||
always.
|
||
* tree-ssa-operands.c (access_can_touch_variable): Allow
|
||
typecasting through union pointers.
|
||
|
||
2006-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/26943
|
||
* omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
|
||
(build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
|
||
to find if var will be a global variable even in the nested context.
|
||
(omp_copy_decl): Only check for global variable at the end, it might
|
||
be overridden in outer contexts.
|
||
(scan_sharing_clauses): For global variables don't create a field.
|
||
(lower_rec_input_clauses): Do nothing for global shared variables.
|
||
Emit a barrier at the end of ILIST if there were any decls in both
|
||
firstprivate and lastprivate clauses.
|
||
(lower_send_clauses): Do nothing for global variables except for
|
||
COPYIN.
|
||
|
||
2006-05-02 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree.c (unsigned_type_for, signed_type_for): Make sure a type
|
||
of the correct signedness is returned.
|
||
|
||
2006-05-02 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/27364
|
||
* tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
|
||
multiply expressions.
|
||
|
||
2006-05-02 Tom Tromey <tromey@redhat.com>
|
||
|
||
* tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
|
||
|
||
2006-05-02 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR target/27387
|
||
* arm.c (arm_output_mi_thunk): Use pc-relative addressing when
|
||
-mthumb -fPIC are used.
|
||
|
||
2006-05-02 Stanislaw Skowronek <skylark@linux-mips.org>
|
||
Joshua Kinard <kumba@gentoo.org>
|
||
|
||
PR target/25871
|
||
* config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
|
||
with 64-bit pointers.
|
||
|
||
2006-05-02 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm.c (add_minipool_forward_ref): Check if insn
|
||
and pool overlap.
|
||
(create_fix_barrier): Check that a suitable barrier location is
|
||
found.
|
||
(arm_reorg): Include ftmp->address in allowable range of addresses.
|
||
|
||
2006-05-02 David Billinghurst <David.Billinghurst@riotinto.com>
|
||
|
||
PR ada/27366
|
||
* ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
|
||
on Cygwin.
|
||
|
||
2006-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/27337
|
||
* gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
|
||
around RESULT_DECL for result passed by reference.
|
||
(gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
|
||
* omp-low.c (use_pointer_for_field): Don't look at
|
||
DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
|
||
(scan_omp_1): Call remap_decl on RESULT_DECLs.
|
||
(lower_rec_input_clauses): Don't allocate VLA memory for the second
|
||
time or var for passing by reference for
|
||
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of
|
||
TREE_ADDRESSABLE variables when passing by reference.
|
||
|
||
* omp-low.c (dump_omp_region): Fix output formatting.
|
||
|
||
PR middle-end/27328
|
||
* omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
|
||
(expand_omp_parallel): Likewise.
|
||
* tree-cfg.c (move_sese_region_to_fn): Likewise.
|
||
|
||
PR middle-end/27325
|
||
* omp-low.c (lower_omp_sections): Call maybe_catch_exception
|
||
on statement list containing also constructors and destructors.
|
||
(lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
|
||
|
||
PR middle-end/27310
|
||
* except.c (duplicate_eh_regions): Fix clearing of
|
||
cfun->eh->region_array entries.
|
||
|
||
2006-05-01 DJ Delorie <dj@redhat.com>
|
||
|
||
* configure.ac (gcc_cv_nm): Don't use an in-tree nm if
|
||
build!=host.
|
||
(gcc_cv_objdump): Likewise.
|
||
* configure: Regenerated.
|
||
|
||
2006-05-01 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR target/27374
|
||
* config/arm/vfp.md (*arm_movdi_vfp): Correct the output
|
||
templates for case 3 and 4.
|
||
|
||
2006-05-01 DJ Delorie <dj@redhat.com>
|
||
|
||
* vec.c: Include bconfig.h when appropriate.
|
||
* Makefile.in (build/vec.o): Adjust dependencies.
|
||
* mkconfig.sh: Make sure config.h isn't used for build machine
|
||
compiles.
|
||
|
||
2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
|
||
variables.
|
||
(mark_phi_for_rewrite): New function.
|
||
(insert_phi_nodes_for, mark_use_interesting): Call
|
||
mark_phi_for_rewrite.
|
||
(rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
|
||
(update_ssa): Initialize and free phis_to_rewrite.
|
||
|
||
2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/27291
|
||
* loop-doloop.c (add_test, doloop_modify): Handle the case condition is
|
||
folded to a constant.
|
||
|
||
2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27283
|
||
* tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
|
||
not whole # of iteration descriptions.
|
||
(niter_for_exit): Return just # of iterations. Fail if # of iterations
|
||
uses abnormal ssa name.
|
||
(niter_for_single_dom_exit): Ditto.
|
||
(find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
|
||
return just the number of iterations.
|
||
|
||
2006-05-01 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/27144
|
||
* tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
|
||
(record_estimate): Only record constant upper bound.
|
||
(infer_loop_bounds_from_undefined): Call
|
||
compute_estimated_nb_iterations just once.
|
||
(proved_non_wrapping_p): Renamed to ...
|
||
(n_of_executions_at_most): ... this. Expect bound to be a constant.
|
||
(convert_step_widening, scev_probably_wraps_p): Call
|
||
n_of_executions_at_most instead of proved_non_wrapping_p.
|
||
(substitute_in_loop_info): Do not replace values in bounds.
|
||
* cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update
|
||
comments.
|
||
|
||
2006-05-01 Richard Henderson <rth@redhat.com>
|
||
|
||
PR c/27358
|
||
* c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
|
||
c_parser_skip_to_pragma_eol. Convert to switch statement. Handle
|
||
CPP_PRAGMA.
|
||
|
||
2006-05-01 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* c-typeck.c (parser_build_binary_op): Don't call the function
|
||
unsigned_conversion_warning to spot operand/result type overflow.
|
||
(build_binary_op): Instead, call convert_and_check instead of
|
||
convert to report the problem when the operands are promoted.
|
||
* c-common.c (unsigned_conversion_warning): Make static.
|
||
* c-common.h (unsigned_conversion_warning): Delete prototype.
|
||
|
||
2006-05-01 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26726
|
||
* tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
|
||
problem ...
|
||
(find_interesting_uses_address): ... we work around here
|
||
by folding INDIRECT_REFs in the substituted base.
|
||
|
||
2006-05-01 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* omp-low.c (dump_omp_region): Add newlines.
|
||
|
||
2006-04-30 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* common.opt (Woverflow): New command line option.
|
||
* c-common.c (constant_expression_warning): Check warn_overflow.
|
||
(overflow_waring): Pass OPT_Woverflow to warning.
|
||
(unsigned_conversion_warning): Likewise.
|
||
(convert_and_check): Likewise.
|
||
* doc/invoke.texi: Document new command line option.
|
||
|
||
2006-04-30 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_override_options): Enable
|
||
TARGET_NO_FP_IN_TOC for section anchors.
|
||
(optimization_options): Enable section anchors for all
|
||
non-"Objective" languages.
|
||
|
||
2006-04-28 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/darwin-c.c (darwin_ms_struct): Move this
|
||
(darwin_set_default_type_attributes): and this...
|
||
* config/darwin.c: ... here.
|
||
* config/darwin.h (darwin_ms_struct): Declare.
|
||
|
||
2006-04-28 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
|
||
|
||
2006-04-28 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR c/25309
|
||
* c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
|
||
(push_array_bounds): Delete prototype. Change BOUNDS argument to
|
||
an unsigned HOST_WIDE_INT.
|
||
(print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
|
||
array index.
|
||
(really_start_incremental_init): No need to call convert because
|
||
bitsize_zero_node is already of type bitsizetype.
|
||
(push_init_level): Extract the value of constructor_index as an
|
||
unsigned HOST_WIDE_INT quantity, using tree_low_cst.
|
||
(process_init_element): Likewise.
|
||
|
||
2006-04-28 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
|
||
value before passing to make_relative_prefix.
|
||
|
||
2006-04-28 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR middle-end/27260
|
||
* builtins.c (expand_builtin_memset): Expand val in original mode.
|
||
|
||
2006-04-27 Eric Christopher <echristo@apple.com>
|
||
|
||
* target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
|
||
with #ifndef/#endif.
|
||
* config/darwin-c.c (darwin_ms_struct): New.
|
||
(darwin_pragma_ms_struct): Ditto.
|
||
(darwin_set_default_type_attributes): Ditto.
|
||
* config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
|
||
* config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
|
||
Register ms_struct pragma.
|
||
* config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
|
||
(TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
|
||
* config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
|
||
darwin_set_default_type_attributes if TARGET_MACHO.
|
||
|
||
2006-04-27 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
PR tree-optimization/26854
|
||
* tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
|
||
* doc/tree-ssa.texi: Update immuse iterator documentation.
|
||
* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
|
||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
|
||
* tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
|
||
first_safe_imm_use, next_safe_imm_use): Remove.
|
||
(end_imm_use_stmt_p): New. Check for end of immuse stmt traversal.
|
||
(end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal.
|
||
(move_use_after_head): New. Helper function to sort immuses in a stmt.
|
||
(link_use_stmts_after): New. Link all immuses in a stmt consescutively.
|
||
(first_imm_use_stmt): New. Get first stmt in an immuse list.
|
||
(next_imm_use_stmt): New. Get next stmt in an immuse list.
|
||
(first_imm_use_on_stmt): New. Get first immuse on a stmt.
|
||
(end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt.
|
||
(next_imm_use_on_stmt): New. Move to next immuse on a stmt.
|
||
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
|
||
* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
|
||
(perfect_nestify): Use new iterator.
|
||
* tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
|
||
iterator.
|
||
* tree-flow.h (struct immediate_use_iterator_d): Add comments.
|
||
(next_imm_name): New field in struct immediate_use_iterator_d.
|
||
(FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
|
||
(FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
|
||
FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
|
||
* tree-cfg.c (replace_uses_by): Use new iterator.
|
||
* tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
|
||
* tree-ssa-operands.c (correct_use_link): Remove.
|
||
(finalize_ssa_use_ops): No longer call correct_use_link.
|
||
|
||
2006-04-27 Stuart Hastings <stuart@apple.com>
|
||
|
||
* config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
|
||
* config/t-darwin (crt3.o): Use it.
|
||
* config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
|
||
'pmode', use Pmode instead of SImode for SYMBOL_REF.
|
||
* config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
|
||
call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
|
||
call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
|
||
support.
|
||
|
||
2006-04-27 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expmed.c (store_fixed_bit_field): If we're not optimizing for
|
||
size, force the intermediate into a new pseudo rather instead of
|
||
performing both a bitwise AND and a bitwise IOR in memory.
|
||
|
||
2006-04-27 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/26685
|
||
* params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
|
||
this one "max-flow-memory-locations".
|
||
|
||
2006-04-27 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/25148
|
||
* tree-vrp.c (compare_values): Remove code dealing with
|
||
comparisons against type min/max value. Honour overflow
|
||
and negative constants in code dealing with comparisons
|
||
of plus and minus expressions.
|
||
(value_inside_range): Use fold_binary with LE_EXPR and
|
||
GE_EXPR rather than compare_values.
|
||
|
||
2006-04-27 Dirk Mueller <dmueller@suse.de>
|
||
|
||
* config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
|
||
prototype for SSE.
|
||
|
||
2006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* basic-block.h (safe_insert_insn_on_edge): Removed.
|
||
* cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
|
||
|
||
2006-04-26 David Edelsohn <edelsohn@gnu.org>
|
||
Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR middle-end/27282
|
||
* combine.c (simplify_and_const_int_1): Use gen_int_mode.
|
||
(simplify_and_const_int): Same.
|
||
|
||
2006-04-26 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
|
||
|
||
2006-04-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/26171
|
||
* cgraph.c (cgraph_varpool_finalize_decl): Don't call
|
||
cgraph_varpool_assemble_pending_decls if -fopenmp, unless
|
||
cgraph_global_info_ready.
|
||
|
||
PR middle-end/26913
|
||
* tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
|
||
|
||
PR c/25996
|
||
* c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
|
||
either decl or init is error_mark_node.
|
||
|
||
PR middle-end/25989
|
||
* tree-flow.h (struct omp_region): Add sched_kind.
|
||
* omp-low.c (expand_parallel_call): Use region->inner->sched_kind
|
||
instead of extracting omp for data.
|
||
(expand_omp_for): Save extracted sched_kind.
|
||
|
||
2006-04-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expmed.c (store_bit_field): Also check whether the bitsize is
|
||
valid for the machine's "insv" instruction before moving the
|
||
target into a pseudo for use with the insv.
|
||
* config/i386/predicates.md (const8_operand): New predicate.
|
||
* config/i386/i386.md (extv, extzv, insv): Use the new
|
||
const8_operand predicate where appropriate.
|
||
|
||
2006-04-25 DJ Delorie <dj@redhat.com>
|
||
|
||
* doc/install.texi (Specific): Clarify that this is not a list of
|
||
supported hosts or targets.
|
||
|
||
2006-04-25 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR rtl-optimization/26725
|
||
* cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
|
||
block's BB_DIRTY flag.
|
||
|
||
2006-04-25 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
|
||
are no branches.
|
||
|
||
* dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
|
||
to print an integer.
|
||
|
||
2006-04-25 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* varasm.c (align_variable): New function.
|
||
(get_block_for_decl): Apply align_variable to DECL before
|
||
calculating section information.
|
||
(assemble_variable): Split out alignment computation.
|
||
|
||
2006-04-25 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* expmed.c (store_bit_field): Handle paradoxical subregs on big endian
|
||
machines.
|
||
|
||
2006-04-25 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
|
||
MODE_PARTIAL_INT mode.
|
||
* config/bfin/bfin-modes.def: Add V2PDI and V2SI.
|
||
* config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
|
||
for CONST_INTs.
|
||
(hard_regno_mode_ok): V2PDImode is ok for accumulators.
|
||
* config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
|
||
V2PDImode.
|
||
* config/bfin/predicates.md (const01_operand, vec_shift_operand):
|
||
New predicates.
|
||
* config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
|
||
New constants.
|
||
(MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
|
||
MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
|
||
MACFLAG_IH): Likewise.
|
||
(movstricthi_1): Renamed from "*movstricthi".
|
||
(load_accumulator, load_accumulator_pair, movsi_insv, insv,
|
||
ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
|
||
abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
|
||
movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
|
||
movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
|
||
movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
|
||
addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
|
||
sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
|
||
addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
|
||
mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
|
||
ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
|
||
flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
|
||
flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
|
||
flag_macv2hi_parts, flag_macv2hi_parts_acconly,
|
||
flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
|
||
|
||
* doc/rtl.texi (ss_ashift): Improve wording.
|
||
|
||
2006-04-24 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (verify_marks_clear): New.
|
||
(prune_unused_types): Call verify_marks_clear initially, not
|
||
prune_unmark_dies.
|
||
|
||
2006-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* rtl.def (SS_ASHIFT, SS_NEG): New codes.
|
||
* doc/rtl.texi: Document them.
|
||
* simplify-rtx.c (simplify_unary_operation,
|
||
simplify_binary_operation_1): Don't abort when we see them.
|
||
|
||
2006-04-24 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
Revert:
|
||
2006-04-23 Mark Mitchell <mark@codesourcery.com>
|
||
* configure.ac: Completely disregard languages that are not
|
||
enabled.
|
||
* configure: Regenerated.
|
||
|
||
2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27236
|
||
* tree-inline.c (copy_body_r): Make sure to copy
|
||
TREE_THIS_VOLATILE flag.
|
||
|
||
2006-04-24 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/26869
|
||
* tree-complex.c (update_parameter_components): Don't handle
|
||
unused parameters which have no default def.
|
||
|
||
2006-04-24 Andrew Pinski <pinskia@gcc.gnu.org>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/27218
|
||
* tree-inline.c (expand_call_inline): Strip useless type
|
||
conversions for the return slot address.
|
||
|
||
2006-04-24 Richard Guenther <rguenther@suse.de>
|
||
|
||
* cfgloop.h (struct loops): Remove unused field array. Reorder
|
||
state after num.
|
||
(LOOP_PREFETCH): Remove.
|
||
|
||
2006-04-24 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/22525
|
||
* value-prof.c (tree_mod_pow2): Remove unnecessary temporary
|
||
variable, adjust types of generated expressions.
|
||
|
||
2006-04-23 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
|
||
(tree-vect-patterns.o): Likewise.
|
||
(jump.o): Likewise.
|
||
(cselib.o): Likewise.
|
||
(loop-doloop.o): Likewise.
|
||
(regclass.o): Likewise.
|
||
(reload1.o): Likewise.
|
||
(explow.o): Replace target.h with $(TARGET_H).
|
||
(ipa-prop.o): Likewise.
|
||
(ipa-cp.o): Likewise.
|
||
(ipa-inline.o): Likewise.
|
||
(reorg.o): Likewise.
|
||
(reg-stack.o): Likewise.
|
||
|
||
2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
|
||
|
||
2006-04-23 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
* print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
|
||
|
||
* configure.ac: Completely disregard languages that are not
|
||
enabled.
|
||
* configure: Regenerated.
|
||
|
||
PR c++/26534
|
||
* c-common.h (c_build_bitfield_integer_type): Declare.
|
||
* c-decl.c (c_build_bitfield_integer_type): Move to ...
|
||
* c-common.c (c_build_bitfield_integer_type): ... here.
|
||
|
||
2006-04-23 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/21283
|
||
* config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
|
||
a SImode SUBREG of a floating point register after no_new_pseudos.
|
||
|
||
2006-04-23 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
|
||
identify potentially eliminable registers to additionally catch
|
||
VIRTUAL_INCOMING_ARGS_REGNUM.
|
||
(addsi3): Update the conditions on when to use addsi_small_int.
|
||
|
||
2006-04-23 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/16641
|
||
* config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
|
||
STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
|
||
rtx to stack_pointer_rtx or frame_pointer_rtx directly.
|
||
|
||
2006-04-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fold-const.c (range_predecessor): Use operand_equal_p
|
||
as the predicate for equality.
|
||
(range_successor): Likewise.
|
||
|
||
2006-04-22 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
Revert:
|
||
* config/soft-fp/op-common.h: Fix a typo.
|
||
|
||
2006-04-22 Frank Ch. Eigler <fche@redhat.com>
|
||
|
||
PR libmudflap/26864
|
||
* common.opt (flag_mudflap_threads): Overload flag_mudflap.
|
||
* tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
|
||
|
||
2006-04-22 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
|
||
Fix comment typos.
|
||
* doc/tm.texi: Fix a typo.
|
||
|
||
2006-04-21 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (struct die_struct): Document that die_sib makes
|
||
a circular linked list.
|
||
(FOR_EACH_CHILD): New.
|
||
(reverse_die_lists): Delete.
|
||
(reverse_all_dies): Delete.
|
||
(add_dwarf_attr): Correct documentation.
|
||
(remove_child_with_prev): New.
|
||
(remove_child_TAG): Update for change to die_struct, use
|
||
remove_child_with_prev.
|
||
(add_child_die): Update for change to die_struct.
|
||
(splice_child_die): Use remove_child_with_prev and add_child_die.
|
||
(print_die): Use FOR_EACH_CHILD.
|
||
(die_checksum): Likewise.
|
||
(assign_symbol_names): Likewise.
|
||
(output_location_lists): Likewise.
|
||
(build_abbrev_table): Likewise.
|
||
(calc_die_sizes): Likewise.
|
||
(mark_dies): Likewise.
|
||
(unmark_dies): Likewise.
|
||
(unmark_all_dies): Likewise.
|
||
(output_die): Likewise.
|
||
(prune_unused_types_mark): Likewise.
|
||
(prune_unused_types_walk): Likewise.
|
||
(same_die_p): Update for change to die_struct.
|
||
(break_out_includes): Likewise.
|
||
(prune_unused_types_prune): Likewise.
|
||
(add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
|
||
(prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
|
||
it's already clear.
|
||
(dwarf2out_finish): Don't call reverse_all_dies.
|
||
|
||
2006-04-21 Eric Christopher <echristo@apple.com>
|
||
|
||
* df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
|
||
in comments and function names.
|
||
|
||
2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR c/25875
|
||
* c-typeck.c (digest_init): Robustify.
|
||
|
||
* c-typeck.c (pop_init_level): Simplify.
|
||
|
||
2006-04-21 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
|
||
|
||
2006-04-21 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm.c (arm_override_options): Error on iWMMXt and
|
||
hardware floating point.
|
||
|
||
2006-04-21 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
|
||
NON_FLOAT_REGS.
|
||
|
||
2006-04-21 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
|
||
OPT_EXTRA_PARTS.
|
||
|
||
2006-04-21 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/27230
|
||
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
|
||
C++ lang type in traceback table for Objective-C++.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
|
||
|
||
2006-04-20 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
|
||
|
||
2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR mudflap/26789
|
||
* tree-mudflap.c (mudflap_finish_file): Skip function when there
|
||
were errors. Remove check for erroneous objects.
|
||
|
||
2006-04-20 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/26854
|
||
* tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
|
||
checking for zero or one use.
|
||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
|
||
* tree-cfgcleanup.c (merge_phi_nodes): Similarly.
|
||
* tree-ssa-reassoc.c (negate_value): Similarly.
|
||
(reassociate_bb): Similarly.
|
||
|
||
2006-04-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* c-pretty-print.c (pp_c_direct_abstract_declarator): Print
|
||
TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
|
||
than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
|
||
|
||
2006-04-20 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
|
||
fp regs if the last fp arg doesn't fit in regs.
|
||
|
||
2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
PR target/27182
|
||
* config/sh/sh.md (movsicc_true+3): Tweak condition for the case
|
||
that the last insn has the REG_INC note.
|
||
|
||
2006-04-19 Carlos O'Donell <carlos@codesourcery.com>
|
||
Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
PR c/26774
|
||
* stor-layout.c (update_alignment_for_field): Do not align
|
||
ERROR_MARK nodes.
|
||
(place_union_field): Place union field at the start of the union.
|
||
(place_field): Move ERROR_MARK check later, and use the current
|
||
allocation position to maintain monotonicity.
|
||
|
||
2006-04-19 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* dominance.c: Include timevar.h.
|
||
(calculate_dominance_info): Use TV_DOMINANCE.
|
||
* timevar.def (TV_DOMINANCE): New timevar.
|
||
* Makefile.in (dominance.o): Add TIMEVAR_H dependency.
|
||
|
||
2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
PR rtl-optimization/14261
|
||
* ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
|
||
move would be an INSV insn.
|
||
(noce_process_if_block): Don't optimize if the destination is a
|
||
ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
|
||
|
||
2006-04-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390.md: Add comments with the instructions emitted
|
||
by an insn pattern if macros are used.
|
||
|
||
2006-04-19 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR rtl-optimization/26026
|
||
* fold-const.c (fold_binary): Optimize div and mod where the divisor
|
||
is a known power of two shifted left a variable amount.
|
||
|
||
2006-04-18 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (prune_unused_types_update_strings): Don't add strings
|
||
to hash table twice when the debug_str section has SECTION_MERGE.
|
||
|
||
2006-04-18 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* config/soft-fp: New directory. From glibc.
|
||
* config/soft-fp/t-softfp: New.
|
||
* config/soft-fp/README: New.
|
||
* mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
|
||
* Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
|
||
(libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
|
||
(LIBGCC_DEPS): Add $(SFP_MACHINE).
|
||
* config.gcc: Use rs6000/t-fprules-fpbit or
|
||
rs6000/t-fprules-softfp and soft-fp/t-softfp together with
|
||
rs6000/t-fprules.
|
||
* config/rs6000/sfp-machine.h: New. Based on glibc.
|
||
* config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
|
||
New.
|
||
* config/rs6000/t-fprules: Remove fp-bit rules.
|
||
* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
|
||
* config/rs6000/t-linux64: Likewise. Remove duplicates from
|
||
LIB2FUNCS_EXTRA. Remove fp-bit rules.
|
||
(softfp_wrap_start, softfp_wrap_end): New.
|
||
|
||
2006-04-18 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.h (PTRDIFF_TYPE): Define.
|
||
|
||
2006-04-18 Devang Patel <dpatel@apple.com>
|
||
|
||
* doc/invoke.texi (-Wuninitialized): Clarify -O connection.
|
||
|
||
2006-04-18 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/sh/t-symbian: Add rule to build sh-c.o
|
||
* config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
|
||
of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
|
||
(sh_symbian_encode_section_info): Likewise.
|
||
|
||
2006-04-18 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* builtins.c (expand_builtin_strcmp): Cover label definition of
|
||
do_libcall with HAVE_cmpstrnsi.
|
||
|
||
2006-04-18 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* function.c (temp_slots_at_level, max_slot_level): Use VEC
|
||
instead of VARRAY.
|
||
* function.h (temp_slot_p): New.
|
||
(function): Change the type of x_used_temp_slots to
|
||
VEC(temp_slot_p,gc) *.
|
||
|
||
2006-04-18 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
|
||
flag_strength_reduce.
|
||
|
||
* doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
|
||
|
||
2006-04-18 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR target/27117
|
||
|
||
Partial revert of revision 112637
|
||
2006-04-03 Paolo Bonzini <bonzini@gnu.org>
|
||
Dale Johannesen <dalej@apple.com>
|
||
|
||
PR target/19653
|
||
* regclass.c (struct reg_pref): Update documentation.
|
||
(regclass): Set prefclass to NO_REGS if memory is the best option.
|
||
(record_reg_classes): Cope with a prefclass set to NO_REGS.
|
||
|
||
2006-04-18 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR tree-optimization/26821
|
||
* tree-ssa-math-opts.c (get_constant_one): New.
|
||
(insert_reciprocals): Use it.
|
||
|
||
2006-04-17 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (free_AT): Delete.
|
||
(remove_AT): Update string ref counts.
|
||
(remove_child_TAG): Don't call free_die.
|
||
(free_die): Delete.
|
||
(break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
|
||
or DW_TAG_GNU_EINCL.
|
||
(prune_unused_types_walk_attribs): Reset string refcounts.
|
||
(prune_unused_types_update_strings): New.
|
||
(prune_unused_types_prune): Don't make unnecessary stores. Don't
|
||
call free_die. Do call prune_unused_types_update_strings.
|
||
(prune_unused_types): Empty debug_str_hash.
|
||
|
||
2006-04-17 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expr.c (expand_assignment): Optimize away no-op moves where the
|
||
source and destination are equal and have no side-effects.
|
||
|
||
2006-04-17 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR target/26826
|
||
* reload.c (push_reload): Guard calls to get_secondary_mem
|
||
for memory subregs.
|
||
|
||
2006-04-16 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* alias.c (reg_base_value, old_reg_base_value): Change the
|
||
type to VEC(rtx,gc) *.
|
||
(REG_BASE_VALUE, find_base_value, record_set,
|
||
init_alias_analysis): Use VEC instead of VARRAY.
|
||
|
||
* alias.c (alias_sets): Change the type to
|
||
VEC(alias_set_entry,gc) *.
|
||
(get_alias_set_entry, new_alias_set, record_alias_subset): Use
|
||
VEC instead of VARRAY.
|
||
(last_alias_set): Remove.
|
||
|
||
* cgraph.h (cgraph_edge_p): New.
|
||
Update the prototype of cgraph_function_versioning.
|
||
* cgraphunit.c (cgraph_copy_node_for_versioning,
|
||
cgraph_function_versioning): Use VEC instead of VARRAY.
|
||
* ipa-cp.c (ipcp_insert_stage): Likewise.
|
||
|
||
2006-04-16 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/26961
|
||
* fold-const.c (fold_ternary): When converting "A ? B : C" into either
|
||
"A op B" or "A op C", we may need to convert A to the type of B and C.
|
||
|
||
2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* target.h (struct gcc_target): Add mode_rep_extended.
|
||
* rtlanal.c (num_sign_bit_copies_in_rep): New global.
|
||
(init_num_sign_bit_copies_in_rep): Initialize it using
|
||
mode_rep_extended.
|
||
(truncate_to_mode): Use it.
|
||
(init_rtlanal): Call init_num_sign_bit_copies_in_rep.
|
||
* targhooks.h (default_mode_rep_extended): Declare it.
|
||
* targhooks.c (default_mode_rep_extended): Define it.
|
||
* target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
|
||
default_mode_rep_extended.
|
||
(TARGET_INITIALIZER): Include it.
|
||
* doc/tm.texi (Misc): Document it.
|
||
* config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
|
||
(mips_truncated_to_mode): New function.
|
||
|
||
2006-04-16 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/25474
|
||
* expr.c (compress_float_constant): Copy the narrow constant into
|
||
a new pseudo before extending it to its final width.
|
||
|
||
2006-04-16 Roger Sayle <roger@eyesopen.com>
|
||
Andrew Pinski <pinskia@gcc.gnu.org>
|
||
Dale Johannesen <dalej@apple.com>
|
||
|
||
PR target/24076
|
||
* config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
|
||
special case code to implement V8HImode and V16QImode with SSE2.
|
||
|
||
2006-04-15 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/i386.c (ix86_va_start): Ensure all integer constant
|
||
trees are constructed with a suitable tree type.
|
||
|
||
2006-04-15 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
|
||
(integer_onep): Likewise.
|
||
(integer_all_onesp): Likewise.
|
||
(integer_pow2p): Likewise.
|
||
(integer_nonzerop): Likewise.
|
||
(real_zerop): Likewise.
|
||
(real_onep): Likewise.
|
||
(real_twop): Likewise.
|
||
(real_minus_onep): Likewise.
|
||
(int_size_in_bytes): Likewise.
|
||
(host_integerp): Likewise.
|
||
|
||
2006-04-15 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
|
||
jump.c, mips-tfile.c, omp-low.c, sched-int.h,
|
||
tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
|
||
|
||
* tree-ssa-structalias.h (alias_info): Remove num_references.
|
||
|
||
2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.md (output_bb patterns): Shorten long branch alternatives by 4.
|
||
(output_bvb patterns): Likewise.
|
||
* pa.c (output_bb): Use 'bb' insn for long branch case.
|
||
(output_bvb): Likewise use '{bvb|bb}' for long branch case.
|
||
(output_dbra): Use '{comb|cmpb}' for long branch case for alternative
|
||
1. Correct length operand for alternatives 1 and 2.
|
||
(output_movb): Use '{comb|cmpb}' for long branch case for alternatives
|
||
1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
|
||
|
||
2006-04-14 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
|
||
is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
|
||
were accidentally reverted by r112959.
|
||
|
||
2006-04-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/26823
|
||
* except.h (eh_region_outermost): New prototype.
|
||
* except.c (eh_region_outermost): New function.
|
||
* tree-cfg.c (find_outermost_region_in_block): Use it.
|
||
|
||
2006-04-14 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
|
||
of VARRAY.
|
||
* reload1.c (reg_equiv_memory_loc_varray): Rename to
|
||
reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
|
||
(init_reload, reload): Use VEC instead of VARRAY.
|
||
* reload.h: Update the prototype for
|
||
reg_equiv_memory_loc_varray.
|
||
|
||
2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
|
||
Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.c (emit_and_preserve): Allocate space for the
|
||
register save area.
|
||
|
||
2005-04-13 Uros Bizjak <uros@kss-loka.si>
|
||
|
||
PR middle-end/27134
|
||
* builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
|
||
to expand fallback builtin function call.
|
||
|
||
2006-04-14 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR middle-end/27095
|
||
* builtins.c: (expand_builtin_memset): Stabilize args before expansion
|
||
and emit libcall here in case the builtin fails.
|
||
(expand_builtin_strcmp): Always emit the libcall here on failure.
|
||
|
||
2006-04-14 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
|
||
* flow.c (reg_n_info): Change the type to
|
||
VEC(reg_info_p,heap) *.
|
||
* regclass.c (allocate_reg_info, free_reg_info): Use VEC
|
||
instead of VARRAY.
|
||
* regs.h (reg_info_p): New.
|
||
(REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
|
||
REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
|
||
REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
|
||
instead of VARRAY.
|
||
|
||
2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
|
||
defaulting to 100.
|
||
* params.h (MAX_SCHED_READY_INSNS): New macro.
|
||
* haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
|
||
past MAX_SCHED_READY_INSNS during the first scheduling pass.
|
||
(schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
|
||
the ready list for 1 cycle during the first scheduling pass.
|
||
* doc/invoke.texi (--param): New parameter max-sched-ready-insns.
|
||
|
||
2006-04-13 Richard Henderson <rth@redhat.com>
|
||
|
||
PR libgomp/26651
|
||
* gimple-low.c (lower_omp_directive): Remove dead code.
|
||
(lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
|
||
* gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
|
||
* omp-low.c (struct omp_region): Move to tree-flow.h.
|
||
(root_omp_region): Export.
|
||
(omp_regions, lookup_omp_region): Remove.
|
||
(determine_parallel_type): Update for struct omp_region changes.
|
||
(dump_omp_region): Dump regions with block numbers.
|
||
(new_omp_region): Take type and block instead of stmt; malloc
|
||
instead of ggc.
|
||
(free_omp_region_1, free_omp_regions): New.
|
||
(expand_parallel_call): Take entry_stmt as argument; update for
|
||
changes to omp_region.
|
||
(remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
|
||
(remove_exit_barriers): New.
|
||
(expand_omp_parallel): Update for struct omp_region changes.
|
||
(expand_omp_synch): Likewise.
|
||
(expand_omp): Likewise.
|
||
(expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
|
||
(expand_omp_for_static_chunk): Likewise.
|
||
(expand_omp_for): Likewise.
|
||
(expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
|
||
(expand_omp_sections): Similarly, with GOMP_sections_end.
|
||
(expand_omp_single): New.
|
||
(build_omp_regions_1): Update for OMP_CONTINUE.
|
||
(execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
|
||
(lower_omp_sections): Expand with OMP_CONTINUE, do not collect
|
||
OMP_SECTIONS_SECTIONS.
|
||
(lower_omp_single_simple): Don't emit barrier here.
|
||
(lower_omp_single_copy): Likewise.
|
||
(lower_omp_single): Fix bindings, and lower to straightline now.
|
||
(lower_omp_master, lower_omp_ordered): Likewise.
|
||
(lower_omp_critical): Likewise.
|
||
(lower_omp_for): Likewise. Emit OMP_CONTINUE.
|
||
* tree-cfg.c (make_edges): Collect an omp_region tree, use it for
|
||
omp edges, free it afterward.
|
||
(make_omp_sections_edges): Remove.
|
||
(is_ctrl_altering_stmt): Don't bother checking flag_openmp.
|
||
(move_stmt_r): Handle OMP_CONTINUE.
|
||
* tree-flow.h (struct omp_region): Move from omp-low.c. Switch
|
||
statement pointers to basic blocks. Add type member.
|
||
(root_omp_region, new_omp_region, free_omp_regions): Declare.
|
||
* tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
|
||
* tree-inline.c (estimate_num_insns_1): Likewise.
|
||
* tree-pretty-print.c (dump_generic_node): Likewise.
|
||
* tree-ssa-operands.c (get_expr_operands): Likewise.
|
||
* tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
|
||
(OMP_RETURN): Rename from OMP_RETURN_EXPR.
|
||
(OMP_CONTINUE): New.
|
||
* tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
|
||
(OMP_SECTIONS_SECTIONS): Remove.
|
||
(OMP_SECTION_LAST): New.
|
||
(OMP_RETURN_NOWAIT): New.
|
||
|
||
2006-04-13 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (native_encode_vector, native_interpret_real):
|
||
Correct obvious mistakes in the previous check-in.
|
||
|
||
2006-04-13 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (native_encode_expr): New function to encode
|
||
the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
|
||
or VECTOR_CST into a specified buffer.
|
||
(native_encode_int): New function.
|
||
(native_encode_real): New function.
|
||
(native_encode_complex): New function.
|
||
(native_encode_vector): New function.
|
||
(native_interpret_expr): Inverse of native_encode_expr to convert
|
||
a target representation into an INTEGER_CST, REAL_CST etc...
|
||
(native_interpret_int): New function.
|
||
(native_interpret_real): New function.
|
||
(native_interpret_complex): New function.
|
||
(native_interpret_vector): New function.
|
||
(fold_view_convert_expr): New function to constant fold/evaluate
|
||
a VIEW_CONVERT_EXPR of a suitable constant expression.
|
||
(fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
|
||
Change call of build1 to fold_build1 when constructing a
|
||
VIEW_CONVERT_EXPR.
|
||
|
||
2006-04-13 Paolo Bonzini <bonzini@gnu.org>
|
||
Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
PR target/27006
|
||
* config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
|
||
to be even.
|
||
|
||
2006-04-13 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/26459
|
||
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
|
||
optimize to lo_sum for DFmode if !TARGET_FPRS.
|
||
|
||
2006-04-12 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree-ssa-alias.c (set_initial_properties, init_alias_info,
|
||
delete_alias_info, compute_flow_sensitive_aliasing,
|
||
group_aliases): Use VEC instead of VARRAY.
|
||
* tree-ssa-structalias.c (update_alias_info): Likewise.
|
||
* tree-ssa-structalias.h (alias_info): Change the type of
|
||
processed_ptrs to VEC(tree,heap) *.
|
||
|
||
2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR target/27060
|
||
* config/sh/lib1funcs.h: New file, broken out of:
|
||
* config/sh/lib1funcs.asm.
|
||
* config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
|
||
New macros.
|
||
* config/sh/lib1funcs.asm (udivsi3_i4): Use them.
|
||
* config/sh/lib1funcs-Os-4-200.asm: New file.
|
||
* config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
|
||
* config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
|
||
(EXTRA_MULTILIB_PARTS): Include it.
|
||
($(T)sdivsi3_i4i-Os-4-200.o): New rule.
|
||
($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
|
||
* config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
|
||
* config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
|
||
TARGET_SH2.
|
||
|
||
2006-04-12 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
|
||
* tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
|
||
tpa_compact, root_var_init, type_var_init): Use VEC instead of
|
||
VARRAY.
|
||
* tree-ssa-live.h: Include vecprim.h.
|
||
(tree_partition_associator_d): Change the type of
|
||
first_partition to VEC(int,heap) *.
|
||
(tpa_first_partition): Use VEC instead of VARRAY.
|
||
|
||
* Makefile.in (GTFILES): Move functions.h after tree.h.
|
||
* function.c (reset_block_changes, record_block_change,
|
||
check_block_change, free_block_changes): Use VEC instead of
|
||
VARRAY.
|
||
* function.h (function): Change the type of
|
||
ib_boundaries_block to VEC(tree,gc) *.
|
||
* tree-inline.c (copy_cfg_body): Initialize
|
||
ib_boundaries_block to NULL instead of (varray_type) 0.
|
||
|
||
2006-04-12 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expr.c (emit_group_store): Correct operand order in call to
|
||
subreg_lowpart_offset. Always create paradoxical SUBREGs with
|
||
a SUBREG_BYTE of zero.
|
||
|
||
2006-04-12 Richard Guenther <rguenther@suse.de>
|
||
|
||
* profile.c (compute_branch_probabilities): Remove code
|
||
encapsulated in !ir_type (), which are remanents of the
|
||
removed RTL profiling code.
|
||
* rtl-profile.c: Remove.
|
||
|
||
2006-04-12 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
|
||
magic NULL_RTX comment.
|
||
(function_arg): Store entire fp arg to mem if any part should go
|
||
on stack.
|
||
(rs6000_arg_partial_bytes): Adjust for above change.
|
||
|
||
2006-04-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* dwarf2out.c (output_call_frame_info): Create debug_frame_section
|
||
if it hasn't been initialized by dwarf2out_init.
|
||
|
||
2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
|
||
symbolic constants in branch patterns.
|
||
|
||
2006-04-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* caller-save.c: #include "addresses.h" after #include "tm_p.h".
|
||
|
||
2006-04-11 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR rtl-optimization/27073
|
||
* gcse.c (try_replace_reg): Revert last change. Continue to search
|
||
for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
|
||
on the former.
|
||
|
||
2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
|
||
aggregate types other than record and union types.
|
||
(function_arg): Likewise.
|
||
(function_arg_pass_by_reference): In 64-bit mode, return 0 for
|
||
small arrays.
|
||
(function_value): In 64-bit mode, return objects that require it
|
||
in FP registers.
|
||
|
||
2006-04-11 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* dwarf2out.c (premark_used_types): Remove problematic prototype.
|
||
|
||
2006-04-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
|
||
|
||
2006-04-03 Jeff Law <law@redhat.com>
|
||
|
||
PR/27087
|
||
* tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
|
||
alias information too.
|
||
|
||
2006-04-10 Mike Frysinger <vapier@gentoo.org>
|
||
|
||
* Makefile.in (gcc-cross): Add $(exeext) to target name.
|
||
|
||
2006-04-10 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
PR/21391
|
||
* dwarf2out.c (struct die_struct): Add die_perennial_p field.
|
||
(premark_used_types_helper): New.
|
||
(premark_used_types): New.
|
||
(gen_subprogram_die): Call premark_used_types.
|
||
(prune_unused_types_walk): Do not prune perennial dies.
|
||
* function.c (used_types_insert): New.
|
||
* function.h (struct function): Add used_types_hash field.
|
||
(used_types_insert): Add prototype.
|
||
* Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
|
||
* c-parser.c (c_parser_cast_expression): Save casted types in used
|
||
types hash table.
|
||
|
||
2006-04-11 Mark Mitchell <mark@codesourcery.com>
|
||
|
||
PR target/26459
|
||
* config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
|
||
rs6000_explicit_options.float_gprs.
|
||
|
||
2006-04-10 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
|
||
from ix86_expand_vector_init_low_nonzero. Take an additional
|
||
one_var argument indicating which element is non-zero. Support
|
||
one_var != 0 for V4SFmode and V4SImode by permuting the result.
|
||
(ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
|
||
with one_var instead of ix86_expand_vector_init_low_nonzero.
|
||
|
||
2006-04-10 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
|
||
tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
|
||
global.o, cfglayout.o, lambda-code.o, reg-stack.o,
|
||
build/genextract.o): Depend on vecprim.h.
|
||
* cfglayout.c, df-problems.c, function.c, genextract.c,
|
||
global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
|
||
tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
|
||
vecprim.h.
|
||
* vecprim.h: New.
|
||
|
||
2006-04-10 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
|
||
Declare VECs of this type.
|
||
(struct die_struct): Make field die_attr a VEC of dw_attr_struct.
|
||
(remove_children): Delete.
|
||
(add_dwarf_attr): Use VEC routines.
|
||
(add_AT_flag): Update for changes to add_dwarf_attr.
|
||
(add_AT_int): Likewise.
|
||
(add_AT_unsigned): Likewise.
|
||
(add_AT_long_long): Likewise.
|
||
(add_AT_vec): Likewise.
|
||
(add_AT_string): Likewise.
|
||
(add_AT_die_ref): Likewise.
|
||
(add_AT_fde_ref): Likewise.
|
||
(add_AT_loc): Likewise.
|
||
(add_AT_loc_list): Likewise.
|
||
(add_AT_addr): Likewise.
|
||
(add_AT_lbl_id): Likewise.
|
||
(add_AT_lineptr): Likewise.
|
||
(add_AT_macptr): Likewise.
|
||
(add_AT_offset): Likewise.
|
||
(add_AT_range_list): Likewise.
|
||
(get_AT): Use VEC_iterate.
|
||
(remove_AT): Use VEC_ordered_remove.
|
||
(free_die): Fold remove_children into here; have it use VEC_iterate.
|
||
(print_die): Use VEC_iterate on attrs.
|
||
(reverse_die_lists): Don't reverse attr lists.
|
||
(die_checksum): Use VEC_iterate on attrs.
|
||
(same_die_p): Likewise.
|
||
(output_location_lists): Likewise.
|
||
(build_abbrev_table): Likewise.
|
||
(size_of_die): Likewise.
|
||
(unmark_all_dies): Likewise.
|
||
(output_abbrev_section): Likewise.
|
||
(output_die): Likewise.
|
||
(prune_unused_types_walk_attribs): Likewise.
|
||
|
||
2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* doc/install.texi (*-*-solaris2*): Point to the configure page.
|
||
|
||
2006-04-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/27057
|
||
* dwarf2out.c (is_symbol_die): Return true also for namespaces.
|
||
|
||
2006-04-09 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expr.c (store_constructor): Don't bother clearing target if
|
||
we're about to assign a vector to it using vec_init_optab.
|
||
|
||
2006-04-10 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-alias.c (lhs_may_store_to): New function.
|
||
(recalculate_used_alone): Handle LHS of calls.
|
||
|
||
2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/27034
|
||
PR target/26508
|
||
* config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
|
||
* pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
|
||
(LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
|
||
(PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
|
||
(PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
|
||
(PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
|
||
section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
|
||
stubs. Add ".align 8" directives before all ".dword" directives.
|
||
(GTHREAD_USE_WEAK): Revise comment.
|
||
(TARGET_ATTRIBUTE_WEAK): Define.
|
||
* pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
|
||
dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
|
||
* stublib.c: New file.
|
||
|
||
PR target/26743
|
||
PR target/11254
|
||
PR target/10274
|
||
* pa.md (cbranch patterns): Revise arguments used in calls to
|
||
output_cbranch, output_bb and output_bvd. Add long branch length
|
||
attributes.
|
||
(fbranch patterns): Handle long branches.
|
||
(jump): Revise length check. Revise arguments for output_lbranch call.
|
||
Add long branch length attributes.
|
||
(decrement_and_branch_until_zero): Add long branch length attributes.
|
||
(output_movb, output_parallel_addb and output_parallel_movb patterns):
|
||
Likewise. Revise arguments for output_parallel_addb and
|
||
output_parallel_movb calls.
|
||
* pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
|
||
output_parallel_movb and output_parallel_addb): Update prototypes.
|
||
* pa.c (output_cbranch): Revise arguments. Correct handling of
|
||
nullification in long branches.
|
||
(output_lbranch): Add new argument to control extraction of delay
|
||
instruction.
|
||
(output_bb): Handle long branches.
|
||
(output_bvb, output_dbra, output_movb, output_parallel_movb,
|
||
output_parallel_addb): Likewise.
|
||
|
||
2006-04-09 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR rtl-optimization/27073
|
||
* gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
|
||
not REG_EQUIVs.
|
||
|
||
2006-04-08 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree.h (tree_memory_tag): Add old_used_alone.
|
||
(SMT_OLD_USED_ALONE): New macro.
|
||
* tree-ssa-alias.c (recalculate_used_alone): Stop
|
||
marking things for renaming unnecessarily.
|
||
|
||
2006-04-08 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* builtins.c, config/arm/arm.c, config/i386/cygwin.h,
|
||
config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
|
||
config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
|
||
haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
|
||
sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
|
||
tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
|
||
tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
|
||
spelling convensions.
|
||
* config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
|
||
doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
|
||
typos. Follow spelling conventions.
|
||
|
||
2006-04-07 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.c (m32c_function_arg): Structures are always
|
||
passed on the stack.
|
||
(m32c_init_cumulative_args): When a function returns a structure,
|
||
always pass the pointer to that return area on the stack.
|
||
(m32c_function_arg_advance): Don't increment the parameter number
|
||
if we're processing the returned structure pointer.
|
||
(pushm_info): Reverse order of registers.
|
||
|
||
2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
|
||
assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
|
||
number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
|
||
estimate_numbers_of_iterations_loop): Use build_int_cst instead of
|
||
build_int_cst_type.
|
||
* tree-chrec.c (chrec_fold_multiply_poly_poly,
|
||
chrec_fold_multiply): Same.
|
||
* tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
|
||
force_expr_to_var_cost): Same.
|
||
* tree-mudflap.c (mf_xform_derefs_1): Same.
|
||
* tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
|
||
|
||
2006-04-07 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
|
||
treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
|
||
insn.
|
||
|
||
2006-04-07 Jan Hubicka <jh@suse.cz>
|
||
|
||
* ipa-inline.c (cgraph_early_inlining): Collect garbage.
|
||
|
||
2006-04-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26135
|
||
* tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
|
||
loads for store copy-prop.
|
||
(copy_prop_visit_stmt): Likewise.
|
||
|
||
2006-04-05 Robert Millan <robertmh@gnu.org>
|
||
|
||
* config/i386/linux.h: Add a comment to mark macros that are
|
||
being overriden in config/k*bsd-gnu.h.
|
||
* config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
|
||
DYNAMIC_LINKER.
|
||
* config/knetbsd-gnu.h: Ditto.
|
||
|
||
2006-04-06 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR profile/20815
|
||
PR profile/26399
|
||
* coverage.c (coverage_checksum_string): Reorganize loop to not read
|
||
after buffer.
|
||
|
||
2006-04-06 Mike Stump <mrs@apple.com>
|
||
|
||
* builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
|
||
for HAVE_nonlocal_goto to be consistent.
|
||
(expand_builtin_nonlocal_goto): Likewise.
|
||
(expand_builtin_strcmp): Use #ifdef instead of #if
|
||
for HAVE_cmpstrnsi to be consistent.
|
||
|
||
2006-04-05 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
|
||
vs m32c.
|
||
|
||
2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
|
||
got-relative addressing for anything but SImode.
|
||
|
||
* config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
|
||
even if the calling function doesn't modify them.
|
||
|
||
2006-04-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26919
|
||
* ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
|
||
to cgraph_estimate_size_after_inlining.
|
||
|
||
2006-04-05 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
|
||
|
||
2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
PR tree-optimization/26996
|
||
* tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
|
||
VECTOR_TYPE variables.
|
||
|
||
2006-04-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26763
|
||
* fold-const.c (fold_comparison): Move folding of
|
||
PTR + CST CMP PTR + CST ...
|
||
(fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
|
||
|
||
2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
|
||
|
||
* doc/install.texi (Prerequisites): Refine some wording on
|
||
bootstrapping and ksh.
|
||
Move the version numbers of DejaGnu here from the testing section
|
||
and fix casing of names.
|
||
Fix markup and clarify wording for autogen requirements.
|
||
Refer to GCJ instead of just java.
|
||
Refer to SVN instead of CVS.
|
||
Describe diffutils as useful instead of necessary.
|
||
(Downloading the source): Refer to SVN instead of CVS.
|
||
Adjust a link to our web site accordingly.
|
||
(Configuration): Fix casing of Bison.
|
||
(Building): Refer to SVN instead of CVS.
|
||
Fix a sentence on the use of Bison and remove duplicate (and
|
||
incorrect) version number of Bison requirement.
|
||
Remove one redundant list of packages needed for building.
|
||
(Specific): Avoid reference to CVS.
|
||
|
||
2006-04-04 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
|
||
(TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
|
||
(rs6000_handle_struct_attribute): New.
|
||
(rs6000_ms_bitfield_layout_p): Ditto.
|
||
|
||
2006-04-04 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
|
||
NULL for dso parameter to atexit_common.
|
||
|
||
2006-04-04 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/i386/i386.c (machopic_output_stub): Output \t
|
||
between instructions and operands.
|
||
|
||
2006-04-04 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (num_insns_constant_wide): Change
|
||
satisfies_constraint_[IL] to explicit tests on value.
|
||
|
||
2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
|
||
set_nb_iterations_in_loop): Use build_int_cst instead of
|
||
build_int_cst_type.
|
||
* tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
|
||
build_int_cst instead of convert.
|
||
|
||
2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
|
||
new value 2 for incoming.
|
||
* function.c (expand_function_start): Call struct_value_rtx
|
||
with incoming as 2.
|
||
* config/sparc/sparc.md: Comment updated_return.
|
||
* config/sparc/sparc.opt: Add -mstd-struct-return option.
|
||
* config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
|
||
struct return if sparc_std_struct_return and incoming is 2.
|
||
(print_operand): Do not adjust return if
|
||
sparc_std_struct_return.
|
||
|
||
2006-04-04 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (fold_builtin_sprintf): Use fold_convert instead of
|
||
convert in the middle-end.
|
||
* expr.c (store_expr, store_constructor, get_inner_reference,
|
||
expand_expr_real_1, string_constant, try_casesi, try_tablejump):
|
||
Likewise.
|
||
* tree.c (build_range_type): Likewise.
|
||
|
||
2006-04-04 Tom Tromey <tromey@redhat.com>
|
||
|
||
* doc/install.texi (Prerequisites): Mention jar.
|
||
|
||
2006-04-04 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* doc/tree-ssa.texi (Preserving the virtual ssa form): New
|
||
subsection.
|
||
|
||
2006-04-04 Matthias Klose <doko@debian.org>
|
||
|
||
* Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
|
||
|
||
PR bootstrap/26764
|
||
PR bootstrap/27334
|
||
* Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
|
||
strings.
|
||
|
||
2006-04-03 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* doc/extend.texi (Function Attributes): Rewrite visibility
|
||
attribute documentation.
|
||
* doc/invoke.texi (C++ Dialect Options): Rewrite
|
||
-fvisibility-inlines-hidden documentation to describe something
|
||
entirely different, although in practise compatible.
|
||
(Code Gen Options): Warn about system headers in -fvisibility=
|
||
documentation.
|
||
|
||
* doc/extend.texi (Other Builtins): Document that
|
||
__builtin_nan is a compile-time constant only when its argument
|
||
is valid.
|
||
|
||
2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
|
||
trying to remove TRUNCATE check if all bits outside the new mode
|
||
are identical to the sign bit.
|
||
|
||
2006-04-03 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
|
||
and operand scanning in some common cases.
|
||
|
||
2006-04-03 Paolo Bonzini <bonzini@gnu.org>
|
||
Dale Johannesen <dalej@apple.com>
|
||
|
||
PR target/19653
|
||
* regclass.c (struct reg_pref): Update documentation.
|
||
(regclass): Set prefclass to NO_REGS if memory is the best option.
|
||
(record_reg_classes): Cope with a prefclass set to NO_REGS.
|
||
* reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
|
||
into account. For non-registers, equate an empty preferred
|
||
reload class to a `!' in the constraint; move the if clause to
|
||
do so after those that reject the insn.
|
||
(push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
|
||
return NO_REGS.
|
||
(find_dummy_reload): Likewise.
|
||
* doc/tm.texi (Register Classes): Document what it means
|
||
if PREFERRED_*_RELOAD_CLASS return NO_REGS.
|
||
* config/i386/i386.c (ix86_preferred_reload_class): Force
|
||
using SSE registers (and return NO_REGS for floating-point
|
||
constants) if math is done with SSE.
|
||
(ix86_preferred_output_reload_class): New.
|
||
* config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
|
||
* config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
|
||
* config/i386/i386.md: Remove # register preferences.
|
||
|
||
2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
PR bootstrap/26992
|
||
* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
|
||
chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
|
||
the type of nb_iter.
|
||
(instantiate_parameters_1): Convert the operands before calling
|
||
chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
|
||
* tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
|
||
|
||
2006-04-02 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (dummy_object): Use build_int_cst instead of convert.
|
||
* tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
|
||
instead of convert.
|
||
* dojump.c (do_jump): Likewise.
|
||
* expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
|
||
* gimplify.c (gimple_boolify, gimplify_init_constructor,
|
||
gimplify_boolean_expr): Likewise.
|
||
* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
|
||
* varasm.c (array_size_for_constructor): Likewise.
|
||
* tree-object-size.c (compute_object_offset): Likewise.
|
||
|
||
2006-04-02 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/26977
|
||
* expr.c (emit_group_store): Check whether simplify_gen_subreg returns
|
||
NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
|
||
|
||
2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
PR tree-optimization/26939
|
||
* tree-chrec.c (chrec_merge): Use eq_evolutions_p.
|
||
|
||
2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
|
||
at_stmt. Convert the type of operands before calling
|
||
build_polynomial_chrec.
|
||
(add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
|
||
add_to_evolution_1.
|
||
(follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
|
||
(instantiate_parameters_1): Convert the type of operands before calling
|
||
build_polynomial_chrec.
|
||
* tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
|
||
chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
|
||
reset_evolution_in_loop): Insert asserts to check the types of the
|
||
operands.
|
||
(chrec_type): Moved...
|
||
(eq_evolutions_p): Use operand_equal_p.
|
||
* tree-chrec.h (build_polynomial_chrec): Insert an assert to check
|
||
the types of the operands.
|
||
(chrec_type): ...here.
|
||
* tree-data-ref.c (create_data_ref): Convert the operands before
|
||
calling chrec_replace_initial_condition.
|
||
(same_access_functions, analyze_subscript_affine_affine,
|
||
analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
|
||
(compute_subscript_distance, analyze_ziv_subscript,
|
||
analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
|
||
analyze_miv_subscript): Convert the operands before calling
|
||
chrec_fold_minus or chrec_fold_plus.
|
||
|
||
2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-data-ref.c (compute_all_dependences): Use a pointer to
|
||
the dependence_relations vector.
|
||
(compute_data_dependences_for_loop): Adjust call to
|
||
compute_all_dependences.
|
||
|
||
2006-04-01 Roger Sayle <roger@eyesopen.com>
|
||
Richard Henderson <rth@redhat.com>
|
||
|
||
* gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
|
||
gimple_boolify on the condition before calling gimplify_expr.
|
||
|
||
2006-03-31 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
|
||
to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
|
||
the frame size. Update to use the new macros.
|
||
* config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
|
||
* config/xtensa/ieee754-df.S: Likewise.
|
||
|
||
2006-03-31 Richard Henderson <rth@redhat.com>
|
||
|
||
* tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
|
||
(make_edges): ... here. Control fallthru creation with a local
|
||
variable. Do not play with fake edges.
|
||
(make_omp_sections_edges): Don't set EDGE_ABNORMAL.
|
||
(make_goto_expr_edges): Don't play with fake edges. Make for_call
|
||
a boolean.
|
||
|
||
2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* dwarf2.h (DW64_CIE_ID): Define.
|
||
* dwarf2out.c (DWARF_CIE_ID): Define.
|
||
(output_call_frame_info): Output 0xffffffff before standard 8-byte
|
||
length header. Use DWARF_CIE_ID.
|
||
(value_format): Use DW_FORM_data4 or DW_FORM_data8 for
|
||
dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
|
||
|
||
2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/linux-atomic.asm: New file.
|
||
* config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
|
||
|
||
2006-03-31 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/cond.md: Set condition flags properly throughout.
|
||
* config/m32c/minmax.md: Likewise.
|
||
* config/m32c/prologue.md: Likewise.
|
||
* config/m32c/bitops.md: Likewise.
|
||
* config/m32c/muldiv.md: Likewise.
|
||
* config/m32c/mov.md: Likewise.
|
||
* config/m32c/addsub.md: Likewise.
|
||
* config/m32c/m32c.md: Likewise.
|
||
* config/m32c/jump.md: Likewise.
|
||
* config/m32c/shift.md: Likewise.
|
||
|
||
* config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
|
||
conditionally output the pattern for this.
|
||
* config/m32c/m32c.c (flags_needed_for_conditional): New.
|
||
(m32c_compare_redundant): New.
|
||
(m32c_output_compare): New.
|
||
* config/m32c/m32c-protos.h (m32c_output_compare): New.
|
||
|
||
* config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
|
||
dest, not src. Allow other 4-byte modes.
|
||
|
||
2006-03-30 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* doc/md.texi: Refer to avr/constraints.md instead of
|
||
avr/avr.h.
|
||
|
||
2006-03-30 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
|
||
signed vs. unsigned comparison failures on some hosts.
|
||
|
||
2006-03-31 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/26459
|
||
* config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
|
||
change to FLOAT_REGS.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
|
||
(rs6000_override_options): Use it.
|
||
(rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
|
||
only for -mabi=spe/no-spe and -mabi=altivec.
|
||
|
||
2006-03-30 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
|
||
!Zdynamiclib.
|
||
|
||
2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* Makefile.in: Rename docdir to gcc_docdir.
|
||
|
||
2006-03-30 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/17959
|
||
* expr.c (emit_group_store): Optimize group stores into a pseudo
|
||
register by using a paradoxical subreg to initialize the destination
|
||
if the first or last member of the group specifies a "low part".
|
||
|
||
2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
PR target/26734
|
||
* rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
|
||
* target.h (struct gcc_target.speculate_insn): Change type of the
|
||
second parameter to 'int'.
|
||
* lists.c (alloc_DEPS_LIST): Change signature. Update reference to
|
||
the second operand of the DEPS_LIST.
|
||
(copy_DEPS_LIST_list): Update reference to the second operand of the
|
||
DEPS_LIST.
|
||
* rtl.h (alloc_DEPS_LIST): Update signature.
|
||
* sched-int.h (ds_t): Change typedef to 'int'.
|
||
(DEP_STATUS, BITS_PER_DEP_STATUS): Update.
|
||
|
||
2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* haifa-sched.c (try_ready): Change condition to restore
|
||
non-speculative pattern of the instruction.
|
||
(process_insn_depend_be_in_spec): Code to keep probability of the
|
||
speculative dependence non-decreasing.
|
||
|
||
2006-03-30 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.c (single_move_for_strmov): Renamed to...
|
||
(single_move_for_movmem): ... this. Also change all uses.
|
||
(bfin_expand_strmov): Renamed to...
|
||
(bfin_expand_movmem): ... this. Also change all uses.
|
||
* config/bfin/bfin.md (movstrsi): Renamed to...
|
||
(movstrsi): ...this.
|
||
|
||
2006-03-30 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR tree-optimization/26830
|
||
|
||
* tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
|
||
(copy_prop_visit_stmt): Remove write-only variable ann.
|
||
(init_copy_prop): Check variable loop depth here. Do not simulate
|
||
memory-tag and virtual operand PHIs except for store copy prop.
|
||
|
||
2006-03-30 Richard Guenther <rguenther@suse.de>
|
||
|
||
* config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
|
||
variants with double arguments.
|
||
|
||
2006-03-29 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* genpreds.c (write_tm_constrs_h): Delete variable p.
|
||
* genconditions.c (write_header): Add tm-constrs.h to included
|
||
headers.
|
||
* genpeep.c (main): Add toplev.h to included headers.
|
||
* Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
|
||
(build/genpeep.o): Add toplev.h dependency.
|
||
* config/rs6000/constraints.md: Add "W" constraint.
|
||
|
||
2006-03-29 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* stor-layout.c (mode_for_size_tree): Remove restiction on type
|
||
sizes by correctly testing whether the size fits a host integer.
|
||
(initialize_sizetypes): Use set_min_and_max_values_for_integral_type
|
||
to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
|
||
SImode range for the default sizetype and bitsizetype.
|
||
|
||
2006-03-29 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
|
||
and TREE_CONSTANT_OVERFLOW bits of the argument. Return
|
||
quickly if the argument is already of the correct type.
|
||
Call fold_build1 instead of build1. Tidy up blank lines.
|
||
|
||
2006-03-29 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* genemit.c (main): Add tm-constrs.h to included headers.
|
||
* genoutput.c (output_prologue): Add tm-constrs.h to included headers.
|
||
* genpeep.c (main): Add tm-constrs.h to included headers.
|
||
* genpreds.c (write_satisfies_constraint_fns): Rename to ...
|
||
(write_tm_constrs_h): this and write complete file.
|
||
(write_tm_preds_h): Do not emit satisfies_constraint fns.
|
||
(write_insn_preds_c): Add tm-constrs.h to included headers.
|
||
(gen_constrs): New variable.
|
||
(parse_option): Parse "-c".
|
||
(main): Invoke write_tm_constrs_h.
|
||
* genrecog.c (write_header): Add tm-constrs.h to included headers.
|
||
* Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
|
||
(object_out_file): Add tm-constrs.h dependency.
|
||
(insn-emit.o): Same.
|
||
(insn-output.o): Same.
|
||
(insn-peep.o): Same.
|
||
(insn-preds.o): Same.
|
||
(insn-recog.o): Same.
|
||
(tm-constsr.h): New target.
|
||
(s-constrs-h): New target.
|
||
|
||
* config/rs6000/constraints.md: New file.
|
||
* config/rs6000/rs6000.c: Include tm-constrs.h.
|
||
(num_insn_constant_wide): Convert to satisfies_constraint.
|
||
(rs6000_rtx_costs): Convert to satisfies_constraint.
|
||
* config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
|
||
(CONST_OK_FOR_LETTER_P): Delete.
|
||
(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
|
||
(EXTRA_CONSTRAINT): Delete.
|
||
(EXTRA_MEMORY_CONSTRAINT): Delete.
|
||
(EXTRA_ADDRESS_CONSTRAINT): Delete.
|
||
* config/rs6000/predicates.md: Convert to satisfies_constraint.
|
||
* config/rs6000/rs6000.md: Include constraints.md. Convert to
|
||
satisfies_constraint.
|
||
|
||
* config/i386/i386.c: Include tm-constrs.h.
|
||
|
||
2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
|
||
* tree-data-ref.c (find_data_references_in_loop,
|
||
compute_data_dependences_for_loop): Use pointers to VEC.
|
||
(analyze_all_data_dependences): Adjust calls.
|
||
* tree-data-ref.h (find_data_references_in_loop,
|
||
compute_data_dependences_for_loop): Adjust declarations.
|
||
* tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
|
||
compute_data_dependences_for_loop.
|
||
|
||
2006-03-29 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
|
||
(movdf_vfp): Ditto.
|
||
|
||
2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
PR tree-optimization/26859
|
||
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
|
||
division by zero.
|
||
(convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
|
||
for the step after fold_convert.
|
||
|
||
2006-03-29 Paul Brook <paul@codesourcery.com>
|
||
|
||
* reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
|
||
(inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
|
||
|
||
2006-03-29 Paul Brook <paul@codesourcery.com>
|
||
|
||
PR middle-end/23623
|
||
* targhooks.c (default_narrow_bitfield): New fuction.
|
||
* targhooks.h (default_narrow_bitfield): add prototype.
|
||
* target.h (gcc_target): Add narrow_volatile_bitfield.
|
||
* target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
|
||
* stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
|
||
* doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
|
||
* config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
|
||
|
||
2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
|
||
tmake_file.
|
||
* config/s390/s390.c (S390_scalar_mode_supported_p): New function.
|
||
(NR_C_MODES): Add TDmode, DDmode and SDmode.
|
||
(s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
|
||
(s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
|
||
(s390_function_arg_float): Allow SDmode and DDmode values to be
|
||
passed in floating point registers.
|
||
(s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
|
||
check with SCALAR_FLOAT_MODE_P.
|
||
(TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
|
||
|
||
2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/25985
|
||
* tree-ssa-loop-niter.c (number_of_iterations_le,
|
||
number_of_iterations_ne): Make comments more precise.
|
||
(number_of_iterations_cond): Add only_exit argument. Use the
|
||
fact that signed variables do not overflow only when only_exit
|
||
is true.
|
||
(loop_only_exit_p): New.
|
||
(number_of_iterations_exit): Pass result of loop_only_exit_p to
|
||
number_of_iterations_cond.
|
||
|
||
2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/26643
|
||
* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
|
||
bit_field_refs.
|
||
|
||
2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
|
||
(divsi3_i4_int): Likewise.
|
||
|
||
2006-03-28 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* expr.c (emit_group_store): Only create a new pseudo reg if the
|
||
quantity it needs to hold isn't already a suitable pseudo.
|
||
|
||
2006-03-28 Jeff Law <law@redhat.com>
|
||
|
||
* timevar.def (TV_TREE_PHI_CPROP): New timevar.
|
||
* tree-ssa-dom.c (pass_phi_only_cprop): Use it.
|
||
|
||
2006-03-28 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
|
||
the equivalent ~X & Y, and the symmetry related transformations.
|
||
(fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
|
||
~X & Y, and symmetry related transforms.
|
||
|
||
2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
Revert my 2006-03-27 patches.
|
||
|
||
2006-03-28 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
|
||
~(T1)X, when T1 and T2 are integer types of the same precision
|
||
and (T2)X isn't an extension.
|
||
|
||
2006-03-28 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/26796
|
||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
|
||
need EH edge cleanups rather than purging them immediately.
|
||
(eliminate_degenerate_phis): Handle queued EH cleanups.
|
||
|
||
2006-03-28 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
|
||
from parent_var.
|
||
|
||
2006-03-27 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/22524
|
||
* fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
|
||
cast BIT_NOT_EXPR operand to the correct type.
|
||
|
||
2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-loop-linear.c: Don't include varray.h.
|
||
(gather_interchange_stats, try_interchange_loops,
|
||
linear_transform_loops): Use VEC instead of VARRAY.
|
||
* lambda-mat.c: Don't include varray.h.
|
||
* tree-chrec.c: Same.
|
||
* lambda-trans.c: Same.
|
||
* tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
|
||
VEC instead of VARRAY.
|
||
* tree-vectorizer.h: Idem.
|
||
* tree-data-ref.c (dump_data_references,
|
||
dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
|
||
initialize_data_dependence_relation, finalize_ddr_dependent,
|
||
compute_all_dependences, find_data_references_in_loop,
|
||
compute_data_dependences_for_loop, analyze_all_data_dependences,
|
||
free_dependence_relation, free_dependence_relations,
|
||
free_data_refs): Idem.
|
||
* tree-data-ref.h (data_reference_p, subscript_p): New.
|
||
(data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
|
||
VEC instead of VARRAY.
|
||
(DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
|
||
(find_data_references_in_loop, compute_data_dependences_for_loop,
|
||
dump_ddrs, dump_dist_dir_vectors, dump_data_references,
|
||
dump_data_dependence_relations, free_dependence_relations,
|
||
free_data_refs): Adjust declaration.
|
||
(lambda_transform_legal_p): Move declaration here...
|
||
* tree-vect-analyze.c (vect_analyze_data_ref_dependences,
|
||
vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
|
||
vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
|
||
vect_analyze_data_refs): Use VEC instead of VARRAY.
|
||
* lambda.h (lambda_transform_legal_p): ...from here.
|
||
* lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
|
||
* tree-vect-transform.c (vect_update_inits_of_drs): Idem.
|
||
* Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
|
||
tree-chrec.o): Don't depend on VARRAY_H.
|
||
|
||
2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* rtl.def (Copyright): Update date.
|
||
(DEPS_LIST): Change type of the second operand to 'int'.
|
||
* target.h (Copyright): Update date.
|
||
(struct gcc_target.speculate_insn): Change type of the second parameter
|
||
to 'int'.
|
||
* lists.c (Copyright): Update date.
|
||
(alloc_DEPS_LIST): Change signature. Update reference to the second
|
||
operand of the DEPS_LIST.
|
||
(copy_DEPS_LIST_list): Update reference to the second operand of the
|
||
DEPS_LIST.
|
||
* rtl.h (Copyright): Update date.
|
||
(alloc_DEPS_LIST): Update signature.
|
||
* sched-int.h (Copyright): Update date.
|
||
(ds_t): Change typedef to 'int'.
|
||
(DEP_STATUS, BITS_PER_DEP_STATUS): Update.
|
||
|
||
2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* haifa-sched.c (Copyright): Update date.
|
||
(try_ready): Change condition to restore non-speculative pattern
|
||
of the instruction.
|
||
(process_insn_depend_be_in_spec): Code to keep probability of the
|
||
speculative dependence non-decreasing.
|
||
|
||
2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* regrename.c (replace_oldest_value_addr): Initialize a variable to
|
||
shut up the compiler.
|
||
|
||
2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
|
||
to use lib prefix for target.
|
||
($(T)libic_invalidate_array_4-200.a): Likewise.
|
||
($(T)libic_invalidate_array_4a.a): Likewise.
|
||
|
||
2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
|
||
J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* superh.opt: New file.
|
||
* sh.c (boardtype, osruntime): Remove.
|
||
* superh.h (SUBTARGET_OPTIONS): Remove.
|
||
* config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
|
||
|
||
* config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
|
||
arguments with ^ and/or [].
|
||
|
||
* config.gcc (sh-*-*): Add quoting to account for quirk of
|
||
Solaris /bin/sh.
|
||
Replace == with = in enable_incomplete_targets test.
|
||
|
||
* config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
|
||
with MASK_LITTLE_ENDIAN.
|
||
|
||
* config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
|
||
* config/sh/sh.opt: Added to some comments.
|
||
* config/sh/superh.h: Removed some chaff.
|
||
|
||
* config/sh/sh.opt: Add m4-[1234]00* options.
|
||
* config/sh/sh.c (sh_handle_option): Likewise.
|
||
* config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
|
||
(ic_invalidate_array_4-100.o): New rule.
|
||
($(T)libic_invalidate_array_4-100.a): Likewise.
|
||
(ic_invalidate_array_4-200.o): Likewise.
|
||
($(T)libic_invalidate_array_4-200.a): Likewise.
|
||
(ic_invalidate_array_4a.o): Likewise.
|
||
($(T)libic_invalidate_array_4a.a): Likewise.
|
||
* config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
|
||
* config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
|
||
m4-200*, and m4a*.
|
||
* config/sh/crt1.asm: Merged in profiling code.
|
||
* config/sh/superh.h (STARTFILE_SPEC): Override.
|
||
* config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
|
||
Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
|
||
* config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
|
||
|
||
* t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
|
||
* config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
|
||
MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
|
||
|
||
* sh.opt (mpretend-cmove): New option.
|
||
* sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
|
||
* sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
|
||
(movsicc): Add TARGET_PRETEND_CMOVE code.
|
||
|
||
2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390-protos.h (s390_hard_regno_mode_ok,
|
||
s390_class_max_nregs): New function prototypes.
|
||
* config/s390/s390.c (REGNO_PAIR_OK): New macro.
|
||
(s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
|
||
* config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
|
||
CLASS_MAX_NREGS): Macro bodies replaced by function calls.
|
||
|
||
2006-03-26 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (add_location_or_const_value_attribute): Call
|
||
tree_add_const_value_attribute if nothing else works.
|
||
(reference_to_unused): New.
|
||
(rtl_for_decl_init): Use reference_to_unused to decide whether
|
||
to output an initializer.
|
||
|
||
2006-03-27 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/26459
|
||
* config/rs6000/rs6000.md (DF reg move peephole): Prevent
|
||
peephole removing spe frob_di_df_2.
|
||
|
||
2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
|
||
(subscript_dependence_tester_1): Declared.
|
||
(print_dir_vectors, print_dist_vectors): New.
|
||
(debug_data_dependence_relation): New.
|
||
(dump_data_dependence_relation): Print more details.
|
||
(initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
|
||
(analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
|
||
(save_dist_v, save_dir_v, add_outer_distances,
|
||
build_classic_dist_vector_1): New.
|
||
(build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
|
||
Don't test for lambda_vector_lexico_pos.
|
||
(same_access_functions, add_multivariate_self_dist,
|
||
add_other_self_distances, dir_from_dist): New.
|
||
(build_classic_dir_vector): Replace implementation almost identical to
|
||
build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
|
||
dir_from_dist.
|
||
(subscript_dependence_tester_1): New.
|
||
(subscript_dependence_tester): Handle the lexicographically negative
|
||
distance vectors by recomputing the dependence relation.
|
||
(compute_affine_dependence): Remove parameter loop_nest_depth.
|
||
(compute_self_dependence): Don't call compute_subscript_distance.
|
||
(compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
|
||
Add a parameter for the loop_nest.
|
||
(find_loop_nest_1, find_loop_nest): New.
|
||
(compute_data_dependences_for_loop): Compute the loop nest, and give
|
||
up if the nest is not well formed.
|
||
* tree-data-ref.h (loop_p): New.
|
||
(struct data_dependence_relation): Replace size_vect field with
|
||
loop_nest, a vec of loops.
|
||
(DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
|
||
(DDR_LOOP_NEST): New.
|
||
(print_dir_vectors, print_dist_vectors,
|
||
debug_data_dependence_relation): Declared.
|
||
(index_in_loop_nest): New.
|
||
* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
|
||
DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
|
||
distance.
|
||
|
||
2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* simplify-rtx.c (simplify_relational_operation): Call
|
||
simplify_relational_operation_1 even if mode is VOIDmode.
|
||
|
||
2006-03-25 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
PR tree-optimization/26804
|
||
* tree.h (DECL_CALL_CLOBBERED): New macro.
|
||
(tree_decl_common): Add call_clobbered_flag.
|
||
* tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
|
||
(mark_call_clobbered): Set DECL_CALL_CLOBBERED.
|
||
(clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
|
||
(mark_non_addressable): Ditto.
|
||
* tree-ssa.c (verify_call_clobbered): New function.
|
||
(verify_alias_info): Use it.
|
||
* tree-pass.h (pass_reset_cc_flags): New prototype.
|
||
* tree-ssa-alias.c (pass_reset_cc_flags): New structure.
|
||
(reset_cc_flags): New function.
|
||
* passes.c (init_optimization_passes): Call reset_cc_flags after
|
||
initializing referenced_vars.
|
||
|
||
2006-03-25 Uros Bizjak <uros@kss-loka.si>
|
||
Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/26717
|
||
* fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
|
||
to 1.0 for non-real operands. Implement A / A optimization for
|
||
complex operands.
|
||
|
||
2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (size_cost): Correct the comment for
|
||
cost of storing fp registers.
|
||
(i386_cost): Likewise.
|
||
(i486_cost): Likewise.
|
||
(pentium_cost): Likewise.
|
||
(pentiumpro_cost): Likewise.
|
||
(k6_cost): Likewise.
|
||
(athlon_cost): Likewise.
|
||
(k8_cost): Likewise.
|
||
(pentium4_cost): Likewise.
|
||
(nocona_cost): Likewise.
|
||
(generic64_cost): Likewise.
|
||
(generic32_cost): Likewise.
|
||
|
||
2006-03-24 Denis Chertykov <denisc@overta.ru>
|
||
|
||
* config/avr/avr-protos.h (extra_constraint): Delete.
|
||
(extra_constraint_Q): New declaration.
|
||
* config/avr/constraints.md: New file.
|
||
* config/avr/avr.md: Include it.
|
||
(REG_X, REG_Y, REG_Z, REG_W): New constants.
|
||
(TMP_REGNO, ZERO_REGNO): Likewise.
|
||
(UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
|
||
* config/avr/avr.c (avr_reg_class_from_letter): Delete.
|
||
(extra_constraint): Delete.
|
||
(extra_constraint_Q): Test for memory constraint 'Q'.
|
||
* config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
|
||
(REG_CLASS_FROM_LETTER): Delete.
|
||
(CONST_OK_FOR_LETTER_P): Delete.
|
||
(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
|
||
(EXTRA_CONSTRAINT): Delete.
|
||
(TMP_REGNO): Delete.
|
||
(ZERO_REGNO): Delete.
|
||
|
||
2006-03-24 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
|
||
directly. Call mark_new_vars_to_rename slightly earlier.
|
||
|
||
2006-03-24 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (is_c_family): Understand new DWARF3 language types.
|
||
(is_cxx): Likewise.
|
||
(gen_compile_unit_die): Use new language types for Objective-C and
|
||
Objective-C++.
|
||
(dwarf2out_decl): Use is_cxx rather than testing explicitly against
|
||
DW_LANG_C_plus_plus.
|
||
|
||
PR 26793
|
||
* config/t-darwin (crt3.o): Work around bug 26840.
|
||
* config/darwin-crt3.c: Rewrite.
|
||
* config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
|
||
|
||
2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* doc/invoke.texi: Document -femit-class-debug-always
|
||
* common.opt: Add -femit-class-debug-always.
|
||
|
||
2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_decompose_address): Allow SImode for
|
||
index and base register.
|
||
(s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
|
||
print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
|
||
with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
|
||
REGNO_OK_FOR_INDEX_P.
|
||
* config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
|
||
ADDR_REGNO_P.
|
||
(REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
|
||
REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
|
||
REG_OK_FOR_BASE_P): Definitions removed.
|
||
|
||
2006-03-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/26611
|
||
* gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
|
||
non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
|
||
set yet or weren't marked as local yet.
|
||
|
||
2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* regrename.c (scan_rtx_address): Initialize a variable to shut up
|
||
the compiler.
|
||
|
||
2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
|
||
(rs6000_legitimate_small_data_p): Delete.
|
||
* config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
|
||
(rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
|
||
and make static. Add forward declaration. Update uses.
|
||
(rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
|
||
of offsettable_memref_p.
|
||
* config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
|
||
Use rs6000_offsettable_memref_p instead of a less accurate predicate.
|
||
|
||
2006-03-24 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
|
||
around bug in immediate-use iterator.
|
||
|
||
2006-03-24 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/26607
|
||
* config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
|
||
or __LITTLE_ENDIAN__.
|
||
|
||
2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
|
||
* config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
|
||
* config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
|
||
* config/sh/sh.opt (mdiv=): Amend description.
|
||
* config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
|
||
(TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
|
||
(sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
|
||
SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
|
||
(OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
|
||
Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
|
||
* config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
|
||
(udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
|
||
TARGET_DIVIDE_CALL_FP.
|
||
|
||
2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* haifa-sched.c (choose_ready): Fix type of the local variable.
|
||
Move local variables. Add comment.
|
||
(check_reg_live): Change signature. Make callable from debugger.
|
||
* sched-int.h (check_reg_live): Update signature.
|
||
* sched-ebb.c (check_reg_live): Update parameters.
|
||
* sched-rgn.c (check_reg_live): Ditto.
|
||
(region_head_or_leaf_p): Check pointer before dereferencing.
|
||
* config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
|
||
before reload on optimization levels below 1.
|
||
|
||
2006-03-23 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
|
||
tls symbols.
|
||
|
||
PR target/26347
|
||
* config/alpha/predicates.md (local_symbolic_operand): Reject
|
||
weak symbols.
|
||
|
||
2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/26795
|
||
* tree-ssa-pre.c (create_value_expr_from): Don't reject
|
||
expressions which have overflowed constants.
|
||
|
||
2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
|
||
|
||
2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* cfgloopmanip.c (create_loop_notes): Removed.
|
||
* final.c (final_scan_insn): Do not handle loop notes.
|
||
* jump.c (squeeze_notes): Ditto.
|
||
* cfglayout.c (skip_insns_after_block,
|
||
duplicate_insn_chain): Ditto.
|
||
* cfgcleanup.c (rest_of_handle_jump2): Do not call
|
||
create_loop_notes.
|
||
* cfgloop.h (create_loop_notes): Declaration removed.
|
||
|
||
2006-03-23 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* varasm.c (output_constant_pool): Restore fnname and fndecl
|
||
arguments.
|
||
(assemble_start_function): Adjust call accordingly.
|
||
(assemble_end_function): Likewise.
|
||
|
||
2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR mudflap/26789
|
||
* tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
|
||
|
||
PR mudflap/26790
|
||
* tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
|
||
|
||
2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
PR driver/22600
|
||
* system.h (ICE_EXIT_CODE): New macro.
|
||
* diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
|
||
(diagnostic_action_after_output): Likewise.
|
||
* gcc.c (fatal_ice): New function.
|
||
(execute): Use it instead of fatal.
|
||
(fancy_abort): Likewise.
|
||
* doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
|
||
|
||
2006-03-22 Jeff Law <law@redhat.com>
|
||
|
||
* loop-unroll.c (analyze_iv_to_split_insn): Handle
|
||
iv_analyze_result returning false.
|
||
|
||
2006-03-22 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
|
||
|
||
2006-03-22 Richard Henderson <rth@redhat.com>
|
||
|
||
PR middle-end/26084
|
||
* except.c (duplicate_eh_regions_0): New.
|
||
(duplicate_eh_region_1): Duplicate the children of the node as
|
||
well as the node itself. Link them up properly.
|
||
(duplicate_eh_region_2): Merge into ...
|
||
(duplicate_eh_regions): ... here. Take copy_region argument, and
|
||
copy only a sub-tree if asked. Simplify copying and fixup.
|
||
(eh_region_outer_p): New.
|
||
* except.h (duplicate_eh_regions): Update decl.
|
||
(eh_region_outer_p): Declare.
|
||
* omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
|
||
(lower_omp_master): Likewise.
|
||
(lower_omp_ordered): Likewise.
|
||
* tree-cfg.c (struct move_stmt_d): Add new_label_map.
|
||
(move_stmt_r): Use it to remap labels. Handle recursion vs
|
||
remap_decls_p properly.
|
||
(move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
|
||
(find_outermost_region_in_block): New.
|
||
(new_label_mapper): New.
|
||
(move_sese_region_to_fn): Copy eh information to the new function
|
||
properly.
|
||
* tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
|
||
argument.
|
||
* tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
|
||
number.
|
||
|
||
2006-03-22 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/md.texi (-mshared): Mention that -mshared code can be linked
|
||
into shared libraries.
|
||
|
||
2006-03-22 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/md.texi: Refer to i386/constraints.md instead of
|
||
i386/predicates.md.
|
||
* config/i386/constraints.md: New file, extracted from...
|
||
* config/i386/predicates.md: ...here.
|
||
* config/i386/i386.md: Include constraints.md.
|
||
|
||
2006-03-21 Jason Merrill <jason@redhat.com>
|
||
|
||
* builtins.c (expand_builtin_fork_or_exec): Fix pasto.
|
||
|
||
PR middle-end/20297
|
||
* expr.c (init_block_move_fn): Force default visibility.
|
||
(init_block_clear_fn): Likewise.
|
||
* builtins.c (expand_builtin_fork_or_exec): Likewise.
|
||
* targhooks.c (default_external_stack_protect_fail): Likewise.
|
||
|
||
2006-03-21 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/predicates.md (const_call_insn_operand): Allow direct
|
||
calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
|
||
* config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
|
||
Use TARGET_OLDABI instead of !TARGET_NEWABI.
|
||
(loadgp): Use mips_current_loadgp_style.
|
||
(loadgp_noshared): New pattern.
|
||
(sibcall_internal): Use MIPS_CALL.
|
||
(sibcall_value_internal): Likewise.
|
||
(sibcall_value_multiple_internal): Likewise.
|
||
(call_internal): Likewise.
|
||
(call_value_internal): Likewise.
|
||
(call_value_multiple_internal): Likewise.
|
||
(call_split): Use MIPS_CALL and add an 'S' constraint.
|
||
(call_value_split): Likewise.
|
||
(call_value_multiple_split): Likewise.
|
||
* config/mips/mips.opt (-mabicalls): Tweak docstring.
|
||
(-mshared): New option.
|
||
* config/mips/mips-protos.h (mips_loadgp_style): New enum.
|
||
(mips_current_loadgp_style): Declare.
|
||
* config/mips/mips.c (mips_classify_symbol): Avoid using
|
||
SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
|
||
rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
|
||
TARGET_ABSOLUTE_ABICALLS.
|
||
(override_options): Adjust comments. Improve the warning that is
|
||
issued when -mabicalls and -G are used together.
|
||
(mips_file_start): Remove comment.
|
||
(mips_current_loadgp_style): New function.
|
||
(mips_gnu_local_gp): New variable.
|
||
(mips_emit_loadgp): Use mips_current_loadgp_style. Handle
|
||
LOADGP_ABSOLUTE.
|
||
(mips_output_function_prologue): Use mips_current_laodgp_style.
|
||
(mips_expand_prologue): Call mips_emit_loadgp before emitting
|
||
the cprestore instruction.
|
||
(mips_extra_live_on_entry): Fix reversed test. Don't make $25
|
||
live for TARGET_ABSOLUTE_ABICALLS.
|
||
* config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
|
||
(ASM_SPEC): Pass down -mshared and -mno-shared.
|
||
(MIPS_CALL): New macro.
|
||
* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
|
||
definition.
|
||
* doc/invoke.texi (-mabicalls): Update documentation.
|
||
(-mshared): Document.
|
||
|
||
2006-03-21 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/ia64/unwind-hpux.c: New file.
|
||
* config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
|
||
|
||
2006-03-21 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR libgomp/26384
|
||
* config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
|
||
|
||
2006-03-21 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
|
||
type conversions of a VR_VARYING source to a wider type.
|
||
|
||
2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
|
||
tm_file on Solaris 10 and later.
|
||
(sparc64-*-solaris2*): Likewise.
|
||
(sparc-*-solaris2*): Likewise.
|
||
* config/sol26.h: Rename to config/sol2-6.h.
|
||
* config/sol2-10.h: New file.
|
||
|
||
2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/26781
|
||
* tree-ssa-pre.c (create_component_ref_by_pieces):
|
||
Handle STRING_CST.
|
||
|
||
2006-03-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/26690
|
||
* tree.c (get_callee_fndecl): If CALL is error_mark_node,
|
||
return it immediately.
|
||
|
||
2006-03-21 Michael Matz <matz@suse.de>
|
||
|
||
* genautomata.c (<struct state>, num_out_arcs, presence_signature):
|
||
New members.
|
||
(remove_arc, add_arc): Update num_out_arcs member.
|
||
(set_out_arc_insns_equiv_num): Returns nothing instead of number
|
||
of out arcs.
|
||
(cache_presence): New function.
|
||
(compare_states_for_equiv): New function.
|
||
(state_is_differed): Don't take number of outargs, adjust callers.
|
||
Use new invariant for speeding up.
|
||
(init_equiv_class): Create initial classes based on sorted
|
||
input.
|
||
(partition_equiv_class): Don't track out_arcs_num.
|
||
(evaluate_equiv_classes): Call cache_presence on all states and
|
||
sort them.
|
||
|
||
2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
|
||
* config/bfin/bfin.c (bfin_dsp_memref_p): New function.
|
||
(bfin_valid_reg_p): Test for pseudos explicitly and use only
|
||
REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
|
||
callers changed.
|
||
* config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
|
||
(IREG_P, P_REGNO_P, I_REGNO_P): New macros.
|
||
(enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
|
||
(BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
|
||
REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
|
||
macros.
|
||
(IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
|
||
REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
|
||
(REGNO_REG_CLASS): ARGP is in PREGS.
|
||
* config/bfin/bfin.md (movhi_insn): Allow for addresses containing
|
||
IREGS.
|
||
(zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
|
||
to deal with those addresses.
|
||
* addresses.h: New file.
|
||
* caller-save.c: Include "addresses.h".
|
||
(init_caller_save): Use new base_reg_class function.
|
||
* rtl-factoring.c: Include "addresses.h".
|
||
(recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
|
||
* recog.c: Include "addresses.h".
|
||
(preprocess_constraints): Use new base_reg_class function.
|
||
* regrename.c: Include "addresses.h".
|
||
(scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
|
||
functions. Keep track of a new var INDEX_CODE to compute valid
|
||
classes.
|
||
(replace_oldest_value_addr): Likewise.
|
||
(replace_oldest_value_mem): Use base_reg_class.
|
||
* reload.c: Include "addresses.h".
|
||
(REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
|
||
(find_reloads): Use new base_reg_class function.
|
||
(find_reloads_address): Likewise; also use regno_ok_for_base_p.
|
||
(find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
|
||
all callers and prototype changed.
|
||
* reload1.c: Include "addresses.h".
|
||
(maybe_fix_stack_asms): Use base_reg_class.
|
||
* regclass.c: Include "addresses.h".
|
||
(ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
|
||
(init_reg_autoinc): Use new base_reg_class function.
|
||
(record_reg_classes): Likewise.
|
||
(record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
|
||
OUTER_CODE and INDEX_CODE. All callers and prototype changed.
|
||
Use new args to compute necessary class.
|
||
|
||
* Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
|
||
regrename.o, rtl-factoring.o): Update dependencies.
|
||
* doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
|
||
(REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
|
||
(REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
|
||
REG_OK_FOR_INDEX_P): Delete documentation.
|
||
|
||
2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
|
||
|
||
* config.gcc (sparc-*-solaris2*): Change the default CPU setting
|
||
from V7 to V9 for Solaris 7 and above.
|
||
|
||
2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
|
||
|
||
* doc/invoke.texi: Document new flag -fargument-noalias-anything.
|
||
* tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
|
||
argument pointers may not alias any other storage.
|
||
* common.opt: Define option -fargument-noalias-anything.
|
||
* tree-ssa-structalias.c (intra_create_variable_infos): Fortran
|
||
alias semantics is specified by flag_argument_noalias > 2.
|
||
|
||
2006-03-20 Jeff Law <law@redhat.com>
|
||
|
||
* tree-pass.h (pass_phi_only_copy_prop): Delete.
|
||
(pass_phi_only_cprop): Declare.
|
||
* passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
|
||
with phi_only_cprop
|
||
* tree-ssa-dom.c (degenerate_phi_result): New function.
|
||
(remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
|
||
(get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
|
||
(eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
|
||
(eliminate_degenerate_phis): Likewise.
|
||
(pass_phi_only_cprop): New pass descriptor.
|
||
* tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
|
||
support code. Callers updated.
|
||
(execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
|
||
(store_copy_prop): Likewise.
|
||
(do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
|
||
|
||
2006-03-20 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/21764
|
||
* c-pragma.c (visstack): Move out of handle_pragma_visibility.
|
||
(push_visibility, pop_visibility): Likewise.
|
||
* c-pragma.h: Declare them.
|
||
|
||
2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
|
||
|
||
* config/sh/sh.c (find_regmode_weight): Change the type of the first
|
||
parameter and use get_ebb_head_tail.
|
||
(sh_md_init_global): Adjust uses of find_regmode_weight.
|
||
|
||
2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* function.h (struct function) <x_tail_recursion_reentry>:
|
||
Rename to x_stack_check_probe_note.
|
||
(tail_recursion_reentry): Rename to stack_check_probe_note.
|
||
* function.c: Replace tail_recursion_reentry with
|
||
stack_check_probe_note everywhere.
|
||
(expand_function_start): Only emit a note for
|
||
stack_check_probe_note with -fstack-protect.
|
||
* stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
|
||
|
||
* emit-rtl.c (remove_unnecessary_notes): Remove.
|
||
(pass_remove_unnecessary_notes): Remove.
|
||
* rtl.h (remove_unnecessary_notes): Remove prototype.
|
||
* final.c (final_start_function): Don't call remove_unnecessary_notes.
|
||
* tree-pass.h (pass_remove_unnecessary_notes): Remove.
|
||
* passes.c (pass_remove_unnecessary_notes): Don't run it.
|
||
|
||
2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/26629
|
||
* tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
|
||
(valid_in_set): Handle ARRAY_REF.
|
||
Change "if min_variant or VH" to asserts.
|
||
(create_component_ref_by_pieces): Handle ARRAY_REF.
|
||
(create_expression_by_pieces): Likewise.
|
||
(can_PRE_operation): ARRAY_REFs can now be PRE'd.
|
||
|
||
2006-03-20 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* genpreds.c (write_insn_extra_address_constraint): Argument `c'
|
||
is operand of switch, not str[0].
|
||
|
||
2006-03-20 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_handle_option): Use
|
||
TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
|
||
|
||
2006-03-19 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* genpreds.c (write_tm_preds_h): Add semicolon and newline at
|
||
end of insn_extra_address_constraint declaration.
|
||
|
||
2006-03-19 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
|
||
(no-sum-in-toc): Same.
|
||
* config/rs6000/rs6000.c (rs6000_handle_option): Use new
|
||
variables.
|
||
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
|
||
NO_FP_IN_TOC for -fPIC instead of mask.
|
||
|
||
* config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
|
||
(BOOT_LDFLAGS): Delete.
|
||
(LDFLAGS): Delete.
|
||
* config/rs6000/t-aix52: Same.
|
||
|
||
* config/rs6000/rs6000.md (store_multiple_power): Delete.
|
||
(stmsi[345678]_power): New.
|
||
|
||
2006-03-17 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* config/ia64/ia64.opt: Add empty line to end of file.
|
||
|
||
2006-03-17 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/26721
|
||
* builtins.c (get_pointer_alignment): For component style references
|
||
adjust alignment to the component type alignment. Make sure
|
||
to adjust alignment for component access of constants.
|
||
|
||
2006-03-17 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.md (strlensi): Emit barrier after
|
||
unconditional jump.
|
||
|
||
2006-03-17 Paul Brook <paul@codesourcery.com>
|
||
|
||
* doc/install.texi: Docuemnt --with-mode.
|
||
* config.gcc: Add --with-mode for arm*-*-*.
|
||
* config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
|
||
|
||
2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* sh.c (max_labelno_before_reorg): New variable.
|
||
(sh_reorg): Initialize it.
|
||
(find_barrier): Check max_labelno_before_reorg before using
|
||
label_to_alignment. Take length of explicit alignment insns
|
||
into account. When seeing a UNSPECV_CONST_END, return it.
|
||
|
||
* sh.c (fixup_mova): Set mode of affected label to QImode.
|
||
(untangle_mova): New function.
|
||
(find_barrier): Use it. Check mode of label before decrementing
|
||
num_mova.
|
||
(sh_reorg): Likewise.
|
||
Set mode of all insns back to VOIDmode.
|
||
|
||
* sh.c (MOVA_LABELREF): New macro.
|
||
(mova_p, fixup_mova, sh_reorg): Use it.
|
||
(find_barrier, sh_reorg): Don't count num_mova back to 0 unless
|
||
ADDR_DIFF_VEC matches mova.
|
||
|
||
2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
|
||
with ATTRIBUTE_UNUSED.
|
||
|
||
2006-03-17 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
|
||
pointer, instead of assuming it is possible to derive the
|
||
correct args size from a call insn.
|
||
|
||
2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* rtl.h (CONST_INT_P): Define.
|
||
* config/vax/vax.c (print_operand_address): Use CONST_INT_P()
|
||
instead of GET_CODE(x) == CONST_INT.
|
||
(vax_rtx_costs): Likewise.
|
||
(vax_output_int_move): Likewise.
|
||
(vax_output_int_add): Likewise.
|
||
(legitimate_constant_address_p): Likewise.
|
||
(index_term_p): Likewise.
|
||
* config/vax/vax.h (PRINT_OPERAND): Likewise.
|
||
* config/vax/vax.md (and<mode>3): Likewise.
|
||
(ashrsi3): Likewise.
|
||
(extv): Likewise.
|
||
(movstricthi): Likewise.
|
||
(movstrictqi): Likewise.
|
||
(rotrsi3): Likewise.
|
||
(five unnamed insns): Likewise.
|
||
|
||
2006-03-16 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* doc/tm.texi (SDB and DWARF): Add extra parameter to
|
||
ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
|
||
* dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
|
||
* dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
|
||
Pass to ASM_OUTPUT_DWARF_OFFSET.
|
||
* dwarf2out.c (debug_frame_section): New.
|
||
(output_call_frame_info): Use debug_frame_section. Pass it to
|
||
dw2_asm_output_offset.
|
||
(output_die): Pass appropriate section to dw2_asm_output_offset.
|
||
(output_compilation_unit_header): Likewise.
|
||
(output_pubnames): Likewise.
|
||
(output_aranges): Likewise.
|
||
(enum dw_val_class): Break dw_val_class_lbl_offset into
|
||
dw_val_class_lineptr and dw_val_class_macptr.
|
||
(add_AT_lbl_offset): Delete.
|
||
(add_AT_lineptr): New.
|
||
(add_AT_macptr): New.
|
||
(AT_lbl): Expect a lineptr or macptr.
|
||
(print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
|
||
(attr_checksum): Likewise.
|
||
(same_dw_val_p): Likewise.
|
||
(size_of_die): Likewise.
|
||
(value_format): Likewise.
|
||
(output_die): Likewise.
|
||
(dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
|
||
add_AT_lbl_offset.
|
||
* config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
|
||
* config/i386/i386.c (x86_file_start): Call darwin_file_start.
|
||
* config/darwin-protos.h (darwin_file_start): New.
|
||
(darwin_asm_output_dwarf_offset): New.
|
||
* config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
|
||
* config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
|
||
darwin_file_start.
|
||
* config/darwin.c (darwin_emit_unwind_label): Don't output label
|
||
if not EH section; simplify.
|
||
(darwin_file_start): New.
|
||
(darwin_asm_output_dwarf_offset): New.
|
||
* config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
|
||
mark as 'debug'.
|
||
(DEBUG_INFO_SECTION): Likewise.
|
||
(DEBUG_ABBREV_SECTION): Likewise.
|
||
(DEBUG_ARANGES_SECTION): Likewise.
|
||
(DEBUG_MACINFO_SECTION): Likewise.
|
||
(DEBUG_LINE_SECTION): Likewise.
|
||
(DEBUG_LOC_SECTION): Likewise.
|
||
(DEBUG_PUBNAMES_SECTION): Likewise.
|
||
(DEBUG_STR_SECTION): Likewise.
|
||
(DEBUG_RANGES_SECTION): Likewise.
|
||
(FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
|
||
(ASM_OUTPUT_DWARF_OFFSET): New.
|
||
|
||
2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* config.gcc (tm_defines): Always add to previous value rather
|
||
than replacing it.
|
||
|
||
2006-03-16 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/predicates.md (splittable_const_int_operand): New,
|
||
split from move_operand.
|
||
(splittable_symbolic_operand): New.
|
||
(move_operand): Add commentary. Use splittable_const_int_operand.
|
||
Inline mips_atomic_symbolic_constant_p.
|
||
* config/mips/mips.md: Add combine splitters for handling moves
|
||
of splittable_const_int_operands and splittable_symbolic_operands.
|
||
* config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
|
||
(mips_split_symbol): Declare.
|
||
(mips_move_integer): Declare.
|
||
* config/mips/mips.c (mips_split_p): Make global.
|
||
(TARGET_MIN_ANCHOR_OFFSET): Override default.
|
||
(TARGET_MAX_ANCHOR_OFFSET): Likewise.
|
||
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
|
||
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
|
||
(mips_offset_within_object_p): Handle block symbols.
|
||
(mips_atomic_symbolic_constant_p): Delete.
|
||
(mips_cannot_force_const_mem): Return false for constants that
|
||
mips_legitimize_move can handle.
|
||
(mips_use_blocks_for_constant_p): New function.
|
||
(mips_split_symbol): Make global.
|
||
(mips_move_integer): Likewise. Add a temporary register argument.
|
||
(mips_legitimize_const_move): Use splittable_const_int_operand and
|
||
splittable_symbolic_operand.
|
||
(mips_use_anchors_for_symbol_p): New function.
|
||
* config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
|
||
(mips_split_p): Declare.
|
||
|
||
2006-03-16 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config.gcc (mips64*-*-linux*): Keep existing tm_defines.
|
||
(mips*-*-linux*): Likewise.
|
||
|
||
2006-03-16 Roger Sayle <roger@eyesopen.com>
|
||
Daniel Speyer <dspeyer@wam.umd.edu>
|
||
|
||
PR middle-end/18259
|
||
* tree-dump.c (dump_real): New function.
|
||
(dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
|
||
* Makefile.in (REAL_H): New macro for dependencies on real.h.
|
||
(tree-dump.o): Add $(REAL_H) to the dependencies.
|
||
|
||
2006-03-16 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/21781
|
||
* real.c (real_from_string): If the mantissa is zero, don't bother
|
||
parsing the exponent as the result should always be zero.
|
||
|
||
2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
|
||
|
||
2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* config/ia64/ia64.c (stops_p): Added explicit initialization.
|
||
(ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
|
||
ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
|
||
ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
|
||
ia64_sched_finish_global): New static functions to implement
|
||
hooks from gcc_target.sched.
|
||
(spec_check_no, max_uid, pending_data_specs): New static variables.
|
||
(ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
|
||
ia64_spec_check_src_p): New static functions.
|
||
(ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
|
||
(TARGET_SCHED_ADJUST_COST): Removed.
|
||
(TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
|
||
TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
|
||
TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
|
||
TARGET_SCHED_GEN_CHECK,
|
||
TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
|
||
TARGET_SCHED_SET_SCHED_FLAGS): New macros.
|
||
(update_set_flags, group_barrier_needed, set_src_needs_barrier):
|
||
Fixed to handle speculation checks.
|
||
(rtx_needs_barrier): Fixed to handle speculative loads and
|
||
their checks.
|
||
(ia64_variable_issue): Added code to count speculative loads and their
|
||
checks.
|
||
(ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
|
||
speculative loads.
|
||
(enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
|
||
New enumerations.
|
||
(SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
|
||
New constants.
|
||
(ia64_ld_address_bypass_p): Fixed to handle speculative loads.
|
||
(ia64_reorg): Reset stops_p to NULL after it is freed.
|
||
* config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
|
||
UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
|
||
(itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
|
||
chk_a.
|
||
(data_speculative, control_speculative, check_load): New attributes.
|
||
(mov<mode>_advanced, mov<mode>_speculative,
|
||
mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
|
||
zero_extend<mode>di2_speculative,
|
||
zero_extend<mode>di2_speculative_advanced): New patterns for
|
||
data and control speculative loads.
|
||
(mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
|
||
check loads.
|
||
(advanced_load_check_clr_<mode>, speculation_check_<mode>):
|
||
New pattern for data and control speculation checks.
|
||
(MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
|
||
ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
|
||
reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
|
||
Auxiliary definitions for the patterns.
|
||
* config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
|
||
1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
|
||
constraints.
|
||
(1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
|
||
for speculation.
|
||
(1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
|
||
* config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
|
||
2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
|
||
New resource constraints.
|
||
(2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
|
||
for speculation.
|
||
(2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
|
||
* config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
|
||
msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
|
||
msched-in-control-spec, msched-ldc, msched-control-ldc,
|
||
msched-spec-verbose, msched-prefer-non-data-spec-insns,
|
||
msched-prefer-non-control-spec-insns,
|
||
msched-count-spec-in-critical-path): New flags to tune speculative
|
||
scheduling.
|
||
* doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
|
||
msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
|
||
msched-in-control-spec, msched-ldc, msched-control-ldc,
|
||
msched-spec-verbose, msched-prefer-non-data-spec-insns,
|
||
msched-prefer-non-control-spec-insns,
|
||
msched-count-spec-in-critical-path): Document new flags.
|
||
|
||
2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* target.h (struct spec_info_def): New opaque declaration.
|
||
(struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
|
||
speculate_insn, needs_block_p, gen_check,
|
||
first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
|
||
* target-def.h (TARGET_SCHED_ADJUST_COST_2,
|
||
TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
|
||
TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
|
||
TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
|
||
TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
|
||
gcc_target.sched.
|
||
(TARGET_SCHED): Use new macros.
|
||
* rtl.h (copy_DEPS_LIST_list): New prototype.
|
||
* sched-int.h (struct sched_info): Change signature of new_ready field,
|
||
adjust all initializations. New fields: add_remove_insn,
|
||
begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
|
||
region_head_or_leaf_p.
|
||
(struct spec_info_def): New structure declaration.
|
||
(spec_info_t): New typedef.
|
||
(struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
|
||
recovery_block, orig_pat.
|
||
(glat_start, glat_end): New variables declaraions.
|
||
(TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
|
||
New access macros.
|
||
(enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
|
||
DETACH_LIFE_INFO, USE_GLAT.
|
||
(enum SPEC_SCHED_FLAGS): New enumeration.
|
||
(NOTE_NOTE_BB_P): New macro.
|
||
(extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
|
||
attach_life_info, debug_spec_status, check_reg_live): New functions.
|
||
(get_block_head_tail): Change signature to get_ebb_head_tail, adjust
|
||
all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
|
||
sched-ebb.c
|
||
(get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
|
||
* ddg.c (get_block_head_tail): Adjust all uses.
|
||
* modulo-sched.c (get_block_head_tail): Adjust all uses.
|
||
(sms_sched_info): Initialize new fields.
|
||
(contributes_to_priority): Removed.
|
||
* haifa-sched.c (params.h): New include.
|
||
(get_block_head_tail): Adjust all uses.
|
||
(ISSUE_POINTS): New macro.
|
||
(glat_start, glat_end): New global variables.
|
||
(spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
|
||
nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
|
||
old_last_basic_block, before_recovery, current_sched_info_var,
|
||
rgn_n_insns, luid): New static variables.
|
||
(insn_cost1): New function. Move logic from insn_cost to here.
|
||
(find_insn_reg_weight1): New function. Move logic from
|
||
find_insn_reg_weight to here.
|
||
(reemit_notes, move_insn, max_issue): Change signature.
|
||
(move_insn1): Removed.
|
||
(extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
|
||
extend_bb): New static functions to support extension of scheduler's
|
||
data structures.
|
||
(generate_recovery_code, process_insn_depend_be_in_spec,
|
||
begin_speculative_block, add_to_speculative_block,
|
||
init_before_recovery, create_recovery_block, create_check_block_twin,
|
||
fix_recovery_deps): New static functions to support
|
||
generation of recovery code.
|
||
(fix_jump_move, find_fallthru_edge, dump_new_block_header,
|
||
restore_bb_notes, move_block_after_check, move_succs): New static
|
||
functions to support ebb scheduling.
|
||
(init_glat, init_glat1, attach_life_info1, free_glat): New static
|
||
functions to support handling of register live information.
|
||
(associate_line_notes_with_blocks, change_pattern, speculate_insn,
|
||
sched_remove_insn, clear_priorities, calc_priorities, bb_note,
|
||
add_jump_dependencies): New static functions.
|
||
(check_cfg, has_edge_p, check_sched_flags): New static functions for
|
||
consistancy checking.
|
||
(debug_spec_status): New function to call from debugger.
|
||
(priority): Added code to handle speculation checks.
|
||
(rank_for_schedule): Added code to distinguish speculative instructions.
|
||
(schedule_insn): Added code to handle speculation checks.
|
||
(unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
|
||
Fixed to handle ebbs.
|
||
(move_insn): Added code to handle ebb scheduling.
|
||
(max_issue): Added code to use ISSUE_POINTS of instructions.
|
||
(choose_ready): Added code to choose between speculative and
|
||
non-speculative instructions.
|
||
(schedule_block): Added code to handle ebb scheduling and scheduling of
|
||
speculative instructions.
|
||
(sched_init): Initialize new variables.
|
||
(sched_finish): Free new variables. Print statistics.
|
||
(try_ready): Added code to handle speculative instructions.
|
||
* lists.c (copy_DEPS_LIST_list): New function.
|
||
* sched-deps.c (extend_dependency_caches): New function. Move logic
|
||
from create_dependency_caches to here.
|
||
(get_dep_weak, ds_merge): Make global.
|
||
* genattr.c (main): Code to output prototype for
|
||
dfa_clear_single_insn_cache.
|
||
* genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
|
||
(output_dfa_clean_insn_cache_func): Code to output
|
||
dfa_clear_single_insn_cache function.
|
||
* sched-ebb.c (target_n_insns): Remove. Adjust all users to use
|
||
n_insns.
|
||
(can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
|
||
Removed.
|
||
(n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
|
||
New static variables.
|
||
(begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
|
||
fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
|
||
struct sched_info.
|
||
(ebb_sched_info): Initialize new fields.
|
||
(get_block_head_tail): Adjust all uses.
|
||
(compute_jump_reg_dependencies): Fixed to use glat_start.
|
||
(schedule_ebb): Code to remove unreachable last block.
|
||
(schedule_ebbs): Added code to update register live information.
|
||
* sched-rgn.c (region_sched_info): Initialize new fields.
|
||
(get_block_head_tail): Adjust all uses.
|
||
(last_was_jump): Removed. Adjust users.
|
||
(begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
|
||
add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
|
||
Implement new hooks.
|
||
(check_dead_notes1): New static function.
|
||
(struct region): New fields: dont_calc_deps, has_real_ebb.
|
||
(RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
|
||
(BB_TO_BLOCK): Fixed to handle EBBs.
|
||
(EBB_FIRST_BB, EBB_LAST_BB): New macros.
|
||
(ebb_head): New static variable.
|
||
(debug_regions, contributes_to_priority): Fixed to handle EBBs.
|
||
(find_single_block_regions, find_rgns, find_more_rgns): Initialize
|
||
new fields.
|
||
(compute_dom_prob_ps): New assertion.
|
||
(check_live_1, update_live_1): Fixed to work with glat_start instead of
|
||
global_live_at_start.
|
||
(init_ready_list): New assertions.
|
||
(can_schedule_ready_p): Split update code to begin_schedule_ready.
|
||
(new_ready): Add support for BEGIN_CONTROL speculation.
|
||
(schedule_insns): Fixed code that updates register live information
|
||
to handle EBBs.
|
||
(schedule_region): Fixed to handle EBBs.
|
||
(init_regions): Use extend_regions and check_dead_notes1.
|
||
* params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
|
||
PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
|
||
* doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
|
||
TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
|
||
TARGET_SCHED_GEN_CHECK,
|
||
TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
|
||
TARGET_SCHED_SET_SCHED_FLAGS): Document.
|
||
* doc/invoke.texi (max-sched-insn-conflict-delay,
|
||
sched-spec-prob-cutoff): Document.
|
||
|
||
2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
|
||
inter_tick, queue_index.
|
||
(struct sched_info): Change signature of init_ready_list field.
|
||
Adjust all initializations.
|
||
(RESOLVED_DEPS): New access macro.
|
||
(ready_add): Remove prototype.
|
||
(try_ready): Add prototype.
|
||
* sched-rgn.c (init_ready_list): Use try_ready.
|
||
(schedule_region): Initialize
|
||
current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
|
||
* sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
|
||
(init_ready_list): Use try_ready.
|
||
(schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
|
||
* lists.c (remove_list_elem): Remove `static'.
|
||
(remove_free_INSN_LIST_elem): New function.
|
||
* rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
|
||
* haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
|
||
(INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
|
||
New constants.
|
||
(readyp): New variable.
|
||
(queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
|
||
change_queue_index, resolve_dep): New static functions.
|
||
(try_ready): New function. Adjust callers in sched-rgn.c and
|
||
sched-ebb.c to use it instead of ready_add.
|
||
(clock_var): Move at the begining of file.
|
||
(rank_for_schedule): Fix typo.
|
||
(queue_insn): Add assertion. Handle QUEUE_INDEX.
|
||
(ready_lastpos): Enforce assertion.
|
||
(ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
|
||
update all callers.
|
||
(ready_remove_first, ready_remove): Handle QUEUE_INDEX.
|
||
(schedule_insn): Rewrite to use try_ready and resolve_dep.
|
||
(queue_to_ready): Use free_INSN_LIST_list.
|
||
(early_queue_to_ready): Fix typo.
|
||
(schedule_block): Init readyp. Move init_ready_list call after the
|
||
initialization of clock_var. Fix error in rejecting insn by
|
||
targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
|
||
that previously corrected INSN_TICKs. Add code for handling
|
||
QUEUE_INDEX.
|
||
(set_priorities): Fix typo.
|
||
(sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
|
||
Clarify comment and code that keeps current_sched_info->next_tail
|
||
non-null.
|
||
|
||
2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
|
||
* sched-rgn.c (extend_rgns): New static function.
|
||
(find_rgns): Use it.
|
||
(gather_region_statistics, print_region_statistics): New static
|
||
functions.
|
||
* params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
|
||
* doc/invoke.texi (max-sched-extend-regions-iters): Document.
|
||
|
||
2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
|
||
Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
* ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
|
||
* lists.c (unused_deps_list): New variable.
|
||
(free_list): Add assertions to verify the proper distinguishing
|
||
between INSN_LISTs and DEPS_LISTs.
|
||
(find_list_elem, remove_list_elem, remove_list_node): New static
|
||
functions.
|
||
(alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
|
||
remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
|
||
remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
|
||
(alloc_INSN_LIST): Assert that the list we're working on is indeed
|
||
an INSN_LIST.
|
||
(free_INSN_LIST_node): Likewise.
|
||
* modulo-sched.c (current_sched_info): Initialize flags field.
|
||
* reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
|
||
* rtl.def (DEPS_LIST): Define.
|
||
* rtl.h: Declare new functions from lists.c.
|
||
* sched-deps.c (spec_dependency_cache): New static variable.
|
||
(maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
|
||
(add_dependence): Change return type to void. Move the logic to ...
|
||
(add_or_update_back_dep_1): ... here. Handle speculative dependencies.
|
||
(delete_all_dependences): Add comment about forward_dependency_cache.
|
||
Handle spec_dependency_cache. Handle DEPS_LISTs.
|
||
(fixup_sched_groups): Clarify the change of priority of output
|
||
and anti dependencies.
|
||
(sched_analyze_2): Adjust add_dependence calls to create data
|
||
speculative dependence.
|
||
(add_forward_dependence): Renamed to add_forw_dep, change prototype.
|
||
Adjust all callers. Handle DEPS_LISTS.
|
||
(compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
|
||
presence of speculation.
|
||
(init_dependency_caches, free_dependency_caches):
|
||
Handle spec_dependency_cache.
|
||
(adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
|
||
estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
|
||
New static functions.
|
||
(add_or_update_back_dep, add_or_update_back_forw_dep,
|
||
add_back_forw_dep, delete_back_forw_dep): New functions.
|
||
* sched-int.h (ds_t, dw_t): New typedefs.
|
||
(struct sched_info): Add new field flags.
|
||
(struct haifa_insn_data): Add new bitfield has_internal_dep.
|
||
Prototype new sched-deps.c functions.
|
||
(HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
|
||
(BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
|
||
MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
|
||
BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
|
||
SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
|
||
SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
|
||
New constants.
|
||
(enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
|
||
New enums.
|
||
* sched-rgn.c (current_sched_info): Initialize flags field.
|
||
(schedule_insns): Initialize current_sched_info before the sched_init
|
||
call.
|
||
* sched-ebb.c (current_sched_info): Initialize flags field.
|
||
(add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
|
||
Call add_or_update_back_dep instead of add_dependence.
|
||
Create control speculative dependencies.
|
||
(schedule_insns): Initialize current_sched_info before the sched_init
|
||
call.
|
||
|
||
2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
|
||
fs->signal_frame.
|
||
(sh_fallback_frame_state): Likewise.
|
||
|
||
2006-03-15 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
|
||
Do switch on default_use_cxa_atexit.
|
||
(powerpc*-*-darwin*): Build crt2.o on powerpc.
|
||
* config/darwin-crt3.o: New.
|
||
* config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
|
||
to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
|
||
(STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
|
||
OS version.
|
||
* config/rs6000/t-darwin: Move crt2.o building to here.
|
||
* config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
|
||
Mac OS version for using __cxa_get_exception_ptr. Don't test versions
|
||
of __cxa_atexit.
|
||
|
||
2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/vax/vax.c (nonindexed_address_p): Change logical negation
|
||
from '! xxx' to '!xxx' for coding-style conformance.
|
||
* config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
|
||
(EXTRA_CONSTRAINT): Likewise.
|
||
* config/vax/vax.md (four unnamed insns): Likewise.
|
||
|
||
2006-03-15 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm.c (minipool_pad): New.
|
||
(add_minipool_forward_ref): Include pool alignment padding in address
|
||
calculation.
|
||
(push_minipool_fix): Set minipool_pad.
|
||
(minipool_pad): Ditto.
|
||
|
||
2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/vax/vax.c (split_quadword_operands): Use MEM_P()
|
||
instead of GET_CODE() == MEM and REG_P() instead of
|
||
GET_CODE() == REG.
|
||
(print_operand_address): Likewise.
|
||
(vax_address_cost): Likewise.
|
||
(vax_rtx_costs): Likewise.
|
||
(vax_notice_update_cc): Likewise.
|
||
(vax_output_int_add): Likewise.
|
||
(INDEX_REGISTER_P): Likewise.
|
||
(BASE_REGISTER_P): Likewise.
|
||
(nonindexed_address_p): Likewise.
|
||
(vax_mode_dependent_address_p): Likewise.
|
||
* config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
|
||
(PRINT_OPERAND): Likewise.
|
||
* config/vax/vax.md (ashlsi3): Likewise.
|
||
(ashlsi3): Likewise.
|
||
(some more unnamed insns): Likewise.
|
||
|
||
2006-03-15 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
|
||
iterator-style macro.
|
||
(mark_control_dependent_edges_necessary): Update the use of
|
||
EXECUTE_IF_CONTROL_DEPENDENT.
|
||
|
||
2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* config/sh/predicates.md (cache_address_operand): Special.
|
||
(ua_address_operand): Likewise.
|
||
|
||
2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
|
||
loop notes.
|
||
* sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
|
||
|
||
2006-03-15 Andreas Schwab <schwab@suse.de>
|
||
|
||
* gensupport.c (identify_predicable_attribute): Don't free p_false
|
||
when it is still in use.
|
||
|
||
2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
|
||
the default setting here.
|
||
|
||
2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* tree-pass.h (pass_cfg): Remove.
|
||
* alias.c (rest_of_handle_cfg, pass_cfg): Remove.
|
||
* passes.c (pass_cfg): Don't run it.
|
||
|
||
2006-03-14 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
|
||
* reg-stack.c (stack_regs_mentioned_data): Change the type to
|
||
VEC(char,heap) *.
|
||
(stack_regs_mentioned): Update the uses of
|
||
stack_regs_mentioned_data. Don't access the array beyond its
|
||
end.
|
||
(reg_to_stack): Update the uses of stack_regs_mentioned_data.
|
||
Don't include gt-reg-stack.h.
|
||
|
||
* config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
|
||
* system.h (UNALIGNED_WORD_ASM_OP): Poison.
|
||
|
||
* combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
|
||
|
||
PR middle-end/26684
|
||
* reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
|
||
STACK_REGS.
|
||
|
||
2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
|
||
|
||
2006-03-14 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26672
|
||
* tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
|
||
SSA form.
|
||
|
||
2006-03-14 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26667
|
||
* ipa-inline.c (cgraph_check_inline_limits): Walk the correct
|
||
node for the callees. Always allow inlining if it will shrink
|
||
the function size.
|
||
|
||
2006-03-14 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/26659
|
||
* builtins.c (get_pointer_alignment): Prefer alignment
|
||
information from decls over that from types.
|
||
|
||
2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/26657
|
||
* config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
|
||
|
||
2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* config/rs6000/rs6000.opt (mdlmzb): New option.
|
||
(msched-prolog, msched-epilog): Use Var not Mask.
|
||
* doc/invoke.texi (-mdlmzb): Document.
|
||
* config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
|
||
MASK_SCHED_PROLOG.
|
||
(rs6000_override_options): Enable -mdlmzb for 405 and 440.
|
||
* config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
|
||
|
||
2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
|
||
|
||
PR rtl-optimization/25739
|
||
* bt-load.c (augment_live_range): Free tos pointer.
|
||
|
||
* gensupport.c (identify_predicable_attribute): Free
|
||
p_false pointer.
|
||
* gcov.c (create_file_names): Free name pointer.
|
||
|
||
2006-03-13 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/26557
|
||
* stmt.c (emit_case_nodes): Handle the case where the index is a
|
||
CONST_INT, where the comparison mode is specified by the index type.
|
||
|
||
2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
|
||
is defined.
|
||
|
||
2006-03-13 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
|
||
(*branch_fp_inverted): Likewise.
|
||
|
||
2006-03-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/25989
|
||
* omp-low.c (expand_omp_for_generic): Mark istart0
|
||
and iend0 as addressable.
|
||
|
||
2006-03-13 Jie Zhang <jie.zhang@analog.com>
|
||
|
||
* config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
|
||
|
||
2006-03-13 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (stmt_interesting_for_vrp): Some statements with
|
||
virtual operands are interesting.
|
||
(vrp_visit_stmt): Corresponding changes.
|
||
|
||
2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
|
||
of RETS.
|
||
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
|
||
TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
|
||
* config/bfin/crti.S: Use it instead of __PIC__.
|
||
* config/bfin/crtn.S: Likewise.
|
||
|
||
* config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
|
||
call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
|
||
not if flag_pic.
|
||
Lose 'G' modifier for call operand.
|
||
* config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
|
||
recognize 'G' modifier.
|
||
|
||
2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR middle-end/18859
|
||
* gimplify.c (gimplify_switch_expr): Discard empty ranges.
|
||
* stmt.c (expand_case): Likewise.
|
||
|
||
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26254
|
||
* loop-invariant.c (seq_insns_valid_p): New function.
|
||
(move_invariant_reg): Only emit new code if it is valid.
|
||
|
||
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
|
||
Removed.
|
||
(force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
|
||
(rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
|
||
(commit_one_edge_insertion): Do not look for loop notes.
|
||
|
||
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* jump.c (follow_jumps): Do not check for loop notes. Move check for
|
||
flag_test_coverage out of loop.
|
||
|
||
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* final.c (shorten_branches): Remove outdated comment, and turn
|
||
the if branch that guards it to continue.
|
||
|
||
2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
|
||
* cfgloop.h (struct loop): Remove unused fields.
|
||
|
||
2006-03-13 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* doc/invoke.texi (-fdump-rtl-loop): Remove.
|
||
(-dL, -fdump-rtl-loop2): Update the dump file names
|
||
|
||
* doc/invoke.texi: Update dump file names.
|
||
|
||
2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* predict.c (estimate_probability): Remove.
|
||
* profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
|
||
* basic-block.h (estimate_probability): Remove prototype.
|
||
* passes.c (finish_optimization_passes): Dump branch prediction or
|
||
profiling heuristics to the .profile tree dump.
|
||
(init_optimization_passes): Unqueue pass_branch_prob.
|
||
|
||
* doc/invoke.texi (-fdump-rtl-bp): Remove.
|
||
|
||
2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
|
||
* rtl.h (LABEL_NEXTREF): Remove field accessor.
|
||
|
||
2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* function.h (frame_offset_overflow): Declare.
|
||
* function.c (frame_offset_overflow): New function.
|
||
(assign_stack_local_1): Call it to detect that the offset overflows.
|
||
* cfgexpand.c (alloc_stack_frame_space): Likewise.
|
||
|
||
2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* config/sh/sh.c: Include alloc-pool.h.
|
||
(label_ref_list_pool): New alloc pool.
|
||
(label_ref_list_t): New type for lists of labels.
|
||
(struct pool_node): Make wend a label_ref_list_t.
|
||
(add_constant): Use the new type, eradicate LABEL_NEXTREF
|
||
references.
|
||
(dump_table): Likewise.
|
||
(sh_reorg): Set up the alloc pool before using add_constant and
|
||
dump_table, and destroy it when finishing.
|
||
|
||
2006-03-11 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips.c: Remove redundant comment.
|
||
|
||
2006-03-10 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c/26004
|
||
* gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
|
||
the target was declared 'register'.
|
||
|
||
2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* genpreds.c (write_insn_constraint_len): Change definition of
|
||
insn_constraint_len to return size_t to match the declaration.
|
||
|
||
2006-03-10 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
|
||
start at zero.
|
||
(m32c_expand_insv): Fix test for an AND mask.
|
||
|
||
2006-03-10 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/26565
|
||
* builtins.c (get_pointer_alignment): Handle component
|
||
references for field alignment.
|
||
|
||
2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
|
||
when building with libgloss.
|
||
(sh*elf): Implement --without-fp option.
|
||
(sh64-superh-linux*): Don't multilib.
|
||
|
||
2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
* struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
|
||
|
||
2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
|
||
Set it when one of the replacement functions returned true.
|
||
Return TODO_cleanup_cfg if cfgchanged is true.
|
||
(pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
|
||
|
||
2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
|
||
instead of gen_lowpart.
|
||
|
||
2006-03-09 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/mips/mips-protos.h (mips_output_conditional_branch): Change
|
||
interface.
|
||
(mips_output_order_conditional_branch): Declare.
|
||
* config/mips/mips.h (MIPS_BRANCH): New macro.
|
||
* config/mips/mips.c (gen_conditional_branch): Use VOIDmode
|
||
for the comparison. Use gen_condjump.
|
||
(mips_output_conditional_branch): Rework interface to take the
|
||
asm templates for a direct branch and the inverse of a direct branch.
|
||
(mips_output_order_conditional_branch): New function.
|
||
(mips_builtin_branch_and_move): New function.
|
||
(mips_expand_builtin_compare): Use it. Use VOIDmode for the
|
||
branch condition. Use gen_single_cc as the condition for
|
||
__builtin_mips_upper_* or __builtin_mips_lower_*.
|
||
(mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
|
||
Use VOIDmode for the branch condition.
|
||
* config/mips/predicates.md (order_operator): New predicate.
|
||
* config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
|
||
(branch_fp): Rename to...
|
||
(*branch_fp): ...this. Remove mode from comparison operator.
|
||
Use new mips_output_conditional_branch interface.
|
||
(branch_fp_inverted): Rename to...
|
||
(*branch_fp_inverted): ...this and update as for *branch_fp.
|
||
(*branch_zero<mode>): Rename to...
|
||
(*branch_order<mode>): ...this. Remove mode from comparison operator.
|
||
Use mips_output_order_conditional_branch. Only accept ordered
|
||
comparisons.
|
||
(*branch_zero<mode>_inverted): Rename to...
|
||
(*branch_order<mode>_inverted): ...this and update as for
|
||
*branch_order<mode>.
|
||
(*branch_equality<mode>): Accept zero as the second operand to
|
||
the equality operator. Use the new mips_output_conditional_branch
|
||
interface.
|
||
(*branch_equality<mode>_inverted): Likewise.
|
||
(condjump): New expander.
|
||
* config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
|
||
operator.
|
||
* config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
|
||
(bc1any2t, bc1any2f): Likewise.
|
||
(single_cc): New expander.
|
||
(*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
|
||
|
||
2006-03-09 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/md.texi: Update documentation of MIPS constraints.
|
||
* config/mips/constraints.md: New file.
|
||
* config/mips/mips.md: Include it.
|
||
* config/mips/mips.c (mips_char_to_class): Delete.
|
||
(override_options): Don't initialize mips_char_to_class.
|
||
* config/mips/mips.h (mips_char_to_class): Delete.
|
||
(REG_CLASS_FROM_LETTER): Delete.
|
||
(CONST_OK_FOR_LETTER_P): Delete.
|
||
(CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
|
||
(EXTRA_CONSTRAINT_Y): Delete.
|
||
(EXTRA_CONSTRAINT_STR): Delete.
|
||
(CONSTRAINT_LEN): Delete.
|
||
(EXTRA_MEMORY_CONSTRAINT): Delete.
|
||
|
||
2006-03-09 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-cfg.c (move_block_to_fn): Remove the statements from the
|
||
original fn's eh regions.
|
||
|
||
2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fold-const.c (build_range_check): Make sure to use a valid type to
|
||
apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
|
||
transformation.
|
||
|
||
(range_predecessor): New static function.
|
||
(range_successor): Likewise.
|
||
(merge_ranges): Use them to compute predecessors and successors of
|
||
range bounds.
|
||
|
||
2006-03-09 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/26561
|
||
* fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
|
||
X op C3, consider whether C3 overflows towards +Inf or -Inf.
|
||
|
||
2006-03-08 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/addsub.md (addqi3): Disparage a0/a1.
|
||
(addpsi3): Expand to include memory operands. Remove
|
||
reload-specific splits.
|
||
* config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
|
||
(andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
|
||
(andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
|
||
(andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
|
||
(shift1_qi, shift1_hi, insv): New.
|
||
* config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
|
||
(cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
|
||
cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
|
||
cond_to_int): New.
|
||
* config/m32c/m32c-protos.h: Update as needed.
|
||
* config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
|
||
default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
|
||
Fail for unrecognized R* constraints.
|
||
(m32c_cannot_change_mode_class): Be more picky about pseudos.
|
||
(m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
|
||
(m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
|
||
Add Sp constraint.
|
||
(m32c_init_libfuncs): New.
|
||
(m32c_legitimate_address_p): Add debug wrapper.
|
||
(m32c_rtx_costs): New.
|
||
(m32c_address_cost): New.
|
||
(conversions): Add 'B' prefix.
|
||
(m32c_print_operand): 'h' and 'H' pick lower and upper halves of
|
||
operands, or word regnames for QI operands. 'B' prints bit
|
||
position.
|
||
(m32c_expand_setmemhi): New.
|
||
(m32c_expand_movmemhi): New.
|
||
(m32c_expand_movstr): New.
|
||
(m32c_expand_cmpstr): New.
|
||
(m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
|
||
(m32c_expand_neg_mulpsi3): Handle non-ints.
|
||
(m32c_cmp_flg_0): New.
|
||
(m32c_expand_movcc): New.
|
||
(m32c_expand_insv): New.
|
||
(m32c_scc_pattern): New.
|
||
* config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
|
||
a0/a1 out of SIregs.
|
||
(STORE_FLAG_VALUE): New.
|
||
* config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
|
||
code macros.
|
||
(no_insn): New.
|
||
* config/m32c/mov.md: Make constraints more liberal.
|
||
(zero_extendqihi2): Optimize r0/r1 case.
|
||
* config/m32c/muldiv.md (mulpsi3): Check for intvals.
|
||
* config/m32c/predicates.md (m32c_any_operand): New.
|
||
(m32c_nonimmediate_operand): New.
|
||
(m32c_hl_operand): New.
|
||
(m32c_r3_operand): New.
|
||
(ap_operand): New.
|
||
(ma_operand): New.
|
||
(memsym_operand): New.
|
||
(memimmed_operand): New.
|
||
(a_qi_operand): New.
|
||
(m32c_eqne_operator): New.
|
||
(m32c_1bit8_operand): New.
|
||
(m32c_1bit16_operand): New.
|
||
(m32c_1mask8_operand): New.
|
||
(m32c_1mask16_operand): New.
|
||
* config/m32c/blkmov.md: New file.
|
||
* config/m32c/t-m32c (MD_FILES): Add blkmov.
|
||
|
||
2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
|
||
|
||
* dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
|
||
unsigned to fix signed/unsigned comparison issue in
|
||
DWARF2_FRAME_REG_OUT.
|
||
(expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
|
||
unsigned comparison issue in DWARF2_FRAME_REG_OUT.
|
||
|
||
* tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
|
||
of ptr into the ENABLE_CHECKING section.
|
||
|
||
2006-03-08 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (infer_value_range): Only count pointer uses
|
||
and dereferences if -fdelete-null-pointer-checks is enabled.
|
||
|
||
* tree-vrp.c (find_assert_locations): Infer value ranges for
|
||
single use pointers, but do not create ASSERT_EXPRs for them.
|
||
When a non-null range is inferred for a pointer, backwards
|
||
propagate that range to other equivalent pointers through the
|
||
use-def chain.
|
||
|
||
2006-03-08 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR bootstrap/26500
|
||
* Makefile.in (dvi, html, install-info): Invoke the corresponding
|
||
language hook targets.
|
||
* ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
|
||
objcp/Make-lang.in: Create stub rules for dvi, html, install-info
|
||
if language hook targets were missing.
|
||
|
||
2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-opfinalize.h: Removed.
|
||
* Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
|
||
dependency.
|
||
* tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
|
||
(ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
|
||
INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
|
||
add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
|
||
finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
|
||
finalize_ssa_v_must_def_ops): New.
|
||
|
||
2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
|
||
block as parameter.
|
||
|
||
2006-03-07 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* varasm.c (assemble_end_function): Say that 'fnname' is unused.
|
||
|
||
* config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
|
||
addresses with offsets; reorganize.
|
||
|
||
* dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
|
||
(expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
|
||
(expand_builtin_init_dwarf_reg_sizes): Likewise.
|
||
|
||
2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
|
||
|
||
PR target/26588
|
||
* config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
|
||
|
||
2006-03-08 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/fp-bit.h (CMPtype): Typedef to a word mode integer.
|
||
|
||
2006-03-07 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
PR gomp/26238
|
||
* doc/passes.texi (Tree-SSA passes): Document omp lowering and
|
||
expansion.
|
||
|
||
2006-03-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26587
|
||
* tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
|
||
|
||
2006-03-07 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
|
||
|
||
2006-03-07 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* hooks.c (hook_bool_mode_rtx_true): New function.
|
||
* hooks.h (hook_bool_mode_rtx_true): Declare.
|
||
* toplev.c (compile_file): Call output_shared_constant_pool.
|
||
* varasm.c (shared_constant_pool): New variable.
|
||
(assemble_start_function, assemble_end_function): Remove arguments
|
||
from call to output_constant_pool.
|
||
(create_constant_pool): New function, split out from...
|
||
(init_varasm_status): ...here.
|
||
(force_const_mem): Choose between the shared and per-function constant
|
||
pools. Set current_function_uses_const_pool when reusing old entries
|
||
as well as when creating new ones.
|
||
(mark_constant): Ignore data argument.
|
||
(mark_constants): Remove pool argument.
|
||
(mark_constant_pool): Likewise. Use current_function_uses_const_pool
|
||
to decide whether the function uses a constant pool.
|
||
(output_constant_pool_contents): New function, split out from...
|
||
(output_constant_pool): ...here.
|
||
(output_shared_constant_pool): New function.
|
||
(init_varasm_once): Initialize shared_constant_pool.
|
||
* output.h (output_constant_pool): Delete.
|
||
(output_shared_constant_pool): Declare.
|
||
* config/s390/s390-protos.h (s390_output_constant_pool): Delete.
|
||
* config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
|
||
|
||
2006-03-06 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
|
||
flag_strength_reduce.
|
||
|
||
2006-03-06 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
|
||
x86_64-*-linux* configurations.
|
||
|
||
* config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
|
||
(LIBGCC2_WORDS_BIG_ENDIAN): Define.
|
||
|
||
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree-ssa-threadupdate.c (rediscover_loops_after_threading):
|
||
Remove.
|
||
* basic-block.h: Remove the extern for
|
||
rediscover_loops_after_threading.
|
||
|
||
* cfgloop.c (cancel_loop): Make it static.
|
||
* cfgloop.h: Remove the prototype for cancel_loop.
|
||
|
||
* flow.c (recompute_reg_usage): Make it static.
|
||
* rtl.h: Remove the prototype for recompute_reg_usage.
|
||
|
||
* function.c (use_return_register): Make it static.
|
||
* function.h: Remove the prototype.
|
||
|
||
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* recog.c (volatile_mem_p, validate_change_maybe_volatile):
|
||
Remove.
|
||
* recog.h: Remove the prototype for
|
||
validate_change_maybe_volatile.
|
||
|
||
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* rtlanal.c (replace_reg): Remove.
|
||
* rtl.h: Remove the prototype for replace_reg.
|
||
|
||
2006-03-05 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* regclass.c (reg_scan_update): Remove.
|
||
(reg_scan_mark_refs): Remove the last argument.
|
||
* rtl.h: Remove the prototype for reg_scan_update.
|
||
|
||
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
|
||
combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
|
||
config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
|
||
config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
|
||
df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
|
||
loop-invariant.c, omp-low.c, opts.c, passes.c,
|
||
rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
|
||
tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
|
||
tree-ssa-structalias.c, tree-ssa-threadedge.c,
|
||
tree-ssa-threadupdate.c, tree-vect-patterns.c,
|
||
tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
|
||
unwind-dw2.c: Fix comment typos. Follow spelling conventions.
|
||
|
||
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
|
||
* dwarf2out.h: Remove the prototype for
|
||
dwarf2out_add_library_unit_info.
|
||
|
||
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree.c (add_var_to_bind_expr): Remove.
|
||
* tree.h: Remove the prototype for add_var_to_bind_expr.
|
||
|
||
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* regclass.c (n_non_fixed_regs): Remove.
|
||
(init_reg_sets_1, globalize_reg): Remove all uses of
|
||
n_non_fixed_regs.
|
||
* hard-reg-set.h: Remove the extern for n_non_fixed_regs.
|
||
|
||
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* rtlanal.c (insns_safe_to_move_p): Remove.
|
||
* rtl.h: Remove the prototype for insns_safe_to_move_p.
|
||
|
||
2006-03-04 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* expmed.c (expand_mult_add): Remove.
|
||
* expr.h: Remove the prototype for expand_mult_add.
|
||
|
||
2006-03-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
|
||
and REG_SAVED_VAL_EXP constants.
|
||
* unwind-dw2.c (struct _Unwind_Context): Add by_value array.
|
||
(_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
|
||
Handle regs stored by value.
|
||
(_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
|
||
(execute_cfa_program): Handle DW_CFA_val_offset,
|
||
DW_CFA_val_offset_sf and DW_CFA_val_expression.
|
||
(uw_update_context_1): Handle REG_SAVED_REG with regs stored by
|
||
value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
|
||
(uw_install_context_1): Handle target regs stored by value.
|
||
|
||
2006-03-03 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-sra.c (tree_sra): Return todoflags;
|
||
(generate_one_element): Set TODO_update_smt_usage if needed.
|
||
(pass_sra): Remove TODO_update_smt_usage.
|
||
* tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
|
||
parameter.
|
||
(tree_ssa_forward_propagate_single_use_vars): Return
|
||
TODO_update_smt_usage if we need to update SMT usage.
|
||
(pass_forwprop): Remove TODO_update_smt_usage.
|
||
|
||
2006-03-03 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-operands.c: Tidy whitespace. Fix spelling.
|
||
(correct_use_link): Remove reference to get_stmt_operands.
|
||
(update_stmt_operands): Likewise.
|
||
(get_modify_expr_operands): New function factored out of
|
||
parse_ssa_operands and get_expr_operands.
|
||
Try to create V_MUST_DEFs for LHS by default.
|
||
(get_expr_operands) <case MODIFY_EXPR>: Call
|
||
get_modify_expr_operands.
|
||
<case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
|
||
<case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
|
||
(parse_ssa_operands) <case MODIFY_EXPR>: Call
|
||
get_modify_expr_operands.
|
||
|
||
2006-03-03 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* tree-dfa.c (referenced_var_lookup_if_exists): Remove.
|
||
* tree-flow.h: Remove the prototype for
|
||
referenced_var_lookup_if_exists.
|
||
|
||
2006-03-03 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR rtl-optimization/26345
|
||
PR target/19061
|
||
* config/ia64/predicates.md (basereg_operand): Don't look in subregs.
|
||
|
||
2006-03-03 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR tree-optimization/26524
|
||
* tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
|
||
fold_convert to create a constant of the appropriate type.
|
||
|
||
2006-03-03 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
||
SYMBOL_REF_IN_BLOCK_P.
|
||
* doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
|
||
of SYMBOL_FLAG_IN_BLOCK.
|
||
* gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
|
||
instead of SYMBOL_REF_IN_BLOCK_P.
|
||
* explow.c (use_anchored_address): Likewise.
|
||
* rtl.c (rtx_size): Likewise.
|
||
* varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
|
||
instead of SYMBOL_FLAG_IN_BLOCK.
|
||
(make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
||
SYMBOL_REF_IN_BLOCK_P.
|
||
(assemble_variable): Likewise.
|
||
(output_constant_def_contents): Likewise.
|
||
(output_constant_pool): Likewise.
|
||
(default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
|
||
instead of SYMBOL_FLAG_IN_BLOCK.
|
||
* rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
||
SYMBOL_REF_IN_BLOCK_P.
|
||
(SYMBOL_REF_BLOCK): Likewise.
|
||
(SYMBOL_REF_OFFSET): Likewise.
|
||
(BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
|
||
SYMBOL_REF_IN_BLOCK_P.
|
||
(SYMBOL_FLAG_IN_BLOCK): Replace with...
|
||
(SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
|
||
(SYMBOL_REF_IN_BLOCK_P): Replace with...
|
||
(SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
|
||
|
||
2006-03-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
|
||
|
||
2006-03-02 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* simplify-rtx.c (simplify_unary_operation): When simplifying
|
||
(neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
|
||
that we perform the right shift in the appropriate mode, and
|
||
then extend or truncate the result to requested mode.
|
||
|
||
2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* gengtype.c (main): Handle double_int type.
|
||
* tree.h (struct tree_int_cst): Make type of int_cst double_int.
|
||
* double-int.c: New file.
|
||
* double-int.h: New file.
|
||
* system.h: Include doubleint.h.
|
||
* Makefile.in (SYSTEM_H): Include double-int.h.
|
||
(double-int.o): Add.
|
||
|
||
2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR bootstrap/26478
|
||
* Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
|
||
copying over it.
|
||
|
||
2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-vrp.c (remove_range_assertions): Do not update statements
|
||
unnecessarily.
|
||
|
||
2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
|
||
cleanup.
|
||
* gcse.c (rest_of_handle_gcse): Ditto.
|
||
* except.c (gate_handle_eh): Ditto.
|
||
* cfgcleanup.c (rest_of_handle_jump2): Ditto.
|
||
* basic-block.h (CLEANUP_PRE_LOOP): Remove.
|
||
|
||
2006-03-02 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/i386/i386.c (machopic_output_stub): Add indirection to
|
||
jump.
|
||
|
||
2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* loop.c: Removed.
|
||
|
||
2006-03-02 David S. Miller <davem@sunset.davemloft.net>
|
||
|
||
Sun Niagara specific optimizations.
|
||
* config.gcc: Recognize niagara as target.
|
||
* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
|
||
(TARGET_CPU_niagara): Define.
|
||
(CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
|
||
(ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
|
||
(CPP_CPU_SPEC): Handle -mcpu=niagara.
|
||
(ASM_CPU_SPEC): Likewise.
|
||
(PROCESSOR_NIAGARA): New enum entry.
|
||
(REGISTER_MOVE_COST): Handle Niagara.
|
||
(BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
|
||
* config/sparc/sparc.c (niagara_costs): New processor_costs entry.
|
||
(sparc_override_options): Recognize "niagara", set appropriate
|
||
default MASK_* values for it, and align functions to 32-bytes
|
||
by default just like ULTRASPARC/ULTRASPARC3.
|
||
(sparc_initialize_trampoline): Handle niagara like ultrasparc.
|
||
(sparc64_initialize_trampoline): Likewise.
|
||
(sparc_use_sched_lookahead): Use zero for niagara.
|
||
(sparc_issue_rate): Use one for niagara.
|
||
* config/sparc/niagara.md: New file.
|
||
* config/sparc/sparc.md: Include it.
|
||
* config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
|
||
ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
|
||
when default cpu is niagara.
|
||
(CPP_CPU_SPEC): Handle -mcpu=niagara.
|
||
(ASM_CPU_SPEC): Likewise.
|
||
* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
|
||
when default cpu is niagara.
|
||
(ASM_CPU_SPEC): Handle -mcpu=niagara.
|
||
* config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
|
||
just like v9/ultrasparc/ultrasparc3.
|
||
* doc/invoke.texi: Add documentation for "niagara" and improve
|
||
existing documentation for ultrasparc variants.
|
||
|
||
2006-03-02 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-operands.c (update_stmt_operands): Update documentation.
|
||
|
||
2006-03-02 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
|
||
(ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
|
||
and say that only one is needed.
|
||
* doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
|
||
* target.h (have_switchable_bss_sections): New hook.
|
||
* explow.c (use_anchored_address): Check that the symbol is in a block.
|
||
* varasm.c (tls_comm_section, comm_section, lcomm_section)
|
||
(bss_noswitch_section): New variables.
|
||
(get_unnamed_section): Add SECTION_UNNAMED to the flags.
|
||
(get_noswitch_section): New function.
|
||
(get_block_for_section): Allow SECT to be null.
|
||
(unlikely_text_section_p): Use SECTION_STYLE.
|
||
(bss_initializer_p): New function.
|
||
(get_variable_section): Move earlier in file. Take a new argument,
|
||
prefer_noswitch_p. Move bss checks from assemble_variable to here.
|
||
Return one of the new *_sections in such cases.
|
||
(get_block_for_decl): New function, extracting some logic from
|
||
use_blocks_for_decl_p.
|
||
(change_symbol_section): Remove in favor of...
|
||
(change_symbol_block): ...this new function.
|
||
(use_blocks_for_decl_p): Remove checks now performed by
|
||
get_block_for_decl.
|
||
(make_decl_rtl): Use change_symbol_block and get_block_for_decl.
|
||
(ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
|
||
(emit_local, emit_bss, emit_common): ...these new functions.
|
||
Return true if the alignment was honored.
|
||
(emit_tls_common): New function.
|
||
(asm_emit_uninitialised): Delete.
|
||
(assemble_variable_noswitch): New function, split out from...
|
||
(assemble_variable): ...here. Don't make decisions about common
|
||
variables here. Globalize all public decls that go into non-common
|
||
sections. Check whether SYMBOL_REF_BLOCK is null.
|
||
(output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
|
||
(output_constant_pool): Likewise.
|
||
(init_varasm_once): Initialize the new section variables.
|
||
(have_global_bss_p): New function.
|
||
(categorize_decl_for_section): Use bss_initializer_p.
|
||
(switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
|
||
(place_block_symbol): Assert that the symbol must be in a block.
|
||
* target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
|
||
(TARGET_INITIALIZER): Include it.
|
||
* rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
|
||
* output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
|
||
(SECTION_MACH_DEP): Bump by two.
|
||
(SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
|
||
(unnamed_section): Mention SECTION_UNNAMED in comment.
|
||
(named_section): Likewise SECTION_NAMED.
|
||
(noswitch_section_callback): New type.
|
||
(noswitch_section): New structure.
|
||
(section): Add a noswitch_section alternative.
|
||
(SECTION_STYLE): New macro.
|
||
(tls_comm_section, comm_section, lcomm_section): Declare.
|
||
(bss_noswitch_section, have_global_bss_p): Declare.
|
||
* config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
|
||
* config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
|
||
Override.
|
||
* config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
|
||
* config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
|
||
Override.
|
||
|
||
2006-03-02 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-vrp.c (execute_vrp): Return value.
|
||
* regrename.c (rest_of_handle_regrename): Ditto.
|
||
* tree-into-ssa.c (rewrite_into_ssa): Ditto.
|
||
* tree-complex.c (tree_lower_complex): Ditto.
|
||
(tree_lower_complex_O0): Ditto.
|
||
* tracer.c (rest_of_handle_tracer): Ditto.
|
||
* postreload-gcse.c (rest_of_handle_gcse2): Ditto.
|
||
* postreload.c (rest_of_handle_postreload): Ditto.
|
||
* tree-tailcall.c (execute_tail_recursion): Ditto.
|
||
(execute_tail_calls): Ditto.
|
||
* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
|
||
* tree.h (init_function_for_compilation): Ditto.
|
||
* ipa-cp.c (ipcp_driver): Ditto.
|
||
* tree-scalar-evolution.c (scev_const_prop): Ditto.
|
||
* tree-scalar-evolution.h (scev_const_prop): Ditto.
|
||
* final.c (compute_alignments): Ditto.
|
||
(rest_of_handle_final): Ditto.
|
||
(rest_of_handle_shorten_branches): Ditto.
|
||
(rest_of_clean_state): Ditto.
|
||
* omp-low.c (execute_expand_omp): Ditto.
|
||
(execute_lower_omp): Ditto.
|
||
* tree-ssa-dse.c (tree_ssa_dse): Ditto.
|
||
* ipa-reference.c (static_execute): Ditto.
|
||
* tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
|
||
* reorg.c (rest_of_handle_delay_slots): Ditto.
|
||
(rest_of_handle_machine_reorg): Ditto.
|
||
* cgraphunit.c (rebuild_cgraph_edges): Ditto.
|
||
* flow.c (recompute_reg_usage): Ditto.
|
||
(rest_of_handle_remove_death_notes): Ditto.
|
||
(rest_of_handle_life): Ditto.
|
||
(rest_of_handle_flow2): Ditto.
|
||
* tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
|
||
* tree-ssa-ccp.c (do_ssa_ccp): Ditto.
|
||
(do_ssa_store_ccp): Ditto.
|
||
(execute_fold_all_builtins): Ditto.
|
||
* mode-switching.c (rest_of_handle_mode_switching): Ditto.
|
||
* modulo-sched.c (rest_of_handle_sms): Ditto.
|
||
* ipa-pure-const.c (static_execute): Ditto.
|
||
* cse.c (rest_of_handle_cse): Ditto.
|
||
(rest_of_handle_cse2): Ditto.
|
||
* web.c (rest_of_handle_web): Ditto.
|
||
* tree-stdarg.c (execute_optimize_stdarg): Ditto.
|
||
* tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
|
||
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
|
||
* tree-nrv.c (tree_nrv): Ditto.
|
||
(execute_return_slot_opt): Ditto.
|
||
* tree-ssa-alias.c (compute_may_aliases): Ditto.
|
||
(create_structure_vars): Ditto.
|
||
* loop-init.c (rtl_loop_init): Ditto.
|
||
(rtl_loop_done): Ditto.
|
||
(rtl_move_loop_invariants): Ditto.
|
||
(rtl_unswitch): Ditto.
|
||
(rtl_unroll_and_peel_loops): Ditto.
|
||
(rtl_doloop): Ditto.
|
||
* gimple-low.c (lower_function_body): Ditto.
|
||
(mark_used_blocks): Ditto.
|
||
* tree-ssa-sink.c (execute_sink_code): Ditto.
|
||
* ipa-inline.c (cgraph_decide_inlining): Ditto.
|
||
(cgraph_early_inlining): Ditto.
|
||
* global.c (rest_of_handle_global_alloc): Ditto.
|
||
* jump.c (cleanup_barriers): Ditto.
|
||
(purge_line_number_notes): Ditto.
|
||
* ifcvt.c (rest_of_handle_if_conversion): Ditto.
|
||
(rest_of_handle_if_after_reload): Ditto.
|
||
* tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
|
||
(tree_ssa_loop_im): Ditto.
|
||
(tree_ssa_loop_unswitch): Ditto.
|
||
(tree_vectorize): Ditto.
|
||
(tree_linear_transform): Ditto.
|
||
(tree_ssa_loop_ivcanon): Ditto.
|
||
(tree_ssa_empty_loop): Ditto.
|
||
(tree_ssa_loop_bounds): Ditto.
|
||
(tree_complete_unroll): Ditto.
|
||
(tree_ssa_loop_prefetch): Ditto.
|
||
(tree_ssa_loop_ivopts): Ditto.
|
||
(tree_ssa_loop_done): Ditto.
|
||
* predict.c (tree_estimate_probability): Ditto.
|
||
* recog.c (split_all_insns_noflow): Ditto.
|
||
(rest_of_handle_peephole2): Ditto.
|
||
(rest_of_handle_split_all_insns): Ditto.
|
||
* tree-eh.c (lower_eh_constructs): Ditto.
|
||
* regmove.c (rest_of_handle_regmove): Ditto.
|
||
(rest_of_handle_stack_adjustments): Ditto.
|
||
* local-alloc.c (rest_of_handle_local_alloc): Ditto.
|
||
* function.c (instantiate_virtual_regs): Ditto.
|
||
(init_function_for_compilation): Ditto.
|
||
(rest_of_handle_check_leaf_regs): Ditto.
|
||
* gcse.c (rest_of_handle_jump_bypass): Ditto.
|
||
(rest_of_handle_gcse): Ditto.
|
||
* ipa-type-escape.c (type_escape_execute): Ditto.
|
||
* alias.c (rest_of_handle_cfg): Ditto.
|
||
* tree-if-conv.c (main_tree_if_conversion): Ditto.
|
||
* profile.c (rest_of_handle_branch_prob): Ditto.
|
||
* tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
|
||
* rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
|
||
* bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
|
||
* tree-dfa.c (find_referenced_vars): Ditto.
|
||
* except.c (set_nothrow_function_flags): Ditto.
|
||
(convert_to_eh_region_ranges): Ditto.
|
||
(rest_of_handle_eh): Ditto.
|
||
* emit-rtl.c (unshare_all_rtl): Ditto.
|
||
(remove_unnecessary_notes): Ditto.
|
||
* except.h (set_nothrow_function_flags): Ditto.
|
||
(convert_to_eh_region_ranges): Ditto.
|
||
* cfgexpand.c (tree_expand_cfg): Ditto.
|
||
* tree-cfgcleanup.c (merge_phi_nodes): Ditto.
|
||
* tree-ssa-pre.c (do_pre): Ditto.
|
||
(execute_fre): Ditto.
|
||
* cfgcleanup.c (rest_of_handle_jump): Ditto.
|
||
(rest_of_handle_jump2): Ditto.
|
||
* tree-sra.c (tree_sra): Ditto.
|
||
* tree-mudflap.c (execute_mudflap_function_ops): Ditto.
|
||
(execute_mudflap_function_decls): Ditto.
|
||
* tree-ssa-copy.c (do_copy_prop): Ditto.
|
||
(do_store_copy_prop): Ditto.
|
||
* ipa-prop.h (ipcp_driver): Ditto.
|
||
* cfglayout.c (insn_locators_initialize): Ditto.
|
||
* tree-ssa-forwprop.c
|
||
(tree_ssa_forward_propagate_single_use_vars): Ditto.
|
||
* cfglayout.h (insn_locators_initialize): Ditto.
|
||
* tree-ssa-dce.c (tree_ssa_dce): Ditto.
|
||
* tree-ssa.c (execute_early_warn_uninitialized): Ditto.
|
||
(execute_late_warn_uninitialized): Ditto.
|
||
* rtl.h (cleanup_barriers): Ditto.
|
||
(split_all_insns_noflow): Ditto.
|
||
(purge_line_number_notes): Ditto.
|
||
(unshare_all_rtl): Ditto.
|
||
(remove_unnecessary_notes): Ditto.
|
||
(recompute_reg_usage): Ditto.
|
||
(variable_tracking_main): Ditto.
|
||
* integrate.c (emit_initial_value_sets): Ditto.
|
||
* integrate.h (emit_initial_value_sets): Ditto.
|
||
* tree-optimize.c (execute_free_datastructures): Ditto
|
||
(execute_free_cfg_annotations): Ditto.
|
||
(execute_fixup_cfg): Ditto.
|
||
(execute_cleanup_cfg_pre_ipa): Ditto.
|
||
(execute_cleanup_cfg_post_optimizing): Ditto.
|
||
(execute_init_datastructures): Ditto.
|
||
* tree-object-size.c (compute_object_sizes): Ditto.
|
||
* combine.c (rest_of_handle_combine): Ditto.
|
||
* tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
|
||
* bb-reorder.c (duplicate_computed_gotos): Ditto.
|
||
(rest_of_handle_reorder_blocks): Ditto.
|
||
(rest_of_handle_partition_blocks): Ditto.
|
||
* var-tracking.c (variable_tracking_main): Ditto.
|
||
* tree-profile.c (tree_profiling): Ditto.
|
||
* tree-vect-generic.c (expand_vector_operations): Ditto.
|
||
* reg-stack.c (rest_of_handle_stack_regs): Ditto.
|
||
* sched-rgn.c (rest_of_handle_sched): Ditto.
|
||
(rest_of_handle_sched2): Ditto.
|
||
* basic-block.h (free_bb_insn): Ditto.
|
||
* tree-ssa-structalias.c (ipa_pta_execute): Ditto.
|
||
* tree-cfg.c (execute_build_cfg): Ditto.
|
||
(remove_useless_stmts): Ditto.
|
||
(split_critical_edges): Ditto.
|
||
(execute_warn_function_return): Ditto.
|
||
(execute_warn_function_noreturn): Ditto.
|
||
* tree-ssa-reassoc.c (execute_reassoc): Ditto.
|
||
* cfgrtl.c (free_bb_for_insn): Ditto.
|
||
* passes.c (execute_one_pass): Run additional
|
||
todos returned by execute function.
|
||
* tree-pass.h (struct tree_opt_pass): Make execute
|
||
return a value.
|
||
|
||
2006-03-02 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-ssa-alias.c (find_used_portions): Consider taking
|
||
the address as making the variable not write-only.
|
||
|
||
2006-03-02 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config.gcc (default_use_cxa_atexit): Extend the description of
|
||
this configure variable. Set its default value to "yes" for
|
||
Linux, NetBSD and ELF targets on the assumption that they will
|
||
use C libraries with the __cxa_atexit function.
|
||
|
||
2006-03-02 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
|
||
parameter as unused to suppress a build warning.
|
||
|
||
2006-03-02 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
|
||
config/dfp-bit.c.
|
||
|
||
2006-03-01 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR other/26489
|
||
* gthr-posix.h (__gthrw2): Define to take three parameters, the
|
||
declared name, the weak reference name, and the typeof name.
|
||
(__gthrw): Avoid expanding the declared name suffix.
|
||
(__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
|
||
|
||
2006-03-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
|
||
from DWARF 3.
|
||
(DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
|
||
DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
|
||
DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
|
||
DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
|
||
DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
|
||
(DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
|
||
(DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
|
||
DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
|
||
(DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
|
||
DW_DS_leading_separate, DW_DS_trailing_separate): New.
|
||
(DW_END_default, DW_END_big, DW_END_little): New.
|
||
(DW_END_lo_user, DW_END_hi_user): Define.
|
||
(DW_LNE_lo_user, DW_LNE_hi_user): Define.
|
||
(DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
|
||
(DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
|
||
DW_LANG_D): New.
|
||
|
||
2006-03-01 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
|
||
Update all users.
|
||
* tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
|
||
Update all users.
|
||
(TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
|
||
Update all users.
|
||
* tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
|
||
Update all users.
|
||
* tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
|
||
to 'symbol_mem_tag'.
|
||
Update all users.
|
||
* doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
|
||
rename.
|
||
|
||
2006-03-01 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* builtins.c (fold_builtin_copysign): Delete unreachable code.
|
||
|
||
2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/25761
|
||
* config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
|
||
MACHO_DYNAMIC_NO_PIC_P.
|
||
(MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
|
||
|
||
2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/26389
|
||
* config/darwin-protos.h (darwin_asm_output_anchor):
|
||
Declare.
|
||
* config/darwin-sections.def (cstring_section):
|
||
Add SECTION_MERGE to the flags.
|
||
(literal4_section): Likewise.
|
||
(literal8_section): Likewise.
|
||
(objc_selector_refs_section): Likewise.
|
||
(objc_cls_refs_section): Likewise.
|
||
* config/darwin.c (darwin_asm_output_anchor): New
|
||
function.
|
||
* config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
|
||
|
||
2006-03-01 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/26443
|
||
* tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
|
||
to todo and PROP_tmt_usage to properties_destroyed.
|
||
* tree-ssa-ccp.c (pass_ccp): Ditto.
|
||
(pass_store_ccp): Ditto.
|
||
* tree-ssa-dom.c (pass_dominator): Ditto.
|
||
|
||
2006-03-01 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-operands.c: Cleanup whitespace.
|
||
(get_asm_expr_operands): Move before first invocation.
|
||
(get_indirect_ref_operands): Likewise.
|
||
(get_tmr_operands): Likewise.
|
||
(get_call_expr_operands): Likewise.
|
||
(append_def): Likewise.
|
||
(append_use): Likewise.
|
||
(append_v_may_def): Likewise.
|
||
(append_v_must_def): Likewise.
|
||
(add_call_clobber_ops): Likewise.
|
||
(add_call_read_ops): Likewise.
|
||
(add_stmt_operand): Likewise.
|
||
(add_virtual_operand): Likewise.
|
||
(build_ssa_operands): Likewise.
|
||
|
||
2006-03-01 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/26022
|
||
Revert:
|
||
PR middle-end/24437
|
||
* tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
|
||
with a call expr to ...
|
||
* fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
|
||
|
||
2006-03-01 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-vrp.c (extract_range_from_assert): Remove special
|
||
handling for types with super-types.
|
||
|
||
2006-03-01 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
|
||
and powerpc64-*-linux* configurations.
|
||
* config/t-dfprules: New file.
|
||
|
||
* mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
|
||
Compile dfp-bit.c from the source directory using -DWIDTH and
|
||
$DFP_CFLAGS to control the compilation of that file, rather than
|
||
generating width-specific versions in the build directory.
|
||
* Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
|
||
(LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
|
||
|
||
2006-02-28 Zack Weinberg <zackw@panix.com>
|
||
|
||
* doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
|
||
continues to work.
|
||
|
||
2006-02-28 Eric Christopher <echristo@apple.com>
|
||
|
||
* config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
|
||
Set up IN_LIBGCC definition of TARGET_64BIT.
|
||
* config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
|
||
|
||
2006-02-28 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/14752
|
||
* c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
|
||
BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these
|
||
cases via the construction of "expr != 0".
|
||
|
||
2006-02-28 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* alias.c (alias_invariant, alias_invariant_size): Remove.
|
||
(record_base_value): Remove.
|
||
(memrefs_conflict_p): Don't look at alias_invariant.
|
||
(end_alias_analysis): Don't free it.
|
||
* alias.h (record_base_value): Remove prototype.
|
||
|
||
2006-02-28 Paolo Bonzini <bonzini@gnu.org>
|
||
Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* rtl.h (truncated_to_mode): Declare it.
|
||
(struct rtl_hooks): Add reg_truncated_to_mode hook.
|
||
* rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
|
||
(RTL_HOOKS_INITIALIZER): Include it.
|
||
* rtlhooks.c (reg_truncated_to_mode_general): New function.
|
||
* combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
|
||
reg_truncated_to_mode.
|
||
* rtlanal.c (truncated_to_mode): Define it.
|
||
* simplify-rtx.c (simplify_unary_operation_1): Use it.
|
||
|
||
2006-02-28 Jeff Law <law@redhat.com>
|
||
|
||
* tree-chrec.c (chrec_convert_aggressive): Do not eliminate
|
||
conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
|
||
the range allowed by TYPE_PRECISION.
|
||
|
||
* tree.h (strct phi_arg_d): Remove unused NONZERO field.
|
||
|
||
2006-02-28 Dorit Nuzman <dorit@il.ibm.com>
|
||
|
||
PR tree-optimization/26419
|
||
* doc/invoke.texi (ftree-vectorizer-verbose): Add information on
|
||
values of n.
|
||
|
||
2006-02-27 Zack Weinberg <zackw@panix.com>
|
||
|
||
* doc/md.texi: Fix typo in previous change.
|
||
|
||
2006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df.c: Remove.
|
||
|
||
2006-02-27 Zack Weinberg <zackw@panix.com>
|
||
|
||
* rtl.def (define_constraint, define_register_constraint)
|
||
(define_memory_constraint, define_address_constraint): New MD forms.
|
||
* gensupport.c (process_rtx): Put define_constraint etc on the
|
||
predicate queue.
|
||
* genpreds.c (process_define_predicate): Adjust comment. Validate
|
||
the name, and call validate_exp to validate the expression.
|
||
(mark_mode_tests, write_extract_subexp): Can assume correct input.
|
||
(write_predicate_expr): Likewise. NAME argument no longer necessary;
|
||
all callers changed.
|
||
(validate_exp, needs_variable, struct constraint_data)
|
||
(constraints_by_letter_table, first_constraint, last_constraint_ptr)
|
||
(FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
|
||
(const_dbl_constraints, constraint_max_namelen)
|
||
(have_register_constraints, have_memory_constraints)
|
||
(have_address_constraints, have_address_constraints)
|
||
(have_extra_constraints, have_const_int_constraints)
|
||
(have_const_dbl_constraints, mangle, add_constraint)
|
||
(process_define_constraint, process_define_register_constraint)
|
||
(write_enum_constraint_num, write_lookup_constraint)
|
||
(write_insn_constraint_len, write_regclass_for_constraint)
|
||
(write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
|
||
(write_insn_extra_memory_constraint)
|
||
(write_insn_extra_address_constraint)
|
||
(write_satisfies_constraint_fns): New.
|
||
(write_tm_preds_h): If we have new-style constraint definitions,
|
||
prototype the functions generated from them, and define the
|
||
old constraint interface (still used by generic code) in terms of
|
||
those functions.
|
||
(write_insn_preds_c): If we have new-style constraint definitions,
|
||
generate all relevant functions from those definitions.
|
||
(main): Handle define_constraint etc.
|
||
* genoutput.c (struct constraint_data, indep_constraints)
|
||
(mdep_constraint_letters, constraints_by_letter_table, note_constraint)
|
||
(mdep_constraint_len): New data structures and functions, defined
|
||
#ifdef USE_MD_CONSTRAINTS.
|
||
(check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
|
||
(validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
|
||
use new logic to validate operand constraints against constraint
|
||
definitions.
|
||
(main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
|
||
defined.
|
||
* defaults.h: If none of the old-style constraint macros are
|
||
defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
|
||
old-style macros; and poison REG_CLASS_FROM_LETTER,
|
||
CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
|
||
EXTRA_CONSTRAINT.
|
||
* recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
|
||
* doc/md.texi: Document new constraint-definition mechanism and the
|
||
C interface it provides. Remove references to old mechanism
|
||
elsewhere in the document.
|
||
(Machine Constraints): Use pathnames relative to gcc directory,
|
||
i.e. config/ARCH/FILE. Change i386 section to refer to
|
||
config/i386/predicates.md; update that section to match docstrings.
|
||
* doc/tm.texi: Move all documentation of the old constraint-
|
||
definition macros to their own section, clearly mark as obsolete.
|
||
|
||
* config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
|
||
(u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
|
||
definitions.
|
||
* config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
|
||
(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
|
||
* config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
|
||
constraint strings.
|
||
(splits and peepholes): Use satisfies_constraint_*.
|
||
* config/i386/i386.c (memory_address_length)
|
||
(ix86_attr_length_immediate_default): Use satisfies_constraint_*.
|
||
|
||
2006-02-27 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* lambda-code.c (can_convert_to_perfect_nest): Allow any type of
|
||
scalar operation to be put back into the loop.
|
||
|
||
2006-02-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR other/26208
|
||
* unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
|
||
(extract_cie_info): Handle S flag in augmentation string.
|
||
(execute_cfa_program): If context->signal_frame, execute also
|
||
fs->pc == context->ra instructions.
|
||
(uw_frame_state_for): If context->signal_frame, don't subtract one
|
||
from context->ra to find FDE.
|
||
(uw_update_context_1): Set context->signal_frame to
|
||
fs->signal_frame.
|
||
(_Unwind_GetIPInfo): New function.
|
||
* unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
|
||
* unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
|
||
of _Unwind_GetIP.
|
||
* unwind-sjlj.c (_Unwind_GetIPInfo): New function.
|
||
* unwind-generic.h (_Unwind_GetIPInfo): New prototype.
|
||
* unwind-compat.c (_Unwind_GetIPInfo): New function.
|
||
* libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
|
||
* config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
|
||
* config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
|
||
* config/i386/linux-unwind.h (x86_fallback_frame_state,
|
||
x86_64_fallback_frame_state): Set fs->signal_frame.
|
||
* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
|
||
(MD_FROB_UPDATE_CONTEXT): Define unconditionally.
|
||
(frob_update_context): Likewise. Workaround missing S flag in
|
||
Linux 2.6.12 - 2.6.16 kernel vDSOs.
|
||
* config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
|
||
Remove the psw_addr + 1 hack.
|
||
|
||
2006-02-27 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-structalias.c (get_constraint_for): Move code to deal
|
||
with aggregates here.
|
||
(find_func_aliases): Remove code for &<aggregate> from here.
|
||
|
||
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
|
||
(X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
|
||
Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
|
||
as (X & C) ne/eq 0.
|
||
|
||
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/19983
|
||
* real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
|
||
|
||
2006-02-26 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* opts.c (decode_options): Do not handle flag_strength_reduce.
|
||
(common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
|
||
and OPT_fstrength_reduce.
|
||
* tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
|
||
flag_prefetch_loop_arrays for being nonzero.
|
||
* common.opt (floop-optimize, frerun-loop-opt): Resurrected as
|
||
no-ops.
|
||
(fprefetch-loop-arrays-rtl): Removed.
|
||
(flag_prefetch_loop_arrays): Do not specify the value.
|
||
|
||
* doc/passes.texi: Update documentation of loop optimizer
|
||
passes.
|
||
* doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
|
||
-frerun-loop-opt): Remove.
|
||
|
||
2006-02-26 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26421
|
||
* tree-ssa-alias.c (find_used_portions): Don't treat parameters
|
||
in function calls that are ADDR_EXPRs as using the whole structure.
|
||
|
||
2006-02-26 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* common.opt (-floop-optimize, -frerun-loop-opt): Remove.
|
||
* tree-pass.h (pass_loop_optimize): Remove.
|
||
* passes.c (pass_loop_optimize): Never run it.
|
||
* toplev.c (backend_init): Don't call init_loop.
|
||
* opts.c (flag_loop_optimize_set): Remove.
|
||
(decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
|
||
(common_handle_option) <OPT_floop_optimize>: Remove. Don't disable
|
||
the old RTL loop optimizer when profiling enabled.
|
||
* predict.c (tree_estimate_probability): Always strip builtin_expect.
|
||
* cfgcleanup.c (try_forward_edges): Don't avoid killing loop
|
||
pre-headers for the sake of the old RTL loop optimizer.
|
||
* Makefile.in: Remove all references to loop.o.
|
||
|
||
* doc/invoke.texi: Remove all references to -floop-optimize
|
||
and -frerun-loop-opt.
|
||
|
||
2006-02-26 Zack Weinberg <zackw@panix.com>
|
||
|
||
* doc/md.texi (Machine Constraints): Refer to all files with paths
|
||
relative to gcc directory (i.e. config/CPU/file). Add missing
|
||
@table @code ... @end table to M32C subsection.
|
||
|
||
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
|
||
(X & 1) == 0.
|
||
<BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
|
||
|
||
2006-02-26 Roger Sayle <roger@eyesopen.com>
|
||
James A. Morrison <phython@gcc.gnu.org>
|
||
|
||
PR middle-end/21137
|
||
* fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
|
||
when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
|
||
new constant C2<<C1, or as (X<0) or (X,false) depending upon the
|
||
signedness of the shift operation.
|
||
|
||
2006-02-26 Dorit Nuzman <dorit@il.ibm.com>
|
||
|
||
PR tree-optimization/26359
|
||
* tree-ssa-alias.c (new_type_alias): Set fields for new tag.
|
||
|
||
2006-02-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* simplify-rtx.c (simplify_relational_operation_1): Simplify
|
||
(X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y
|
||
as X == 0, and some symmetry related transformations.
|
||
Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line.
|
||
|
||
2006-02-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/23673
|
||
* fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
|
||
and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some
|
||
symmetry related transformations. Fold (X^C1) == C2 as
|
||
X == (C1^C2).
|
||
|
||
2006-02-25 Juergen Weigert <jw@suse.de>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
* scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
|
||
|
||
2006-02-24 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* combine.c (gen_lowpart_or_truncate): Call
|
||
simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
|
||
|
||
2006-02-24 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* doc/invoke.texi: Move -fopenmp description to "Options for
|
||
Code Generation".
|
||
Remove reference to -lgomp.
|
||
|
||
2006-02-24 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* doc/install.texi: Require GNU tar version 1.14.
|
||
|
||
2006-02-24 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
|
||
* doc/invoke.texi (C++ Dialect Options): Document
|
||
-fno-use-cxa-get-exception-ptr.
|
||
* configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
|
||
* configure: Regenerate.
|
||
* c.opt (fuse-cxa-get-exception-ptr): New.
|
||
* c-opts.c (c_common_handle_option): Handle
|
||
OPT_fuse_cxa_get_exception_ptr.
|
||
* c-common.c (flag_use_cxa_atexit): Update documentation.
|
||
(flag_use_cxa_get_exception_ptr): New.
|
||
* c-common.h (flag_use_cxa_get_exception_ptr): New.
|
||
* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
|
||
documentation.
|
||
(C_COMMON_OVERRIDE_OPTIONS): New.
|
||
|
||
2006-02-24 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/24952
|
||
* combine.c (try_combine): Explicitly check whether GET_CODE is
|
||
a SET or a CLOBBER, instead on checking that it isn't a USE.
|
||
|
||
2006-02-24 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold_comparison): New subroutine of fold_binary
|
||
containing transformations common to both the equality and
|
||
ordering relational operators, factored out of fold_binary.
|
||
(fold_binary): Separate out the equality operators (EQ_EXPR
|
||
and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
|
||
LE_EXPR and GE_EXPR), calling fold_comparison to perform the
|
||
transformations common to both.
|
||
(fold_div_compare): Fix latent bugs in the previously unreachable
|
||
LT_EXPR and GE_EXPR cases.
|
||
|
||
2006-02-24 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_init_builtins): Change
|
||
decl libname for clog to __clog on AIX.
|
||
|
||
* config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
|
||
|
||
2006-02-24 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/26453
|
||
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
|
||
output traceback table for thunks. Localise rs6000_stack_info call.
|
||
|
||
2006-02-23 Roger Sayle <roger@eyesopen.com>
|
||
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||
|
||
* gthr-posix.h (__gthrw): Fix typo in comment.
|
||
|
||
2006-02-23 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* doc/cpp.texi (Character sets): Document that we do support
|
||
input files to be in any character set.
|
||
|
||
2006-02-23 Jeff Law <law@redhat.com>
|
||
|
||
* tree.h (PHI_ARG_NONZERO): Remove.
|
||
* tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
|
||
(remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
|
||
node to the new node.
|
||
|
||
PR tree-optimization/26425
|
||
* tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
|
||
min/max, then assume its varying.
|
||
|
||
2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26316
|
||
* rtlanal.c (enum may_trap_p_flags): New.
|
||
(may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore
|
||
MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
|
||
(may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
|
||
(may_trap_after_code_motion_p): New function.
|
||
* loop-invariant.c (find_identical_invariants): Fix dump formating.
|
||
(find_invariant_insn): Use may_trap_after_code_motion_p.
|
||
* rtl.h (may_trap_after_code_motion_p): Declare.
|
||
|
||
2006-02-23 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* emit-rtl.c (immed_double_const): Cleanup.
|
||
|
||
2006-02-23 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/26376
|
||
* tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
|
||
remove assert.
|
||
|
||
2006-02-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/26412
|
||
* gimplify.c (omp_add_variable): Guard variable size decl test with
|
||
DECL_SIZE (decl) check.
|
||
|
||
2006-02-23 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR middle-end/26439
|
||
* tree-ssa-structalias.c (find_func_aliases): Handle complex types
|
||
like aggregate types.
|
||
|
||
2006-02-23 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* configure.ac: Add --with{,out}-long-double-128 configure option.
|
||
(TARGET_DEFAULT_LONG_DOUBLE_128): New test.
|
||
* configure: Rebuilt.
|
||
* config.in: Rebuilt.
|
||
* doc/install.texi (Options specification): Document
|
||
--with-long-double-128.
|
||
|
||
* config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
|
||
(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
|
||
* config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
|
||
(RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
|
||
|
||
2006-02-23 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* config/s390/s390.c (override_options): Handle
|
||
TARGET_DEFAULT_LONG_DOUBLE_128.
|
||
|
||
* config/alpha/alpha.c (override_options): Handle
|
||
TARGET_DEFAULT_LONG_DOUBLE_128.
|
||
|
||
* config/sparc/sparc.c (sparc_override_options): Handle
|
||
TARGET_DEFAULT_LONG_DOUBLE_128.
|
||
|
||
2006-02-22 Daniel Jacobowitz <dan@codesourcery.com>
|
||
|
||
* Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
|
||
(real-install-headers-tar, real-install-headers-cpio)
|
||
(real-install-headers-cp): New targets.
|
||
|
||
2006-02-22 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* tree.h (variable_section): Delete.
|
||
* varasm.c (variable_section): Delete.
|
||
|
||
2006-02-22 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* install.texi: Add notes on install.texi2html.
|
||
(Building in parallel): Do not use footnotes.
|
||
|
||
2006-02-21 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
PR libgomp/26234
|
||
* doc/install.texi (Configuration): Document --disable-libgomp.
|
||
|
||
2006-02-21 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
|
||
|
||
2006-02-21 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* config/i386/sse.md (vec_extractv2df_1_sse): New.
|
||
(vec_extractv2df_0_sse): New.
|
||
|
||
2006-02-21 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* defaults.h (CFA_FRAME_BASE_OFFSET): Define.
|
||
* config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
|
||
* doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
|
||
* dwarf2out.c (build_cfa_loc): New offset parameter. Add it
|
||
to the result of the expression.
|
||
(def_cfa_1): Adjust.
|
||
(frame_pointer_cfa_offset): Rename to...
|
||
(frame_pointer_fb_offset): ... this. Adjust all uses.
|
||
(convert_cfa_to_loc_list): Rename to...
|
||
(convert_cfa_to_fb_loc_list): ... this. New offset parameter.
|
||
Pass it on to build_cfa_loc.
|
||
(compute_frame_pointer_to_cfa_displacement): Rename to...
|
||
(compute_frame_pointer_to_fb_displacement): ... this. New
|
||
offset parameter. Use it in computation.
|
||
(gen_subprogram_die): Compute cfa_fb_offset with the new
|
||
macro, and use it to compute the fb loc list and the
|
||
displacement.
|
||
|
||
2006-02-21 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/bfin/predicates.md (cc_operand): Delete predicate. All uses
|
||
replaced with register_operand.
|
||
* config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
|
||
non-DREG is expensive.
|
||
* config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
|
||
* config/bfin/bfin.md (movbi): Fix constraints and template for moves
|
||
involving memory.
|
||
|
||
2006-02-21 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* doc/install.texi2html: Use set -e.
|
||
|
||
2006-02-21 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
|
||
(ASM_OUTPUT_SHARED_LOCAL): Delete.
|
||
* doc/invoke.texi (-fshared-data): Delete.
|
||
* common.opt (fshared-data): Delete.
|
||
* varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
|
||
(assemble_static_space): Remove #if 0 code.
|
||
* system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
|
||
(ASM_OUTPUT_SHARED_LOCAL): Poison.
|
||
* config/cris/cris.h: Remove FIXME.
|
||
|
||
2006-02-21 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* doc/sourcebuild.texi (Front End Directory): No more double-colon
|
||
hooks.
|
||
|
||
2006-02-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/26379
|
||
* combine.c (simplify_shift_const_1): Disable nested shifts
|
||
optimization for vector shifts.
|
||
|
||
2006-02-20 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR tree-optimization/26361
|
||
* tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
|
||
of unsigned integer types.
|
||
|
||
2006-02-20 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-chrec.c (eq_evolutions_p): New.
|
||
* tree-chrec.h (eq_evolutions_p): Declared.
|
||
* tree-data-ref.c: Fix formatting.
|
||
(datadep_stats, dependence_stats): New.
|
||
(gcd): Moved...
|
||
(print_direction_vector): New.
|
||
(dump_data_dependence_relation): Use print_direction_vector.
|
||
(object_analysis, create_data_ref): Handle COMPONENT_REF.
|
||
(compute_subscript_distance): Static.
|
||
(initialize_data_dependence_relation): Static. Get the number
|
||
of loops surrounding the references from the callers, and initialize
|
||
DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and
|
||
base_object_differ_p analyzers.
|
||
(analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
|
||
compute_overlap_steps_for_affine_1_2,
|
||
analyze_subscript_affine_affine): Count the classified dependences.
|
||
Print a message when a test failed.
|
||
(can_use_analyze_subscript_affine_affine): New.
|
||
(analyze_siv_subscript): Compute the data dependences on symbolic
|
||
scevs that verify can_use_analyze_subscript_affine_affine.
|
||
(chrec_steps_divide_constant_p): Returns true, false, or unknown.
|
||
(analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
|
||
Handle symbolic scevs.
|
||
(analyze_overlapping_iterations): Let symbolic affine scevs to be
|
||
analyzed.
|
||
(subscript_dependence_tester): Moved...
|
||
(build_classic_dist_vector, build_classic_dir_vector): Don't use
|
||
lambda_vector_clear on newly allocated vectors. Get nb_loops from
|
||
DDR_SIZE_VECT instead of getting it in parameter.
|
||
(subscript_dependence_tester): ... here. Take as a parameter
|
||
loop_nest_depth. Call build_classic_dist_vector and
|
||
build_classic_dir_vector.
|
||
(compute_affine_dependence): Update subscript_dependence_tester
|
||
parameters. Update datadep_stats counters. Call
|
||
compute_subscript_distance.
|
||
(compute_self_dependence): Save the dist and dir vectors. Call
|
||
compute_subscript_distance.
|
||
(ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
|
||
(compute_all_dependences): Reorder parameters as they were before
|
||
conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call
|
||
compute_subscript_distance. Update the use of
|
||
compute_affine_dependence and initialize_data_dependence_relation.
|
||
(find_data_references_in_loop): Handle COMPONENT_REF.
|
||
(compute_data_dependences_for_loop): Initialize dependence_stats.
|
||
Don't call build_classic_dist_vector and build_classic_dir_vector.
|
||
Update the parameters of initialize_data_dependence_relation and
|
||
compute_all_dependences. Print the statistics from datadep_stats.
|
||
(analyze_all_data_dependences): Static. Not used until the pass for
|
||
checking the data dependences is contributed.
|
||
* tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
|
||
DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
|
||
(initialize_data_dependence_relation, compute_affine_dependence,
|
||
analyze_all_data_dependences, compute_subscript_distance): Removed.
|
||
(print_direction_vector): New.
|
||
* lambda.h (gcd): ... here.
|
||
(lambda_vector_gcd): Moved here from gcd_vector.
|
||
* lambda-code.c (gcd, gcd_vector): Removed.
|
||
(lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting.
|
||
* Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
|
||
|
||
2006-02-20 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* ipa-type-escape.c: Tidy some comments and white space.
|
||
* tree-ssa-operands.c: Likewise.
|
||
|
||
2006-02-20 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/25879
|
||
* tree-pretty-print.c (debug_tree_chain): Walk the chains.
|
||
(dump_decl_name): Do not walk the decl tree chains.
|
||
* tree-pass.h (TDF_CHAIN): Remove.
|
||
|
||
2006-02-20 Rafael <20>vila de Esp<73>ndola <rafael.espindola@gmail.com>
|
||
|
||
* Makefile.in (C): Remove
|
||
(PROTO): Remove
|
||
(.PHONY): Remove C and PROTO
|
||
|
||
2006-02-20 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/26236
|
||
* doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
|
||
deprecated CHAR_TYPE tree code.
|
||
|
||
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* configure.ac (target_list): Add install-info, dvi, html.
|
||
* configure: Regenerate.
|
||
|
||
* ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
|
||
java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
|
||
treelang/Make-lang.in: Do not use double-colon rules.
|
||
|
||
2006-02-20 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree.h (struct tree_memory_tag): Add is_used_alone member.
|
||
(TMT_USED_ALONE): New macro.
|
||
* tree-pass.h (PROP_tmt_usage): New property.
|
||
(TODO_update_tmt_usage): New todo.
|
||
* tree-ssa-alias.c (updating_used_alone): New variable.
|
||
(recalculate_used_alone): New function.
|
||
(compute_may_aliases): Set updating_used_alone, call
|
||
recalculate_used_alone.
|
||
* tree-sra.c (pass_sra): Note that this pass destroys
|
||
PROP_tmt_usage, and add TODO_update_tmt_usage.
|
||
* tree-ssa-forwprop.c (pass_forwprop): Ditto.
|
||
* tree-flow.h (updating_used_alone): Prototype.
|
||
(recalculate_used_alone): Ditto.
|
||
* passes.c (execute_todo): Add code to set updating_used_alone,
|
||
and call recalculate.
|
||
* tree-ssa-operands.c (add_virtual_operand): Only append bare def
|
||
for clobber if used alone, and add assert to verify used_alone
|
||
status.
|
||
|
||
2006-02-20 Angel Nunez Mencias <anunez@de.ibm.com>
|
||
|
||
* config/s390/s390.c (legitimize_pic_address): Assertions checking
|
||
for non tls symbols added.
|
||
(legitimize_address): Do nothing for PLUS expressions if one of the
|
||
addends is a tls symbol reference.
|
||
|
||
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR bootstrap/25476
|
||
|
||
* Makefile.in (LDFLAGS): Define from autoconf substitution.
|
||
|
||
* Makefile.in (BOOTSTRAPPING): New.
|
||
(quickstrap): New definition if BOOTSTRAPPING=yes.
|
||
|
||
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
|
||
* configure.ac: Substitute all_selected_languages with the languages
|
||
that were configured. For all the other variables except
|
||
lang_specs_files, include all the languages in the tree.
|
||
* configure: Regenerate.
|
||
|
||
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
|
||
if there is one. Run the commands to run fixincludes in the same
|
||
subshell.
|
||
|
||
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
|
||
* doc/install.texi: Document exact conventions for searching target tools.
|
||
Document --with-build-time-tools. Document toplevel bootstrap. Document
|
||
something more about building an Ada cross-compiler. Don't list GNU Make
|
||
requirements which affect all platforms.
|
||
|
||
2006-02-19 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/19543
|
||
* varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
|
||
only equivalent if the have both the same mode and precision.
|
||
|
||
2006-02-20 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
|
||
|
||
2006-02-19 Roger Sayle <roger@eyesopen.com>
|
||
Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
|
||
constant pool references to identify stack mode constants.
|
||
* rtlanal.c (constant_pool_constant_p): New predicate to check
|
||
whether operand is a floating point constant in the pool.
|
||
* rtl.h (constant_pool_constant_p): Prototype here.
|
||
* loop.c (scan_loop): Avoid hoisting constants from the constant
|
||
pool on STACK_REGS targets.
|
||
(load_mems): Likewise.
|
||
* loop-invariant.c (get_inv_cost): Make hoisting constant pool
|
||
loads into x87 registers expensive in terms of register pressure.
|
||
|
||
2006-02-19 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
|
||
__foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
|
||
|
||
2006-02-19 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
|
||
* config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
|
||
|
||
2006-02-19 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* doc/invoke.texi: Document -fipa-pta.
|
||
* common.opt: Add ipa-pta option.
|
||
* tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
|
||
(do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
|
||
(do_ds_constraint): Ditto.
|
||
(get_constraint_for): Only add to referenced_vars if
|
||
referenced_vars exists.
|
||
(insert_into_field_list): Rewrite to do this unsorted.
|
||
(insert_into_field_list_sorted): Rename old insert_into_field_list
|
||
to this.
|
||
(create_function_info_for): Use insert_into_field_list_sorted.
|
||
(create_variable_info_for): Rewrite so it uses unsorted version,
|
||
since the field list is sorted.
|
||
(intra_create_variable_infos): Only add to referenced_vars if
|
||
referenced_vars exists.
|
||
(ipa_pta_execute): Init heapvars, and delete when done.
|
||
* passes.c (init_optimization_passes): Add call to pass_ipa_pta.
|
||
|
||
2006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* doc/install.texi: Add missing `@samp'.
|
||
|
||
2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
|
||
Use the arguments.
|
||
|
||
2006-02-18 Mark Wielaard <mark@klomp.org>
|
||
|
||
* doc/contrib.texi (Contributors): Add classpath/libgcj hackers
|
||
who added new 4.1 features, bug fixes and integration support.
|
||
|
||
2006-02-18 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR target/26350
|
||
* config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
|
||
MEM for ABI_V4 pic.
|
||
|
||
2006-02-18 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
|
||
* emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
|
||
(copy_insn_1): Likewise. Don't copy each field individually.
|
||
Reindent.
|
||
* read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
|
||
of RTX_SIZE.
|
||
* reload1.c (eliminate_regs): Use shallow_copy_rtx.
|
||
* rtl.c (rtx_size): Rename variable to...
|
||
(rtx_code_size): ...this.
|
||
(rtx_size): New function.
|
||
(rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
|
||
(copy_rtx): Use shallow_copy_rtx. Don't copy each field individually.
|
||
Reindent.
|
||
(shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
|
||
* rtl.h (rtx_code_size): New variable.
|
||
(rtx_size): Change from a variable to a function.
|
||
(RTX_SIZE): Rename to...
|
||
(RTX_CODE_SIZE): ...this.
|
||
|
||
PR target/9703
|
||
PR tree-optimization/17106
|
||
* doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
|
||
(Anchored Addresses): New section.
|
||
* doc/invoke.texi (-fsection-anchors): Document.
|
||
* doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
|
||
(SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
|
||
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
|
||
* hooks.c (hook_bool_mode_rtx_false): New function.
|
||
* hooks.h (hook_bool_mode_rtx_false): Declare.
|
||
* gengtype.c (create_optional_field): New function.
|
||
(adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
|
||
SYMBOL_REF_IN_BLOCK_P is true.
|
||
* target.h (output_anchor, use_blocks_for_constant_p): New hooks.
|
||
(min_anchor_offset, max_anchor_offset): Likewise.
|
||
(use_anchors_for_symbol_p): New hook.
|
||
* toplev.c (compile_file): Call output_object_blocks.
|
||
(target_supports_section_anchors_p): New function.
|
||
(process_options): Check that -fsection-anchors is only used on
|
||
targets that support it and when -funit-at-a-time is in effect.
|
||
* tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
|
||
if the decl doesn't have one.
|
||
* dwarf2out.c: Remove instantiations of VEC(rtx,gc).
|
||
* expr.c (emit_move_multi_word, emit_move_insn): Pass the result
|
||
of force_const_mem through use_anchored_address.
|
||
(expand_expr_constant): New function.
|
||
(expand_expr_addr_expr_1): Call it. Use the same modifier when
|
||
calling expand_expr for INDIRECT_REF.
|
||
(expand_expr_real_1): Pass DECL_RTL through use_anchored_address
|
||
for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant.
|
||
* expr.h (use_anchored_address): Declare.
|
||
* loop-unroll.c: Don't declare rtx vectors here.
|
||
* explow.c: Include output.h.
|
||
(validize_mem): Call use_anchored_address.
|
||
(use_anchored_address): New function.
|
||
* common.opt (-fsection-anchors): New switch.
|
||
* varasm.c (object_block_htab, anchor_labelno): New variables.
|
||
(hash_section, object_block_entry_eq, object_block_entry_hash)
|
||
(use_object_blocks_p, get_block_for_section, create_block_symbol)
|
||
(use_blocks_for_decl_p, change_symbol_section): New functions.
|
||
(get_variable_section): New function, split out from assemble_variable.
|
||
(make_decl_rtl): Create a block symbol if use_object_blocks_p and
|
||
use_blocks_for_decl_p say so. Use change_symbol_section if the
|
||
symbol has already been created.
|
||
(assemble_variable_contents): New function, split out from...
|
||
(assemble_variable): ...here. Don't output any code for
|
||
block symbols; just pass them to place_block_symbol.
|
||
Use get_variable_section and assemble_variable_contents.
|
||
(get_constant_alignment, get_constant_section, get_constant_size): New
|
||
functions, split from output_constant_def_contents.
|
||
(build_constant_desc): Create a block symbol if use_object_blocks_p
|
||
says so. Or into SYMBOL_REF_FLAGS.
|
||
(assemble_constant_contents): New function, split from...
|
||
(output_constant_def_contents): ...here. Don't output any code
|
||
for block symbols; just pass them to place_section_symbol.
|
||
Use get_constant_section and get_constant_alignment.
|
||
(force_const_mem): Create a block symbol if use_object_blocks_p and
|
||
use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS.
|
||
(output_constant_pool_1): Add an explicit alignment argument.
|
||
Don't switch sections here.
|
||
(output_constant_pool): Adjust call to output_constant_pool_1.
|
||
Switch sections here instead. Don't output anything for block symbols;
|
||
just pass them to place_block_symbol.
|
||
(init_varasm_once): Initialize object_block_htab.
|
||
(default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
|
||
(default_asm_output_anchor, default_use_aenchors_for_symbol_p)
|
||
(place_block_symbol, get_section_anchor, output_object_block)
|
||
(output_object_block_htab, output_object_blocks): New functions.
|
||
* target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
|
||
(TARGET_ASM_OUT): Include it.
|
||
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
|
||
(TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
|
||
(TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
|
||
(TARGET_INITIALIZER): Include them.
|
||
* rtl.c (rtl_check_failed_block_symbol): New function.
|
||
* rtl.h: Include vec.h. Declare heap and gc rtx vectors.
|
||
(block_symbol, object_block): New structures.
|
||
(rtx_def): Add a block_symbol field to the union.
|
||
(BLOCK_SYMBOL_CHECK): New macro.
|
||
(rtl_check_failed_block_symbol): Declare.
|
||
(SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
|
||
(SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
|
||
(SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
|
||
(SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
|
||
* output.h (output_section_symbols): Declare.
|
||
(object_block): Name structure.
|
||
(place_section_symbol, get_section_anchor, default_asm_output_anchor)
|
||
(default_use_anchors_for_symbol_p): Declare.
|
||
* Makefile.in (RTL_BASE_H): Add vec.h.
|
||
(explow.o): Depend on output.h.
|
||
* config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
|
||
(TARGET_MAX_ANCHOR_OFFSET): Likewise.
|
||
(TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
|
||
(rs6000_use_blocks_for_constant_p): New function.
|
||
|
||
2006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
|
||
|
||
2006-02-18 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/25680
|
||
* tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
|
||
IMAGPART_EXPR.
|
||
|
||
2006-02-18 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
|
||
is_aliased.
|
||
Update all users.
|
||
|
||
2006-02-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/26334
|
||
* stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
|
||
instead of DECL_REGISTER.
|
||
|
||
2006-02-18 Olivier Hainque <hainque@adacore.com>
|
||
|
||
PR ada/13408
|
||
* pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
|
||
|
||
2006-02-18 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR target/24837
|
||
* config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
|
||
* opth-gen.awk: Handle Var and InverseMask together.
|
||
* config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
|
||
* config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
|
||
(TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
|
||
(CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
|
||
used together.
|
||
(UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
|
||
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
||
* config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
|
||
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||
LINUX_DYNAMIC_LINKER): Define.
|
||
(ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
|
||
* config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
|
||
TARGET_GLIBC.
|
||
* config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
|
||
* config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
(TARGET_C99_FUNCTIONS): Don't define.
|
||
* config/i386/linux.h (DYNAMIC_LINKER): Rename to
|
||
GLIBC_DYNAMIC_LINKER.
|
||
(SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
|
||
* config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
||
GLIBC_DYNAMIC_LINKER64): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
|
||
LINUX_DYNAMIC_LINKER64.
|
||
* config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
||
GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
|
||
UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
|
||
and LINUX_DYNAMIC_LINKER32.
|
||
* config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
|
||
TARGET_GLIBC.
|
||
* config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
|
||
(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
|
||
UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
|
||
CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
||
(LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
|
||
(LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
|
||
* config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
|
||
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||
LINUX_DYNAMIC_LINKER): Define.
|
||
(LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
|
||
* config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
|
||
GLIBC_DYNAMIC_LINKER64): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
|
||
LINUX_DYNAMIC_LINKER64.
|
||
* config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
|
||
UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
|
||
LINUX_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
|
||
* config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
|
||
GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
|
||
UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
|
||
LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
|
||
(LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
|
||
(LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
|
||
(TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
|
||
* config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* doc/invoke.texi (-muclibc): Remove caveat about supported
|
||
targets.
|
||
|
||
2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
|
||
|
||
* doc/cpp.texi (__TIMESTAMP__): Document.
|
||
|
||
2006-02-17 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/25600
|
||
* fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
|
||
C is one less than the width of X (and related transformations).
|
||
* simplify-rtx.c (simplify_unary_operation_1): Transform
|
||
(neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
|
||
depending on STORE_FLAG_VALUE, were C is one less then the
|
||
width of X.
|
||
|
||
2006-02-17 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/26341
|
||
* tree-ssa-operands.c (add_virtual_operand): Remove assert
|
||
about NAME_MEMORY_TAG's.
|
||
|
||
2006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/26255
|
||
* pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
|
||
with hardware float support, and software float support. Add fcpy
|
||
alternative to hardware patterns. Add alternatives to copy between
|
||
general and floating-point registers to the 32-bit pattern.
|
||
* pa.c (pa_secondary_reload): Don't abort if reload tries to find a
|
||
secondary reload to load a QI or HI mode constant into a floating
|
||
point register.
|
||
* pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
|
||
* pa64-regs.h (VALID_FP_MODE_P): Likewise.
|
||
|
||
2006-02-17 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/26272
|
||
* config/rs6000/darwin.md (load_macho_picbase_si): Add
|
||
pc to the pattern.
|
||
(load_macho_picbase_di): Likewise.
|
||
|
||
2006-02-16 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (set_value_range_to_nonnegative): New function.
|
||
(vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
|
||
(ssa_name_nonzero_p): Likewise.
|
||
(get_value_range): Return NULL if VRP is not running.
|
||
(extract_range_from_expr): Fallback to tree_expr_XXX_p if
|
||
VRP routines do not discover a range.
|
||
(vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
|
||
* tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
|
||
* fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
|
||
(tree_expr_nonnegative_p): Similarly.
|
||
* tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
|
||
(restore_nonzero_vars_to_original_value): Remove.
|
||
(unsafe_associative_fp_binop): Remove.
|
||
(tree_ssa_dominator_optimize): Remove initialization and
|
||
finalization of nonzero_vars and nonzero_vars_stack.
|
||
(dom_opt_initialize_block): No longer push marker on
|
||
nonzero_vars_stack.
|
||
(dom_opt_finalize_block): No longer call
|
||
restore_nonzero_vars_to_original_value.
|
||
(record_equivalences_from_phis): No longer look for
|
||
nonzero PHI arguments.
|
||
(cprop_into_successor_phis): No longer propagate nonzero
|
||
property into PHI arguments. Lose unused argument. Caller
|
||
updated.
|
||
(record_equivalences_from_stmt): No longer record nonzero
|
||
values for SSA_NAMEs.
|
||
(lookup_avail_expr): No longer use nonzero_vars.
|
||
|
||
* stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
|
||
for sizetype when sizetype is unsigned.
|
||
|
||
2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
|
||
|
||
PR rtl-optimization/25603
|
||
* reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
|
||
(regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
|
||
* reload1.c (choose_reload_regs): Added call of regno_clobbered_p
|
||
with new meaning of SETS.
|
||
|
||
2006-02-16 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR target/20353
|
||
PR target/24578
|
||
PR target/24837
|
||
* config/linux.opt: New file.
|
||
* config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
|
||
LINUX_DYNAMIC_LINKER): Define.
|
||
(TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
|
||
* config.gcc (*-*-linux*): Define extra_options.
|
||
(*-*-*uclibc*): Define UCLIBC_DEFAULT.
|
||
(arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
|
||
* config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
|
||
GLIBC_DYNAMIC_LINKER.
|
||
* config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
|
||
(LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
|
||
* doc/invoke.texi (GNU/Linux Options): New section.
|
||
|
||
2006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.md (setjmp): Rewrite.
|
||
(setjmp_32): Delete.
|
||
(setjmp_64): Likewise.
|
||
|
||
2006-02-16 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-operands.c (access_can_touch_variable): Fix typo in
|
||
previous change.
|
||
|
||
2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* loop-invariant.c (invariant_for_use, check_dependencies): Fail for
|
||
read-write uses.
|
||
|
||
2006-02-16 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26296
|
||
* Makefile.in (loop-invariant.c): Add except.h dependency.
|
||
* loop-invariant.c: Include except.h.
|
||
(find_invariant_insn): Ignore insns satisfying can_throw_internal.
|
||
|
||
2005-02-16 Paul Brook <paul@codesourcery.com>
|
||
|
||
* reload1.c (emit_reload_insns): Invalidate dead input registers used
|
||
for reloads.
|
||
|
||
2006-02-16 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
PR rtl-optimization/25636
|
||
* local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
|
||
when deciding whether an insn is an initializing insn.
|
||
|
||
2006-02-15 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
|
||
(tree_code_size): Ditto.
|
||
* tree.h (struct tree_memory_tag): Remove parent_var.
|
||
(struct tree_struct_field_tag): New.
|
||
(SFT_OFFSET): New.
|
||
(SFT_SIZE): New.
|
||
(union tree_node): Add sft member.
|
||
* tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
|
||
specially here.
|
||
(create_sft): Add size and offset argument, set SFT_OFFSET and
|
||
SFT_SIZE.
|
||
(create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
|
||
* treestruct.def: Add TS_STRUCT_FIELD_TAG.
|
||
* tree-flow-inline.h (get_subvar_at): Update for
|
||
SFT_OFFSET/SFT_SIZE.
|
||
(var_can_have_subvars): Ditto.
|
||
(overlap_subvar): Ditto.
|
||
* print-tree.c (print_node): Print out interesting things for
|
||
SFT's.
|
||
* tree-flow.h (struct subvar): Remove offset and size members.
|
||
* tree-ssa-operands.c (get_expr_operands): Update for
|
||
get_indirect_ref_operands changes.
|
||
(get_indirect_ref_operands): Call add_virtual_operand instead of
|
||
add_stmt_operand. Only recurse on base var if requested.
|
||
(access_can_touch_variable): New function.
|
||
(add_stmt_operand): Split virtual operand handling into ...
|
||
(add_virtual_operand): Here. Add offset, size, and for_clobber
|
||
arguments. Prune alias sets.
|
||
(add_call_clobber_ops): Call add_virtual_operand.
|
||
|
||
2006-02-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/26300
|
||
* combine.c (make_extraction): Bail out if ORIG_POS is negative.
|
||
|
||
* tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
|
||
than TREE_CODE as index into omp_clause_num_ops array.
|
||
|
||
2006-02-15 Uttam Pawar <uttamp@us.ibm.com>
|
||
|
||
PR rtl-optimization/26184
|
||
* modulo-sched.c (generate_reg_moves): Free bitmap vector
|
||
uses_of_defs.
|
||
* modulo-sched.c (sms_schedule): Free g_arr pointer.
|
||
* modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
|
||
must_precede, must_follow and tobe_scheduled.
|
||
|
||
PR other/26147
|
||
* opts.c (common_handle_option): Free new_option pointer.
|
||
* df-core.c (df_analyze): Free postorder pointer.
|
||
|
||
2006-02-15 Rafael <20>vila de Esp<73>ndola <rafael.espindola@gmail.com>
|
||
|
||
* Makefile.in: Fix the examples about the use of stamps
|
||
|
||
2006-02-15 Michael Matz <matz@suse.de>
|
||
|
||
PR middle-end/22275
|
||
|
||
* stor-layout.c (layout_decl): Zero-width bitfields aren't
|
||
influenced by maximum_field_alignment or DECL_PACKED.
|
||
(update_alignment_for_field): Ditto.
|
||
(place_field): Ditto.
|
||
* doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
|
||
this behaviour.
|
||
|
||
2006-02-15 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* cfg.c (dump_flow_info): Get dump flags as an additional parameter.
|
||
(debug_flow_info): Pass it.
|
||
* alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
|
||
* bb-reorder.c (reorder_basic_blocks): Likewise.
|
||
* cfgcleanup.c (rest_of_handle_jump2): Likewise.
|
||
* cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
|
||
* flow.c (life_analysis, recompute_reg_usage): Likewise.
|
||
* gcse.c (gcse_main, bypass_jumps): Likewise.
|
||
* ifcvt.c (rest_of_handle_if_conversion): Likewise.
|
||
* local-alloc.c (rest_of_handle_local_alloc): Likewise.
|
||
* loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
|
||
* profile.c (compute_branch_probabilities, branch_prob): Likewise.
|
||
* rtl.h (dump_flow_info): Adjust prototype.
|
||
* tracer.c (rest_of_handle_tracer, tracer): Likewise.
|
||
* var-tracking.c (variable_tracking_main): Likewise.
|
||
* passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
|
||
* tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
|
||
options.
|
||
|
||
2006-02-15 Marcin Dalecki <martin@dalecki.de>
|
||
|
||
* tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
|
||
construction.
|
||
|
||
2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/26209
|
||
* tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
|
||
* tree-cfgcleanup.c (cleanup_control_flow): Remove dead
|
||
eh edges.
|
||
* tree-cfg.c (replace_uses_by): Do not alter cfg.
|
||
|
||
2006-02-14 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/23670
|
||
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
|
||
(X,Y) and the corresponding symmetry related transformations.
|
||
(fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
|
||
(X,Y) and its symmetry related transformations.
|
||
|
||
2006-02-14 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
|
||
and GEU.
|
||
|
||
2006-02-14 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
|
||
|
||
2006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||
|
||
PR bootstrap/26053
|
||
* configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
|
||
support COMDAT group.
|
||
* configure: Regenerate.
|
||
|
||
2006-02-14 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/26279
|
||
PR middle-end/26280
|
||
PR middle-end/26283
|
||
* dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
|
||
|
||
2006-02-14 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
Fix PR tree-optimization/26260
|
||
|
||
* doc/invoke.texi (max-fields-for-field-sensitive): Document
|
||
param.
|
||
* params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
|
||
* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
|
||
* tree-ssa-structalias.c (create_variable_info_for): Use
|
||
MAX_FIELDS_FOR_FIELD_SENSITIVE.
|
||
|
||
2006-02-14 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
|
||
Document.
|
||
* tree-ssa-loop-niter.c (number_of_iterations_ne,
|
||
number_of_iterations_lt, number_of_iterations_cond): Remember the shape
|
||
of the ending condition.
|
||
* tree-ssa-loop-manip.c: Include params.h.
|
||
(build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
|
||
tree_unroll_loop): New functions.
|
||
* tree-pass.h (pass_loop_prefetch): Declare.
|
||
* loop.c (rest_of_handle_loop_optimize): Test for
|
||
-fprefetch-loop-arrays-rtl.
|
||
* tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
|
||
* timevar.def (TV_TREE_PREFETCH): New timevar.
|
||
* tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
|
||
pass_loop_prefetch): New.
|
||
* tree-cfgcleanup.c: Include tree-scalar-evolution.h.
|
||
(cleanup_tree_cfg_loop): Call scev_reset.
|
||
* common.opt (fprefetch-loop-arrays-rtl): Add.
|
||
* tree-ssa-loop-prefetch.c: New file.
|
||
* tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
|
||
(new_temp_expr_table): Initialize expr_vars.
|
||
(free_temp_expr_table): Cleanup expr_vars.
|
||
(check_replaceable, find_replaceable_in_bb): Prevent accumulating
|
||
expressions from being merged into one.
|
||
* tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
|
||
(struct tree_niter_desc): Add control, bound and cmp fields.
|
||
(tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
|
||
Declare.
|
||
* Makefile.in (tree-ssa-loop-prefetch.o): Add.
|
||
(tree-cfgcleanup.o): Add SCEV_H dependency.
|
||
(tree-ssa-loop-manip.o): Add PARAMS_H dependency.
|
||
* passes.c (init_optimization_passes): Add pass_loop_prefetch.
|
||
|
||
2006-02-14 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/26258
|
||
* tree-ssa-structalias.c (find_func_aliases): Handle aggregates
|
||
in PHI argument processing.
|
||
|
||
2006-02-13 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
|
||
new expression in the requested machine mode.
|
||
|
||
2006-02-13 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
|
||
directly, instead let do_compare_rtx_and_jump handle this for us.
|
||
* expr.c (expand_expr_real_1): Likewise.
|
||
* dojump.c (do_jump_by_parts_greater_rtx): Make static. Move
|
||
before do_jump_by_parts_greater.
|
||
(do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
|
||
* expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
|
||
|
||
2006-02-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa/quadlib.c: Use defines instead of enum qfcmp_magic.
|
||
|
||
2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26235
|
||
* loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
|
||
(invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown
|
||
format.
|
||
|
||
2006-02-13 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (extract_range_from_binary_expr): Remove handling of
|
||
TRUTH_XOR_EPR.
|
||
|
||
2006-02-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/26092
|
||
* gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
|
||
twice if decl is a builtin. When trying again, call get_callee_fndecl
|
||
first to verify it is still a builtin.
|
||
|
||
2006-02-13 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (base_type_die): Don't add AT_name here.
|
||
(subrange_type_die): Don't add AT_name here.
|
||
(modified_type_die): Rearrange code flow. Do add AT_name here.
|
||
|
||
2006-02-13 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26247
|
||
PR rtl-optimization/26248
|
||
* loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
|
||
|
||
2006-02-13 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
|
||
* config/fixtfdi.c: Likewise.
|
||
* config/fixunstfdi.c: Likewise.
|
||
* config/floatditf.c: Likewise.
|
||
|
||
2006-02-13 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/24427
|
||
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
|
||
into (X,C2) if C1 is a subset of the bits of C2. Transform
|
||
(X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
|
||
(X&(C1&~C2))|C2.
|
||
<BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
|
||
|
||
2006-02-13 Josh Conner <jconner@apple.com>
|
||
|
||
PR target/25376
|
||
* varasm.c (function_section): Check for section name before
|
||
calling select_section on targets that define
|
||
USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use
|
||
unlikely_text_section instead of hot_function_section if
|
||
first_function_block_is_cold.
|
||
|
||
2006-02-13 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR middle-end/25335
|
||
* reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
|
||
|
||
2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26222
|
||
* function.c (assign_stack_temp_for_type): Do not reuse stack slots
|
||
after tree->rtl expansion.
|
||
* loop-invariant.c (move_invariant_reg): Use force_operand on rhs
|
||
before passing it to emit_move_insn.
|
||
|
||
2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* doc/invoke.texi (-Write-strings): Document that it is enabled by
|
||
default.
|
||
* c.opt (-Wwrite-strings): Declare variable warn_write_strings.
|
||
Clarify documentation.
|
||
* c-common.h (warn_write_strings): Remove.
|
||
* c-common.c (warn_write_strings): Likewise.
|
||
* c-opts.c (c_common_init_options): Enable -Wwrite-strings by
|
||
default for C++.
|
||
|
||
2006-02-12 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR middle-end/25724
|
||
* dojump.c (do_jump): Call do_compare_rtx_and_jump.
|
||
(do_jump_parts_zero_rtx): New function renamed from
|
||
do_jump_parts_equality_rtx. Made static. Add a mode argument.
|
||
(do_jump_parts_equality_rtx): New function split out from
|
||
do_jump_parts_equality. Old implementation renamed as above.
|
||
Call do_jump_parts_zero_rtx if either operand is zero.
|
||
(do_jump_parts_equality): Call do_jump_parts_equality_rtx to
|
||
do all of the heavy lifting.
|
||
(do_compare_rtx_and_jump): Handle multi-word comparisons by
|
||
calling either do_jump_by_parts_greater_rtx or
|
||
do_jump_by_parts_equality_rtx.
|
||
* expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
|
||
* expmed.c (do_cmp_and_jump): Now multi-word optimization has
|
||
moved to do_compare_rtx_and_jump, call it directly.
|
||
* stmt.c (do_jump_if_equal): Remove static prototype. Add a
|
||
mode argument. Call do_compare_rtx_and_jump.
|
||
(emit_case_nodes): Update calls to do_jump_if_equal.
|
||
|
||
2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26225
|
||
* loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
|
||
|
||
2006-02-12 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26232
|
||
* loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
|
||
|
||
2006-02-11 Jason Merrill <jason@redhat.com>
|
||
|
||
PR tree-opt/24365
|
||
* tree-inline.c (declare_return_variable): Just don't use the
|
||
modify target if it's a gimple complex reg and the return slot
|
||
isn't.
|
||
|
||
2006-02-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||
|
||
* doc/contrib.texi: Update my entry.
|
||
|
||
2006-02-10 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
|
||
|
||
2006-02-10 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-inline.c (estimate_num_insns_1): Make OpenMP directives
|
||
expensive.
|
||
|
||
2006-02-10 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* doc/invoke.texi (-floop-optimize2): Removed.
|
||
* toplev.c (process_options): Remove handling of flag_loop_optimize2.
|
||
* loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
|
||
Test flag_branch_on_count_reg only if HAVE_doloop_end.
|
||
* common.opt (floop-optimize2): Removed.
|
||
(fmove-loop-invariants): Enabled by default.
|
||
|
||
2006-02-10 Sebastian Pop <pop@cri.ensmp.fr>
|
||
|
||
* tree-if-conv.c (combine_blocks): Free the result of
|
||
get_loop_exit_edges.
|
||
|
||
2006-02-10 Jeff Law <law@redhat.com>
|
||
|
||
* fold-const.c (tree_expr_nonzero_p): Fix thinko.
|
||
|
||
PR tree-optimization/26213
|
||
* tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
|
||
loop trying to follow SSA_NAME_VALUE chains.
|
||
|
||
2006-02-10 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-dfa.c (get_ref_base_and_extent): When computing maxsize
|
||
deal with structures that end in implicitly variable sized arrays.
|
||
|
||
2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/24762
|
||
* df-scan.c (df_bb_refs_record): Record correct registers defined on
|
||
eh edges.
|
||
|
||
2006-02-09 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
|
||
(struct ivopts_data): Add regs_used field.
|
||
(tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
|
||
(ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
|
||
instead of loop_data->regs_used;
|
||
(free_loop_data): Do not free aux fields for loops.
|
||
(tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
|
||
and tree_ssa_iv_optimize_finalize.
|
||
|
||
2006-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
|
||
|
||
2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR target/26141
|
||
* sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
|
||
computing the effective result type.
|
||
|
||
2006-02-09 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR inline-asm/16194
|
||
* tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
|
||
(tree_overlaps_hard_reg_set): Declare.
|
||
* stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return
|
||
type and signature to match function type expected by walk_tree.
|
||
(tree_overlaps_hard_reg_set): New function.
|
||
(decl_conflicts_with_clobbers_p): Rename to:
|
||
(tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument.
|
||
Use tree_overlaps_hard_reg_set. Changed caller.
|
||
* doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
|
||
decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
|
||
* cris.c (cris_md_asm_clobbers): Likewise.
|
||
|
||
2006-02-09 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* reload1.c (emit_input_reload_insns): Delete code that tries to
|
||
inherit using find_equiv_reg.
|
||
|
||
2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* c-common.h (flag_const_strings): Don't declare.
|
||
* c-common.c (flag_const_strings): Remove.
|
||
* c.opt (fconst_strings): Remove.
|
||
* c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
|
||
<OPT_Wwrite_strings>: Don't set flag_const_strings.
|
||
(c_common_init_options): Don't set flag_const_strings.
|
||
* doc/invoke.texi (-fno-const-strings): Remove documentation.
|
||
|
||
2006-02-09 Richard Earnshaw <richard.earnshaw@arm.com>
|
||
|
||
* arm.md (tlobits_cbranch): New pattern.
|
||
* arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
|
||
testing a single bit.
|
||
|
||
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/26179
|
||
* tree-ssa-pre.c (create_component_ref_by_pieces):
|
||
Handle RETURN_DECL like VAR_DECL.
|
||
|
||
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/26134
|
||
* fold-const.c (fold_indirect_ref_1): Fold
|
||
"*(foo *)&complexfoo" to "__real__ complexfoo"
|
||
and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
|
||
|
||
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* tree-flow-inline.h (var_can_have_subvars):
|
||
Volatile variables should not have subvariables.
|
||
|
||
2006-02-09 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR 26180
|
||
* tree-vrp.c (vrp_int_const_binop): Detect overflow when
|
||
multiplying unsigned values.
|
||
Tidy comments.
|
||
|
||
2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sparc.c (tls_call_delay): Fix oversight.
|
||
|
||
2006-02-08 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/25979
|
||
* tree.def: Elaborate on difference from MODIFY_EXPR.
|
||
* doc/c-tree.texi (INIT_EXPR): Likewise.
|
||
* gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
|
||
(gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
|
||
(gimplify_target_expr): Likewise.
|
||
(gimplify_cond_expr): Remove target handling.
|
||
(gimplify_modify_expr): Don't clobber INIT_EXPR code here.
|
||
(gimplify_expr): Clobber it here.
|
||
(gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
|
||
Do return slot optimization if we have an INIT_EXPR.
|
||
|
||
PR tree-opt/24365
|
||
* tree-inline.c (declare_return_variable): Also clear
|
||
DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
|
||
|
||
PR c++/16405
|
||
* gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
|
||
|
||
PR middle-end/22439
|
||
* gimplify.c (gimplify_one_sizepos): Fix typo.
|
||
|
||
2006-02-08 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/21417
|
||
* tree-ssa-threadedge.c (thread_across_edge): Reject threading
|
||
across a backedge if the control statement at the end of the
|
||
block is data dependent on other statements in the same block.
|
||
(record_temporary_equivalences_from_stmts): Remove over-conservative
|
||
test for threading across backedges.
|
||
|
||
* tree-ssa-dce.c (remove_dead_statement): When removing a dead
|
||
control statement, handle all three special cases in the same
|
||
manner as they all have the same desired solution. No longer
|
||
special case edge flag updating when the post dominator is
|
||
the exit block.
|
||
|
||
2006-02-08 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree.def (CHAR_TYPE): Remove.
|
||
* dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
|
||
* dwarf2out.c (base_type_die, is_base_type): Likewise.
|
||
(gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
|
||
(gen_string_type_die): Delete unreachable function.
|
||
|
||
* tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
|
||
* tree.c (build_int_cst_wide, type_contains_placeholder_1,
|
||
type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
|
||
* tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
|
||
* builtins.c (type_to_class): Likewise.
|
||
* fold-const.c (fold_convert, build_range_check,
|
||
merge_ranges): Likewise.
|
||
* expr.c (count_type_elements): Likewise.
|
||
* c-pretty-print.c (pp_c_type_specifier): Likewise.
|
||
* stor-layout.c (layout_type): Likewise.
|
||
* ipa-type-escape.c (type_to_consider): Likewise.
|
||
* gimplify.c (omp_firstprivatize_type_sizes,
|
||
gimplify_type_sizes): Likewise.
|
||
* explow.c (promote_mode): Likewise.
|
||
* tree-sra.c (is_sra_scalar_type): Likewise.
|
||
* varasm.c (output_constant): Likewise.
|
||
* tree-inline.c (remap_type_1): Likewise.
|
||
* convert.c (convert_to_pointer, convert_to_real,
|
||
convert_to_integer, convert_to_complex): Likewise.
|
||
|
||
2006-02-08 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* df-scan.c (df_def_record_1): A set destination may
|
||
be a parallel regardless of mode.
|
||
|
||
2006-02-08 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR target/22209
|
||
* config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
|
||
* config/mips/_tilib.c: Remove.
|
||
* config/fixtfdi.c: New libgcc source file.
|
||
* config/fixunstfdi.c: New source file.
|
||
* config/floatditf.c: New source file.
|
||
* config/floatunditf.c: New souce file.
|
||
* config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
|
||
files above instead of config/mips/_tilib.c.
|
||
* config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
|
||
|
||
2006-02-08 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/26169
|
||
* tree-vrp.c (execute_vrp): Perform any queued SSA updates before
|
||
threading jumps.
|
||
|
||
2006-02-08 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* df.h (DF_REG_SIZE): Return the length of the initialized
|
||
part of the array.
|
||
|
||
2006-02-08 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
|
||
__muldf3): Return a correctly signed zero.
|
||
|
||
2006-02-08 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* passes.c (register_one_dump_file): Accept the current properties
|
||
instead of pass number. Adjust call to dump_register. Remove
|
||
duplicated code.
|
||
(register_dump_files): Now a wrapper around...
|
||
(register_dump_files_1): ... this one. Do not modify the pass
|
||
structure.
|
||
(next_pass_1): Cosmetic fix.
|
||
(execute_todo): Keep second parameter only. Use curr_properties
|
||
instead of fetching it from the pass structure. Check and set
|
||
last_verified.
|
||
(execute_one_pass): Handle TODO_set_props. Use curr_properties
|
||
instead of fetching it from the pass structure. Fix calls to
|
||
execute_todo. Update curr_properties and initialize .vcg RTL dump
|
||
after running the pass. Reset last_verified.
|
||
* tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump
|
||
at the beginning.
|
||
(FIRST_AUTO_NUMBERED_DUMP): New.
|
||
(dump_register): Remove "num" parameter, assign it within the
|
||
function.
|
||
(get_dump_file_name): Modify template for dumps.
|
||
* tree-dump.h (dump_register): Adjust prototype.
|
||
* tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
|
||
(PROP_trees): Add PROP_gimple_lomp.
|
||
(TODO_set_props): New.
|
||
* gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
|
||
* tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
|
||
* cfgexpand.c (pass_expand): Destroy PROP_trees.
|
||
|
||
2006-02-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
|
||
(sparc64-*-linux*): Likewise.
|
||
* config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
|
||
* config/sparc/t-linux: New file.
|
||
* config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
|
||
__floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
|
||
(__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
|
||
-m32 -mlong-double-128.
|
||
|
||
* config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
|
||
* config/alpha/t-linux: New file.
|
||
* config/alpha/libgcc-alpha-ldbl.ver: New file.
|
||
|
||
* config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
|
||
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
|
||
(CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
|
||
* config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
|
||
__LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
|
||
(CPP_ARCH32_SPEC): Remove.
|
||
|
||
2006-02-07 Uttam Pawar <uttamp@us.ibm.com>
|
||
|
||
PR tree-optimization/26145
|
||
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
|
||
bbs pointer.
|
||
|
||
2006-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/26109
|
||
* pa.c (attr_length_indirect_call): Don't return length 8 for distances
|
||
>= 240000 when generating code for SOM runtime.
|
||
(output_indirect_call): Don't use "b,l" instruction for indirect calls
|
||
to $$dyncall when generating code for SOM runtime..
|
||
|
||
2006-02-07 Dirk Mueller <dmueller@suse.com>
|
||
|
||
PR c++/18150
|
||
* doc/invoke.texi (-Wsequence-point): Update documentation
|
||
that -Wsequence-point is implemented for C++ as well.
|
||
|
||
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
|
||
* config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
|
||
(LIB_SPEC): Likewise.
|
||
* doc/invoke.texi (SPARC options): Document -pthread.
|
||
|
||
2006-02-07 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* config/i386/i386.c (ix86_delegitimize_address): Support Darwin
|
||
PIC addresses.
|
||
|
||
2006-02-07 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
|
||
Correct comment describing BOOLEAN_TYPE.
|
||
|
||
2006-02-07 Dirk Mueller <dmueller@suse.com>
|
||
|
||
* c.opt: C++ frontend supports -Wdiv-by-zero.
|
||
* c-opts.c (c_common_handle_option): Remove dead case.
|
||
|
||
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* configure.ac (TLS assembler check): Do not enable TLS by
|
||
default on SPARC/Solaris before version 10.
|
||
* configure: Regenerate.
|
||
|
||
2006-02-07 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* doc/invoke.texi (xl-compat): Document conversion and support
|
||
routine names.
|
||
|
||
2006-02-07 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (find_conditional_asserts): Update comments.
|
||
(simplify_stmt_for_jump_threading): New.
|
||
(identify_jump_threads, finalize_jump_threads): New.
|
||
(vrp_finalize): Call identify_jump_threads.
|
||
(execute_vrp): Call finalize_jump_threads.
|
||
* tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
|
||
(vrp_element, vrp_data, vrp_element_p): Remove.
|
||
(vrp_hash_elt, vrp_variables_stack): Remove.
|
||
(vrp_hash, vrp_eq, record_range): Remove.
|
||
(simplify_cond_and_lookup_avail_expr): Remove.
|
||
(extract_range_from_cond): Remove.
|
||
(thread_across_edge): Relocated into tree-ssa-threadedge.c.
|
||
(simplify_stmt_for_jump_threading): New.
|
||
(dom_thread_across_edge): New wrapper.
|
||
(tree_ssa_dominator_optimize): No longer initialize or
|
||
finalize any of the VRP datastructures. Remove iteration
|
||
step and simplify as a result of removal of iteration step.
|
||
(pass_dominator): Perform a cfg cleanup after DOM.
|
||
(dom_opt_finalize_block): Use the new common routines
|
||
for threading jumps. Simplify stack management slightly.
|
||
No longer need to unwind VRP state.
|
||
(record_equivalences_from_incoming_edge): No longer record
|
||
VRP information.
|
||
(eliminate_redundant_computations): No longer call
|
||
simplify_cond_and_lookup_avail_expr.
|
||
* tree-flow.h (potentially_threadable_block): Prototype.
|
||
(thread_across_edge): Likewise.
|
||
* Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
|
||
(tree-ssa-threadedge.o): Add dependencies.
|
||
* tree-ssa-threadedge.c: New file.
|
||
* passes.c (init_optimization_passes): Merge PHIs before
|
||
calling VRP. Run VRP again late in the SSA optimization pipeline.
|
||
|
||
2006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* df-core.c (df_set_blocks): Do not dereference function pointers.
|
||
(df_finish1): Likewise.
|
||
(df_hybrid_search_forward): Likewise.
|
||
(df_hybrid_search_backward): Likewise.
|
||
(df_iterative_dataflow): Likewise.
|
||
(df_analyze_problem): Likewise.
|
||
(df_compact_blocks): Likewise.
|
||
(df_dump): Likewise.
|
||
* df-scan.c (df_rescan_blocks): Likewise.
|
||
(df_record_entry_block_defs): Likewise.
|
||
|
||
* genconditions.c (write_conditions): Guard the definition of
|
||
'insn_conditions' with the check on GCC version.
|
||
(write_writer): Guard the traversal 'insn_conditions' with
|
||
the check on GCC version.
|
||
|
||
2006-02-07 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR c++/26140
|
||
Revert
|
||
2006-01-30 Richard Guenther <rguenther@suse.de>
|
||
PR c++/23372
|
||
* gimplify.c (gimplify_target_expr): Handle easy cases
|
||
without creating a temporary.
|
||
|
||
2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
|
||
|
||
* sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
|
||
use of float in probability computations. Use edge probabilities
|
||
in place of statically computed probabilities.
|
||
(min_spec_prob): New static variable.
|
||
(schedule_insns): Initialize it.
|
||
(GET_SRC_PROB): Removed.
|
||
* doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
|
||
|
||
2006-02-07 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/24444
|
||
* config/ia64/unwind-ia64.c: Revert last change.
|
||
* config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
|
||
(INCOMING_FRAME_SP_OFFSET): Define.
|
||
|
||
2006-02-06 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
|
||
|
||
2006-02-07 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/i386/i386.c (ix86_scalar_mode_supported_p): New.
|
||
(TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
|
||
(classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
|
||
(ix86_return_in_memory): Handle TDmode.
|
||
(ix86_libcall_value): Handle SDmode, DDmode, TDmode.
|
||
(ix86_value_regno): Return non-TDmode decimal float modes in %eax.
|
||
|
||
2006-02-06 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* reorg.c (dbr_schedule): Use dump_file instead of file.
|
||
|
||
2006-02-06 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR target/25917
|
||
* config/ia64/predicates.md (extr_len_operand): New predicate.
|
||
* config/ia64/ia64.md (extv): Tighten constraints.
|
||
(extzv): Ditto.
|
||
(*tbit_and_2): Ditto.
|
||
(*tbit_and_3): Ditto.
|
||
(*tbit_or_2): Ditto.
|
||
(*tbit_or_3): Ditto.
|
||
(*bit_zero): Ditto.
|
||
(*bit_one): Ditto.
|
||
|
||
2006-02-06 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/23359
|
||
* config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
|
||
|
||
2006-02-06 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-vrp.c (execute_vrp): Do not pass dump argument to.
|
||
loop_optimizer_init and loop_optimizer_finalize
|
||
* tree-ssa-sink.c (execute_sink_code): Ditto.
|
||
* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
|
||
* tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
|
||
tree_ssa_loop_done): Ditto.
|
||
* tree-ssa-pre.c (init_pre, fini_pre): Ditto.
|
||
* sched-ebb.c: Include output.h.
|
||
(schedule_ebbs): Do not use dump argument.
|
||
* value-prof.h (struct profile_hooks): Remove profile_dump_file.
|
||
* loop.c (loop_dump_stream): Removed.
|
||
(loop_optimize, rest_of_handle_loop_optimize): Do not use dump
|
||
argument.
|
||
(scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
|
||
emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
|
||
final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
|
||
loop_iterations, strength_reduce, record_biv, record_giv,
|
||
final_giv_value, check_final_value, check_ext_dependent_givs,
|
||
combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
|
||
try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
|
||
dump_file instead of loop_dump_stream.
|
||
* ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
|
||
argument dump_file.
|
||
* reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
|
||
dump argument.
|
||
* flow.c (life_analysis, rest_of_handle_life): Ditto.
|
||
* haifa-sched.c: Include output.h
|
||
(schedule_insns, sched_init): Do not use dump argument.
|
||
* mode-switching.c (optimize_mode_switching): Ditto.
|
||
* modulo-sched.c (stats_file): Removed.
|
||
(print_node_sched_params): Do not call argument dump_file.
|
||
(sms_schedule_by_order, loop_canon_p, sms_schedule,
|
||
rest_of_handle_sms): Do not use dump argument. Use dump_file instead
|
||
of stats_file.
|
||
* cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
|
||
use dump argument.
|
||
* loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
|
||
rtl_loop_init, rtl_loop_done): Ditto.
|
||
* global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
|
||
* predict.c (combine_predictions_for_bb, tree_estimate_probability):
|
||
Ditto.
|
||
* recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
|
||
* lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
|
||
* regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
|
||
rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
|
||
* emit-rtl.c (renumber_insns): Ditto.
|
||
* cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
|
||
expand_gimple_basic_block, tree_expand_cfg): Ditto.
|
||
* regclass.c (regclass): Ditto.
|
||
* tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
|
||
remove_ssa_form, rewrite_out_of_ssa): Ditto.
|
||
* reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
|
||
convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
|
||
Ditto.
|
||
* sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
|
||
* local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
|
||
to regclass.
|
||
* gcse.c (gcse_file, debug_stderr): Removed.
|
||
(gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
|
||
rest_of_handle_gcse): Do not use dump argument.
|
||
(cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
|
||
one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
|
||
pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
|
||
compute_code_hoist_vbeinout, compute_code_hoist_data,
|
||
one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
|
||
compute_store_table, build_store_vectors, insert_insn_start_bb,
|
||
insert_store, remove_reachable_equiv_notes, replace_store_insn,
|
||
store_motion): Use dump_file instead of gcse_file.
|
||
* ipa-type-escape.c (type_escape_execute): Remove debugging comments.
|
||
* profile.c (profile_dump_file): Removed.
|
||
(branch_prob): Use dump_file instead of profile_dump_file.
|
||
* ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
|
||
dump_file.
|
||
* tree-ssa-copy.c (dump_copy_of): Ditto.
|
||
* rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
|
||
dump file to life_analysis.
|
||
* bt-load.c (branch_target_load_optimize): Ditto.
|
||
* cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
|
||
renumber_insns.
|
||
* rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
|
||
regclass, dbr_schedule): Declaration changed.
|
||
* sched-int.h (sched_init): Declaration changed.
|
||
* tree-profile.c (tree_profile_dump_file): Removed.
|
||
(tree_profile_hooks): Removed profile_dump_file hook.
|
||
* rtl-profile (rtl_profile_dump_file): Removed.
|
||
(rtl_profile_hooks): emoved profile_dump_file hook.
|
||
* cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
|
||
changed.
|
||
* c-gimplify.c (c_genericize): Do not call local variable dump_file.
|
||
* tree-cfg.c (build_tree_cfg): Ditto.
|
||
* Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
|
||
* basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
|
||
Declaration changed.
|
||
* config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
|
||
life_analysis and schedule_insns.
|
||
* config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
|
||
life_analysis.
|
||
* config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
|
||
dbr_schedule.
|
||
* config/mips/mips.c (mips_reorg): Ditto.
|
||
* config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
|
||
schedule_ebbs.
|
||
|
||
2006-02-06 Aldy Hernandez <aldyh@redhat.com>
|
||
|
||
* config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
|
||
(s390_mangle_fundamental_type): New.
|
||
* config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
||
Define.
|
||
|
||
* config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
|
||
(alpha_mangle_fundamental_type): New.
|
||
* config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
||
Define.
|
||
|
||
* config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
||
Define.
|
||
* config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
|
||
Define.
|
||
* config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
|
||
(sparc_mangle_fundamental_type): New.
|
||
|
||
2006-02-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
|
||
(s390x-*-linux*): Likewise.
|
||
* config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
|
||
* config/s390/t-linux: New file.
|
||
|
||
2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
|
||
sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
|
||
|
||
2006-02-06 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
|
||
(ANTIC_SAFE_LOADS): New macro.
|
||
(find_or_generate_expression): Add prototype.
|
||
(set_contains_value): Allow null set for sake of not always having
|
||
to allocate ANTIC_SAFE_LOADS.
|
||
(phi_translate): Move placement of AGGREGATE_TYPE_P check.
|
||
Allow COMPONENT_REF too.
|
||
(valid_in_set): Allow COMPONENT_REF.
|
||
Check ANTIC_SAFE_LOADS too.
|
||
(compute_antic_aux): Print out ANTIC_SAFE_LOADS.
|
||
(compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
|
||
rename.
|
||
(can_PRE_operation): Add COMPONENT_REF.
|
||
(create_component_ref_by_pieces): New function.
|
||
(create_expression_by_pieces): Use create_component_ref_by_pieces.
|
||
(insert_aux): Move AGGREGATE_TYPE_P check here.
|
||
(compute_avail): Set bb local stmt uids.
|
||
(pass_pre): Use TODO_update_ssa_only_virtuals.
|
||
|
||
2006-02-06 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* configure.ac: Unconditionally disable decimal float by default.
|
||
* configure: Regenerate.
|
||
|
||
2006-02-06 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* read-rtl.c (read_name): Terminate reading on EOF.
|
||
|
||
2006-02-06 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* dfp.c (decimal_real_arithmetic): Change second argument type
|
||
from int to enum tree_code. Do not always return true, but now
|
||
return result of any call to decimal_do helper functions.
|
||
* dfp.h (decimal_real_arithmetic): Update prototype.
|
||
|
||
2006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
* config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
|
||
|
||
2006-02-05 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/25251
|
||
* tree-cfg.c (cleanup_dead_labels): Also don't remove
|
||
forced labels.
|
||
|
||
2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-vrp.c (cfg_loops): Removed.
|
||
(adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
|
||
Use current_loops instead of cfg_loops. Pass flags to
|
||
loop_optimizer_init.
|
||
* cfgloopmanip.c (fix_loop_structure): Update only available
|
||
information.
|
||
* tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
|
||
loop_optimizer_init.
|
||
* modulo-sched.c (build_loops_structure): Removed.
|
||
(sms_schedule): Use loop_optimizer_init.
|
||
* loop-init.c (loop_optimizer_init): Use flags to determine
|
||
which properties of loops to prepare.
|
||
(rtl_loop_init): Pass flags to loop_optimizer_init.
|
||
* tree-ssa-sink.c (execute_sink_code): Ditto.
|
||
* tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
|
||
* tree-ssa-pre.c (init_pre): Ditto.
|
||
* cfgloop.h (LOOPS_NORMAL): New.
|
||
(loop_optimizer_init): Declaration changed.
|
||
|
||
2006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
|
||
* config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
|
||
pa/t-pa.
|
||
* config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
|
||
pa/t-pa.
|
||
* config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
|
||
pa/x-ada.
|
||
* pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
|
||
* pa/t-pa64: Delete quadlib.c rule.
|
||
* pa/x-ada: Revert last change.
|
||
* pa/t-pa: Revert last change. Delete quadlib.c rule.
|
||
|
||
2006-02-04 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR rtl-optimization/26087
|
||
* rtlanal.c (canonicalize_condition): Do not cross basic block
|
||
boundaries.
|
||
|
||
2006-02-04 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/24444
|
||
* config/ia64/ia64.c: Include debug.h.
|
||
(MAX_ARTIFICIAL_LABEL_BYTES): New.
|
||
(ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
|
||
(IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
|
||
(process_epilogue, process_set, process_for_unwind_directive):
|
||
Output unwind info only if requested. Add CFA info if requested.
|
||
Add new arguments as needed. Adjust callers.
|
||
* config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
|
||
incorrect default.
|
||
(DWARF2_FRAME_INFO): Define to zero.
|
||
* config/ia64/unwind-ia64.c: Remove code that compensated for
|
||
the CFA offset error fixed above.
|
||
* config/ia64/t-ia64 (ia64.o): Depend on debug.h.
|
||
* dwarf2out.c (DWARF2_FRAME_INFO): Define default.
|
||
(dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
|
||
-funwind-tables and -fexceptions to enable frame info.
|
||
(dwarf2out_frame_init): Define initial CFA even if
|
||
DWARF2_UNWIND_INFO is disabled. Call initial_return_save if
|
||
DWARF2_UNWIND_INFO is nonzero, not just defined.
|
||
(dwarf2out_frame_finish): Output non-EH call frame info only
|
||
if DWARF2_FRAME_INFO is nonzero.
|
||
(convert_cfa_to_loc_list,
|
||
compute_frame_pointer_to_cfa_displacement): Define even if
|
||
unwind info is not supported.
|
||
(gen_subprogram_die): Use the above unconditionally. Remove
|
||
legacy alternate code.
|
||
* toplev.c (compile_file): Compile in call to
|
||
dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
|
||
(lang_dependent_init): Ditto for dwarf2out_frame_init.
|
||
|
||
2006-02-04 David Edelsohn <edelsohn@gnu.org>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
|
||
IBM extended float format long double as "g" on powerpc*-linux.
|
||
|
||
2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/25926
|
||
* pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
|
||
* pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
|
||
|
||
2006-02-03 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/25979
|
||
* gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
|
||
|
||
PR middle-end/25977
|
||
* gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
|
||
on the return slot if it's an NRV.
|
||
|
||
2006-02-03 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
|
||
(dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
|
||
rewrite_use): Do not handle USE_OUTER.
|
||
(find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
|
||
add_iv_outer_candidates, may_replace_final_value,
|
||
determine_use_iv_cost_outer, rewrite_use_outer): Removed.
|
||
(find_interesting_uses_op): Functionality of
|
||
find_interesting_uses_outer_or_nonlin moved here.
|
||
(find_interesting_uses_outside): Use find_interesting_uses_op.
|
||
|
||
2006-02-03 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/25960
|
||
* config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
|
||
|
||
2006-02-03 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
PR target/25864
|
||
* config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
|
||
"x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
|
||
* config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
|
||
* config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
|
||
and dxr fields.
|
||
(z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
|
||
(s390_rtx_costs): Use the new fields to calculate rtx costs.
|
||
(s390_secondary_input_reload_class, s390_secondary_output_reload_class):
|
||
Define secondary reloads for TFmode moves.
|
||
(constant_modes): Add TFmode.
|
||
(NR_C_MODES): Set to 8.
|
||
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
|
||
builtin define.
|
||
(LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
|
||
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
|
||
(HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
|
||
CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
|
||
* config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
|
||
fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
|
||
(FPR mode macro): Add TFmode.
|
||
(DSF mode macro): New.
|
||
(<de>, <dee> mode attributes): Removed.
|
||
(<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
|
||
("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
|
||
"*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
|
||
"floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
|
||
"*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
|
||
"*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
|
||
"*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
|
||
"*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
|
||
"*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
|
||
"*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
|
||
"*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
|
||
"*negabs<mode>2", "sqrt<mode>2"):
|
||
Changed <de> to <xde>. R constraint replaced by <Rf>.
|
||
("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
|
||
<Rf>.
|
||
("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
|
||
("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
|
||
("*movtf_64", "*movtf_31"): New insn definitions followed by 5
|
||
splitters.
|
||
("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
|
||
"extenddftf2", "extendsftf2"): New expanders.
|
||
("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
|
||
"*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
|
||
"*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
|
||
* config/s390/s390.opt (mlong-double-128, mlong-double-64):
|
||
New options.
|
||
* config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
|
||
* config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
|
||
__fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
|
||
__floatditf): Add a GCC_4.1.0 symbol version tag.
|
||
* doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
|
||
the new options.
|
||
|
||
2006-02-02 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/25377
|
||
* config/i386/i386.c (ix86_function_ok_for_sibcall):
|
||
Use targetm.binds_local_p instead of TREE_PUBLIC.
|
||
|
||
2006-02-02 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* tree.h (TYPE_STRING_FLAG): Document that this field may be used
|
||
on INTEGER_TYPEs to indicate that it denotes a character type.
|
||
* tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
|
||
signed_char_type_node, unsigned_char_type_node and char_type_node.
|
||
* dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
|
||
INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit
|
||
a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
|
||
|
||
2006-02-02 Zdenek Dvorak <dvorakz@suse.cz>
|
||
Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-tailcall.c (arg_needs_copy_p): New function.
|
||
(eliminate_tail_call): Use arg_needs_copy_p.
|
||
(tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
|
||
(add_virtual_phis): New function.
|
||
|
||
2006-02-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/sparc/sparc.c (sparc_output_scratch_registers): Use
|
||
#ignore instead of #scratch for %g7 .register directive.
|
||
|
||
2006-02-02 Andreas Tobler <a.tobler@schweiz.ch>
|
||
|
||
* config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
|
||
object files.
|
||
|
||
2006-02-02 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* flow.c (calculate_global_regs_live): Assert that there aren't any
|
||
EDGE_FAKE edges.
|
||
|
||
2006-02-02 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* tree-flow-inline.h (bsi_after_labels): Rewrite, return
|
||
what its name says.
|
||
* lambda-code.c (perfect_nestify): Use bsi_insert_before on
|
||
bsi_after_labels iterator.
|
||
* tree-if-conv.c (find_phi_replacement_condition,
|
||
replace_phi_with_cond_modify_expr): Likewise.
|
||
* tree-scalar-evolution.c (scev_const_prop): Likewise.
|
||
* tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
|
||
|
||
2006-02-02 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
|
||
|
||
2006-02-02 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR 25990
|
||
* tree-cfg.c (move_block_to_fn): Clear out the basic block
|
||
array after growing it.
|
||
|
||
2006-02-01 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR middle-end/24901
|
||
* fold-const.c (fold_checksum_tree): Change type of buf.
|
||
|
||
2006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
|
||
|
||
* reload.c (push_secondary_reload): Initialize t_icode.
|
||
|
||
2006-02-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
|
||
-msoft-float -mlong-double-128 only issue a warning, but don't
|
||
swich to DFmode long double.
|
||
|
||
2006-02-01 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
* cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
|
||
has a constant equivalent, iterate over equivalents for arg0,
|
||
calling simplify_relational_operation and if there's a result
|
||
cheaper than X, apply fold_rtx and return the result.
|
||
|
||
2006-02-01 Jan Hubicka <jh@suse.cz>
|
||
|
||
* opts.c (no_unit_at_a_time_default): New global variable.
|
||
(decode_options): Use it.
|
||
* opts.h (no_unit_at_a_time_default): Declare.
|
||
|
||
2006-02-01 Paul Brook <paul@codesourcery.com>
|
||
|
||
* function.c (assign_parm_setup_reg): Use function argument promotion
|
||
rules.
|
||
* expr.c (expand_expr_real_1): Use function argument promotion rules
|
||
for PARM_DECLs.
|
||
|
||
2006-02-01 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
* gcc.c (process_command): Change j to 'unsigned int'.
|
||
|
||
2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/26001
|
||
* expr.c (expand_expr_real_1) <case ARRAY_REF>:
|
||
Use the corrected index for the character
|
||
out of the string constant.
|
||
|
||
2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* mode-switching.c (optimize_mode_switching): Fix size
|
||
allocated for bb_info[n_entities].
|
||
|
||
2006-01-31 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* gcc.c (main): Correct type that is allocated for
|
||
explicit_link_files.
|
||
|
||
2006-01-31 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/s390/s390.c (init_alignment_context): Set
|
||
ALIAS_SET_MEMORY_BARRIER on the MEM.
|
||
* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
|
||
|
||
2006-01-31 Uttam Pawar <uttamp@us.ibm.com>
|
||
|
||
PR middle-end/25933
|
||
* loop-unroll.c (unroll_loop_runtime_iterations): Free
|
||
dom_bbs pointer.
|
||
* tree-ssa-live.c (type_var_init): Allocate bitmap after
|
||
call to tpa_init.
|
||
|
||
2006-01-31 Marcin Dalecki <martin@dalecki.de>
|
||
|
||
* tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
|
||
* regrename.c: Ditto.
|
||
* tree-ssa-loop-im.c: Ditto.
|
||
* tree-dump.c: Ditto.
|
||
* tree-complex.c: Ditto.
|
||
* genrecog.c: Ditto.
|
||
* tree-ssa-threadupdate.c: Ditto.
|
||
* tracer.c: Ditto.
|
||
* java/class.c: Ditto.
|
||
* java/jcf-parse.c: Ditto.
|
||
* java/resource.c: Ditto.
|
||
* java/except.c: Ditto.
|
||
* java/jvspec.c: Ditto.
|
||
* java/jcf-write.c: Ditto.
|
||
* java/jcf-path.c: Ditto.
|
||
* java/gjavah.c: Ditto.
|
||
* java/zextract.c: Ditto.
|
||
* java/jcf-io.c: Ditto.
|
||
* java/jcf.h: Ditto.
|
||
* java/buffer.c: Ditto.
|
||
* java/lang.c: Ditto.
|
||
* java/parse-scan.y: Ditto.
|
||
* java/lex.c: Ditto.
|
||
* java/lex.h: Ditto.
|
||
* cfgloopmanip.c: Ditto.
|
||
* postreload-gcse.c: Ditto.
|
||
* tree-ssa-loop-manip.c: Ditto.
|
||
* postreload.c: Ditto.
|
||
* tree-ssa-loop-ch.c: Ditto.
|
||
* loop.c: Ditto.
|
||
* ipa-cp.c: Ditto.
|
||
* cppspec.c: Ditto.
|
||
* diagnostic.c: Ditto.
|
||
* final.c: Ditto.
|
||
* genoutput.c: Ditto.
|
||
* gcc.c: Ditto.
|
||
* cfghooks.c: Ditto.
|
||
* cfgloopanal.c: Ditto.
|
||
* objc/objc-act.c: Ditto.
|
||
* gcov.c: Ditto.
|
||
* genextract.c: Ditto.
|
||
* genautomata.c: Ditto.
|
||
* pretty-print.c: Ditto.
|
||
* genemit.c: Ditto.
|
||
* cgraphunit.c: Ditto.
|
||
* flow.c: Ditto.
|
||
* df-scan.c: Ditto.
|
||
* haifa-sched.c: Ditto.
|
||
* dominance.c: Ditto.
|
||
* dbxout.c: Ditto.
|
||
* tree-ssa-loop-ivopts.c: Ditto.
|
||
* df-core.c: Ditto.
|
||
* mode-switching.c: Ditto.
|
||
* modulo-sched.c: Ditto.
|
||
* graph.c: Ditto.
|
||
* ipa-pure-const.c: Ditto.
|
||
* cse.c: Ditto.
|
||
* fix-header.c: Ditto.
|
||
* web.c: Ditto.
|
||
* tree-stdarg.c: Ditto.
|
||
* ipa-utils.c: Ditto.
|
||
* loop-init.c: Ditto.
|
||
* ipa-inline.c: Ditto.
|
||
* cfganal.c: Ditto.
|
||
* global.c: Ditto.
|
||
* alloc-pool.c: Ditto.
|
||
* dwarf2out.c: Ditto.
|
||
* opts.c: Ditto.
|
||
* genattrtab.c: Ditto.
|
||
* tree-ssa-loop-ivcanon.c: Ditto.
|
||
* predict.c: Ditto.
|
||
* timevar.c: Ditto.
|
||
* lcm.c: Ditto.
|
||
* fortran/gfortranspec.c: Ditto.
|
||
* regmove.c: Ditto.
|
||
* local-alloc.c: Ditto.
|
||
* langhooks.c: Ditto.
|
||
* function.c: Ditto.
|
||
* tree-vectorizer.c: Ditto.
|
||
* gcse.c: Ditto.
|
||
* ipa-type-escape.c: Ditto.
|
||
* alias.c: Ditto.
|
||
* tree-if-conv.c: Ditto.
|
||
* profile.c: Ditto.
|
||
* ipa.c: Ditto.
|
||
* tree-data-ref.c: Ditto.
|
||
* loop-unroll.c: Ditto.
|
||
* treelang/treetree.c: Ditto.
|
||
* calls.c: Ditto.
|
||
* bt-load.c: Ditto.
|
||
* ggc-common.c: Ditto.
|
||
* except.c: Ditto.
|
||
* coverage.c: Ditto.
|
||
* cselib.c: Ditto.
|
||
* tree-cfgcleanup.c: Ditto.
|
||
* tree-ssa-pre.c: Ditto.
|
||
* cfgcleanup.c: Ditto.
|
||
* loop-invariant.c: Ditto.
|
||
* loop-iv.c: Ditto.
|
||
* ipa-prop.c: Ditto.
|
||
* print-tree.c: Ditto.
|
||
* conflict.c: Ditto.
|
||
* ggc-page.c: Ditto.
|
||
* sched-deps.c: Ditto.
|
||
* regclass.c: Ditto.
|
||
* tree-object-size.c: Ditto.
|
||
* combine.c: Ditto.
|
||
* bb-reorder.c: Ditto.
|
||
* resource.c: Ditto.
|
||
* var-tracking.c: Ditto.
|
||
* cfgloop.c: Ditto.
|
||
* df-problems.c: Ditto.
|
||
* reg-stack.c: Ditto.
|
||
* tlink.c: Ditto.
|
||
* gccspec.c: Ditto.
|
||
* sched-rgn.c: Ditto.
|
||
* tree-ssa-structalias.c: Ditto.
|
||
* tree-ssa-reassoc.c: Ditto.
|
||
* config/darwin-c.c: Ditto.
|
||
* config/darwin.c: Ditto.
|
||
* config/arm/arm.c: Ditto.
|
||
* cfgrtl.c: Ditto.
|
||
* collect2.c: Ditto.
|
||
* reload1.c: Ditto.
|
||
|
||
2006-01-31 Nicolas Pitre <nico@cam.org>
|
||
|
||
* arm.md (smaxsi3): Make aware of smax_m1.
|
||
(smax_m1): New.
|
||
|
||
2006-01-31 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* config/m68k/lb1sf68.asm: Use moveq to load small constants.
|
||
|
||
2006-01-31 Richard Guenther <rguenther@suse.de>
|
||
|
||
* doc/invoke.texi (-msselibm): Document.
|
||
* target.h (expand_library_builtin): New target hook.
|
||
* builtins.c (expand_builtin): Use expand_library_builtin.
|
||
(default_expand_library_builtin): New function.
|
||
* gcc.c (LINK_GCC_MATH_SPEC): Define.
|
||
(LINK_COMMAND_SPEC): Handle %(link_gcc_math).
|
||
(link_gcc_math_spec): Declare.
|
||
(static_specs): Add link_gcc_math_spec.
|
||
* expr.h (default_expand_library_builtin): Declare.
|
||
* target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
|
||
(TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
|
||
* config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
|
||
* config/i386/i386.opt (msselibm): New target option.
|
||
* config/i386/i386.c (ix86_builtin_function_variants): New array.
|
||
(ix86_init_sse_abi_builtins): New function.
|
||
(ix86_expand_library_builtin): Likewise.
|
||
(TARGET_EXPAND_LIBRARY_BUILTIN): Define.
|
||
(override_options): Handle error conditions wrt -msselibm.
|
||
(ix86_builtins): Add function codes for SSE2 ABI builtins.
|
||
(ix86_init_builtins): Call ix86_init_sse_abi_builtins.
|
||
* doc/extend.texi (__builtin_sse2_*): Document new target specific
|
||
builtins.
|
||
|
||
2006-01-31 Richard Guenther <rguenther@suse.de>
|
||
Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* doc/install.texi (--disable-libgcc-math): Document.
|
||
|
||
2006-01-30 Marcin Dalecki <martin@dalecki.de>
|
||
|
||
* expr.h (expand_normal): new inline function.
|
||
* builtins.c: use it, use EXPAND_NORMAL explicitely.
|
||
* dojump.c: use it.
|
||
* dwarf2out.c: use it.
|
||
* expr.c: use it.
|
||
* calls.c: use it.
|
||
* expmed.c: use it.
|
||
* except.c: use it.
|
||
* config/sparc/sparc.c: use it.
|
||
* config/i386/i386.c: use it.
|
||
* config/rs6000/rs6000.c: use it.
|
||
* config/arm/arm.c: use it.
|
||
* config/mips/mips.c: use it.
|
||
* stmt.c: use it, use EXPAND_NORMAL explicitely.
|
||
|
||
2006-01-30 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
|
||
argv to the appropriate type.
|
||
|
||
2006-01-30 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
|
||
unreachable code.
|
||
|
||
2006-01-30 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
PR target/26018
|
||
* config/s390/s390.c (struct machine_function): New flag
|
||
decomposed_literal_pool_addresses_ok_p.
|
||
(s390_reorg): Set it before final stage of literal pool transforms.
|
||
(s390_decompose_address): Only accept displacements of the form
|
||
(minus (label_ref ...) (label_ref ...)) if that flag is set.
|
||
|
||
2006-01-30 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
|
||
the comparison routine return.
|
||
|
||
2006-01-30 Michael Matz <matz@suse.de>
|
||
|
||
* global.c (find_reg): Only evict for global regs.
|
||
Take n_refs into account and dump more info.
|
||
|
||
2006-01-30 J"orn Rennecke <joern.rennecke@st.com>
|
||
|
||
PR target/14798:
|
||
* sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
|
||
(pragma_trap, pragma_nosave_low_regs): Likewise.
|
||
(current_function_anonymous_args): Likewise.
|
||
(sh_deferred_function_attributes): New variable.
|
||
(sh_deferred_function_attributes_tail): Likewise.
|
||
(print_operand): For '@', look up trap_exit attribute.
|
||
(calc_live_regs): Look up trapa_handler attribute. For trapa
|
||
handlers, save/restore fpscr, but don't do any other
|
||
interrupt-specific saves.
|
||
Don't save r0..r7 if the nosave_low_regs attribute is in effect.
|
||
Fix check for partially saved registers to check for SHmedia.
|
||
(sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
|
||
(sh_output_function_epilogue): Don't clear any of the removed
|
||
variables.
|
||
(sh_insert_attributes): Don't check pragma_interrupt.
|
||
Insert deferred attributes. Check that interrupt attribute is
|
||
present for other attributes that require its presence.
|
||
(sh_attribute_table): Add new attributes trapa_handler and
|
||
nosave_low_regs.
|
||
(sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
|
||
Don't check for pragma_interrupt. Don't store argument.
|
||
* sh.h (pragma_interrupt, sp_switch): Don't declare.
|
||
(sh_deferred_function_attributes): Declare.
|
||
(sh_deferred_function_attributes_tail): Likewise.
|
||
* sh.md (sp_switch_1): Add operand. Change generator caller.
|
||
(sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
|
||
(*return_i): Don't use when trap_exit attribute is in effect.
|
||
(*return_trapa): New insn pattern.
|
||
* sh-c.c: New file.
|
||
* config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
|
||
setting c_target_objs and cxx_target_objs.
|
||
* t-sh: Add rule for sh-c.o.
|
||
|
||
2006-01-30 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR c++/23372
|
||
* gimplify.c (gimplify_target_expr): Handle easy cases
|
||
without creating a temporary.
|
||
|
||
2006-01-30 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* vec.h (safe_grow): Remove duplicated line.
|
||
|
||
2006-01-29 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR 25874
|
||
* omp-low.c (execute_expand_omp): Move CFG cleanup code ...
|
||
(expand_omp): ... here.
|
||
(expand_omp_parallel): Only remove barriers for combined
|
||
parallel+workshare constructs.
|
||
|
||
2006-01-29 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
Revert
|
||
|
||
2005-11-09 Eric Botcazou <ebotcazou@adacore.com>
|
||
* tree.c (build_qualified_type): Chain the new type to the original
|
||
type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
|
||
a POINTER_TYPE or a REFERENCE_TYPE respectively.
|
||
(build_pointer_type_for_mode): Only return unqualified types.
|
||
(build_reference_type_for_mode): Likewise.
|
||
|
||
2006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net>
|
||
|
||
* configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
|
||
* Makefile.in (CXX_COMPAT_WARN): Define.
|
||
* configure: Regenerate.
|
||
|
||
2006-01-29 Dorit Nuzman <dorit@il.ibm.com>
|
||
|
||
PR tree-opt/25911
|
||
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
|
||
to an if check.
|
||
|
||
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
* toplev.c: Fix thinko.
|
||
|
||
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
Marcin Dalecki <martin@dalecki.de>
|
||
|
||
* toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
|
||
(push_srcloc): Use XNEW.
|
||
(init_asm_output, default_get_pch_validity): Use XNEWVEC.
|
||
|
||
2006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df-core.c (df_set_blocks): Deleted all variable.
|
||
|
||
2006-01-28 Ian Lance Taylor <ian@airs.com>
|
||
|
||
* cgraphunit.c (cgraph_assemble_pending_functions): Call
|
||
cgraph_output_pending_asms.
|
||
|
||
2006-01-28 Zack Weinberg <zackw@panix.com>
|
||
|
||
* c.opt: Add -W(no-)overlength-strings.
|
||
* doc/invoke.texi: Document it.
|
||
* c-opts.c (c_common_handle_option): -pedantic implies
|
||
-Woverlength-strings, if not explicitly disabled already.
|
||
(c_common_post_options): -Woverlength-strings defaults to off, and
|
||
is always off for C++.
|
||
* c-common.c (fix_string_type): Issue warning about strings longer
|
||
than is portable only if warn_overlength_strings. Rearrange code
|
||
a little for clarity.
|
||
* configure.in: Check for -Wno-overlength-strings as well before
|
||
enabling -pedantic in stage 1.
|
||
* Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
|
||
(gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
|
||
|
||
* genconditions.c (write_header, write_one_condition)
|
||
(write_conditions, write_writer): Consolidate very long strings
|
||
that were broken up to fit in C89 portable limit. Don't use
|
||
printf when fputs will do.
|
||
|
||
2006-01-28 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* combine.c (simplify_comparison <AND>): Check
|
||
TRULY_NOOP_TRUNCATION before start using a subreg.
|
||
|
||
* config/mips/mips.md (*branch_zero<mode>,
|
||
*branch_zero<mode>_inverted, *branch_equality<mode>,
|
||
*branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
|
||
Remove mode check from comparisons.
|
||
|
||
2006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
|
||
|
||
2006-01-28 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* expmed.c (const_mult_add_overflow_p): Remove.
|
||
* expr.h: Remove the prototype for const_mult_add_overflow_p.
|
||
|
||
* recog.c (validate_replace_rtx_subexp): Remove.
|
||
* recog.h: Remove the prototype for
|
||
validate_replace_rtx_subexp.
|
||
|
||
* integrate.h: Remove the prototype for
|
||
copy_decl_for_inlining.
|
||
* rtl.h: Remove the prototype for mark_constant_function.
|
||
* tree-vectorizer.h: Remove the prototype for
|
||
vect_strip_conversion.
|
||
|
||
* modulo-sched.c (create_partial_schedule,
|
||
free_partial_schedule, reset_partial_schedule): Make them
|
||
static.
|
||
|
||
* hooks.c (hook_bool_rtx_int_false): Remove.
|
||
* hooks.h: Remove the prototype for hook_bool_rtx_int_false.
|
||
|
||
2006-01-28 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
|
||
and -mlong-double-128 are incompatible.
|
||
* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
|
||
* config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
|
||
(TARGET_LIBGCC2_CFLAGS): Define.
|
||
* config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
|
||
(TARGET_LIBGCC2_CFLAGS): Same.
|
||
* config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
|
||
|
||
2006-01-28 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR c/19606.
|
||
* c-typeck.c (build_binary_op): Perform implicit casts of
|
||
operands before shortening them.
|
||
|
||
* cfgloopmanip.c (split_loop_bb): Remove.
|
||
* cfgloop.h: Remove the prototype for split_loop_bb.
|
||
|
||
* cfgloop.c (flow_loop_outside_edge_p): Remove.
|
||
* cfgloop.h: Remove the prototype for
|
||
flow_loop_outside_edge_p.
|
||
|
||
* emit-rtl.c (init_virtual_regs): Make it static.
|
||
* function.h: Remove the prototype for init_virtual_regs.
|
||
|
||
* recog.c (peephole2_optimize): Make it static.
|
||
* recog.h: Remove the prototype for peephole2_optimize.
|
||
|
||
2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* df-scan.c (df_record_entry_block_defs): Check if
|
||
INCOMING_RETURN_ADDR_RTX is defined.
|
||
|
||
2006-01-27 Daniel Berlin <dberlin@dberlin.org>
|
||
Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
PR rtl-optimization/24762
|
||
* doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
|
||
* targhooks.c (hook_void_bitmap): New hook prototype.
|
||
* targhoohs.h (hook_void_bitmap): Ditto.
|
||
* bitmap.h (bitmap_head_def): Moved to coretypes.h.
|
||
* coretypes.h (bitmap_head_def): Moved from bitmap.h.
|
||
* target.h (live_on_entry): New function pointer.
|
||
* df-scan.c (df_all_hard_regs): Removed.
|
||
(df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
|
||
(df_scan_free_internal): Added df->entry_block_defs.
|
||
(df_scan_alloc): Ditto.
|
||
(df_scan_dump): Ditto.
|
||
(df_uses_record): Plumbed flag field properly thru calls.
|
||
Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
|
||
This part fixes PR24762.
|
||
(df_bb_refs_record): Added code to make the frame and arg
|
||
pointers live in EH blocks.
|
||
(df_refs_record): Added call to df_record_entry_block_defs.
|
||
(df_record_entry_block_defs): New function.
|
||
* df-core.c: Added comments to describe new artifical defs.
|
||
* df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
|
||
(entry_block_defs): New field in struct df.
|
||
(df_all_hard_regs): Deleted.
|
||
* target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
|
||
* df-problems.c (df_ru_bb_local_compute_process_def):
|
||
Added code to handle artifical defs in the entry to a function.
|
||
(df_ru_bb_local_compute): Ditto.
|
||
(df_rd_bb_local_compute_process_def): Ditto.
|
||
(df_rd_bb_local_compute): Ditto.
|
||
(df_lr_bb_local_compute): Ditto.
|
||
(df_ur_bb_local_compute): Ditto.
|
||
(df_urec_bb_local_compute): Ditto.
|
||
(df_chain_create_bb): Ditto.
|
||
(df_ur_local_finalize): Removed entry.
|
||
(df_urec_init): Ditto.
|
||
(df_urec_local_finalize): Ditto.
|
||
(df_ri_bb_compute): Added detection of last use of pseudos.
|
||
* Makefile.in (df-scan.o): Updated dependencies.
|
||
* config/mips/mips-protos.h (mips_set_live_on_entry): Added.
|
||
* config/mips/mips.c (mips_set_live_on_entry): Added.
|
||
* config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
|
||
for target hook.
|
||
* dce.c (marked_insn_p): Added code to handle artifical defs.
|
||
|
||
2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
|
||
intrinsic.
|
||
(_mm_cvtsi128_si64): Likewise.
|
||
(_mm_cvtsd_si64): Likewise.
|
||
(_mm_cvttsd_si64): Likewise.
|
||
(_mm_cvtsi64_sd): Likewise.
|
||
(_mm_cvtsi64_si128): Likewise.
|
||
* config/i386/mmintrin.h (_m_from_int64): Likewise.
|
||
(_mm_cvtsi64_m64): Likewise.
|
||
(_m_to_int64): Likewise.
|
||
(_mm_cvtm64_si64): Likewise.
|
||
* config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
|
||
(_mm_cvttss_si64): Likewise.
|
||
(_mm_cvtsi64_ss): Likewise.
|
||
(_mm_cvtss_f32): Likewise.
|
||
|
||
2006-01-27 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
|
||
for pragma redefine_extname.
|
||
|
||
2006-01-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/25864
|
||
* libgcc-std.ver: Add GCC_4.1.0 symbol version.
|
||
* config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
|
||
-mno-minimal-toc to previous content.
|
||
(bispecs): Remove goal.
|
||
* config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
|
||
* config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
|
||
compatibility aliases on powerpc-*-*gnu*.
|
||
* config/rs6000/libgcc-ppc-glibc.ver: New file.
|
||
* config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
|
||
libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
|
||
(TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
|
||
(ldblspecs): New goal.
|
||
* config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
|
||
* mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
|
||
_df_to_tf.
|
||
* config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
|
||
L_sf_to_tf or L_df_to_tf is defined.
|
||
|
||
2006-01-27 David Edelsohn <edelsohn@gnu.org>
|
||
Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/25864
|
||
* config/rs6000/linux.h (POWERPC_LINUX): Define.
|
||
* config/rs6000/linux64.h (POWERPC_LINUX): Define.
|
||
* config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
|
||
* config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
|
||
* config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
|
||
* config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
|
||
(rs6000_override_options): Initialize rs6000_ieeequad.
|
||
Initialize TFmode format to ibm_extended_format if not
|
||
TARGET_IEEEQUAD.
|
||
(rs6000_handle_option): Accept -mabi= ibmlongdouble and
|
||
ieeelongdouble.
|
||
(rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
|
||
(rs6000_return_in_memory): Only return IEEEQUAD in memory.
|
||
(function_arg_advance): IBM long double passed in two FPRs, not
|
||
split.
|
||
(function_arg): IBM long double passed in FPRs.
|
||
(rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
|
||
(rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
|
||
Only multireg GPR aligned.
|
||
(rs6000_init_libfuncs): Enable IBM long double functions if not
|
||
IEEEQUAD.
|
||
(rs6000_generate_compare): Use IBM long double compare if not
|
||
TARGET_IEEEQUAD.
|
||
* config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
|
||
(TARGET_IEEEQUAD): Define.
|
||
(CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
|
||
not TARGET_IEEEQUAD.
|
||
* config/rs6000/rs6000.md: Enable TFmode patterns if
|
||
!TARGET_IEEEQUAD.
|
||
* config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
|
||
* config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
|
||
and -mlong-double-128 are incompatible.
|
||
* doc/invoke.texi (-mabi): Collect options together. Add
|
||
ibmlongdouble and ieeelongdouble.
|
||
|
||
2006-01-27 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
|
||
opaque type.
|
||
* optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
|
||
* varasm.c (make_decl_rtl, build_constant_desc): Likewise.
|
||
(force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
|
||
* rtl.h (rtunion_def): Remove rt_ptr.
|
||
(X0PTR): Delete.
|
||
(SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
|
||
(SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
|
||
* config/i386/winnt.c (i386_pe_mark_dllexport)
|
||
(i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
|
||
|
||
2006-01-27 Gabor Loki <loki@gcc.gnu.org>
|
||
|
||
* cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
|
||
|
||
2006-01-26 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR other/24829
|
||
PR target/24831
|
||
* gthr-dce.h: Do not gthrw-ify pthread_once_init,
|
||
pthread_key_delete. From John David Anglin. gthrw-ify
|
||
pthread_getunique_np only if it it's not a macro. Delete
|
||
UNUSED macro.
|
||
(__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
|
||
__gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
|
||
__gthread_objc_condition_signal, __gthread_key_delete): Add
|
||
"__attribute__ ((__unused__))" to unused arguments.
|
||
(__gthread_recursive_mutex_init_function): Add missing return.
|
||
* gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
|
||
gthr-posix95.h: Use macro-based approach for name redirection
|
||
on targets missing weakref.
|
||
|
||
2006-01-26 Zack Weinberg <zackw@panix.com>
|
||
|
||
* genconditions.c (write_header): In generated code, #ifdef out
|
||
all includes and fake declarations, except includes of bconfig.h
|
||
and system.h, unless GCC_VERSION >= 3001. Do not include
|
||
gensupport.h in any case.
|
||
(write_conditions): Generate a definition of struct c_test. Add
|
||
a comment to the generated #endif.
|
||
(write_one_condition): Escape backslashes in string too.
|
||
(write_writer): Generated code must escape backslashes and quote
|
||
marks (but not newlines) in the strings it writes.
|
||
* Makefile.in (build/gencondmd.o): Update dependencies.
|
||
|
||
2006-01-26 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR target/25961
|
||
* Makefile.in (insn-automata.o): Add header file dependencies.
|
||
* genautomata.c: Add includes.
|
||
|
||
2006-01-26 Steve Ellcey <sje@cup.hp.com>
|
||
|
||
PR target/25961
|
||
* Makefile.in (insn-automata.o): Add -Wno-error flag.
|
||
|
||
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* configure.ac: Expect target tools paths to be passed from the toplevel
|
||
and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of
|
||
AS_SET_VAR_IF.
|
||
* acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
|
||
|
||
2006-01-26 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR c/25892
|
||
* c.opt (Wpointer-sign): Init to -1.
|
||
* c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
|
||
OPT_pedantic, to 0 otherwise.
|
||
* doc/invoke.texi: Update.
|
||
|
||
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
|
||
constants provided by 80387 instructions in the destination mode.
|
||
|
||
2006-01-26 Richard Guenther <rguenther@suse.de>
|
||
Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/21470
|
||
partial PR tree-opt/17064
|
||
* tree-ssa-structalias.c (intra_create_variable_infos):
|
||
Create heap variables for incoming parameters if
|
||
flag_argument_noalias > 1.
|
||
(find_what_p_points_to): Look through default defs of
|
||
parameter decls.
|
||
|
||
2006-01-26 Jeff Law <law@redhat.com>
|
||
|
||
PR ada/25900
|
||
* tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
|
||
with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
|
||
within the VR_RANGE, use the VR_RANGE as the result, not the
|
||
VR_ANTI_RANGE.
|
||
(adjust_range_with_scev): Reject ranges from SCEV which are out of
|
||
bounds for the type.
|
||
|
||
2006-01-26 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-alias.c (maybe_create_global_var): Change
|
||
subvar walking to an assertion that we don't have subvar'd variables.
|
||
|
||
2006-01-26 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR C/25861
|
||
* c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
|
||
Use a new variable, inner. PARM_DECLs are always non-weak.
|
||
|
||
2006-01-26 Shantonu Sen <ssen@opendarwin.org>
|
||
|
||
* tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
|
||
--disable-checking.
|
||
|
||
2006-01-26 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* config/mips/mips.md (*clear_upper32): New combiner pattern.
|
||
|
||
2006-01-26 Richard Earnshaw <richard.earnshaw@arm.com>
|
||
|
||
* arm.md (smaxsi3, sminsi3): Convert to define_expand.
|
||
(smax_insn, smin_insn, smax_0, smin_0): New.
|
||
|
||
2006-01-26 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
PR target/25947
|
||
* config/cris/cris.c (cris_order_for_addsi3): New function.
|
||
* config/cris/cris-protos.h: Prototype it.
|
||
* config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
|
||
(split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
|
||
(split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
|
||
(split for "op.S1 [rx=rx+i],ry (swapped)")
|
||
(split for "op(s|u).S1 [rx=rx+i],ry")
|
||
(split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
|
||
Apply cris_order_for_addsi3 when generating addsi3 insns.
|
||
|
||
2006-01-25 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree.h (TREE_RANGE_CHECK): Fix range predicate.
|
||
(TREE_BLOCK): Add call to EXPR_CHECK.
|
||
|
||
2006-01-25 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
PR 25886
|
||
* tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
|
||
* tree-pretty-print.c (dump_omp_clause): Extract from ...
|
||
(dump_omp_clauses): ... here.
|
||
(dump_generic_node): Handle OMP_CLAUSE.
|
||
* tree.c (omp_clause_num_ops): New.
|
||
(omp_clause_code_name): New.
|
||
(tree_code_size): Handle OMP_CLAUSE.
|
||
(tree_size): Likewise.
|
||
(make_node): Document handling of OMP_CLAUSE.
|
||
(tree_node_structure): Handle OMP_CLAUSE.
|
||
(omp_clause_check_failed): New.
|
||
(omp_clause_range_check_failed): New.
|
||
(omp_clause_operand_check_failed): New.
|
||
(build_omp_clause): New.
|
||
(walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
|
||
* tree.h (enum omp_clause_code): Declare.
|
||
(OMP_CLAUSE_SUBCODE_CHECK): Define.
|
||
(OMP_CLAUSE_RANGE_CHECK): Define.
|
||
(OMP_CLAUSE_ELT_CHECK): Define.
|
||
(omp_clause_check_failed): Declare.
|
||
(omp_clause_operand_check_failed): Declare.
|
||
(omp_clause_range_check_failed): Declare.
|
||
(OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
|
||
(OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
|
||
(OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
|
||
(OMP_CLAUSE_LASTPRIVATE): Likewise.
|
||
(OMP_CLAUSE_IF_EXPR): Likewise.
|
||
(OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
|
||
(OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
|
||
(OMP_CLAUSE_REDUCTION_CODE): Likewise.
|
||
(OMP_CLAUSE_REDUCTION_INIT): Likewise.
|
||
(OMP_CLAUSE_REDUCTION_MERGE): Likewise.
|
||
(OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
|
||
Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
|
||
(OMP_CLAUSE_SCHEDULE_KIND): Likewise.
|
||
(OMP_CLAUSE_DEFAULT_KIND): Likewise.
|
||
(OMP_CLAUSE_CODE): Define.
|
||
(OMP_CLAUSE_SET_CODE): Define.
|
||
(OMP_CLAUSE_CODE): Define.
|
||
(OMP_CLAUSE_OPERAND): Define.
|
||
(struct tree_omp_clause): Declare.
|
||
(union tree_node): Add field 'omp_clause'.
|
||
* treestruct.def (TS_OMP_CLAUSE): Define.
|
||
* tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
|
||
OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
|
||
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
|
||
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
|
||
OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
|
||
OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
|
||
(OMP_CLAUSE): Define.
|
||
* print-tree.c (print_node): Handle OMP_CLAUSE.
|
||
* omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
|
||
* c-typeck.c: Likewise.
|
||
* gimplify.c: Likewise.
|
||
* c-omp.c: Likewise.
|
||
* tree-nested.c: Likewise.
|
||
* tree-inline.c: Likewise.
|
||
* c-parser.c: Likewise.
|
||
* gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
|
||
clauses.
|
||
|
||
2006-01-25 Roger Sayle <roger@eyesopen.com>
|
||
|
||
PR rtl-optimization/25703
|
||
* combine.c (try_combine): Handle zero_extract and strict_low_part
|
||
of non-lowpart SUBREGs for constant reg_subword_p set optimization.
|
||
|
||
2006-01-25 Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* global.c: Fix comment typos.
|
||
|
||
2006-01-25 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/25758
|
||
* config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
|
||
Use output_addr_const instead of assemble_name.
|
||
|
||
2006-01-25 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* Makefile.in (sched-vis.o): Update dependencies.
|
||
* haifa-sched.c (sched_finish): Clear current_sched_info.
|
||
* cfg.c (dump_bb_info): New, split from dump_flow_info.
|
||
(dump_flow_info): Call it.
|
||
* passes.c (execute_todo): Call print_rtl_slim_with_bb to make
|
||
a slim RTL dump.
|
||
* basic-block.h (dump_bb_info): Declare.
|
||
* tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
|
||
option, and apply options only for dump files whose TDF_RTL,
|
||
TDF_TREE, or TDF_IPA bits match.
|
||
* rtl.h: Declare new functions exported from sched-vis.c.
|
||
* sched-vis.c: Enable also if scheduling is not used.
|
||
(print_value): Print the mode of registers if not inside scheduling.
|
||
(print_insn): Make it work outside the scheduler. Beautify the output
|
||
a bit.
|
||
(dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
|
||
|
||
2006-01-25 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
|
||
* gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
|
||
a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
|
||
depending on the value of CONSTANT_POOL_ADDRESS_P.
|
||
* optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
|
||
SYMBOL_REF_DECL.
|
||
* varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
|
||
rather than SYMBOL_REF_DECL.
|
||
(rtx_constant_pool): Remove const_rtx_sym_htab.
|
||
(const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
|
||
(init_varasm_status): Don't initialize const_rtx_sym_htab.
|
||
(force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
|
||
Remove handling of const_rtx_sym_htab.
|
||
(find_pool_constant): Delete.
|
||
(get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
|
||
rather than find_pool_constant.
|
||
(get_pool_constant_for_function): Delete.
|
||
(get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
|
||
find_pool_constant.
|
||
* rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
|
||
(X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
|
||
(SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
|
||
(SYMBOL_REF_CONSTANT): New macro.
|
||
(get_pool_constant_for_function): Delete.
|
||
* config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
|
||
rather than SYMBOL_REF_DECL.
|
||
(i386_pe_mark_dllimport): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
|
||
rather than SYMBOL_REF_DECL.
|
||
* config/darwin.c (machopic_indirect_data_reference): Likewise.
|
||
(machopic_indirect_call_target): Likewise.
|
||
|
||
2006-01-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* flow.c (delete_noop_moves): Add missing EOL to dump message.
|
||
|
||
2006-01-25 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
|
||
|
||
2006-01-25 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
|
||
|
||
2006-01-24 David Daney <ddaney@avtrex.com>
|
||
|
||
PR java/25816
|
||
* configure.ac (enable_tls): New enable option.
|
||
(HAVE_AS_TLS): Don't do assembler check if enable_tls set.
|
||
* configure: Regenerate.
|
||
* doc/install.texi (--enable-tls): Document new option.
|
||
(--disable-tls): Ditto.
|
||
|
||
2006-01-24 Richard Henderson <rth@redehat.com>
|
||
|
||
* alias.h (ALIAS_SET_MEMORY_BARRIER): New.
|
||
* alias.c (true_dependence): Respect it.
|
||
(canon_true_dependence, write_dependence_p): Likewise.
|
||
* builtins.c (get_builtin_sync_mem): Set it.
|
||
|
||
2006-01-25 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
|
||
efficient way.
|
||
|
||
2006-01-24 DJ Delorie <dj@redhat.com>
|
||
|
||
* expmed.c (store_bit_field): Don't arbitrarily deny using insv
|
||
for storing constants in single-bit bitfields.
|
||
|
||
2006-01-25 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
|
||
|
||
2006-01-24 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/25860
|
||
* tree-ssa-pre.c (phi_translate): Return NULL
|
||
for AGGREGATE_TYPE's.
|
||
|
||
2006-01-24 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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.
|
||
|
||
2006-01-24 Richard Henderson <rth@redhat.com>
|
||
|
||
* genextract.c (VEC_safe_set_locstr): Take VEC by reference;
|
||
update all callers.
|
||
|
||
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.
|
||
|
||
2006-01-24 Ian Lance Taylor <ian@airs.com>
|
||
|
||
PR middle-end/25930
|
||
* cgraphunit.c (cgraph_output_in_order): Don't clear
|
||
cgraph_asm_nodes until after asm strings have been output.
|
||
|
||
2006-01-23 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* fix-header.c (read_scan_file): Add new parameter imultilib when
|
||
calling register_include_chains.
|
||
|
||
2006-01-23 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* omp-low.c: Update documentation.
|
||
|
||
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-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* varray.c: Remove GENERATOR_FILE #ifdefs.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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).
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* gensupport.c: Define get_insn_name and record_insn_name here.
|
||
(read_md_rtx): Call record_insn_name as appropriate.
|
||
* genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
|
||
* genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
|
||
* genpreds.c, genrecog.c: Don't define get_insn_name nor
|
||
record_insn_name.
|
||
* Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
|
||
(BUILD_VARRAY): Delete.
|
||
(genprognormal): Rename genprogmd. Fold in all programs from
|
||
genprognoprint; also attrtab.
|
||
(build/genattrtab): Just mention genautomata.o and varray.o.
|
||
Reorganize a bit, add comments to make the categories clearer.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* 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.
|
||
|
||
2006-01-22 Zack Weinberg <zackw@panix.com>
|
||
|
||
* Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
|
||
$(RUN_GEN). Use pattern rules to factor out as much boilerplate as
|
||
practical. Eliminate per-generator-program link rules.
|
||
|
||
2006-01-23 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR middle-end/24437
|
||
* tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
|
||
with a call expr to ...
|
||
* fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
|
||
|
||
2006-01-23 Richard Guenther <rguenther@suse.de>
|
||
|
||
* cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
|
||
before make_edge with conditional EDGE_TRUE_VALUE.
|
||
|
||
2006-01-23 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
Jan Hubicka <jh@suse.cz>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/25654
|
||
* cfgexpand.c (aggregate_contains_union_type): New function.
|
||
(add_alias_set_conflicts): Call it. Make sure to add conflicts
|
||
for structure variables that contain a union type.
|
||
|
||
2006-01-23 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* gengtype.c (new_structure): Return the structure.
|
||
(create_option): Add an extra "next" argument.
|
||
(create_field): New function.
|
||
(adjust_field_rtx_def): Use create_option and create_field.
|
||
Remove a now-unnecessary call to find_structure.
|
||
(adjust_field_tree_def): Likewise.
|
||
(note_yacc_type): Remove an unnecessary call to find_structure.
|
||
* gengtype.h (new_structure): Return the structure.
|
||
(create_option): Add an extra argument.
|
||
* gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
|
||
(option): Adjust calls to create_option.
|
||
|
||
2006-01-22 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/aix.h (STACK_BOUNDARY): Define.
|
||
|
||
2006-01-22 Paul Brook <paul@codesourcery.com>
|
||
Peter Barada <peter@the-baradas.com>
|
||
|
||
* config/m68k/m68k.md: Add Coldfire FPU support.
|
||
Define FP mode macro and associated attributes.
|
||
Use it for float mode patterns.
|
||
* config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
|
||
(LIBCALL_VALUE): Use m68k_libcall_value.
|
||
* config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
|
||
(m68k_function_value): Ditto.
|
||
(emit_move_sequence): Ditto.
|
||
* config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
|
||
* config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
|
||
* config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
|
||
(MULTILIB_EXCEPTIONS): Ditto.
|
||
* config/m68k/m68k.opt: Add mcfv4e.
|
||
* config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
|
||
(m68k_compute_frame_layout): Include space for ColdFire FPU regs.
|
||
(m68k_output_function_prologue): Save ColdFire FPU registers.
|
||
(m68k_output_function_epilogue): Restore ColdFire FPU registers.
|
||
(force_mode, fp_reg_operand, emit_move_sequence): New functions.
|
||
(m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
|
||
ColdFire FPU registers.
|
||
(m68k_libcall_value, m68k_function_value): New functions.
|
||
* config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
|
||
(LIBCALL_VALUE): Use m68k_libcall_value.
|
||
* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
|
||
(MASK_COLDFIRE): Add MASK_CFV4E.
|
||
(TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
|
||
(MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
|
||
(REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
|
||
(GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
|
||
(GO_IF_LEGITIMATE_ADDRESS): Use it.
|
||
(LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
|
||
* doc/invoke.tex: Document -mcfv4e on m68k.
|
||
|
||
2006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org>
|
||
|
||
* doc/contribute.texi: Change CVS to SVN and update the corresponding
|
||
URL.
|
||
|
||
2006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||
|
||
PR c++/16190
|
||
* c-opts.c (c_common_handle_option): Don't include
|
||
-Wnon-virtual-dtor in -Wall; enable if -Weffc++.
|
||
* doc/invoke.texi (C++ Dialect Options): Document that
|
||
-Wnon-virtual-dtor is no longer included in -Wall.
|
||
|
||
2006-01-21 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
* gcov.c (print_version), gcov-dump.c (print_version),
|
||
mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
|
||
dates.
|
||
|
||
2006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df-scan.c (problem_SCAN): Added NULL reset function.
|
||
(df_scan_reset_blocks): Added code to call reset block function
|
||
(df_bb_refs_delete) Fixed comment.
|
||
(df_insn_refs_delete): Made tolerant of deleting non existent info
|
||
for dataflow problems that need to be reset.
|
||
* df-core.c (df_set_blocks): Ditto.
|
||
* df.h (struct df_problem): Added reset_fun.
|
||
* df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
|
||
problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
|
||
(df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
|
||
functions to clear out all references to def-use or use-def chains.
|
||
|
||
2006-01-21 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* varasm.c (assemble_real): Initialise data array.
|
||
|
||
2006-01-20 Paul Brook <paul@codesourcery.com>
|
||
|
||
Merge from csl-arm-branch.
|
||
2005-09-21 Kazu Hirata <kazu@codesourcery.com>
|
||
* config/arm/arm.md (movdi): Force operands[1] to a register
|
||
if we have a non-register source.
|
||
(*arm_movdi, *movdf_soft_insn): Require that one of the
|
||
operands be a register.
|
||
* config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
|
||
* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
|
||
|
||
2006-01-20 DJ Delorie <dj@redhat.com>
|
||
|
||
* varasm.c (initializer_constant_valid_p): Allow pointers
|
||
initialized from integer constants of lesser precision.
|
||
(output_constant): Allow non-int-sized pointer modes to be
|
||
initialized from integer constants.
|
||
|
||
2006-01-20 Joseph S. Myers <joseph@codesourcery.com>
|
||
|
||
PR libstdc++/25524
|
||
* cppdefault.h (struct default_include): Add multilib flag.
|
||
* cppdefault.c (cpp_include_defaults): Set it.
|
||
* c.opt (-imultilib): New option.
|
||
* c-opts.c (imultilib): New.
|
||
(c_common_handle_option): Handle -imultilib.
|
||
(c_common_post_options): Likewise.
|
||
* c-incpath.c (add_standard_paths, register_include_chains):
|
||
Likewise.
|
||
* c-incpath.h (register_include_chains): Add extra parameter.
|
||
* gcc.c (do_spec_1): Generate -imultilib option.
|
||
(The Specs Language): Update %I description.
|
||
(process_command): Update copyright notice.
|
||
* doc/cppopts.texi (-imultilib): Document.
|
||
* doc/invoke.texi (-imultilib): Include in option summary.
|
||
(%I): Update specs documentation.
|
||
|
||
2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
|
||
|
||
2006-01-20 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* stmt.c (case_bit_test_cmp): Stabilize the sort using code
|
||
label numbers.
|
||
|
||
2006-01-20 Richard Guenther <rguenther@suse.de>
|
||
Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
PR rtl-optimization/24626
|
||
* cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
|
||
EDGE_TRUE_VALUE if in RTL mode.
|
||
|
||
Revert
|
||
2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
|
||
* cfgrtl.c (rtl_verify_flow_info_1): Fix.
|
||
|
||
2006-01-20 Dirk Mueller <dmueller@suse.com>
|
||
|
||
PR c++/5520
|
||
* c-parser.c (c_parser_if_body): Use build_empty_stmt()
|
||
instead of a special NOP marker.
|
||
* c-typeck.c (c_finish_if_stmt): Remove obsoleted special
|
||
NOP marker handling.
|
||
* c-common.h (empty_body_warning): Add forward declaration.
|
||
* c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
|
||
Now uses IS_EMPTY_STMT() instead of special NOP markers.
|
||
|
||
2006-01-20 Paul Brook <paul@codesourcery.com>
|
||
|
||
* Makefile.in (lang_checks): Keep going if mkdir fails.
|
||
|
||
2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df-scan.c (df_scan_free_bb_info): Added basic block parameter to
|
||
be able to clean out basic block when not necessary.
|
||
(df_scan_free): Fixed to properly delete information if df is
|
||
unused before calling df_finish.
|
||
(df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
|
||
df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
|
||
or comment typos.
|
||
(df_bb_refs_delete): New function.
|
||
(df_refs_delete): Moved per block code to df_bb_refs_delete.
|
||
* df-core.c (df_set_blocks): Added code to properly clean out
|
||
unused blocks if they are not part of the blocks to consider.
|
||
Added additional null check.
|
||
(df_compact_blocks): Added basic block parameter to free_bb_fun to
|
||
be able to clean out basic block when not necessary
|
||
* df.h (df_free_bb_function): Ditto.
|
||
(df_bb_refs_delete): New function.
|
||
* df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
|
||
df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
|
||
basic block parameter to be able to clean out basic block when not
|
||
necessary.
|
||
(df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
|
||
(df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
|
||
Fixed to properly delete information if df is unused before
|
||
calling df_finish.
|
||
|
||
2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
PR rtl-optimization/25799
|
||
* df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
|
||
Corrected confluence operator to remove bits from op2 before oring
|
||
with op1 rather than removing bits from op1.
|
||
(df_ru_transfer_function): Corrected test on wrong bitmap which
|
||
caused infinite loop. Both of these problems were introduced in
|
||
the dataflow rewrite.
|
||
|
||
2006-01-19 DJ Delorie <dj@redhat.com>
|
||
|
||
* reload1.c (find_reload_regs): Note the details of reload
|
||
failures in the dump file.
|
||
(spill_failure): Likewise.
|
||
|
||
2006-01-20 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* loop-iv.c: Include df.h and hashtab.h.
|
||
(enum iv_grd_result): New enum.
|
||
(DF_REF_IV, DF_REF_IV_SET): New macros.
|
||
(struct biv_entry): New.
|
||
(df, bivs): New global variables.
|
||
(struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
|
||
assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
|
||
Removed.
|
||
(clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
|
||
iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
|
||
analyzed_for_bivness_p, record_biv): New functions.
|
||
(iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
|
||
get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
|
||
iv_analyze, biv_p, iv_analysis_done): Work with df representation of
|
||
UD chains.
|
||
(iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
|
||
analysed.
|
||
(iv_number_of_iterations): Use new interface to iv analysis.
|
||
* loop-unroll.c: Do not include varray.h.
|
||
(analyze_iv_to_split_insn): Use new interface to iv
|
||
analysis.
|
||
* loop-unswitch.c (may_unswitch_on): Ditto.
|
||
* df.c (df_bitmaps_free): Only work for bbs for that structures are
|
||
allocated.
|
||
(df_bb_modify): Realloc tables to the new index.
|
||
(df_find_use): New function.
|
||
* df.h (df_find_use): Declare.
|
||
* optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
|
||
outmode.
|
||
* cfgloop.h (struct rtx_iv): Remove analysed field.
|
||
(iv_get_reaching_def): Removed.
|
||
(iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
|
||
* Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
|
||
(loop-iv.o): Add df.h and hashtab.h dependency.
|
||
* df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
|
||
|
||
2006-01-20 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
PR target/25668
|
||
* libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
|
||
Double TFmode.
|
||
(__floatundisf, __floatundidf): Likewise.
|
||
* libgcc2.h (IS_IBM_EXTENDED): Define.
|
||
|
||
2006-01-19 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
|
||
|
||
2006-01-19 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/arm/arm.c (arm_compute_func_type): Treat all functions
|
||
as nothrow when unwinding tables are disabled.
|
||
|
||
2006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR testsuite/25171
|
||
* c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
|
||
of bit-field" when in system header.
|
||
|
||
2006-01-19 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
|
||
the 16 bit shift limit of the m16c.
|
||
|
||
2006-01-19 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR target/22099
|
||
* config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
|
||
* config/i386/i386.c (output_set_got): Output the label if we have one
|
||
for the TARGET_DEEP_BRANCH_PREDICTION case.
|
||
|
||
2006-01-19 Jan Hubicka <jh@suse.cz>
|
||
H.J. Lu <hongjiu.lu@intel.com>
|
||
Evandro Menezes <evandro.menezes@amd.com>
|
||
|
||
* invoke.texi (generic): Document
|
||
(i686) Update.
|
||
* config.gcc: Make x86_64-* and i686-* default to generic tunning.
|
||
* i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
|
||
TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
|
||
(x86_use_incdec, x86_pad_returns): New variables
|
||
(TARGET_CPU_DEFAULT_generic): New constant
|
||
(TARGET_CPU_DEFAULT_NAMES): Add generic.
|
||
(enum processor_type): Add generic32 and generic64.
|
||
* i386.md (cpu attribute): Add generic32/generic64
|
||
(movhi splitter): Behave sanely when both partial_reg_dependency and
|
||
partial_reg_stall are set.
|
||
(K8 splitters): Enable for generic as well.
|
||
* predicates.md (incdec_operand): Use TARGET_INCDEC
|
||
(aligned_operand): Avoid memory mismatch stalls.
|
||
* athlon.md: Enable for generic64, new patterns for 128bit moves.
|
||
* ppro.md: Enable for generic32
|
||
* i386.c (generic64_cost, generic32_cost): New.
|
||
(m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
|
||
(x86_use_leave): Enable for generic64. (x86_use_sahf,
|
||
x86_ext_80387_constants): Enable for generic32. (x86_push_memory,
|
||
x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
|
||
x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
|
||
x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
|
||
x86_partial_reg_dependency, x86_memory_mismatch_stall,
|
||
x86_accumulate_outgoing_args, x86_prologue_using_move,
|
||
x86_epilogue_using_move, x86_arch_always_fancy_math_387,
|
||
x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
|
||
Enable for generic.
|
||
(x86_use_incdec, x86_pad_returns): New.
|
||
(override_options): Add generic32 and generic64, translate "generic"
|
||
to generic32/generic64 and "i686" to "generic32", refuse
|
||
"generic32"/"generic64" as arch target.
|
||
(ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
|
||
(ix86_reorg): Honor PAD_RETURNS.
|
||
|
||
2006-01-19 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-pretty-print.c (dump_generic_node): Handle
|
||
OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
|
||
* cgraph.c (cgraph_expand_queue): Rename from
|
||
cgraph_analyze_queue. Update all users.
|
||
* cgraphunit.c (cgraph_assemble_pending_functions): Process
|
||
cgraph_expand_queue.
|
||
(cgraph_expand_all_functions): Likewise.
|
||
(cgraph_finalize_pending_functions): Remove. Update callers.
|
||
|
||
* tree.h (OMP_DIRECTIVE_P): Define.
|
||
(OMP_PARALLEL_FN): Define.
|
||
(OMP_PARALLEL_DATA_ARG): Define.
|
||
(OMP_SECTIONS_SECTIONS): Define.
|
||
* tree-pass.h (pass_expand_omp): Declare.
|
||
* omp-low.c (struct omp_region): Declare.
|
||
(struct omp_context): Remove fields 'parallel_type',
|
||
'parallel_start_ix' and 'parallel_start_additional_args'.
|
||
Update all users.
|
||
(struct omp_for_data): Rename from struct expand_omp_for_data.
|
||
(omp_regions): New static variable.
|
||
(root_omp_region): New static variable.
|
||
(find_omp_clause): Make static.
|
||
(is_in_combined_parallel_ctx): Remove.
|
||
(is_combined_parallel): New.
|
||
(extract_omp_for_data): Move earlier in the file.
|
||
(workshare_safe_to_combine_p): New.
|
||
(get_ws_args_for): New.
|
||
(determine_parallel_type): Move earlier in the file.
|
||
(omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
|
||
child function.
|
||
(omp_copy_decl): Likewise.
|
||
(create_omp_child_function): Likewise.
|
||
(lookup_omp_region): New.
|
||
(dump_omp_region): New.
|
||
(debug_omp_region): New.
|
||
(debug_all_omp_regions): New.
|
||
(new_omp_region): New.
|
||
(scan_omp_parallel): If parallel_nesting_level > 1, the
|
||
directive is nested within another parallel directive.
|
||
Set OMP_PARALLEL_FN.
|
||
(scan_omp_for): Do not try to handle combined parallel+for
|
||
cases.
|
||
Remove FIXME comment.
|
||
(scan_omp_nested): Remove.
|
||
(scan_omp_1): Do not call scan_omp_nested when
|
||
parallel_nesting_level is > 1.
|
||
Do not change the DECL_CONTEXT of local variables found.
|
||
(lookup_decl_in_outer_ctx): New.
|
||
(lower_rec_input_clauses): Rename from expand_rec_input_clauses.
|
||
(lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
|
||
(lower_reduction_clauses): Rename from expand_reduction_clauses.
|
||
(lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
|
||
If CTX is nested, lookup VAR in the outer context when
|
||
building copy assignment.
|
||
(lower_send_clauses): Rename from expand_send_clauses.
|
||
If CTX is nested, lookup VAR in the outer context when
|
||
building copy assignments.
|
||
(lower_send_shared_vars): Rename from expand_send_shared_vars.
|
||
If CTX is nested, lookup VAR in the outer context when
|
||
building copy assignments.
|
||
(expand_parallel_call): Rename from build_parallel_call.
|
||
Handle combined parallel+workshare cases.
|
||
Re-implement to emit code into the CFG.
|
||
(list2chain): New.
|
||
(expand_omp_parallel): Re-implement to emit code into the CFG.
|
||
Call move_sese_region_to_fn to outline the sub-graph
|
||
containing the parallel region.
|
||
(expand_omp_for_1): Remove.
|
||
(expand_omp_for_generic): Re-implement to emit code into the
|
||
CFG.
|
||
(expand_omp_for_static_nochunk): Likewise.
|
||
(expand_omp_for_static_chunk): Likewise.
|
||
(expand_omp_for): Likewise.
|
||
(expand_omp_sections): Likewise.
|
||
(remove_exit_barriers): New.
|
||
(expand_omp_synch): New.
|
||
(expand_omp): New.
|
||
(build_omp_regions_1): New.
|
||
(build_omp_regions): New.
|
||
(execute_expand_omp): New.
|
||
(gate_expand_omp): New.
|
||
(pass_expand_omp): Define.
|
||
(lower_omp_sections): Rename from expand_omp_sections.
|
||
Set OMP_SECTIONS_SECTIONS.
|
||
(lower_omp_single_simple): Rename from expand_omp_single_simple.
|
||
(lower_omp_single_copy): Rename from expand_omp_single_copy.
|
||
(lower_omp_single): Rename from expand_omp_simple.
|
||
(lower_omp_master): Rename from expand_omp_master.
|
||
(lower_omp_ordered): Rename from expand_omp_ordered.
|
||
(lower_omp_critical): Rename from expand_omp_critical.
|
||
(lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
|
||
(lower_omp_for): Re-implement.
|
||
(lower_omp_parallel): Re-implement.
|
||
(lower_regimplify): Rename from expand_regimplify.
|
||
(lower_omp_1): Rename from expand_omp_1.
|
||
If there are syntax errors in the program, replace every
|
||
OpenMP directive with NOP.
|
||
Call lower_omp_* instead of expand_omp_*.
|
||
(lower_omp): Rename from expand_omp.
|
||
|
||
* tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
|
||
* tree-gimple.h (enum omp_parallel_type): Remove.
|
||
(gimple_boolify): Declare extern.
|
||
(find_omp_clause, determine_parallel_type): Remove.
|
||
|
||
* gimple-low.c (lower_omp_directive): New.
|
||
(lower_stmt): Call it.
|
||
(record_vars_into): Move from ...
|
||
(record_vars): ... here.
|
||
Call record_vars_into with current_function_decl.
|
||
|
||
* gimplify.c (struct gimplify_ctx): Remove fields
|
||
combined_pre_p and combined_ctxp. Update users.
|
||
(get_formal_tmp_var): Add documentation.
|
||
(gimple_boolify): Make extern.
|
||
(gimplify_expr_in_ctx): Remove. Update callers.
|
||
(gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
|
||
will always be a BIND_EXPR.
|
||
(gimplify_expr): Handle OMP_RETURN_EXPR.
|
||
* tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
|
||
(OMP_PARALLEL): Add 3 operands.
|
||
(OMP_SECTIONS): Add 1 operand.
|
||
(OMP_RETURN_EXPR): Define.
|
||
|
||
* tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
|
||
(copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
|
||
* tree-iterator.c (alloc_stmt_list): Assert that we are not
|
||
creating a circular free list.
|
||
(free_stmt_list): Assert that we are not freeing stmt_list_cache.
|
||
|
||
* tree-flow.h (move_sese_region_to_fn): Declare.
|
||
(record_vars_into): Declare.
|
||
* tree-cfg.c (make_omp_sections_edges): New.
|
||
(make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
|
||
OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
|
||
OMP_SECTIONS and OMP_SECTION.
|
||
(is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
|
||
(set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
|
||
(verify_stmt): Do not handle OMP_DIRECTIVE_P.
|
||
(gather_blocks_in_sese_region): New.
|
||
(struct move_stmt_d): Declare.
|
||
(move_stmt_r): New.
|
||
(move_block_to_fn): New.
|
||
(move_sese_region_to_fn): New.
|
||
|
||
* passes.c (init_optimization_passes): Schedule
|
||
pass_expand_omp after pass_init_datastructures.
|
||
|
||
* tree-ssa-operands.c (get_expr_operands): Handle
|
||
OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
|
||
OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
|
||
|
||
2006-01-19 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (extract_range_from_assert): Refine the result range
|
||
if the variable referenced by the ASSERT_EXPR has a range and
|
||
either the tentative result range or the previous range is a
|
||
VR_ANTI_RANGE.
|
||
|
||
2006-01-19 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
* c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
|
||
|
||
2006-01-19 Jan Hubicka <jh@suse.cz>
|
||
|
||
* tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
|
||
|
||
2006-01-19 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
|
||
(expand_compound_operation, expand_field_assignment): Fail if the
|
||
bit lengths of an extract operation are out of range.
|
||
(make_extraction): Compute wanted_inner_mode based on the position
|
||
and length of the extraction. Make it extraction_mode for non-constant
|
||
positions, and do not modify offset in that case. When generating a
|
||
new MEM, use a mode that can hold the extraction while keeping correct
|
||
alignment. Remove code that supported MEMs wrapped by USEs.
|
||
(simplify_shift_const_1, force_to_mode) <case USE>: Remove.
|
||
|
||
2006-01-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
||
|
||
* config/s390/s390.md ("Y", "y"): New mode attribute.
|
||
("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
|
||
"*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
|
||
"*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
|
||
"*addsi3_imm_cc", "*addsi3_carry1_cc",
|
||
"*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
|
||
"*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
|
||
"*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
|
||
"*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
|
||
"*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
|
||
"*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
|
||
"addsi3", "subsi3"): Insn patterns removed.
|
||
("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
|
||
"*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
|
||
"*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
|
||
"*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
|
||
"*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
|
||
"*sub<mode>3_cconly2"): New insn patterns.
|
||
("addsi3", "subsi3"): New expanders.
|
||
|
||
2006-01-19 Dorit Nuzman <dorit@il.ibm.com>
|
||
|
||
* Makefile.in (tree-vect-patterns.o): Add rule for new file.
|
||
* tree-vect-analyze.c (vect_determine_vectorization_factor): Use
|
||
existing STMT_VINFO_VECTYPE if available.
|
||
(vect_mark_relevant): Add special handling for stmts that are
|
||
marked as STMT_VINFO_IN_PATTERN_P.
|
||
(vect_analyze_loop): Call vect_pattern_recog.
|
||
* tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
|
||
* tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
|
||
stmt_info.
|
||
(STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
|
||
(vect_recog_func_ptr): New function-pointer type.
|
||
* tree-vect-patterns.c: New file.
|
||
(vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
|
||
(vect_recog_dot_prod_pattern, vect_pattern_recog):
|
||
(vect_pattern_recog_1): New functions.
|
||
(vect_pattern_recog_funcs): New array of function pointers.
|
||
|
||
* tree-vectorizer.h (ternary_op): New enum value.
|
||
* tree-vect-transform.c (vect_create_epilog_for_reduction): Added
|
||
declaration. Revised documentation. Removed redundant dump prints.
|
||
Removed redundant argument. Added support for reduction patterns.
|
||
(vectorizable_reduction): Added support for reduction patterns.
|
||
(vect_transform_stmt): Added support for patterns.
|
||
|
||
* expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
|
||
* genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
|
||
* optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
|
||
(expand_widen_pattern_expr): New function.
|
||
(init_optabs): Initialize new optabs udot_prod_optab,
|
||
sdot_prod_optab.
|
||
* optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
|
||
(sdot_prod_optab, udot_prod_optab): Define new optabs.
|
||
(expand_widen_pattern_expr): New function declaration.
|
||
* tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
|
||
tree-codes.
|
||
* tree-inline.c (estimate_num_insns_1): Added cases for new
|
||
tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
|
||
* tree-pretty-print.c (dump_generic_node): Likewise.
|
||
(op_prio): Likewise.
|
||
(op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
|
||
* tree-ssa-operands.c (get_expr_operands): Added case for
|
||
DOT_PROD_EXPR.
|
||
* tree-vect-patterns.c (widened_name_p): New function.
|
||
(vect_recog_dot_prod_pattern): Added function implementation.
|
||
* tree-vect-transform.c (get_initial_def_for_reduction): Added
|
||
cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
|
||
* config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
|
||
* config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
|
||
|
||
* expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
|
||
* genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
|
||
* optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
|
||
(init_optabs): Initialize new optabs widen_ssum_optab,
|
||
widen_usum_optab.
|
||
* optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
|
||
(widen_ssum_optab, widen_usum_optab): Define new optabs.
|
||
* tree-vect-generic.c: (expand_vector_operations_1): Check type of
|
||
use instead of type of def.
|
||
* tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
|
||
function implementation.
|
||
* config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
|
||
widen_ssumv8hi): New.
|
||
|
||
* doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
|
||
patterns.
|
||
|
||
2006-01-19 Richard Sandiford <richard@codesourcery.com>
|
||
|
||
PR c/25805
|
||
* c-decl.c (add_flexible_array_elts_to_size): New function.
|
||
(finish_decl): Use it.
|
||
|
||
2006-01-18 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* diagnostic.h: Include options.h.
|
||
* config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
|
||
dependancies for diagnostic.h.
|
||
* Makefile.in (DIAGNOSTIC_H): Add options.h.
|
||
|
||
2006-01-16 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
|
||
(ssa_ro_call_cache_valid): Ditto.
|
||
* tree-ssa-alias.c (sort_tags_by_id): New function.
|
||
(init_transitive_clobber_worklist): Ditto.
|
||
(add_to_worklist): Ditto.
|
||
(mark_aliases_call_clobbered): Ditto.
|
||
(compute_tag_properties): Ditto.
|
||
(set_initial_properties): Ditto.
|
||
(compute_call_clobbered): Ditto.
|
||
(compute_may_aliases): Call compute_call_clobbered and grouping.
|
||
(compute_flow_sensitive_aliasing): Remove clobbering related code.
|
||
(compute_flow_insensitive_aliasing): Grouping now happens in our
|
||
caller.
|
||
(setup_pointers_and_addressables): Remove clobbering related code.
|
||
(add_may_alias): Ditto.
|
||
(replace_may_alias): Ditto.
|
||
(get_nmt_for): Ditto.
|
||
(create_global_var):
|
||
(is_escape_site): Return an escape_type enumeration.
|
||
* tree-flow-inline.h (is_call_clobbered): Global var does not
|
||
imply call clobbered.
|
||
(mark_call_clobbered): Take a reason for marking this. Remove
|
||
marking of globalness, and cache invalidation.
|
||
(clear_call_clobbered): Remove cache invalidation code.
|
||
* tree-dfa.c (dump_variable): If details is on, dump the reason
|
||
for escaping.
|
||
* tree-outof-ssa.c (create_temp): Copy escape mask from original
|
||
variable.
|
||
* tree-flow.h (struct ptr_info_def): Add escape mask member.
|
||
(struct var_ann_d): Ditto.
|
||
(enum escape_type): New.
|
||
(mark_call_clobbered): Adjust prototype.
|
||
* tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
|
||
are never call clobbered.
|
||
Record reasons for escaping.
|
||
* tree-ssa-structalias.h (is_escape_site): Update prototype.
|
||
* tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
|
||
(ssa_ro_call_cache_valid): Ditto.
|
||
(clobbered_v_may_defs): Ditto.
|
||
(clobbered_vuses): Ditto.
|
||
(ro_call_vuses): Ditto.
|
||
(clobber_stats): New.
|
||
(init_ssa_operands): Zero out clobber stats.
|
||
(fini_ssa_operands): Print out clobber stats.
|
||
(get_call_expr_operands): Pass callee fndecl to
|
||
add_call_read_ops).
|
||
(add_call_clobber_ops): Remove use of cache.
|
||
Add use of PURE_CONST information.
|
||
(add_call_read_ops): Remove use of cache.
|
||
Add use of static not_read information.
|
||
|
||
2006-01-18 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
Introduce TLS descriptors for i386 and x86_64.
|
||
* config/i386/i386.h (TARGET_GNU2_TLS): New macro.
|
||
(TARGET_ANY_GNU_TLS): New macro.
|
||
(enum tls_dialect): Added TLS_DIALECT_GNU2.
|
||
(struct machine_function): Add tls_descriptor_call_expanded_p.
|
||
(ix86_tls_descriptor_calls_expande_in_cfun): New macro.
|
||
(ix86_current_function_calls_tls_descriptor): Likewise.
|
||
* config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
|
||
(override_options): Introduce gnu2 tls dialect.
|
||
(ix86_frame_pointer_required): Functions containing TLSCALLs are
|
||
not leaves.
|
||
(ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
|
||
Likewise.
|
||
(legitimize_tls_address): Adjust logic for GNU2 TLS.
|
||
(ix86_init_machine_status): Initialize new field.
|
||
(ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
|
||
(ix86_tls_module_base): New.
|
||
* config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
|
||
* config/i386/i386.md (UNSPEC_TLSDESC): New constant.
|
||
(tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
|
||
(tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
|
||
(tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
|
||
(*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
|
||
(tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
|
||
(*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
|
||
* config/i386/predicates.md (tls_modbase_operand): New.
|
||
(tp_or_register_operand): New.
|
||
|
||
2006-01-18 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* ipa-reference.c (check_operand): Allow FUNCTION_DECL.
|
||
(look_for_address_of): Ditto.
|
||
(ipa_init): Walk the function decls.
|
||
(static_execute): Don't set readonly on FUNCTION_DECL's.
|
||
|
||
2006-01-18 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/i386.md (shift spliter): Fix a a typo in the splitter
|
||
for shifts where the source and destination registers are different.
|
||
|
||
2006-01-18 Paul Brook <paul@codesourcery.com>
|
||
|
||
Merge from csl-arm-branch.
|
||
2005-03-14 Julian Brown <julian@codesourcery.com>
|
||
* config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
|
||
(aeabi_llsl): Likewise.
|
||
(ashrdi3): Likewise.
|
||
(aeabi_lasr): Likewise.
|
||
(lshrdi3): Likewise.
|
||
(aeabi_llsr): Likewise.
|
||
2005-03-10 Julian Brown <julian@codesourcery.com>
|
||
* config.gcc: Disable shared libgcc for SymbianOS.
|
||
* config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
|
||
|
||
2006-01-18 DJ Delorie <dj@redhat.com>
|
||
|
||
* c-pragma.c (handle_pragma_diagnostic): New.
|
||
(init_pragma): Register it.
|
||
* doc/extend.texi: Document it.
|
||
|
||
* diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
|
||
* diagnostic.h (diagnostic_classify_diagnostic): Declare.
|
||
(diagnostic_context): Add classify_diagnostic[].
|
||
* diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
|
||
as errors if they're overridden to DK_WARNING.
|
||
(diagnostic_initialize): Initialize classify_diagnostic[].
|
||
(diagnostic_set_kind_override): New.
|
||
(diagnostic_report_diagnostic): Check for kind changes.
|
||
* opts.c (common_handle_option): Take lang_mask. Update callers.
|
||
Handle OPT_Werror_.
|
||
* common.opt (Werror=): New.
|
||
* doc/invoke.texi: Document -Werror=*
|
||
|
||
2006-01-18 Jeff Law <law@redhat.com>
|
||
|
||
* tree-vrp.c (test_for_singularity): Correct test for new
|
||
min limit. Use operand_equal_p rather than pointer equality
|
||
for testing if new min/max values are equal.
|
||
|
||
* tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
|
||
using range information until after propagation and folding.
|
||
|
||
2006-01-18 Richard Henderson <rth@redhat.com>
|
||
Aldy Hernandez <aldyh@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* omp-low.c: New file.
|
||
* c-omp.c: New file.
|
||
|
||
2006-01-18 Richard Henderson <rth@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* doc/invoke.texi: Document -fopenmp.
|
||
* tree-dump.h (debug_function): Declare.
|
||
* hooks.c (hook_bool_tree_bool_false): New function.
|
||
(hook_tree_tree_null): Remove.
|
||
(hook_tree_tree_tree_null): New.
|
||
* hooks.h: Update to match.
|
||
* tree-pretty-print.c (debug_tree_chain): New.
|
||
(print_generic_expr): Handle TDF_CHAIN.
|
||
(dump_generic_node): Handle BLOCK.
|
||
Do not abort with incomplete SWITCH_EXPRs.
|
||
Do not dump body of an OpenMP directive if TDF_SLIM is given.
|
||
<case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
|
||
print space after directive name.
|
||
<OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
|
||
Handle OMP_MASTER and OMP_ORDERED.
|
||
Handle printing of OMP_BODY just in one place, goto
|
||
dump_omp_body in the rest of OMP_* nodes that have
|
||
OMP_BODY.
|
||
Don't handle clause nodes here. Update omp statements to
|
||
use dump_omp_clauses.
|
||
Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
|
||
OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
|
||
OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
|
||
GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
|
||
GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
|
||
GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
|
||
Adjust output for GOMP_PARALLEL.
|
||
(dump_omp_clauses): New.
|
||
(print_declaration): Dump DECL_VALUE_EXPR.
|
||
(op_symbol_1): Split out of op_symbol.
|
||
(dumping_stmts): Remove. Update all users.
|
||
* cgraph.c (cgraph_analyze_queue): New.
|
||
(cgraph_add_new_function): New.
|
||
* cgraph.h (cgraph_analyze_queue): Declare.
|
||
(cgraph_add_new_function): Declare.
|
||
(cgraph_lower_function): Remove.
|
||
* tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
|
||
nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
|
||
and TYPE_P nodes in its default clause.
|
||
(empty_body_p): New.
|
||
(tree_range_check_failed): New.
|
||
(build5_stat): New.
|
||
* tree.h (OMP_CLAUSE_REDUCTION_INIT,
|
||
OMP_CLAUSE_REDUCTION_MERGE,
|
||
OMP_CLAUSE_REDUCTION_PLACEHOLDER,
|
||
OMP_CLAUSE_PRIVATE_DEBUG,
|
||
OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
|
||
OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
|
||
OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
|
||
OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
|
||
OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
|
||
OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
|
||
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
|
||
OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
|
||
OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
|
||
OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
|
||
OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
|
||
OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
|
||
OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
|
||
OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
|
||
(TREE_RANGE_CHECK): New.
|
||
(empty_body_p): Declare.
|
||
(enum omp_clause_default_kind): New.
|
||
(build_string_literal): Declare.
|
||
(enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
|
||
(build5_stat, build5): Declare.
|
||
* tree-pass.h (TDF_CHAIN): Define.
|
||
* tree-pass.h (PROP_gimple_lomp): Define.
|
||
(pass_lower_omp): Declare.
|
||
* diagnostic.h (debug_tree_chain): Declare.
|
||
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
|
||
mode_for_size.
|
||
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
|
||
* builtins.c (build_string_literal): Make extern.
|
||
* gcc.c (include_spec_function): New.
|
||
(static_spec_functions): Add it.
|
||
(main): Move load of libgomp.spec ...
|
||
(LINK_COMMAND_SPEC): ... here.
|
||
(link_gomp_spec): New.
|
||
(static_specs): Include it.
|
||
(LINK_COMMAND_SPEC): Add link_gomp.
|
||
(GOMP_SELF_SPECS): New.
|
||
(driver_self_specs): Include it.
|
||
(switch_matches): Don't mark inline.
|
||
(main): Load libgomp.spec.
|
||
* tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
|
||
OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
|
||
and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
|
||
* tree-gimple.h (enum omp_parallel): Declare.
|
||
(determine_parallel_type): Declare.
|
||
(omp_firstprivatize_variable): Declare.
|
||
(omp_reduction_init): Declare.
|
||
(diagnose_omp_structured_block_errors): Declare.
|
||
(struct walk_stmt_info): Add want_return_expr.
|
||
(struct walk_stmt_info): Add want_bind_expr, want_locations.
|
||
(find_omp_clause): Declare.
|
||
(insert_field_into_struct): Declare.
|
||
(struct walk_stmt_info): Move from tree-nested.c
|
||
(walk_stmts): Declare.
|
||
* c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
|
||
to 200505.
|
||
* cgraphunit.c (cgraph_lower_function): Make static.
|
||
(cgraph_finalize_pending_functions): New.
|
||
(cgraph_finalize_function): Call it.
|
||
(cgraph_finalize_compilation_unit): Likewise.
|
||
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
|
||
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
|
||
(BT_FN_UINT_UINT): New.
|
||
(DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
|
||
DEF_FUNCTION_TYPE_VAR_4): Document.
|
||
(BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
|
||
BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
|
||
BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
|
||
BT_FN_VOID_OMPFN_PTR_UINT_UINT,
|
||
BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
|
||
BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
|
||
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
|
||
BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
|
||
* builtins.def: Update DEF_BUILTIN comment to include COND argument.
|
||
Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
|
||
into separate files.
|
||
(DEF_GOMP_BUILTIN): New.
|
||
(BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
|
||
BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
|
||
BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
|
||
BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
|
||
BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
|
||
BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
|
||
BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
|
||
BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
|
||
BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
|
||
BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
|
||
BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
|
||
BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
|
||
BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
|
||
BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
|
||
BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
|
||
BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
|
||
BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
|
||
BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
|
||
BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
|
||
* sync-builtins.def: New file, moved from builtins.def.
|
||
* omp-builtins.def: New file, moved from builtins.def.
|
||
* c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
|
||
* gimple-low.c (lower_function_body): Clear data.
|
||
(lower_stmt): Do not handle COMPOUND_EXPR.
|
||
Remove call to print_node_brief.
|
||
* c-tree.h (c_finish_omp_clauses): New prototype.
|
||
(C_DECL_THREADPRIVATE_P): Define.
|
||
(lookup_name_no_remap, c_omp_remap_private): Remove
|
||
(c_begin_omp_parallel, c_finish_omp_parallel): Update.
|
||
(check_for_loop_decls): Update decl.
|
||
(lookup_name_no_remap, c_omp_remap_private): Declare.
|
||
(build_indirect_ref, build_modify_expr, pushdecl,
|
||
pushdecl_top_level): Move to c-common.h.
|
||
* dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
|
||
before the switch, but just in the 2 places that need it.
|
||
* c-decl.c (diagnose_mismatched_decls): Do not check for
|
||
mismatched thread-local attributes when OLDDECL is marked
|
||
threadprivate and NEWDECL has no thread-local attributes.
|
||
(merge_decls): Merge C_DECL_THREADPRIVATE_P.
|
||
(c_gimple_diagnostics_recursively): Rename from
|
||
c_warn_unused_result_recursively. Invoke
|
||
diagnose_omp_structured_block_errors.
|
||
(check_for_loop_decls): Return a singular decl found.
|
||
* langhooks.c (lhd_omp_predetermined_sharing): Return
|
||
OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
|
||
(lhd_omp_firstprivatize_type_sizes): New.
|
||
(lhd_omp_assignment): New.
|
||
(lhd_omp_predetermined_sharing): New.
|
||
* langhooks.h (struct gimplify_omp_ctx): Forward declare.
|
||
(struct lang_hooks_for_types): Add
|
||
omp_firstprivatize_type_sizes, omp_privatize_by_reference,
|
||
omp_predetermined_sharing, omp_disregard_value_expr,
|
||
omp_private_debug_clause, omp_clause_default_ctor,
|
||
omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
|
||
(c_finish_omp_clauses): New.
|
||
(c_finish_bc_stmt): Diagnose break within omp for.
|
||
(c_begin_omp_parallel, c_finish_omp_parallel): New.
|
||
(build_unary_op): Return error_mark after reporting
|
||
a readonly_error.
|
||
(build_modify_expr): Likewise.
|
||
* gimplify.c: Include optabs.h and pointer-set.h.
|
||
(enum gimplify_omp_var_data): Declare.
|
||
(struct gimplify_omp_ctx): Declare.
|
||
(struct gimplify_ctx): Add fields prev_context, combined_pre_p
|
||
and combined_ctxp.
|
||
(gimplify_ctxp, gimplify_omp_ctxp): New local variables.
|
||
(push_gimplify_context, pop_gimplify_context): Allow nesting.
|
||
(splay_tree_compare_decl_uid): New.
|
||
(new_omp_context): New.
|
||
(delete_omp_context): New.
|
||
(gimple_add_tmp_var): Call omp_add_variable.
|
||
(gimplify_bind_expr): Likewise.
|
||
(gimplify_var_or_parm_decl): If omp_notice_variable returned
|
||
true, disregard DECL_VALUE_EXPR on the decl if any.
|
||
(gimplify_expr_in_ctx): New.
|
||
(omp_firstprivatize_variable, omp_firstprivatize_type_sizes
|
||
omp_add_variable, omp_notice_variable, omp_is_private
|
||
gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
|
||
gimplify_adjust_omp_clauses, gimplify_omp_parallel
|
||
gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
|
||
gimplify_omp_atomic_fetch_op, goa_stabilize_expr
|
||
gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
|
||
gimplify_omp_atomic): New.
|
||
(gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
|
||
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
|
||
OMP_CRITICAL and OMP_ATOMIC.
|
||
(gimplify_body): Verify gimplify_ctxp is empty after gimplification.
|
||
* c-pragma.h (enum pragma_kind): Add
|
||
PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
|
||
PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
|
||
PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
|
||
PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
|
||
PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
|
||
PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
|
||
PRAGMA_OMP_THREADPRIVATE.
|
||
* tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
|
||
OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
|
||
OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
|
||
OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
|
||
OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
|
||
OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
|
||
OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
|
||
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
|
||
OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
|
||
* print-tree.c (print_node): Dump DECL_VALUE_EXPR.
|
||
* tree-ssa-dce.c (find_control_dependence): Do not assume that
|
||
ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
|
||
* tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
|
||
OpenMP directives.
|
||
(struct nesting_info): Add field_map,
|
||
suppress_expansion, debug_var_chain.
|
||
(create_nesting_tree): Initialize them.
|
||
(lookup_field_for_decl): Use field_map.
|
||
(get_nonlocal_debug_decl, get_local_debug_decl): New.
|
||
(convert_local_omp_clauses): New.
|
||
(finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
|
||
(walk_body): Split out of walk_function.
|
||
(convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
|
||
(convert_nonlocal_reference): Handle omp statements.
|
||
(convert_local_reference): Likewise.
|
||
(unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
|
||
(unnest_nesting_tree): New.
|
||
(lower_nested_functions): Call it.
|
||
(insert_field_into_struct): Make extern.
|
||
(struct walk_stmt_info): Move to tree-gimple.h.
|
||
(walk_stmts): Make extern.
|
||
* omp-builtins.def: New file.
|
||
* tree-iterator.c (expr_only): Clarify comment.
|
||
* c-common.h (pushdecl_top_level, pushdecl,
|
||
build_modify_expr, build_indirect_ref,
|
||
c_finish_omp_master, c_finish_omp_critical,
|
||
c_finish_omp_ordered, c_finish_omp_barrier,
|
||
c_finish_omp_atomic, c_finish_omp_flush,
|
||
c_finish_omp_for, c_split_parallel_clauses,
|
||
omp_clause_default_kind, c_omp_sharing_predetermined,
|
||
c_omp_remap_decl): Declare.
|
||
* Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
|
||
(OBJS-common): Add omp-low.o.
|
||
(c-omp.o, omp-low.o): Add.
|
||
(gimplify.o): Add dependency on $(OPTABS_H).
|
||
(GTFILES): Add omp-low.c.
|
||
(gt-stringpool.h): Add.
|
||
* tree-cfg.c (set_bb_for_stmt): Do not update the
|
||
block-to-labels map if we are currently expanding to RTL.
|
||
(tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
|
||
checks.
|
||
Handle IDENTIFIER_NODE.
|
||
(tree_verify_flow_info): Do not ICE when emitting error
|
||
messages about invalid labels.
|
||
(dump_function_to_file): Reset CFUN before emitting the body
|
||
of the function.
|
||
(debug_function): New.
|
||
* passes.c (init_optimization_passes): Schedule
|
||
pass_lower_omp.
|
||
* langhooks-def.h (lhd_omp_predetermined_sharing,
|
||
lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
|
||
Declare.
|
||
(LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
|
||
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
|
||
(LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
|
||
LANG_HOOKS_OMP_PREDETERMINED_SHARING,
|
||
LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
|
||
LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
|
||
LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
|
||
LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
|
||
LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
|
||
LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
|
||
(LANG_HOOK_DECLS): Use them.
|
||
|
||
2006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
|
||
Richard Henderson <rth@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* c-parser.c (pragma_omp_clause): Define.
|
||
(c_parser_declaration_or_fndef): Document OpenMP syntax.
|
||
(c_parser_compound_statement): Likewise.
|
||
(c_parser_statement): Likewise.
|
||
(c_parser_pragma): Handle omp pragmas.
|
||
(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
|
||
OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
|
||
(c_parser_omp_clause_name, check_no_duplicate_clause,
|
||
c_parser_omp_variable_list,
|
||
c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
|
||
c_parser_omp_clause_copyprivate,
|
||
c_parser_omp_clause_default,
|
||
c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
|
||
c_parser_omp_clause_lastprivate,
|
||
c_parser_omp_clause_nowait,
|
||
c_parser_omp_clause_num_threads,
|
||
c_parser_omp_clause_ordered, c_parser_omp_clause_private,
|
||
c_parser_omp_clause_reduction,
|
||
c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
|
||
c_parser_omp_all_clauses, c_parser_omp_structured_block,
|
||
c_parser_omp_atomic, c_parser_omp_barrier,
|
||
c_parser_omp_critical, c_parser_omp_flush,
|
||
c_parser_omp_for_loop, c_parser_omp_for,
|
||
c_parser_omp_master, c_parser_omp_ordered,
|
||
c_parser_omp_sections_scope, c_parser_omp_sections,
|
||
c_parser_omp_parallel, c_parser_omp_single,
|
||
c_parser_omp_construct, c_parser_omp_threadprivate): New.
|
||
* c-pragma.c (init_pragma): Do omp pragma registration here.
|
||
* c.opt (fopenmp): New flag.
|
||
|
||
2006-01-18 Eric Christopher <echristo@apple.com>
|
||
|
||
* gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
|
||
* config/darwin.h (GOMP_SELF_SPECS): Define.
|
||
|
||
2006-01-18 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* rtl.h: Remove the prototype for reg_alloc.
|
||
|
||
2006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/25731
|
||
* config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
|
||
hppa[12]*-*-hpux11*): Override default shared libgcc version for both
|
||
sjlj and dwarf2 exception handling.
|
||
* pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
|
||
Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
|
||
* pa/pa.c (function_value): Treat complex and vector types as
|
||
aggregates.
|
||
(function_arg): Likewise. Only pass scalar floats in the floating
|
||
point argument registers.
|
||
* pa/t-slibgcc-dwarf-ver: New file.
|
||
* pa/t-slibgcc-sjlj-ver: New file.
|
||
* pa/t-slibgcc-elf-ver: Delete file.
|
||
|
||
2006-01-19 Alan Modra <amodra@bigpond.net.au>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
|
||
unlikely_test_section_p test.
|
||
|
||
2006-01-18 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* mode-switching.c (optimize_mode_switching): Make it static.
|
||
* basic-block.h: Remove the prototype for
|
||
optimize_mode_switching.
|
||
|
||
* modulo-sched.c (sms_schedule): Make it static.
|
||
* rtl.h: Remove the prototype for sms_schedule.
|
||
|
||
* postreload-gcse.c (gcse_after_reload_main): Make it static.
|
||
* rtl.h: Remove the prototype for gcse_after_reload_main.
|
||
|
||
* reg-stack.c (reg_to_stack): Make it static.
|
||
* rtl.h: Remove the prototype for reg_to_stack.
|
||
|
||
* regrename.c (regrename_optimize, copyprop_hardreg_forward):
|
||
Make them static.
|
||
* rtl.h: Remove the prototypes for regrename_optimize and
|
||
copyprop_hardreg_forward.
|
||
|
||
2006-01-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
|
||
alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments.
|
||
Test against the appropriate null constant for the mode.
|
||
If 'fixup_overlap' is true, swap the operands if they overlap.
|
||
(alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
|
||
* config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
|
||
alpha_split_tmode_pair and adjust for above change.
|
||
* config/alpha/alpha.md (movtf_internal): Adjust call to
|
||
alpha_split_tfmode_pair and rely on it to swap the operands.
|
||
(movti_internal): New insn and post-reload splitter.
|
||
(movti): New expander.
|
||
|
||
2006-01-18 Philippe De Muyter <phdm@macqel.be>
|
||
|
||
* config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
|
||
operands.
|
||
|
||
2006-01-18 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* rtlanal.c (global_reg_mentioned_p_1,
|
||
global_reg_mentioned_p): Remove.
|
||
* rtl.h: Remove the prototype for global_reg_mentioned_p.
|
||
|
||
* flow.c (initialize_uninitialized_subregs): Make it static.
|
||
* rtl.h: Remove the prototype for
|
||
initialize_uninitialized_subregs.
|
||
|
||
* function.c (instantiate_virtual_regs): Make it static.
|
||
* function.h: Remove the prototype for
|
||
instantiate_virtual_regs.
|
||
|
||
* regmove.c (regmove_optimize, combine_stack_adjustments):
|
||
Make them static.
|
||
* rtl.h: Remove the prototypes for regmove_optimize and
|
||
combine_stack_adjustments.
|
||
|
||
2006-01-17 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* config/i386/i386.c (COSTS_N_BYTES): New macro.
|
||
(size_cost): Encode costs in bytes so that a reg-reg addition is
|
||
equivalent to COSTS_N_INSNS(1).
|
||
(override_options): Use the size_cost.branch_cost as the default
|
||
ix86_branch_cost when optimizing for size.
|
||
|
||
2006-01-18 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* Makefile.in (D32PBIT_FUNCS): New.
|
||
(D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
|
||
(libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
|
||
D64PBIT_FUNCS and D128PBIT_FUNCS.
|
||
(LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
|
||
* mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
|
||
D128PBIT are set.
|
||
(decnumber_dep): Define.
|
||
* doc/libgcc.texi (Decimal float library routines): New node.
|
||
* config/dfp-bit.h, config/dfp-bit.c: New files.
|
||
|
||
2006-01-18 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* expr.c (emit_move_change_mode): Always adjust addresses, not
|
||
just during reload. Copy replacements only during reload.
|
||
(emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
|
||
emit_move_via_integer.
|
||
|
||
2006-01-17 Shantonu Sen <ssen@opendarwin.org>
|
||
|
||
* Makefile.in (check-%, check-consistency): Use $${srcdir}
|
||
instead of $(srcdir) and ${srcdir}.
|
||
|
||
2006-01-17 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR target/592
|
||
PR middle-end/11135
|
||
* arm.h (struct machine_function): Add pic_reg.
|
||
* arm.c (arm_pic_register): Make unsigned.
|
||
(arm_override_options): Only set arm_pic_register if
|
||
TARGET_SINGLE_PIC_BASE.
|
||
(use_return_insn): Only test for a pic register if it is fixed.
|
||
(arm_compute_save_reg0_reg12_mask): Likewise.
|
||
(thumb_compute_save_reg_mask): Likewise.
|
||
(legitimate_pic_operand): Factor out some known invariants.
|
||
(legitimize_pic_address): If we don't have a fixed pic register,
|
||
then set up a pseudo in the function entry sequence. Handle the
|
||
pic base being in a pseudo.
|
||
(arm_load_pic_register): Handle the pic register being in a pseudo.
|
||
(arm_expand_prologue): Only set up the pic register if it is fixed.
|
||
(thumb_expand_prologue): Likewise.
|
||
* arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
|
||
(pic_load_addr_based_insn): Likewise.
|
||
(builtin_setjmp_receiver): Don't restore the pic base if it isn't
|
||
fixed.
|
||
|
||
2006-01-18 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
|
||
decimal float modes for all floating point registers.
|
||
|
||
* config/rs6000/predicates.md (reg_or_mem_operand): Pair up
|
||
match_code "mem" with match_test "macho_lo_sum_memory_operand".
|
||
|
||
2006-01-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c/25682
|
||
* c-typeck.c (build_unary_op): Fold offsetof-like expressions
|
||
even when the pointer is not NULL.
|
||
|
||
2006-01-16 Ian Lance Taylor <ian@airs.com>
|
||
|
||
* common.opt (ftoplevel-reorder): New option.
|
||
* cgraph.c (cgraph_asm_nodes): New global variable.
|
||
(cgraph_asm_last_node): New static variable.
|
||
(cgraph_order): New global variable.
|
||
(cgraph_create_node): Set new order field.
|
||
(cgraph_varpool_node): Likewise.
|
||
(decide_is_variable_needed): Return true if not
|
||
flag_toplevel_reorder.
|
||
(cgraph_add_asm_node): New function.
|
||
* cgraph.h (struct cgraph_node): Add order field.
|
||
(struct cgraph_varpool_node): Add order field.
|
||
(struct cgraph_asm_node): Define.
|
||
(cgraph_asm_nodes, cgraph_order): Declare.
|
||
(cgraph_add_asm_node): Declare.
|
||
* cgraphunit.c (cgraph_varpool_assemble_decl): New static
|
||
function.
|
||
(cgraph_varpool_assemble_pending_decls): Call it.
|
||
(cgraph_output_pending_asms): New static function.
|
||
(cgraph_finalize_compilation_unit): Call it.
|
||
(struct cgraph_order_sort): Define.
|
||
(cgraph_output_in_order): New static function.
|
||
(cgraph_optimize): Call cgraph_output_pending_asms. Add code for
|
||
!flag_toplevel_reorder case.
|
||
* c-parser.c: Include "cgraph.h".
|
||
(c_parser_asm_definition): Call cgraph_add_asm_node rather than
|
||
assemble_asm.
|
||
* Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
|
||
than -fno-unit-at-a-time.
|
||
* doc/invoke.texi (Option Summary): Mention
|
||
-fno-toplevel-reorder.
|
||
(Optimize Options): Document -fno-toplevel-reorder. Mention it in
|
||
-funit-at-a-time documentation.
|
||
|
||
2006-01-17 Hans-Peter Nilsson <hp@axis.com>
|
||
Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
|
||
|
||
2006-01-17 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* Makefile.in (FUNCTION_H): New. Use it instead of
|
||
function.h throughout the file.
|
||
* function.h: Include tree.h.
|
||
|
||
2006-01-17 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* recog.c: Separate some functions with whitespace.
|
||
|
||
2006-01-16 Richard Henderson <rth@redhat.com>
|
||
|
||
Merge from gomp branch:
|
||
* Makefile.in (TREE_INLINE_H): New. Use it as needed.
|
||
* tree-inline.h (struct copy_body_data): Move from tree-inline.c
|
||
and rename from struct inline_data. Rename callee* to dst*;
|
||
caller* to src*; add copy_decl hook, transform_call_graph_edges,
|
||
transform_new_cfg, transform_return_to_modify, and
|
||
transform_lang_insert_block flags; remove cloning_p, versioning_p,
|
||
update_clones_p.
|
||
(copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
|
||
(copy_decl_for_dup): Remove.
|
||
* tree-inline.c (struct inline_data): Move to header.
|
||
(insert_decl_map): Export.
|
||
(remap_decl): Update for member name changes. Use copy_decl hook.
|
||
Allow for replacement to be a non-decl. Remove dead code.
|
||
(remap_type_1): Check for existing mapping.
|
||
(remap_type): Export.
|
||
(remap_decls): Update for member name changes.
|
||
(remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
|
||
(copy_body, setup_one_parameter, declare_return_variable): Likewise.
|
||
(expand_call_inline, optimize_inline_calls, clone_body): Likewise.
|
||
(copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
|
||
(tree_function_versioning, build_duplicate_type): Likewise.
|
||
(copy_body_r): Likewise. Export.
|
||
(copy_decl_for_dup): Split into ...
|
||
(copy_decl_for_dup_finish, copy_decl_to_var,
|
||
copy_decl_no_change, copy_decl_maybe_to_var): ... these.
|
||
(replace_ref_tree, inlining_p): Remove.
|
||
|
||
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* ifcvt.c (if_convert): Make it static.
|
||
* rtl.h: Remove the prototype for if_convert.
|
||
|
||
* local-alloc.c (local_alloc): Make it static.
|
||
* rtl.h: Remove the prototype for local_alloc.
|
||
|
||
* loop.c (loop_optimize): Make it static.
|
||
* cfgloop.h: Remove the prototype for loop_optimize.
|
||
* rtl.h: Likewise.
|
||
|
||
2006-01-16 DJ Delorie <dj@redhat.com>
|
||
|
||
* reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
|
||
mems.
|
||
|
||
2006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
* pa.md: Disparage copies between general and floating-point registers
|
||
in 32-bit move patterns.
|
||
|
||
2006-01-16 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR testsuite/25741
|
||
* Makefile.in (check-%): Depend on site.exp instead of
|
||
$(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
|
||
directories.
|
||
|
||
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* global.c (global_alloc): Make it static.
|
||
* rtl.h: Remove the prototype for global_alloc.
|
||
|
||
2006-01-16 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-ssa-alias.c (struct used_part): Add write_only field.
|
||
(get_or_create_used_part_for): Initialize it to true.
|
||
(create_overlap_variables_for): Don't create structure variables
|
||
for structures that only are written to.
|
||
(find_used_portions): Handle MODIFY_EXPR to track whether a
|
||
structure is only written to.
|
||
|
||
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* bb-reorder.c (partition_hot_cold_basic_blocks): Make it
|
||
static.
|
||
* basic-block.h: Remove the prototype for
|
||
partition_hot_cold_basic_blocks.
|
||
|
||
2006-01-16 Rafael <20>vila de Esp<73><70><EFBFBD>ndola <rafael.espindola@gmail.com>
|
||
|
||
* cppspec.c (lang_specific_spec_functions): Remove.
|
||
* gcc.c (lookup_spec_function): Use static_spec_functions directly.
|
||
* gcc.h (lang_specific_spec_functions): Remove.
|
||
* gccspec.c (lang_specific_spec_functions): Remove.
|
||
|
||
2006-01-16 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
* combine.c (record_value_for_reg): Invalidate registers
|
||
if INSN is null.
|
||
(record_dead_and_set_regs_1): Likewise, by passing them to
|
||
record_value_for_reg.
|
||
(record_dead_and_set_regs): Invalidate stores made by a
|
||
call. We do not combine across a call, but we still
|
||
relied on equivalences.
|
||
|
||
2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-vrp.c (extract_range_from_binary_expr): Cope with
|
||
vrp_int_const_binop returning non-constant nodes.
|
||
|
||
2006-01-16 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/m68k/m68k.c (output_move_const_into_data_reg):
|
||
Output correct mnemonic for mvz and mvs.
|
||
|
||
2006-01-16 Gabor Loki <loki@gcc.gnu.org>
|
||
|
||
* rtl-factoring.c: Add sequence abstraction algorithm.
|
||
* cfgcleanup.c (outgoing_edges_match): Extra checks.
|
||
(try_crossjump_to_edge): Avoid deleting preserve label when redirecting
|
||
ABNORMAL edges.
|
||
(block_has_preserve_label): New function.
|
||
* common.opt: Register new pass.
|
||
* Makefile.in: Ditto.
|
||
* passes.c: Ditto.
|
||
* timevar.def: Ditto.
|
||
* tree-pass.h: Ditto.
|
||
* emit-rtl.c (make_jump_insn_raw): Remove forward decl.
|
||
* rtl.h (make_jump_insn_raw): Add forward decl.
|
||
* doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
|
||
|
||
2006-01-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
Roger Sayle <roger@eyesopen.com>
|
||
|
||
* fold-const.c (fold_minmax): New static function.
|
||
(fold_binary) <MIN_EXPR>: Call it.
|
||
<MAX_EXPR>: Likewise.
|
||
* stor-layout.c (place_field): Use DECL_SIZE consistently
|
||
in the computation of the new record size.
|
||
|
||
2006-01-16 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* cse.c (cse_condition_code_reg): Make it static.
|
||
* rtl.h: Remove the prototype for cse_condition_code_reg.
|
||
|
||
* combine.c (combine_instructions): Make it static.
|
||
* rtl.h: Remove the prototype for combine_instructions.
|
||
|
||
2006-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/25168
|
||
* tree.c (get_file_function_name_long): Concatenate the first global
|
||
object name with a string derived from the input filename of the object
|
||
for type "F".
|
||
|
||
2006-01-16 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/i386/winnt-stubs.c: Update FSF address.
|
||
* config/xtensa/ieee754-df.S: Ditto.
|
||
* config/xtensa/ieee754-sf.S: Ditto.
|
||
|
||
2006-01-14 Ian Lance Taylor <ian@airs.com>
|
||
|
||
* ifcvt.c (noce_init_if_info): New static function, broken out of
|
||
noce_process_if_block.
|
||
(noce_process_if_block): Call noce_init_if_info.
|
||
(check_cond_move_block): New static function.
|
||
(cond_move_process_if_block): New static function.
|
||
(process_if_block): Call cond_move_process_if_block.
|
||
|
||
2006-01-15 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* cselib.c (hash_table): Rename to cselib_hash_table.
|
||
(cselib_clear_table, discard_useless_values,
|
||
remove_useless_values, cselib_lookup_mem, cselib_lookup,
|
||
cselib_init, cselib_finish): Adjust uses of hash_table.
|
||
|
||
2006-01-14 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
PR tree-optimization/25485
|
||
* tree-vrp.c (extract_range_from_binary_expr): Handle cases
|
||
where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
|
||
is known to be false and true, respectively.
|
||
|
||
2006-01-14 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/22548
|
||
PR tree-optimization/22555
|
||
PR tree-optimization/22501
|
||
* Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
|
||
* params.def (salias-max-array-elements): New parameter.
|
||
* params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
|
||
* doc/invoke.texi (salias-max-array-elements): Document.
|
||
* tree-flow-inline.h (var_can_have_subvars): We also handle
|
||
arrays now.
|
||
* tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
|
||
COMPONENT_REF.
|
||
* tree-ssa-structalias.c (params.h): Include.
|
||
(push_fields_onto_fieldstack): Handle ARRAY_TYPE.
|
||
(find_func_aliases): Handle multiple constraints from ARRAY_REF.
|
||
(get_constraint_for): For ADDR_EXPR operating on something
|
||
containing an ARRAY_REF, add all subvars to the solution.
|
||
(handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
|
||
* tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
|
||
for creating MUST_DEFs.
|
||
(get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
|
||
|
||
2006-01-14 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
|
||
functions.
|
||
(number_of_iterations_ne, number_of_iterations_lt_to_ne,
|
||
assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
|
||
number_of_iterations_le): New functions.
|
||
(number_of_iterations_special): Removed.
|
||
(number_of_iterations_exit): Do not use number_of_iterations_special.
|
||
* tree.c (unsigned_type_for): Always return integer type.
|
||
|
||
2006-01-14 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
Richard Guenther <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/24257
|
||
* gcse.c (find_moveable_store): Only consider a store movable
|
||
when the SET_SRC of the insn can be assigned to a register.
|
||
|
||
2006-01-14 Ian Lance Taylor <ian@airs.com>
|
||
|
||
* tree.c (tree_not_class_check_failed): New function.
|
||
* tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
|
||
(tree_not_class_check_failed): Declare.
|
||
|
||
2006-01-13 Ian Lance Taylor <ian@airs.com>
|
||
|
||
* reload1.c (do_output_reload): Add assertion rejecting a
|
||
CALL_INSN.
|
||
|
||
2006-01-13 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* combine.c (struct reg_stat): Add new fields truncation_label and
|
||
truncated_to_mode.
|
||
(record_value_for_reg): Reset truncated_to_mode.
|
||
(record_truncated_value): New function.
|
||
(check_promoted_subreg): Call it. Rename to check_conversions.
|
||
(combine_instructions): Rename check_promoted_subreg to
|
||
check_conversions.
|
||
(reg_truncated_to_mode): New function.
|
||
(make_extraction): Use it. Check TRULY_NOOP_TRUNCATION.
|
||
(gen_lowpart_or_truncate): New function.
|
||
(force_to_mode): Use it instead of gen_lowpart.
|
||
|
||
2006-01-13 Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-ssa-alias.c (add_type_alias): Fix typo. Test whether
|
||
VAR is a tag, not its type tag.
|
||
|
||
2006-01-13 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
|
||
alternatives to match style of other entries.
|
||
(*vec_extractv2di_1_sse): Likewise. Fix mode attr.
|
||
|
||
2006-01-13 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
PR tree-optimization/25771
|
||
* tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
|
||
SSA_NAMES.
|
||
|
||
2006-01-13 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/24365
|
||
* tree-inline.c (declare_return_variable): If the return variable
|
||
was marked as a non gimple complex, set the return slot variable
|
||
to be a non gimple comple variable.
|
||
|
||
2006-01-13 Richard Guenther <rguenther@suse.de>
|
||
|
||
* builtins.c (expand_builtin_sincos): New function.
|
||
(expand_builtin_mathfn_3): Remove dead code, sin and cos
|
||
do not set errno.
|
||
(expand_builtin): Expand sincos using expand_builtin_sincos.
|
||
|
||
2006-01-12 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/shift.md: Rewrite: Allow arbitrary operands for
|
||
shift counts, separate SI shifts for m32c vs m16c, pass shift type
|
||
so that constant shifts can be split.
|
||
* config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
|
||
(m32c_valid_pointer_mode): Make static.
|
||
(shift_gen_func_for): New.
|
||
(m32c_prepare_shift): Use it. Split large const shifts into
|
||
multiple shifts.
|
||
* config/m32c/predicates.md (shiftcount_operand): Allow more
|
||
general operands.
|
||
(longshiftcount_operand): New.
|
||
* doc/md.texi (Machine Constraints): Document In6.
|
||
|
||
2006-01-13 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
|
||
REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
|
||
documentation.
|
||
|
||
2006-01-12 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
|
||
to try to avoid clobbering pieces of structures when we know
|
||
something about the whole structure.
|
||
* tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
|
||
|
||
2006-01-13 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* doc/rtl.texi (Insns): Remove statement that libcalls cannot
|
||
return in memory, as this is no limitation is no longer present.
|
||
|
||
2006-01-12 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/m32c/addsub.md (addhi3): Add two more alternatives, for
|
||
mova with fb, and for fb+0 -> An.
|
||
|
||
* config/m32c/mov.md (peephole2): Fix enabling logic.
|
||
|
||
* config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
|
||
DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
|
||
DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
|
||
FINI_ARRAY_SECTION_ASM_OP): Define.
|
||
|
||
* config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
|
||
variable.
|
||
(m32c_legitimize_reload_address): New logic to reload FB to An.
|
||
(m32c_output_reg_push): Add newline.
|
||
(m32c_output_reg_pop): Likewise.
|
||
|
||
2006-01-12 Ulrich Weigand <uweigand@de.ibm.com>
|
||
|
||
* struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
|
||
|
||
2006-01-11 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
* config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
|
||
|
||
2006-01-11 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* config/sh/predicates.md (sh_rep_vec): Add parallel to
|
||
match_code.
|
||
|
||
2006-01-11 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* rtlanal.c (find_reg_note): Assert insn is not null.
|
||
|
||
2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df-scan.c (df_hard_reg_init): Move declaration of i outside
|
||
ifdef.
|
||
|
||
2006-01-11 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-threadupdate.c (threaded_edges): New VEC to
|
||
hold edge pairs.
|
||
(mark_threaded_blocks, register_jump_thread): New functions.
|
||
(thread_through_all_blocks): Remove unwanted argument. No
|
||
longer rely on e->aux to communicate thread target info.
|
||
Call mark_threaded_blocks. Release the threaded_blocks
|
||
bitmap and threaded_edges vector when complete.
|
||
* tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
|
||
(threaded_blocks): Remove.
|
||
(tree_ssa_dominator_optimize): Remove initialization and
|
||
finalization of threaded_blocks. Simplify call to
|
||
thread_through_all_blocks.
|
||
(thread_across_edge): Call register_jump_thread rather than
|
||
storing thread information into e->aux.
|
||
(free_all_edge_infos): Simplify now that e->aux is no longer
|
||
used to communicate with thread_through_all_blocks.
|
||
* tree-flow.h (thread_through_all_blocks): Update prototype.
|
||
(register_jump_thread): Prototype.
|
||
|
||
2006-01-11 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* df-core.c (df_compact_blocks, df_bb_replace): Use
|
||
SET_BASIC_BLOCK instead of BASIC_BLOCK.
|
||
|
||
2006-01-11 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/25734
|
||
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
|
||
stop propagation after successful propagation to the LHS.
|
||
|
||
2006-01-11 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* basic-block.h (control_flow_graph): Change the type of
|
||
x_basic_block_info to VEC(basic_block,gc) *.
|
||
(BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
|
||
basic_block_info.
|
||
(SET_BASIC_BLOCK): New.
|
||
* cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
|
||
instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
|
||
* cfgbuild.c (find_basic_blocks): Likewise.
|
||
* cfglayout.c (fixup_reorder_chain): Likewise.
|
||
* cfgrtl.c (create_basic_block_structure,
|
||
rtl_create_basic_block): Likewise.
|
||
* ifcvt.c (find_if_case_1): Likewise.
|
||
* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
|
||
Likewise.
|
||
|
||
2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* Makefile.in: Removed rotted odf.c entry.
|
||
|
||
2006-01-11 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
PR target/25706
|
||
* config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
|
||
("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
|
||
("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
|
||
output pattern modifier, not %e.
|
||
* config/cris/cris.c (cris_op_str): Update comment about pattern
|
||
modifier.
|
||
(cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
|
||
before falling through into...
|
||
<case 'E'>: Redefined from old 'e' case.
|
||
|
||
2006-01-11 Jan Hubicka <jh@suse.cz>
|
||
|
||
PR target/25042
|
||
* i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
|
||
|
||
2006-01-11 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.h (TARGET_DECOMPOSE_LEA): Kill.
|
||
* i386.c (x86_decompose_lea): Kill.
|
||
(ix86_rtx_costs): Kill.
|
||
|
||
2006-01-11 Jan Hubicka <jh@suse.cz>
|
||
|
||
* cgraph.c (cgraph_insert_node_to_hashtable): New function.
|
||
* cgraph.h (cgraph_node): Add inline_decl.
|
||
(cgraph_insert_node_to_hashtable): Declare.
|
||
(save_inline_function_body): Declare.
|
||
* cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
|
||
clones.
|
||
(cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
|
||
(cgraph_function_versioning): Update call of tree_function_versioning.
|
||
(save_inline_function_body): New function.
|
||
* function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
|
||
saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
|
||
* ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
|
||
(cgraph_default_inline_p): Likewise.
|
||
(cgraph_decide_inlining_incrementally): Likewise.
|
||
* tree-inline.c (inline_data): Kill saving_p add update_clones_p.
|
||
(copy_bb): Kill saving; do updating of clones.
|
||
(copy_cfg_body): Kill saving.
|
||
(initialize_inlined-parameters): Likewise.
|
||
(expand_call_inline): Likewise.
|
||
(save_body): Kill.
|
||
(tree_function_versioning): New parameter "update_clones".
|
||
(inlining_p): Kill saving.
|
||
* tree-inline.h (tree_function_versioning): Update prototype.
|
||
* tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
|
||
saving.
|
||
|
||
2006-01-11 Ian Lance Taylor <ian@airs.com>
|
||
|
||
* combine.c (struct undo): Remove is_int. Enumify types of undos.
|
||
Allow undoing set of machine mode.
|
||
(do_SUBST): Use enums instead of is_int.
|
||
(do_SUBST_MODE): New function.
|
||
(SUBST_MODE): New macro.
|
||
(try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
|
||
reg and trying to replace reg_regno_rtx with a new register.
|
||
(undo_all): Use new enums, handle undoing a PUT_MODE change.
|
||
(simplify_set): Use SUBST_MODE.
|
||
(distribute_notes): Remove code that tried to update reg notes
|
||
for regno_reg_rtx changes.
|
||
|
||
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR tree-optimization/23109
|
||
PR tree-optimization/23948
|
||
PR tree-optimization/24123
|
||
|
||
* Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
|
||
* tree-cfg.c (single_noncomplex_succ): New.
|
||
* tree-flow.h (single_noncomplex_succ): Declare it.
|
||
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
|
||
* tree-ssa-math-opts.c (enum place_reciprocal): Remove.
|
||
(struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
|
||
insert_bb, register_division_in, insert_reciprocals,
|
||
replace_reciprocal, free_bb): New.
|
||
(execute_cse_reciprocals_1): Rewritten.
|
||
(execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
|
||
Do not commit any edge insertion. Always compute dominators and
|
||
create the allocation pool.
|
||
* target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
|
||
* target.h (struct gcc_target): Add min_divistions_for_recip_mul.
|
||
* targhooks.c (default_min_divistions_for_recip_mul): New.
|
||
* targhooks.h (default_min_divistions_for_recip_mul): New prototype.
|
||
* passes.c (init_optimization_passes): Run recip after tree loop
|
||
optimizations.
|
||
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
|
||
|
||
2006-01-11 Danny Berlin <dberlin@dberlin.org>
|
||
Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
|
||
DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
|
||
DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
|
||
DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
|
||
DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
|
||
DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
|
||
DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
|
||
DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
|
||
DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
|
||
DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
|
||
DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
|
||
DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
|
||
DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
|
||
DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
|
||
DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
|
||
DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
|
||
DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
|
||
DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
|
||
DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
|
||
DF_SCAN_POST_ALLOC): New macros.
|
||
(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
|
||
df_free_bb_function, df_local_compute_function, df_init_function,
|
||
df_dataflow_function, df_confluence_function_0,
|
||
df_confluence_function_n, df_transfer_function,
|
||
df_finalizer_function, df_free_function, df_dump_problem_function,
|
||
df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
|
||
df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
|
||
df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
|
||
df_urec_bb_info, ) New types.
|
||
(df_invalidated_by_call, df_all_hard_regs, df_state) New public
|
||
variables.
|
||
(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
|
||
df_analyze_simple_change_some_blocks,
|
||
df_analyze_simple_change_one_block, df_compact_blocks,
|
||
df_bb_replace, df_bb_regno_last_use_find,
|
||
df_bb_regno_first_def_find, df_bb_regno_last_def_find,
|
||
df_insn_regno_def_p, df_find_def, df_find_use,
|
||
df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
|
||
df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
|
||
df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
|
||
debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
|
||
debug_df_chain, df_get_dependent_problem, df_chain_create,
|
||
df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
|
||
df_grow_bb_info, df_chain_dump, df_print_bb_index,
|
||
df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
|
||
df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
|
||
df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
|
||
df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
|
||
df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
|
||
df_rescan_blocks, df_ref_create, df_get_artificial_defs,
|
||
df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
|
||
df_ref_remove, df_insn_refs_delete, df_refs_delete,
|
||
df_reorganize_refs, df_set_state, df_hard_reg_init,
|
||
df_read_modify_subreg_p) New public functions.
|
||
* df-core.c: The core dataflow solver and glue routines for rtl
|
||
dataflow.
|
||
(df_init, df_add_problem, df_set_blocks, df_finish,
|
||
df_hybrid_search_forward, df_hybrid_search_backward,
|
||
df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
|
||
df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
|
||
df_bb_regno_last_use_find, df_bb_regno_first_def_find,
|
||
df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
|
||
df_reg_defined, df_find_use, df_reg_used, df_dump,
|
||
df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
|
||
df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
|
||
debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
|
||
debug_df_useno, reset_df_after_reload): New functions.
|
||
* df-scan.c: The scanning fuctions, once in df.c, completely
|
||
rewritten so that they now fully model the functionality of
|
||
register usage at the backend.
|
||
(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
|
||
df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
|
||
df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
|
||
df_grow_insn_info, df_rescan_blocks, df_ref_create,
|
||
df_get_artificial_defs, df_get_artificial_uses,
|
||
df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
|
||
df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
|
||
df_refs_delete, df_reorganize_refs, df_set_state,
|
||
df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
|
||
df_def_record_1, df_defs_record, df_uses_record,
|
||
df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
|
||
df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
|
||
df_record_exit_block_uses, df_hard_reg_init): New functions.
|
||
|
||
* df-problems.c: Seven concrete dataflow problems that use the
|
||
scanning in df-scan.c and are solved by the engine in df-core.c.
|
||
(df_get_dependent_problem, df_chain_create, df_chain_unlink,
|
||
df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
|
||
df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
|
||
df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
|
||
df_ru_free_bb_info, df_ru_alloc,
|
||
df_ru_bb_local_compute_process_def,
|
||
df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
|
||
df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
|
||
df_ru_transfer_function, df_ru_free, df_ru_dump,
|
||
df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
|
||
df_rd_free_bb_info, df_rd_alloc,
|
||
df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
|
||
df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
|
||
df_rd_transfer_function, df_rd_free, df_rd_dump,
|
||
df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
|
||
df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
|
||
df_lr_local_compute, df_lr_init, df_lr_confluence_0,
|
||
df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
|
||
df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
|
||
df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
|
||
df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
|
||
df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
|
||
df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
|
||
df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
|
||
df_urec_mark_reg_change, df_urec_check_earlyclobber,
|
||
df_urec_mark_reg_use_for_earlyclobber,
|
||
df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
|
||
df_urec_local_compute, df_urec_init, df_urec_local_finalize,
|
||
df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
|
||
df_urec_dump, df_urec_add_problem, df_chain_alloc,
|
||
df_chain_create_bb_process_use, df_chain_create_bb,
|
||
df_chain_finalize, df_chain_free, df_chains_dump,
|
||
df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
|
||
df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
|
||
df_reg_lifetime): New functions.
|
||
* df.c: Deleted file.
|
||
* ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
|
||
consistent with new df api.
|
||
* modulo-sched.c (sms_schedule, rest_of_handle_sms,
|
||
rest_of_handle_sms): Ditto.
|
||
* web.c (unionfind_union, union_defs, entry_register, web_main):
|
||
Ditto.
|
||
* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
|
||
invariant_expr_equal_p, find_defs, check_dependencies,
|
||
find_invariant_insn, find_invariants_to_move, move_invariant_reg,
|
||
free_inv_motion_data, move_loop_invariants): Ditto.
|
||
* Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
|
||
Update dependencies.
|
||
(odf.c): Added defective entry that was deleted later in day.
|
||
* sched-deps.c (sched_analyze_1): Ditto.
|
||
|
||
2006-01-11 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
* tree-ssa-operands.c (get_expr_operands): Record addressable
|
||
variables directly. Do not call add_stmt_operands for CONST_DECLs
|
||
and ARRAY_DECLs.
|
||
(get_indirect_ref_operands): Remove handling of *(&a + offset) case.
|
||
(add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
|
||
|
||
2006-01-11 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/i386/i386.c (ix86_return_in_memory): Fix comment: this
|
||
function returns true in the positive case.
|
||
|
||
2006-01-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||
|
||
PR target/20754
|
||
* config/pa/pa.md: Create separate 32 and 64-bit move patterns
|
||
for SI, DI, SF and DF modes. Add alternatives to copy between
|
||
general and floating point registers to the 32-bit patterns.
|
||
* config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
|
||
* config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
|
||
(SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
|
||
generating 64-bit code.
|
||
* config/pa/pa.c (output_move_double): Handle copies between general
|
||
and floating registers.
|
||
|
||
2006-01-10 Stuart Hastings <stuart@apple.com>
|
||
|
||
* config/i386/i386.md (set_got): Update.
|
||
(set_got_labelled): New. (UNSPEC_LD_MPIC): New.
|
||
(builtin_setjmp_receiver): Mach-O support.
|
||
* config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
|
||
(GOT_SYMBOL_NAME): Define.
|
||
(FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
|
||
(TARGET_DEEP_BRANCH_PREDICTION): Remove.
|
||
* config/i386/i386.c (override_options): Revise for Darwin.
|
||
(USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O
|
||
support. (darwin_x86_file_end): New. (output_set_got): Add label
|
||
parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise.
|
||
* config/i386/i386-protos.h (output_set_got): Likewise.
|
||
* config/darwin.c (machopic_legitimize_pic_address): Update
|
||
regs_ever_live[].
|
||
|
||
2006-01-10 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
|
||
when MODE isn't BLKmode.
|
||
|
||
2006-01-10 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||
|
||
PR rtl-optimization/25367
|
||
* config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
|
||
|
||
2006-01-10 Hans-Peter Nilsson <hp@axis.com>
|
||
|
||
PR target/25718
|
||
* config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
|
||
for a negative bound.
|
||
|
||
2006-01-10 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (get_constraint_for_component_ref):
|
||
Never override with anything constraint.
|
||
|
||
2006-01-10 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* config/i386/i386.c (ix86_data_alignment): Don't force alignment to
|
||
256 bits when optimize_size.
|
||
|
||
2006-01-10 Jan Beulich <jbeulich@novell.com>
|
||
|
||
* config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
|
||
MASK_ALIGN_DOUBLE.
|
||
* config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
|
||
* config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
|
||
arguments.
|
||
|
||
2006-01-10 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/rs6000/predicates.md (easy_fp_constant): Discount decimal
|
||
float modes.
|
||
* config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
|
||
(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
|
||
(USE_FP_FOR_ARG): Reject decimal float modes.
|
||
(function_arg_advance): Likewise.
|
||
(output_toc): Handle emitting TDmode, DDmode and SDmode constants.
|
||
(rs6000_handle_altivec_attribute): Do not permit decimal floating
|
||
point types in AltiVec vectors.
|
||
(rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
|
||
(rs6000_libcall_value): Likewise.
|
||
|
||
2006-01-09 Bob Wilson <bob.wilson@acm.org>
|
||
|
||
* config/xtensa/ieee754-df.S: New file.
|
||
* config/xtensa/ieee754-sf.S: New file.
|
||
* config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
|
||
(LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
|
||
* config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
|
||
|
||
2006-01-09 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* config/sh/predicates.md (binary_float_operator,
|
||
binary_logical_operator, commutative_float_operator,
|
||
equality_comparison_operator, greater_comparison_operator,
|
||
less_comparison_operator, logical_operator,
|
||
noncommutative_float_operator, shift_operator,
|
||
symbol_ref_operand, unary_float_operator): Remove redundant
|
||
conditionals.
|
||
|
||
2006-01-09 Jeff Law <law@redhat.com>
|
||
|
||
* tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
|
||
code to propagate the RHS of a cast into COND_EXPR_COND. Remove
|
||
now unused arguments. Callers updated.
|
||
(eliminate_redundant_computations): Remove now unused arguments,
|
||
callers updated.
|
||
(local_fold): Remove, no longer used.
|
||
(find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
|
||
and moved to...
|
||
* tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
|
||
(simplify_cond): New function.
|
||
(forward_propagate_into_cond): Call simplify_cond.
|
||
|
||
2006-01-09 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
* config/i386/sse.md (*vec_extractv2di_1_sse2): New.
|
||
(*vec_extractv2di_1_sse): New.
|
||
|
||
2006-01-09 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
|
||
|
||
2006-01-08 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (get_constraint_for): Remove
|
||
anyoffset argument.
|
||
(get_constraint_for_component_ref): Likewise.
|
||
(do_deref): Likewise.
|
||
(get_constraint_for): Likewise.
|
||
(do_structure_copy): Likewise.
|
||
(handle_ptr_arith): Likewise.
|
||
(find_func_aliases): Likewise. Remove unused need_anyoffset
|
||
variable.
|
||
|
||
2006-01-08 J"orn Rennecke <joern.rennecke@st.com>
|
||
Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
* config/sh/sh.h (CONST_OK_FOR_K16): Define.
|
||
(CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
|
||
(EXTRA_CONSTRAINT_C16): Remove.
|
||
(EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
|
||
(EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
|
||
EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
|
||
* config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
|
||
constants of SHmedia. Handle nested constant expressions of
|
||
SHmedia correctly.
|
||
(andcosts): Fix the costs for SHmedia constants.
|
||
(sh_rtx_costs): Take account of outer_code for SHmedia constants.
|
||
* config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
|
||
(*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
|
||
(*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
|
||
(movv4hi_i, movv2si_i): Likewise.
|
||
(movsi_const): Adjust the second operand of ior so to match with
|
||
the Csu constraint.
|
||
(movdi_const, movdi_const_32bit): Likewise.
|
||
(movdi_const_16bit+1): Don't sign-extend LOW.
|
||
(movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate
|
||
step.
|
||
(*double_shori): Fix the split condition. Use GEN_INT instead
|
||
of get_int_mode calls. Mask lower 16-bit of the argument of
|
||
the last GEN_INT.
|
||
(sym2GOTPLT): Remove.
|
||
(symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
|
||
gen_rtx_UNSPEC.
|
||
* config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
|
||
instead of EXTRA_CONSTRAINT_C16.
|
||
|
||
2006-01-07 Ian Lance Taylor <ian@airs.com>
|
||
David Edelsohn <edelsohn@gnu.org>
|
||
|
||
PR rtl-optimization/25662
|
||
* optabs.c (simplify_expand_binop): Use simplify_binary_operation
|
||
for constant operands instead of simplify_gen_binary.
|
||
* simplify-rtx.c (simplify_gen_binary): Swap commutative operands
|
||
after trying simplify_binary_operation
|
||
|
||
2006-01-06 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* tree.c (iterative_hash_expr): Hash decls based on UID.
|
||
|
||
2006-01-06 Eric Christopher <echristo@apple.com>
|
||
|
||
* doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
|
||
(TARGET_UNWIND_EMIT): Fix spelling.
|
||
* target.h (gcc_target): Add except_table_label.
|
||
* except.c (output_function_exception_table): Use.
|
||
* varasm.c (default_emit_except_table_label): New.
|
||
* target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
|
||
define.
|
||
(asm_out): Add here.
|
||
* output.h (default_emit_except_table_label): Prototype.
|
||
* config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
|
||
* config/darwin.c (darwin_emit_except_table_label): Define.
|
||
* config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
|
||
|
||
2006-01-06 Zdenek Dvorak <dvorakz@suse.cz>
|
||
|
||
PR tree-optimization/18527
|
||
* tree-ssa-loop-niter.c (number_of_iterations_cond,
|
||
number_of_iterations_special, number_of_iterations_exit):
|
||
Move base and step of an iv to a single structure. Add
|
||
no_overflow flag, and use it in # of iterations analysis.
|
||
* tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
|
||
folded_casts argument.
|
||
(simple_iv): Pass base and step in a structure. Set no_overflow
|
||
flag.
|
||
(scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
|
||
Evaluate expensiveness of computing # of iterations instead of
|
||
the final expression.
|
||
* tree-scalar-evolution.h (affine_iv): New structure.
|
||
(simple_iv): Declaration changed.
|
||
* tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
|
||
* tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
|
||
find_givs_in_stmt): Changed due to simple_iv change.
|
||
|
||
2006-01-06 Jeff Law <law@redhat.com>
|
||
|
||
PR ada/24994
|
||
* tree-cfg.c (bsi_replace): Rename final argument from
|
||
PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last
|
||
change (stmt -> orig_stmt).
|
||
* tree-eh.c (verify_eh_throw_stmt_node): New function.
|
||
(bsi_remove): Add new argument. Remove EH information
|
||
if requested.
|
||
(verify_eh_throw_table_statements): New function.
|
||
(bsi_remove): Add new argument REMOVE_EH_INFO. All callers
|
||
updated.
|
||
* tree-optimize.c (execute_free_cfg_annotations): Verify
|
||
the EH throw statement table after removing annotations.
|
||
* except.h (verify_eh_throw_table_statements): Prototype.
|
||
* tree-flow.h (bsi_remove): Update prototype.
|
||
* tree-vrp.c (remove_range_assertions): Add new argument to
|
||
bsi_remove call.
|
||
* tree-ssa-loop-im.c (move_computations_stmt): Likewise.
|
||
* tree-complex.c (expand_complex_div_wide): Likewise.
|
||
* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
|
||
* tree-tailcall.c (eliminate_tailcall): Likewise.
|
||
* tree-ssa-dse.c (dse_optimize_stmt): Likewise.
|
||
* tree-ssa-loop-ivopts.c (remove_statement): Likewise.
|
||
* tree-nrv.c (tree_nrv): Likewise.
|
||
* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
|
||
* tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
|
||
(combine_blocks): Likewise.
|
||
* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
|
||
* tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
|
||
(cleanup_control_flow): Likewise.
|
||
(remove_forwarder_block): Likewise.
|
||
* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
|
||
* tree-sra.c (sra_replace): Likewise.
|
||
* tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
|
||
(forward_propagate_single_use_vars): Likewise.
|
||
* tree-ssa-dce.c (remove_dead_stmt): Likewise.
|
||
* tree-inline.c (expand_call_inline): Likewise.
|
||
* tree-vect-transform.c (vect_transform_loop): Likewise.
|
||
* tree-outof-ssa.c (rewrite_trees): Likewise.
|
||
* tree-cfg.c (make_goto_expr_edges): Likewise.
|
||
(cleanup_dead_labels): Likewise.
|
||
(tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
|
||
(bsi_move_before, bsi_move_after): Likewise.
|
||
(bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
|
||
(tree_redirect_edge_and_branch, tree_split_block): Likewise.
|
||
|
||
2006-01-06 Andrew Pinski <pinskia@physics.uc.edu>
|
||
|
||
PR tree-opt/25528
|
||
* tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
|
||
and IMAGPART_EXPR.
|
||
* tree-flow-inline.h (var_can_have_subvars): Handle complex types
|
||
on non gimple variables. Also add checks at the top for decls and
|
||
mtags.
|
||
* tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
|
||
complex types.
|
||
* tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
|
||
and IMAGPART_EXPR for creating MUST_DEFs.
|
||
(get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
|
||
and NAME_MEMORY_TAG separately from the DECLs.
|
||
|
||
2006-01-06 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-dfa.c (mark_new_vars_to_rename): Create stmt
|
||
annotation, if necessary.
|
||
* tree-ssa-pre.c (create_expression_by_pieces): Remove
|
||
redundant calls to update_stmt.
|
||
* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
|
||
Likewise.
|
||
|
||
2006-01-05 Richard Henderson <rth@redhat.com>
|
||
|
||
* c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
|
||
|
||
2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* c-typeck.c: Update copyright date.
|
||
|
||
2006-01-05 Carlos O'Donell <carlos@codesourcery.com>
|
||
|
||
* c-typeck.c (build_c_cast): Always warn when casting
|
||
from a pointer to an integer of different size, even if
|
||
the node was constant.
|
||
|
||
2006-01-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR tree-optimization/22555
|
||
* tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
|
||
if one structure field is an array.
|
||
* tree-ssa-operands.c (get_expr_operands): Continue scanning
|
||
operands even if we found a subvar, but ignore VOPs in this
|
||
case.
|
||
* tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
|
||
for renaming.
|
||
* tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
|
||
|
||
2006-01-05 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR middle-end/24998
|
||
* arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
|
||
|
||
2006-01-05 Richard Guenther <rguenther@suse.de>
|
||
Diego Novillo <dnovillo@redhat.com>
|
||
|
||
* tree-pass.h (TODO_remove_unused_locals): Define.
|
||
* gimple-low.c (expand_var_p, remove_useless_vars,
|
||
pass_remove_useless_vars): Remove. Update all users.
|
||
* tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
|
||
(remove_unused_locals): New function.
|
||
* tree-flow.h (remove_unused_locals): Declare.
|
||
* passes.c (execute_todo): Call remove_unused_locals if
|
||
TODO_remove_unused_locals is set.
|
||
* tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
|
||
* tree-ssa-dce.c (pass_dce): Likewise.
|
||
* tree-outof-ssa.c (pass_del_ssa): Likewise.
|
||
|
||
2006-01-05 Richard Guenther <rguenther@suse.de>
|
||
|
||
* tree-flow.h (struct fieldoff): Decompose field to
|
||
type, size and decl.
|
||
* tree-ssa-alias.c (create_sft): Take type as parameter.
|
||
(create_overlap_variables_for): Store type, size and decl
|
||
in the fieldoff structure.
|
||
* tree-ssa-structalias.c (fieldoff_compare): Adjust users
|
||
of struct fieldoff.
|
||
(push_fields_onto_fieldstack): Likewise.
|
||
(create_variable_info_for): Likewise. Use offset for the
|
||
SFT name if the decl is not available.
|
||
|
||
2006-01-04 Paul Brook <paul@codesourcery.com>
|
||
|
||
* config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
|
||
|
||
2006-01-04 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* lambda-code.c (can_put_in_inner_loop): Relax
|
||
restrictions.
|
||
(can_put_after_inner_loop): New function.
|
||
(can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
|
||
(perfect_nestify): Change to make copies and modify uses.
|
||
|
||
2006-01-04 Richard Henderson <rth@redhat.com>
|
||
|
||
Merge from gomp branch:
|
||
* c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
|
||
via integer constant.
|
||
(pragma_lex): Remove.
|
||
* c-pch.c (c_common_pch_pragma): Accept the name as an argument,
|
||
rather than parsing it.
|
||
* c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
|
||
handle_pragma_extern_prefix): Add %< %> quotes.
|
||
(registered_pragmas): New.
|
||
(c_register_pragma_1): New.
|
||
(c_register_pragma): Use it.
|
||
(c_register_pragma_with_expansion): Likewise.
|
||
(c_invoke_pragma_handler): New.
|
||
(init_pragma): Use cpp_register_deferred_pragma directly for
|
||
pch_preprocess.
|
||
* c-pragma.h (enum pragma_kind): New.
|
||
(pragma_handler): New.
|
||
(c_invoke_pragma_handler): Declare.
|
||
* c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
|
||
CPP_PRAGMA_EOL.
|
||
* c-common.h (c_common_pch_pragma): Update decl.
|
||
* Makefile.in (c-parser.o): Update dependencies.
|
||
(GTFILES): Add c-pragma.h.
|
||
* c-parser.c (struct c_token): Add pragma_kind.
|
||
(struct c_parser): Add in_pragma.
|
||
(c_lex_one_token): Always initialize keyword and pragma_kind.
|
||
Extract data for CPP_PRAGMA.
|
||
(c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
|
||
(c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
|
||
Don't allow CPP_PRAGMA_EOL if in_pragma.
|
||
(c_parser_consume_pragma): New.
|
||
(c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
|
||
(c_parser_skip_to_end_of_parameter): Likewise.
|
||
(c_parser_skip_to_end_of_block_or_statement): Likewise.
|
||
(c_parser_skip_to_pragma_eol): New.
|
||
(c_parser_external_declaration): Handle CPP_PRAGMA.
|
||
(c_parser_compound_statement_nostart): Likewise.
|
||
(c_parser_statement_after_labels): Likewise.
|
||
(c_parser_pragma): New.
|
||
(pragma_lex): Likewise.
|
||
(c_parser_pragma_pch_preprocess): New.
|
||
(c_parser_new): Merge into ...
|
||
(c_parse_file): ... here. Call c_parser_pragma_pch_preprocess.
|
||
|
||
2006-01-04 Jeff Law <law@redhat.com>
|
||
|
||
PR ada/24994
|
||
* tree-cfg.c (bsi_replace): Remove the original statement
|
||
from the EH throw statement table.
|
||
|
||
2006-01-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
|
||
make the prototype extern "C" and add throw ().
|
||
|
||
PR target/25554
|
||
* config/i386/i386.md (testqi_ext_3): Ensure len is positive
|
||
and pos non-negative and pos + len <= 32.
|
||
(testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
|
||
drop pos + len < HOST_BITS_PER_WIDE_INT test.
|
||
(testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
|
||
|
||
PR c/25559
|
||
* c-common.c (handle_vector_size_attribute): Reject zero vector size
|
||
as well as sizes not multiple of component size.
|
||
|
||
PR debug/25562
|
||
* function.c (instantiate_expr): New function.
|
||
(instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
|
||
walk its DECL_VALUE_EXPR with instantiate_expr.
|
||
|
||
* dwarf2out.c (loc_descriptor_from_tree_1): Don't add
|
||
DW_OP_deref{,_size} if address isn't going to be added.
|
||
|
||
2006-01-04 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* config/fp-bit.h: Use top-of-file comment from libgcc2.c.
|
||
* config/fp-bit.c: Likewise.
|
||
|
||
2006-01-03 Daniel Berlin <dberlin@dberlin.org>
|
||
|
||
* dominance.c: Add comment about why we use DFS numbering
|
||
of dominance tree.
|
||
|
||
2006-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
Richard Henderson <rth@redhat.com>
|
||
|
||
Merge from gomp-branch:
|
||
* varasm.c (assemble_variable): Handle thread-local COMMON data.
|
||
* defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
|
||
|
||
2006-01-03 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR rtl-optimization/25578
|
||
* combine.c (combine_simplify_rtx, force_to_mode): Don't
|
||
pass a parameter to simplify_shift_const if changing ASHIFTRT
|
||
to LSHIFTRT.
|
||
|
||
2006-01-03 Adrian Straetling <straetling@de.ibm.com>
|
||
|
||
* builtins.c (get_builtin_sync_mem): New function.
|
||
(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
|
||
expand_builtin_lock_test_and_set, expand_builtin_lock_release):
|
||
Call get_builtin_sync_mem to generate mem rtx.
|
||
|
||
2006-01-03 Richard Guenther <rguenther@suse.de>
|
||
|
||
PR c/25183
|
||
* stmt.c (add_case_node): Make sure to clear overflow flags
|
||
from ranges.
|
||
|
||
2006-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Merge from gomp-branch.
|
||
* config/sparc/sync.md: New file.
|
||
* config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
|
||
UNSPECV_LDSTUB): New constants.
|
||
* config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
|
||
* config/sparc/predicates.md (memory_reg_operand): New predicate.
|
||
* config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
|
||
prototype.
|
||
|
||
2006-01-03 Roger Sayle <roger@eyesopen.com>
|
||
|
||
* combine.c (reg_subword_p): New predicate to test whether the
|
||
destination of a set refers to a subword/piece of a register.
|
||
(try_combine): Generalize the code to merge the setting of a
|
||
pseudo to a constant followed by a set of a subword of that
|
||
register to a constant.
|
||
|
||
2006-01-03 Kazu Hirata <kazu@codesourcery.com>
|
||
|
||
* basic-block.h (control_flow_graph): Change the type of
|
||
x_label_to_block_map to VEC(basic_block,gc) *.
|
||
* tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
|
||
set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
|
||
|
||
* tree-ssa-propagate.c (cfg_blocks): Change the type to
|
||
VEC(basic_block,heap) *.
|
||
(cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
|
||
ssa_prop_fini): Adjust the uses of cfg_blocks.
|
||
|
||
2006-01-03 Steven Bosscher <stevenb.gcc@gmail.com>
|
||
|
||
* fold-const.c (operand_equal_p): Accept a NULL operand 0 for
|
||
COMPONENT_REFs.
|
||
* emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
|
||
hashing trees instead of a pointer hash.
|
||
(mem_attrs_htab_eq): Do a deep compare instead of a pointer
|
||
compare for MEM_EXPR.
|
||
|
||
PR rtl-optimization/25130
|
||
* cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
|
||
when comparing MEMs for GCSE
|
||
|
||
2006-01-03 Ben Elliston <bje@au.ibm.com>
|
||
|
||
* targhooks.h (default_decimal_float_supported_p): Declare.
|
||
* targhooks.c (default_decimal_float_supported_p): Define.
|
||
* target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
|
||
`default_decimal_float_supported_p'.
|
||
* doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
|
||
|
||
2006-01-02 Adam Nemet <anemet@caviumnetworks.com>
|
||
|
||
* combine.c (apply_distributive_law <SUBREG>): Check
|
||
TRULY_NOOP_TRUNCATION.
|
||
|
||
2006-01-02 Geoffrey Keating <geoffk@apple.com>
|
||
|
||
* dwarf2out.c (have_switched_text_section): Delete.
|
||
(have_multiple_function_sections): New.
|
||
(have_location_lists): Make 'bool'.
|
||
(add_AT_loc_list): Use 'true' not '1'.
|
||
(dwarf2out_switch_text_section): Set have_multiple_function_sections.
|
||
(output_loc_list): Use have_multiple_function_sections.
|
||
(output_ranges): Likewise.
|
||
(dwarf2out_begin_function): Set have_multiple_function_sections if
|
||
necessary.
|
||
(dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
|
||
Check function_section rather than DECL_SECTION_NAME.
|
||
(dwarf2out_finish): Use have_multiple_function_sections.
|
||
Don't clear have_location_lists.
|
||
|
||
2006-01-02 Eric Botcazou <ebotcazou@adacore.com>
|
||
Jan Hubicka <jh@suse.cz>
|
||
|
||
* cfglayout.c (fixup_reorder_chain): Remove kludge for the
|
||
case of conditional jump jumping to the next instruction.
|
||
* cfgrtl.c (force_nonfallthru_and_redirect): Accept all
|
||
cases of conditional jump jumping to the next instruction.
|
||
|
||
2006-01-02 Jan Hubicka <jh@suse.cz>
|
||
|
||
* i386.c (*_cost): Add COSTS_N_INSNS.
|
||
(ix86_rtx_costs): Do not use COSTS_N_INSNS.
|
||
|
||
2006-01-02 Paolo Bonzini <bonzini@gnu.org>
|
||
|
||
PR target/25259
|
||
* Makefile.in (DECNUMINC): Include libdecnumber's build directory.
|
||
|
||
2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||
|
||
* config/arm/arm.c (all_fpus): Fix comment typo.
|
||
* config/darwin.c: Likewise.
|
||
* config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
|
||
* config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
|
||
* config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
|
||
|
||
2006-01-01 David Edelsohn <edelsohn@gnu.org>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
|
||
(rs6000_split_compare_and_swapqhi): New.
|
||
* config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
|
||
(sync_compare_and_swapqhi_internal): New.
|
||
* config/rs6000/rs6000-protos.h: Declare.
|
||
|