12006-12-29 Paolo Bonzini <bonzini@gnu.org> 2 3 PR bootstrap/29544 4 * gcc/Makefile.in (STAGE1_CHECKING): Rename to... 5 (STAGE1_CHECKING_CFLAGS): ... this. 6 72006-12-28 H.J. Lu <hongjiu.lu@intel.com> 8 9 Backport from mainline: 10 2006-12-02 H.J. Lu <hongjiu.lu@intel.com> 11 12 PR target/30040 13 * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h". 14 (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite 15 processor detection. 16 17 * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for 18 -march=native if there is no -mtune=*. 19 20 * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H) 21 coretypes.h. 22 232006-12-27 Ian Lance Taylor <iant@google.com> 24 25 PR debug/26964 26 * dwarf2out.c (gen_type_die): Don't write out a DIE for 27 ENUMERAL_TYPE if it was already written out. 28 292006-12-23 Eric Botcazou <ebotcazou@adacore.com> 30 31 * dwarf2out.c (dbx_reg_number): Do leaf register remapping 32 only if the function is leaf. 33 (multiple_reg_loc_descriptor): Likewise. 34 352006-12-21 Jakub Jelinek <jakub@redhat.com> 36 37 PR middle-end/30262 38 PR middle-end/30263 39 * tree-nested.c (walk_asm_expr): New function. 40 (walk_stmts): Use it for ASM_EXPR. 41 42 PR target/30230 43 * config/ia64/ia64.c (ia64_add_bundle_selector_before): New function. 44 (bundling): Use it. 45 462006-12-17 Matthias Klose <doko@debian.org> 47 48 PR libstdc++/11953 49 * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend. 50 512006-12-16 Joseph Myers <joseph@codesourcery.com> 52 David Edelsohn <edelsohn@gnu.org> 53 54 PR target/24036 55 * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING, 56 HARD_REGNO_NREGS_WITH_PADDING): Document new target macros. 57 * defaults.h (HARD_REGNO_NREGS_HAS_PADDING, 58 HARD_REGNO_NREGS_WITH_PADDING): Define. 59 * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING, 60 HARD_REGNO_NREGS_WITH_PADDING): Define. 61 * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p): 62 Use new macros to detect modes with holes; do not look at integer 63 units. 64 (subreg_offset_representable_p): Check for and disallow cases 65 where the modes use different numbers of bits from registers. 66 * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode 67 constant for soft-float. 68 (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs 69 containing doubles. 70 (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves 71 in E500 double case. 72 * config/rs6000/rs6000.md (movtf): Allow soft-float. 73 (movtf_softfloat): New. 74 752006-12-15 Jakub Jelinek <jakub@redhat.com> 76 77 PR target/30185 78 * config/rs6000/rs6000.md (div<mode>3): Use correct mode in 79 force_reg call. 80 812006-12-13 Richard Guenther <rguenther@suse.de> 82 83 * ipa-inline.c (cgraph_flatten_node): Replace leafify with 84 flatten. 85 (cgraph_decide_inlining): Likewise. 86 872006-12-13 Richard Guenther <rguenther@suse.de> 88 89 * ipa-reference.c (scan_for_static_refs): Also scan 90 tcc_comparison class trees. 91 922006-12-12 Daniel Berlin <dberlin@dberlin.org> 93 94 * tree-ssa-structalias.c (handle_ptr_arith): Return false when we 95 can't handle the pointer arithmetic. 96 972006-12-12 Jakub Jelinek <jakub@redhat.com> 98 99 PR libstdc++/11953 100 * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined. 101 102 * config/ia64/linux.h (CPP_SPEC): Define. 103 * config/s390/linux.h (CPP_SPEC): Define. 104 1052006-12-12 Jim Wilson <wilson@specifix.com> 106 Jakub Jelinek <jakub@redhat.com> 107 108 PR rtl-optimization/27761 109 * combine.c (try_combine): Don't create a useless garbage SET 110 if PATTERN (i2) is a PARALLEL. If added_sets_1, save 111 PATTERN (i1) resp. SET from i1src to i1dest in i1pat 112 and use it to prevent accidental modification of i1src. 113 1142006-12-12 Richard Guenther <rguenther@suse.de> 115 116 PR middle-end/30147 117 * fold-const.c (fold_read_from_constant_string): Only fold read 118 from constant string if the result type is integer. 119 1202006-12-09 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 121 122 * haifa-sched.c (schedule_block): Remove excessive sanity check. 123 1242006-12-08 Mike Stump <mrs@apple.com> 125 126 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build 127 libgcc with -mmacosx-version-min=10.4. 128 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to 129 G4 for 10.5+ unless doing kernel builds. 130 1312006-12-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 132 133 PR target/30039 134 * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit 135 patterns. Correct length of high:DI instruction sequence. 136 1372006-12-07 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 138 139 PR target/29794 140 * sched-rgn.c (add_block1): Use correct initializer. 141 1422006-12-05 H.J. Lu <hongjiu.lu@intel.com> 143 144 PR driver/30074 145 * config.host: Add driver-i386.o only if compiling for x86 or 146 x86_64. 147 1482006-12-04 Jakub Jelinek <jakub@redhat.com> 149 150 PR libgomp/29947 151 * omp-low.c (expand_omp_for_static_nochunk, 152 expand_omp_for_static_chunk): Do all arithmetics in signed rather than 153 unsigned type. 154 155 PR middle-end/29965 156 * omp-low.c (determine_parallel_type): Don't try to optimize combined 157 parallels if region->exit or region->inner->exit is NULL. 158 (expand_omp_parallel): Handle NULL region->exit even if cfg is already 159 built. 160 (expand_omp_for_generic): Handle NULL region->cond and region->exit. 161 (expand_omp_for): Use expand_omp_for_generic if either region->cond 162 or region->exit is NULL. 163 (expand_omp_sections): Handle NULL region->cond or region->exit. 164 (expand_omp_synch): 165 1662006-12-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 167 168 * doc/install.texi: Update MPFR prerequisite to version 2.2.1. 169 1702006-12-02 Andrew Pinski <pinskia@gmail.com> 171 172 PR tree-opt/29984 173 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR 174 and MIN_EXRP. 175 1762006-11-29 Joseph Myers <joseph@codesourcery.com> 177 178 * config/rs6000/predicates.md (gpc_reg_operand): Check 179 invalid_e500_subreg. 180 * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any 181 SImode subregs of SPE vectors. 182 * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs. 183 * jump.c (true_regnum): Require subregs to satisfy 184 subreg_offset_representable_p. 185 1862006-11-29 Jie Zhang <jie.zhang@analog.com> 187 188 * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately. 189 1902006-11-29 Jim Tison <jtison@us.ibm.com> 191 192 * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, 193 __gthread_recursive_mutex_init): Define. 194 1952006-11-29 Joseph Myers <joseph@codesourcery.com> 196 197 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If 198 STRICT_ALIGNMENT and the type is more aligned than the saved 199 registers, copy via a temporary. 200 2012006-11-28 Joseph Myers <joseph@codesourcery.com> 202 203 * function.c (instantiate_virtual_regs_in_insn): Call force_reg 204 inside start_sequence / end_sequence pair. 205 2062006-11-27 Michael Matz <matz@suse.de> 207 Andreas Krebbel <krebbel1@de.ibm.com> 208 209 PR target/29319 210 * config/s390/predicates.md (larl_operand): Check addend of larl 211 operand to be in range of -/+2GB. 212 * config/s390/s390.c (legitimize_pic_address): Likewise. 213 Changed type of variable even to HOST_WIDE_INT. 214 2152006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 216 217 * doc/install.texi: Remove documentation for --with-mpfr-dir 218 and --with-gmp-dir, add documentation for --with-mpfr-include, 219 --with-mpfr-lib, --with-gmp-include and --with-gmp-lib. 220 2212006-11-25 Andrew Pinski <andrew_pinski@playstation.sony.com> 222 223 PR tree-opt/29964 224 * ipa-pure-const.c (check_tree): If the original tree 225 is volatile return early and say the function is not pure 226 nor const. Remove the volatile check for writes. 227 (analyze_function): Print out the result of the local 228 analysis pass. 229 2302006-11-24 Jakub Jelinek <jakub@redhat.com> 231 232 PR c/29955 233 * c-tree.h (c_maybe_initialize_eh): New prototype. 234 * c-decl.c (finish_decl): Move EH initialization... 235 (c_maybe_initialize_eh): ... here. New function. 236 * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh 237 if not #pragma omp atomic. 238 239 PR c/29736 240 * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE 241 or UNION_TYPE inner types. 242 2432006-11-24 Joseph Myers <joseph@codesourcery.com> 244 245 * config/rs6000/eabispe.h (TARGET_DEFAULT): Include 246 MASK_STRICT_ALIGN. 247 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise. 248 * config/rs6000/rs6000.c (rs6000_override_options): Use 249 MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to 250 POWERPC_MASKS. 251 2522006-11-24 Andreas Krebbel <krebbel1@de.ibm.com> 253 254 * config/s390.c (s390_emit_compare_and_swap): New function. 255 (s390_expand_cs_hqi, s390_expand_atomic): Call 256 s390_emit_compare_and_swap. 257 2582006-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 259 260 * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606. 261 2622006-11-22 Joseph Myers <joseph@codesourcery.com> 263 264 * config/rs6000/spe.md (SPE64): New mode macro. 265 (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0. Add 266 memory load. 267 (mov_si<mode>_e500_subreg0_2): New. 268 (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4. Add 269 memory load. 270 (mov_si<mode>_e500_subreg4_2): New. 271 * config/rs6000/predicates.md (input_operand): Do not allow 272 invalid E500 subregs. 273 (rs6000_nonimmediate_operand): Check for invalid E500 subregs also 274 if TARGET_SPE. 275 * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs 276 involving DFmode if TARGET_E500_DOUBLE. Check for subregs 277 involving vector modes if TARGET_SPE. 278 2792006-11-20 Anatoly Sokolov <aesok@post.ru> 280 281 PR target/18553 282 PR target/29449 283 * config/avr/avr.h (OBJECT_FORMAT_ELF): Define. 284 285 * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define. 286 2872006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 288 289 PR target/29114 290 * pa.c (emit_move_sequence): Don't split constants with PLUS for modes 291 larger than BITS_PER_WORD. 292 2932006-11-19 Richard Guenther <rguenther@suse.de> 294 295 Backport from mainline: 296 2006-11-15 Paolo Bonzini <bonzini@gnu.org> 297 298 PR middle-end/29753 299 * gimplify.c (fold_indirect_ref_rhs): Use 300 STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS. 301 3022006-11-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 303 304 PR fortran/27885 305 PR middle-end/28176 306 * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types 307 to MAX_FIXED_MODE_SIZE. 308 3092006-11-18 Aldy Hernandez <aldyh@redhat.com> 310 311 * doc/invoke.texi: Fix mno-isel typo. 312 3132006-11-18 Joseph Myers <joseph@codesourcery.com> 314 315 * config/rs6000/spe.md (movv4hi_internal): Add alternative for 316 easy vector constant loads. 317 3182006-11-18 Joseph Myers <joseph@codesourcery.com> 319 320 * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define. 321 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define 322 __NO_LWSYNC__ if TARGET_NO_LWSYNC. 323 * config/rs6000/sync.md (lwsync): Emit plain sync if 324 TARGET_NO_LWSYNC. 325 3262006-11-17 Jakub Jelinek <jakub@redhat.com> 327 328 PR middle-end/29584 329 * tree-ssa-forwprop.c (simplify_switch_expr): Don't 330 optimize if DEF doesn't have integral type. 331 3322006-11-17 Uros Bizjak <ubizjak@gmail.com> 333 334 * config/i386/i386.c (ix86_function_sseregparm): Fix comment: 335 number of arguments passed to local functions in SSE registers is 3. 336 337 * doc/invoke.texi (Function Attributes) [sseregparm]: Correct 338 number of arguments passed in SSE registers to 3. 339 3402006-11-16 Eric Botcazou <ebotcazou@adacore.com> 341 342 PR middle-end/26306 343 * gimplify.c (gimplify_expr): Only force a load for references to 344 non-BLKmode volatile values. 345 * doc/implement-c.texi (Qualifiers implementation): Document the 346 interpretation of what a volatile access is. 347 * doc/extend.texi (C++ Extensions): Rework same documentation. 348 3492006-11-16 Andrew Pinski <andrew_pinski@playstation.sony.com> 350 351 PR tree-opt/29788 352 * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down 353 to what is the const decl is a place holder for. 354 3552006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 356 357 PR target/29201 358 * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of 359 bb to ... 360 (get_last_bb_insn): ... new global function. 361 (basic_block.h): Declare it. 362 * haifa-sched.c (create_recovery_block): Use it. 363 3642006-11-16 Joseph Myers <joseph@codesourcery.com> 365 366 * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable 367 memory operand. 368 3692006-11-15 Steve Ellcey <sje@cup.hp.com> 370 371 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode 372 routines for integer division. 373 3742006-11-15 Steve Ellcey <sje@cup.hp.com> 375 376 PR other/25028 377 * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi, 378 _fixunstfdi, and _floatditf 379 3802006-11-15 Jakub Jelinek <jakub@redhat.com> 381 382 PR tree-optimization/29581 383 * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT, 384 REPLACEMENTS, FIRSTBSI arguments. If initial condition or 385 type is different between Y and USE, create a temporary 386 variable, initialize it at the beginning of the body bb 387 and use it as replacement instead of Y. 388 3892006-11-15 Richard Guenther <rguenther@suse.de> 390 391 Backport from mainline: 392 2006-11-12 Michael Matz <matz@suse.de> 393 Roger Sayle <roger@eyesopen.com> 394 395 PR rtl-optimization/29797 396 * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on 397 BITS_BIG_ENDIAN targets. 398 3992006-11-14 Eric Christopher <echristo@apple.com> 400 401 * configure: Regenerate with autoconf 2.59. 402 4032006-11-13 DJ Delorie <dj@redhat.com> 404 405 * config/m32c/m32c.c (m32c_prepare_shift): Use a separate 406 temporary for intermediates. 407 4082006-11-13 Jakub Jelinek <jakub@redhat.com> 409 410 * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL 411 test. 412 * configure: Rebuilt. 413 414 * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715 415 style versions. 416 * configure: Rebuilt. 417 4182006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com> 419 420 PR tree-opt/29439 421 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when 422 checking for overflow. 423 4242006-11-13 Richard Guenther <rguenther@suse.de> 425 426 Backport from mainline: 427 2006-10-23 Richard Guenther <rguenther@suse.de> 428 429 PR middle-end/21032 430 * convert.c (convert_to_real): Fold (float)-x to -(float)x 431 only if not flag_rounding_math. 432 4332006-11-12 Jason Merrill <jason@redhat.com> 434 Andrew Pinski <pinskia@physics.uc.edu> 435 436 PR middle-end/28915 437 * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT 438 vector ctors. 439 * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT 440 vector ctors. 441 * expmed.c (make_tree): Handle CONST, SYMBOL_REF. 442 * tree.c (build_vector): Handle non-_CST elements. 443 4442006-11-12 Daniel Berlin <dberlin@dberlin.org> 445 446 Fix PR tree-optimization/29587 447 * tree-ssa-structalias.c (process_constraint): Don't 448 mark address taken due only to escaped vars constraint. 449 4502006-11-12 Jie Zhang <jie.zhang@analog.com> 451 452 Revert 453 2006-11-11 Jie Zhang <jie.zhang@analog.com> 454 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__ 455 and __BFIN__. 456 457 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std 458 instead of builtin_define for bfin and BFIN. 459 4602006-11-11 Jie Zhang <jie.zhang@analog.com> 461 462 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__ 463 and __BFIN__. 464 4652006-11-11 Richard Sandiford <richard@codesourcery.com> 466 467 PR middle-end/27528 468 * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the 469 constraints accept neither registers or memories. 470 4712006-11-11 Jie Zhang <jie.zhang@analog.com> 472 473 * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO. 474 (NO_PROFILE_COUNTERS): Define as 1. 475 4762006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru> 477 478 PR middle-end/29726 479 * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name. 480 4812006-11-09 Eric Christopher <echristo@apple.com> 482 483 PR bootstrap/26892 484 PR bootstrap/27814 485 PR other/28994 486 * configure: Regenerate. 487 * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks. 488 * config.gcc (powerpc64-*-darwin*): New target. 489 * config.host: Ditto. 490 * config/rs6000/darwin64.h: New file. 491 * config/rs6000/x-darwin64: Ditto. 492 * config/rs6000/host-ppc64-darwin.c: Ditto. 493 4942006-11-08 Brooks Moses <brooks.moses@codesourcery.com> 495 496 * doc/invoke.texi: Minor formatting fixes in option lists. 497 4982006-11-08 Eric Christopher <echristo@apple.com> 499 500 Backport from mainline: 501 * config.gcc: Add x86_64-darwin host support. 502 * config.host: Ditto. 503 * config/i386/darwin64.h: New file. 504 * config/i386/t-darwin64: Ditto. 505 5062006-11-08 Janis Johnson <janis187@us.ibm.com> 507 508 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists 509 and output-exists-not. 510 5112006-11-07 Richard Guenther <rguenther@suse.de> 512 513 PR tree-optimization/29610 514 * tree-cfgcleanup.c (cleanup_control_flow): Honor return value 515 of tree_purge_dead_eh_edges as it may free dominators. 516 517 * g++.dg/other/pr29610.C: New testcase. 518 5192006-11-07 Jie Zhang <jie.zhang@analog.com> 520 521 * gcc.c (process_command): Treat -b as normal switch if its argument 522 has no dash. 523 5242006-11-06 Vladimir Prus <vladimir@codesourcery.com> 525 526 Backport from mainline: 527 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do not 528 set inhibit_libc. 529 * config/arm/t-strongarm-elf: Likewise. 530 * config/arm/t-pe: Likewise. 531 * config/arm/t-arm-elf: Likewise. 532 * config/arm/t-xscale-elf: Likewise. 533 * config/arm/t-arm-coff: Likewise. 534 * config/arm/t-xscale-coff: Likewise. 535 * config/arm/t-wince-pe: Likewise. 536 5372006-11-06 Richard Guenther <rguenther@suse.de> 538 539 Backport from mainline: 540 2006-10-21 Richard Guenther <rguenther@suse.de> 541 542 PR target/19116 543 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP 544 if flag_unsafe_math_optimizations is specified. We have 545 flag_finite_math_only for that. 546 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP 547 or flag_unsafe_math_optimizations. 548 549 PR middle-end/28796 550 * simplify-rtx.c (simplify_const_relational_operation): 551 Do not constant-fold ORDERED and UNORDERED for 552 flag_unsafe_math_optimizations but only we do not need to 553 honor NaNs for the given mode. 554 5552006-11-05 Jakub Jelinek <jakub@redhat.com> 556 557 PR middle-end/29695 558 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0 559 simplification. 560 5612006-11-02 Brooks Moses <brooks.moses@codesourcery.com> 562 563 * doc/invoke.texi: Fix mfp-trap-mode typo. 564 5652006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr> 566 567 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build 568 instructions. 569 (sparc64-sun-solaris2*): Likewise. 570 5712006-11-02 Uros Bizjak <ubizjak@gmail.com> 572 573 PR target/29377 574 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size" 575 argument to HOST_WIDE_INT. Update function prototype. 576 (round_frame_size): Change return type to HOST_WIDE_INT. Change 577 "size" argument to HOST_WIDE_INT. Update function prototype. 578 5792006-11-01 Chris Johns <chris@contemporary.net.au> 580 581 PR bootstrap/28400 582 * Makefile.in (install-driver): Use exeext when installing 583 $target-gcc-$version. 584 5852006-11-01 Andrew Haley <aph@redhat.com> 586 587 * fold-const.c (fold_unary): Don't fold (t1)(t2) to (t1) if this 588 is a Java program. 589 5902006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 591 592 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE. 593 5942006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr> 595 596 PR target/24071 597 * gthr-posix.h (__gthread_active_p): New implementation on Solaris. 598 * gthr-posix95.h (__gthread_active_p): Likewise. 599 6002006-10-30 Jakub Jelinek <jakub@redhat.com> 601 602 PR tree-optimization/29637 603 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT 604 of the innertype is the innertype itself. 605 606 * gcc.dg/pr29637.c: New test. 607 6082006-10-27 Mike Stump <mrs@apple.com> 609 610 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and 611 __DYNAMIC__ from here back to ... 612 * config/darwin.h (CPP_SPEC): ... here. 613 6142006-10-26 Andreas Krebbel <krebbel1@de.ibm.com> 615 616 * config/s390/s390.c (s390_init_frame_layout): Check positive 617 frame_size. 618 6192006-10-26 Ben Elliston <bje@au.ibm.com> 620 621 * doc/extend.texi (Variable Attributes): Typo fix. 622 6232006-10-25 Steve Ellcey <sje@cup.hp.com> 624 625 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++. 626 Add unix98.o to link line. 627 6282006-10-25 Richard Sandiford <richard@codesourcery.com> 629 David Daney <ddaney@avtrex.com> 630 631 PR middle-end/29519 632 * rtlanal.c (nonzero_address_p): Remove check for values wrapping. 633 6342006-10-25 Daniel Berlin <dberlin@dberlin.org> 635 636 * tree-ssa-structalias.c (intra_create_variable_infos): 637 Don't recreate nonlocal_all if it already exists. 638 6392006-10-23 Ulrich Weigand <uweigand@de.ibm.com> 640 641 * config/s390/predicates.md ("bras_sym_operand"): Do not accept 642 nonlocal function symbols if flag_pic. 643 6442006-10-22 Richard Sandiford <richard@codesourcery.com> 645 646 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS 647 expressions. 648 6492006-10-20 Mark Mitchell <mark@codesourcery.com> 650 651 * DEV-PHASE: Mark as prerelease. 652 6532006-10-20 Daniel Berlin <dberlin@dberlin.org> 654 655 * tree.h (DECL_PTA_ARTIFICIAL): Remove. 656 (tree_decl_with_vis): Remove artificial_pta_var flag. 657 * tree-flow.h (referenced_var_check_and_insert): Expose. 658 (nonlocal_all): New prototype. 659 * tree-ssa-structalias.c (nonlocal_for_type): Remove. 660 (nonlocal_all): Make global. 661 (nonlocal_lookup): Remove. 662 (nonlocal_insert): Ditto. 663 (create_nonlocal_var): Do not call nonlocal_insert. 664 (get_nonlocal_id_for_type): Remove. 665 (find_global_initializers): Mark new vars we find for renaming. 666 (intra_create_variable_infos): Only create one nonlocal. 667 (expand_nonlocal_solutions): Remove. 668 (compute_points_to_sets): Don't call it. 669 (ipa_pta_execute): Ditto. 670 (init_alias_heapvars): Don't create nonlocal_for_type. 671 (delete_alias_heapvars): Don't remove it. 672 * tree-ssa-operands.c (access_can_touch_variable): Don't prune 673 nonlocal_all. 674 6752006-10-19 Brooks Moses <bmoses@stanford.edu> 676 677 * doc/install.texi (Downloading GCC): Clarify mention of 678 Fortran in the "full distribution" description. 679 6802006-10-19 Daniel Berlin <dberlin@dberlin.org> 681 682 Fix PR tree-optimization/28778 683 Fix PR tree-optimization/29156 684 Fix PR tree-optimization/29415 685 * tree.h (DECL_PTA_ARTIFICIAL): New macro. 686 (tree_decl_with_vis): Add artificial_pta_var flag. 687 * tree-ssa-alias.c (is_escape_site): Remove alias info argument, 688 pushed into callers. 689 * tree-ssa-structalias.c (nonlocal_for_type): New variable. 690 (nonlocal_all): Ditto. 691 (struct variable_info): Add directly_dereferenced member. 692 (var_escaped_vars): New variable. 693 (escaped_vars_tree): Ditto. 694 (escaped_vars_id): Ditto. 695 (nonlocal_vars_id): Ditto. 696 (new_var_info): Set directly_dereferenced. 697 (graph_size): New variable 698 (build_constraint_graph): Use graph_size. 699 (solve_graph): Don't process constraints that cannot change the 700 solution, don't try to propagate an empty solution to our 701 successors. 702 (process_constraint): Set directly_dereferenced. 703 (could_have_pointers): New function. 704 (get_constraint_for_component_ref): Don't process STRING_CST. 705 (nonlocal_lookup): New function. 706 (nonlocal_insert): Ditto. 707 (create_nonlocal_var): Ditto. 708 (get_nonlocal_id_for_type): Ditto. 709 (get_constraint_for): Allow results vector to be empty in the case 710 of string constants. 711 Handle results of calls properly. 712 (update_alias_info): Update alias info stats on number and type of 713 calls. 714 (find_func_aliases): Use could_have_pointers. 715 (make_constraint_from_escaped): Renamed from 716 make_constraint_to_anything, and changed to make constraints from 717 escape variable. 718 (make_constraint_to_escaped): New function. 719 (find_global_initializers): Ditto. 720 (create_variable_info_for): Make constraint from escaped to any 721 global variable, and from any global variable to the set of 722 escaped vars. 723 (intra_create_variable_infos): Deal with escaped instead of 724 pointing to anything. 725 (set_uids_in_ptset): Do type pruning on directly dereferenced 726 variables. 727 (find_what_p_points_to): Adjust call to set_uids_with_ptset. 728 (init_base_vars): Fix comment, and initialize escaped_vars. 729 (need_to_solve): Removed. 730 (find_escape_constraints): New function. 731 (expand_nonlocal_solutions): Ditto. 732 (compute_points_to_sets): Call find_escape_constraints and 733 expand_nonlocal_solutions. 734 (delete_points_to_sets): Don't fall off the end of the graph. 735 (init_alias_heapvars): Initialize nonlocal_for_type and 736 nonlocal_all. 737 (delete_alias_heapvars): Free nonlocal_for_type and null out 738 nonlocal_all. 739 7402006-10-19 Eric Botcazou <ebotcazou@adacore.com> 741 742 * fold-const.c (add_double): Rename to add_double_with_sign. 743 Add 'unsigned_p' parameter and take it into account for the overflow. 744 (mul_double): Rename to mul_double_with_sign. 745 Add 'unsigned_p' parameter and take it into account for the overflow. 746 (fold_div_compare): Call add_double_with_sign instead of add_double 747 and mul_double_with_sign instead of mul_double, passing them the 748 unsignedness of the type. 749 * tree.h (add_double): Macroize. 750 (add_double_with_sign): New prototype. 751 (mul_double): Macroize. 752 (mul_double_with_sign): New prototype. 753 7542006-10-19 Chen Liqin <liqin@sunnorth.com.cn> 755 756 * config/score/crti.asm: New file. 757 * config/score/crtn.asm: New file. 758 * config/score/elf.h: New file. 759 * config/score/mac.md: New file. 760 * config/score/misc.md: New file. 761 * config/score/mul-div.S: New file. 762 * config/score/predicates.md: New file. 763 * config/score/score7.md: New file. 764 * config/score/score.c: New file. 765 * config/score/score-conv.h: New file. 766 * config/score/score.h: New file. 767 * config/score/score.md: New file. 768 * config/score/score-mdaux.c: New file. 769 * config/score/score-mdaux.h: New file. 770 * config/score/score-modes.def: New file. 771 * config/score/score.opt: New file. 772 * config/score/score-protos.h: New file. 773 * config/score/score-version.h: New file. 774 * config/score/t-score-elf: New file. 775 * config.gcc: Add score*-*-* configurations(Update before). 776 * doc/invoke.texi (Score Options): New section. 777 * doc/md.texi (Score family): New section to document constraints. 778 7792006-10-19 Nick Clifton <nickc@redhat.com> 780 781 * config/arm/arm.c: Fix spelling typo. 782 7832006-10-18 Tom Tromey <tromey@redhat.com> 784 785 * doc/install.texi (Prerequisites): Mention automake 1.9.6. 786 7872006-10-18 Jan Hubicka <jh@suse.cz> 788 789 PR middle-end/29299 790 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user 791 are used. 792 7932006-10-18 Marcin Dalecki <martin@dalecki.de> 794 795 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of 796 TSI_SAME_STMT, since that's the desired entity. 797 7982006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com> 799 800 * config/s390/contraints.md: New file. 801 * config/s390/s390-protos.h (s390_mem_constraint, 802 s390_O_constraint_str, s390_N_constraint_str, 803 s390_float_const_zero_p): Function prototypes added. 804 * config/s390/s390.c (s390_extra_constraint_str, 805 s390_const_double_ok_for_constraint_p, 806 s390_const_ok_for_constraint_p): Functions removed. 807 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str, 808 s390_float_const_zero_p): New functions. 809 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P, 810 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR, 811 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN): 812 Macro definitions removed. 813 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p, 814 s390_extra_constraint_str): Functions removed. 815 8162006-10-17 Andrew Pinsiki <pinskia@gmail.com> 817 Richard Sandiford <richard@codesourcery.com> 818 819 PR target/29413 820 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override. 821 * config/mips/mips.h (CC1_SPEC): Override any earlier definition. 822 8232006-10-16 Geoffrey Keating <geoffk@apple.com> 824 825 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h. 826 (DWARF2_FRAME_REG_OUT): Likewise. 827 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h. 828 (DWARF2_FRAME_REG_OUT): Likewise. 829 8302006-10-17 Paul Brook <paul@codesourcery.com> 831 832 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate. 833 8342006-10-16 Brooks Moses <bmoses@stanford.edu> 835 836 * doc/contrib.texi, doc/install.texi, doc/standards.texi: 837 Standardize on "GNU Fortran" as the official name of the Fortran 838 compiler. 839 8402006-10-16 Mike Stump <mrs@apple.com> 841 842 * doc/invoke.texi (Darwin Options): Document -mkernel. 843 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add 844 -mkernel support. 845 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add 846 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout. 847 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given. 848 (OS_MISSING_ALTIVEC): Add. 849 * config/i386/i386.c (override_options): Add 850 SUBSUBTARGET_OVERRIDE_OPTIONS callout. 851 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when 852 -mkernel, -static or -mdynamic-no-pic is given. 853 (C_COMMON_OVERRIDE_OPTIONS): Add. 854 * config/darwin.opt (fapple-kext): Add. 855 (mkernel): Add. 856 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add 857 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and 858 -mkernel support. 859 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add. 860 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add. 861 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here... 862 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility. 863 (TARGET_CXX_CDTOR_RETURNS_THIS): Add. 864 (flag_mkernel): Add. 865 (flag_apple_kext): Add. 866 (TARGET_KEXTABI): Add. 867 * config/darwin.c (darwin_handle_kext_attribute): Add. 868 (DARWIN_VTABLE_P): Add. 869 (darwin_binds_local_p): Add partial support for rebinding vtables 870 in kexts. 871 (darwin_kextabi_p): Add. 872 (darwin_override_options): Add. 873 * config/darwin-protos.h (darwin_handle_kext_attribute): Add. 874 (darwin_kextabi_p): Add. 875 (darwin_override_options): Add. 876 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for 877 __DYNAMIC__ and __STATIC__ here. 878 8792006-10-16 Brooks Moses <bmoses@stanford.edu> 880 881 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi: 882 Added mention of "make pdf" target, and Texinfo requirements for 883 same. 884 8852006-10-16 DJ Delorie <dj@redhat.com> 886 887 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset 888 into the GOT in case we need a subreg of the address. 889 8902006-10-16 Richard Guenther <rguenther@suse.de> 891 892 PR target/25519 893 * doc/extend.texi (X86 Built-in Functions): Fix typos in 894 SSE builtin documentation. Document SSE2 builtins. 895 8962006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 897 898 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined 899 symbol in the output file for non-shared links when -nostdlib or 900 -nodefaultlibs isn't specified. 901 902 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to 903 posix thread support. 904 9052006-10-15 Jan Hubicka <jh@suse.cz> 906 907 PR middle-end/29241 908 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions 909 declared always_inline even when not inlining. 910 9112006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr> 912 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 913 Andrew Pinski <pinskia@gmail.com> 914 915 PR middle-end/29111 916 * builtins.c (get_pointer_alignment): Return 0 if TER is not run. 917 9182006-10-15 Jan Hubicka <jh@suse.cz> 919 Richard Guenther <rguenther@suse.de> 920 921 PR middle-end/29299 922 * cgraphunit.c (cgraph_finalize_compilation_unit): Call 923 process_function_and_variable_attributes on all variables, including 924 those discovered during cgraph construction phase. 925 9262006-10-15 Bernhard Fischer <aldot@gcc.gnu.org> 927 928 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace 929 9302006-10-14 Uros Bizjak <uros@kss-loka.si> 931 932 * config/i386/athlon.md (athlon_fist): Add fisttp. 933 9342006-10-13 David Edelsohn <edelsohn@gnu.org> 935 Ian Lance Taylor <ian@airs.com> 936 937 PR middle-end/29250 938 * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR, 939 CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when 940 recursing. 941 9422006-10-14 Kazu Hirata <kazu@codesourcery.com> 943 944 * config/score/score.c, config/score/score.h: Fix comment 945 typos. 946 9472006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 948 949 PR bootstrap/29402 950 * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of 951 shell pipeline. 952 9532006-10-13 Eric Christopher <echristo@apple.com> 954 955 * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. 956 9572006-10-13 Carlos O'Donell <carlos@codesourcery.com> 958 959 Revert this change: 960 2006-10-13 Carlos O'Donell <carlos@codesourcery.com> 961 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest 962 alignment supported by 32-bit ELF. 963 9642006-10-13 Eric Christopher <echristo@apple.com> 965 966 * config/darwin.c (darwin_emit_unwind_label): Strip 967 name encoding. Use DECL_ASSEMBLER_NAME_SET_P. 968 9692006-10-13 Richard Guenther <rguenther@suse.de> 970 971 PR tree-optimization/29446 972 * tree-vrp.c (fix_equivalence_set): Remove. 973 (extract_range_from_assert): Do not call fix_equivalence_set. 974 (debug_value_range): Print a newline. 975 (compare_name_with_value): For equivalence sets with 976 inconsistent value ranges conservatively bail out. 977 (compare_names): Likewise. 978 9792006-10-13 David Edelsohn <edelsohn@gnu.org> 980 981 * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP 982 and MPFR for gfortran. 983 9842006-10-13 Carlos O'Donell <carlos@codesourcery.com> 985 986 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest 987 alignment supported by 32-bit ELF. 988 9892006-10-13 Paolo Bonzini <bonzini@gnu.org> 990 991 PR c/29092 992 993 * c-typeck.c (digest_init): Always allow initializing vectors 994 that have static storage duration with compound literals. 995 * tree.c (build_type_attribute_qual_variant): New, based on 996 build_type_attribute_variant. 997 (build_type_attribute_variant): Rewrite using the former. 998 (make_vector_type): Use build_type_attribute_qual_variant to build 999 type variants. Use type_hash_canon on the others. 1000 10012006-10-13 Daniel Berlin <dberlin@dberlin.org> 1002 Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com> 1003 1004 * tree-flow-inline.h (zero_ssa_operands): Fix comment. 1005 10062006-10-12 Jan Hubicka <jh@suse.cz> 1007 1008 PR c/28419 1009 * c-decl.c (c_make_fname_decl): Do not segfault in case where 1010 current_function_decl is set but current_function_scope is not. 1011 10122006-10-12 Jie Zhang <jie.zhang@analog.com> 1013 1014 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of 1015 emit_insn to emit eh_return_internal instruction. 1016 (eh_return_internal): Explicitly set pc. 1017 10182006-10-11 Richard Guenther <rguenther@suse.de> 1019 1020 PR tree-optimization/28230 1021 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling 1022 to the correct place. 1023 10242006-10-11 Richard Guenther <rguenther@suse.de> 1025 1026 PR inline-asm/29119 1027 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue 1028 addressable. 1029 10302006-10-10 Brooks Moses <bmoses@stanford.edu> 1031 1032 * configure.ac: Added pdf to "Make-hooks" 1033 * Makefile.in: Added TEXI2PDF definition, and various pdf-file 1034 targets and *.pdf file patterns in cleanup targets. 1035 * configure: Regenerated. 1036 10372006-10-10 Anatoly Sokolov <aesok@post.ru> 1038 1039 * config/avr/predicates.md: New file. 1040 * config/avr/avr.md: Include it. 1041 (REG_SP): New constant. 1042 (peepholes): Use predicates. 1043 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch, 1044 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch, 1045 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto. 1046 10472006-10-10 Adam Nemet <anemet@caviumnetworks.com> 1048 1049 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to 1050 avoid alias set 0. 1051 10522006-10-10 Jakub Jelinek <jakub@redhat.com> 1053 1054 PR middle-end/29272 1055 * builtins.c (var_decl_component_p): New function. 1056 (fold_builtin_memset, fold_builtin_memory_op): Restrict 1057 single entry optimization to variables and components thereof. 1058 10592006-10-10 Richard Guenther <rguenther@suse.de> 1060 1061 PR rtl-optimization/29323 1062 * except.c (set_nothrow_function_flags): For functions 1063 that do not bind local bail out early. 1064 10652006-10-10 Ben Elliston <bje@au.ibm.com> 1066 1067 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the 1068 -mdlmzb option. 1069 10702006-10-09 Richard Henderson <rth@redhat.com> 1071 1072 Revert emutls patch. 1073 10742006-10-09 Richard Guenther <rguenther@suse.de> 1075 1076 PR middle-end/29254 1077 * cgraphunit.c (verify_cgraph_node): Bail out on earlier 1078 errors. 1079 10802006-10-09 Steve Ellcey <sje@cup.hp.com> 1081 1082 PR target/27880 1083 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo. 1084 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo. 1085 * configure: Regenerate. 1086 * config.in: Regenerate. 1087 10882006-10-09 Aldy Hernandez <aldyh@redhat.com> 1089 1090 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. 1091 10922006-10-08 Richard Sandiford <richard@codesourcery.com> 1093 1094 * config/mips/mips.c (mips_legitimize_tls_address): Implement 1095 all TLS models in the same way as local exec if !TARGET_ABICALLS. 1096 Remove stray newline. 1097 10982006-10-08 Richard Sandiford <richard@codesourcery.com> 1099 1100 * config/mips/mips.c (mips_classify_symbol): Do not return 1101 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK. 1102 (mips_in_small_data_p): Tweak comments. 1103 11042006-10-08 Richard Sandiford <richard@codesourcery.com> 1105 1106 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define. 1107 11082006-10-07 Kazu Hirata <kazu@codesourcery.com> 1109 1110 * gimplify.c, sched-int.h: Fix comment typos. 1111 1112 * sched-int.h: Fix comment typos. 1113 11142006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 1115 1116 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P): 1117 New macros. 1118 * sched-ebb.c (begin_schedule_ready): Use them. 1119 * haifa-sched.c (schedule_insn, move_insn, try_ready, 1120 add_to_speculative_block, create_check_block_twin, speculate_insn, 1121 fix_jump_move, move_block_after_check): Ditto. 1122 * sched-rgn.c (new_ready): Ditto. 1123 11242006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 1125 1126 PR rtl-optimization/29128 1127 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro. 1128 * sched-ebb.c (advance_target_bb): Use it to fix condition to 1129 allow interblock movement of speculation checks. 1130 11312006-10-06 Zdenek Dvorak <dvorakz@suse.cz> 1132 1133 PR middle-end/29256 1134 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers 1135 casted to integer type. 1136 (get_address_cost): Decrease cost of [symbol + index] addressing modes 1137 if they are significantly more expensive than [reg + index] ones. 1138 11392006-10-06 Jakub Jelinek <jakub@redhat.com> 1140 1141 PR tree-optimization/29330 1142 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro. 1143 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer 1144 on newly allocated ddrs. 1145 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer 1146 to VEC (loop_p, heap) pointer. 1147 (compute_data_dependences_for_loop): Adjust caller. 1148 (free_dependence_relations): Free DDR_LOOP_NEST. 1149 1150 * tree-loop-linear.c (linear_transform_loops): Don't forget to 1151 free DEPENDENCE_RELATIONS and DATAREFS. 1152 1153 PR target/28924 1154 * builtins.c (expand_builtin_sync_operation, 1155 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set): 1156 Use convert_to_mode to handle promoted arguments. 1157 11582006-10-06 J"orn Rennecke <joern.rennecke@st.com> 1159 1160 * print-tree.c (print_node_brief, print_node): Print sign of Inf. 1161 11622006-10-06 J"orn Rennecke <joern.rennecke@st.com> 1163 1164 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define. 1165 11662006-10-05 Uros Bizjak <uros@kss-loka.si> 1167 1168 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>", 1169 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"): 1170 Use <modeconstraint> instead of "r" as operand 1 constraint. 1171 11722006-10-06 Olivier Hainque <hainque@adacore.com> 1173 1174 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]: 1175 Don't recurse on the pointed-to type. 1176 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or 1177 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to 1178 types with components of variable size. 1179 11802006-10-06 Danny Smith <dannysmith@users.sourceforge.net> 1181 1182 config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp. 1183 11842006-10-06 Jakub Jelinek <jakub@redhat.com> 1185 1186 PR tree-optimization/29290 1187 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has 1188 multiple exits. 1189 1190 PR target/29198 1191 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols. 1192 * config/i386/predicates.md (local_symbolic_operand): Likewise. 1193 1194 PR c/29091 1195 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than 1196 the number of vector elements fill the rest with zeros. 1197 11982006-10-05 Richard Sandiford <richard@codesourcery.com> 1199 1200 * config/mips/mips.c (mips_pass_by_reference): Do not return false 1201 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE 1202 instead. 1203 12042006-10-05 Bernd Schmidt <bernd.schmidt@analog.com> 1205 1206 * config/bfin/bfin.md (subsi3): Lose expander, change previously 1207 unnamed pattern into subsi3. Use correct constraints/predicates. 1208 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7". 1209 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New. 1210 12112006-10-05 Ira Rosen <irar@il.ibm.com> 1212 1213 * doc/loop.texi: Add data references analysis description. 1214 12152006-10-04 Brooks Moses <bmoses@stanford.edu> 1216 1217 * doc/gcov.texi: Add formatting to "Invoking gcov" section head. 1218 12192006-10-04 Richard Henderson <rth@redhat.com> 1220 Jakub Jelinek <jakub@redhat.com> 1221 1222 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c. 1223 * builtin-types.def (BT_WORD): Make unsigned. 1224 (BT_FN_VOID_PTR_WORD_WORD_PTR): New. 1225 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New. 1226 (BUILT_IN_EMUTLS_REGISTER_COMMON): New. 1227 * c-decl.c (grokdeclarator): Don't error if !have_tls. 1228 * c-parser.c (c_parser_omp_threadprivate): Likewise. 1229 * cgraph.c (decide_is_variable_needed): Look at force_output. 1230 Recurse for emulated tls. 1231 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove 1232 checks redundant with decide_is_variable_needed. 1233 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls. 1234 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for 1235 emulated tls. 1236 * expr.c (emutls_var_address): New. 1237 (expand_expr_real_1): Expand emulated tls. 1238 (expand_expr_addr_expr_1): Likewise. 1239 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common. 1240 * output.h (emutls_finish): Declare. 1241 * toplev.c (compile_file): Call it. 1242 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the 1243 address before wrapping in CONST. 1244 * varasm.c (emutls_htab, emutls_object_type): New. 1245 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New. 1246 (get_emutls_object_name, get_emutls_object_type): New. 1247 (get_emutls_init_templ_addr, emutls_decl): New. 1248 (emutls_common_1, emutls_finish): New. 1249 (assemble_variable): When emulating tls, swap decls; generate 1250 constructor for the emutls objects. 1251 (do_assemble_alias): When emulating tls, swap decl and target name. 1252 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT 1253 for emulated tls. 1254 * emutls.c: New file. 1255 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit 1256 tls_object for real tls. 1257 12582006-10-04 Zack Weinberg <zackw@panix.com> 1259 1260 Fix bug in constraint-check generator, reported by Rask Ingemann 1261 Lambertsen: 1262 * genpreds.c (add_constraint): Don't remove anything from the 1263 expression here. 1264 (write_tm_constrs_h): Detect whether "op" argument is used, and 1265 mark it ARG_UNUSED if it isn't. 1266 (write_insn_const_int_ok_for_constraint): Skip the part of the 1267 expression that would test whether "op" (which is not available 1268 here) is a CONST_INT. 1269 12702006-10-04 Ryan Mansfield <rmansfield@qnx.com> 1271 1272 PR c++/28448 1273 * doc/invoke.texi (fdiagnostics-show-option): Fix typos. 1274 12752006-10-03 Geoffrey Keating <geoffk@apple.com> 1276 1277 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for 1278 current Leopard versions. 1279 * config/rs6000/darwin-libgcc.10.5.ver: Likewise. 1280 12812006-10-03 Kazu Hirata <kazu@codesourcery.com> 1282 1283 * doc/install.texi: Fix typos. 1284 12852006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr> 1286 1287 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX. 1288 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX. 1289 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define. 1290 12912006-10-02 Jack Howarth <howarth@bromo.med.uc.edu> 1292 1293 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first 1294 arg to be struct mach_header_64* instead. 1295 12962006-10-02 Jakub Jelinek <jakub@redhat.com> 1297 1298 PR c/29154 1299 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post 1300 side effects after the outer expression's post side effects. 1301 13022006-10-01 Sandra Loosemore <sandra@codesourcery.com> 1303 1304 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix 1305 comments to reflect actual behavior and relationship between 1306 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN. 1307 1308 * doc/c-tree.texi (Working with declarations): Fix documentation 1309 of FIELD_DECL likewise. 1310 13112006-10-01 Ryan Mansfield <rmansfield@qnx.com> 1312 1313 PR c/20533 1314 * doc/extend.texi: Add used variable attribute description. 1315 13162006-09-30 Joseph S. Myers <joseph@codesourcery.com> 1317 1318 PR c/24010 1319 * c.opt (Woverride-init): New. 1320 * c-opts.c (c_common_post_options): Default warn_override_init to 1321 extra_warnings. 1322 * c-typeck.c (add_pending_init, output_init_element): Warn for 1323 overriding initializers without side effects. 1324 * doc/invoke.texi (-Woverride-init): Document. 1325 (-Wextra): Update. 1326 13272006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr> 1328 1329 PR rtl-optimization/28096 1330 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an 1331 assignment has already been used as a destination earlier in the block. 1332 13332006-09-29 Eric Botcazou <ebotcazou@adacore.com> 1334 1335 * builtins.c (expand_builtin_setjmp): Delete. 1336 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable. 1337 <BUILT_IN_SETJMP_SETUP>: New case. 1338 <BUILT_IN_SETJMP_DISPATCHER>: Likewise. 1339 <BUILT_IN_SETJMP_RECEIVER>: Likewise. 1340 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub. 1341 (BUILT_IN_SETJMP_DISPATCHER): Likewise. 1342 (BUILT_IN_SETJMP_RECEIVER): Likewise. 1343 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp. 1344 (lower_function_body): Initialize it to false. If it is set to true 1345 at the end of the processing, emit the setjmp dispatcher. 1346 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee 1347 is __builtin_setjmp and set calls_builtin_setjmp to true as well. 1348 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR 1349 on the rhs of the assignment. 1350 (lower_builtin_setjmp): New function. 1351 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP, 1352 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes. 1353 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate 1354 to detect calls that can go to non-local labels. Use specific 1355 helper to create the abnormal edges associated with them. 1356 <MODIFY_EXPR>: Likewise. 1357 (make_abnormal_goto_edges): New function extracted from... 1358 (make_goto_expr_edges): ...here. Call it for computed gotos. 1359 (simple_goto_p): Minor tweak. 1360 (tree_can_make_abnormal_goto): New predicate. 1361 (tree_redirect_edge_and_branch): Return zero on all abnormal edges. 1362 (tree_purge_dead_abnormal_call_edges): New function. 1363 * tree-flow.h (tree_can_make_abnormal_goto): Declare. 1364 (tree_purge_dead_abnormal_call_edges): Likewise. 1365 (make_abnormal_goto_edges): Likewise. 1366 * tree-inline.c (expand_call_inline): Simplify statement frobbing. 1367 Purge all dead abnormal edges if the call was in the last statement. 1368 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate. 1369 (execute_fixup_cfg): If there are non-local labels in the function, 1370 scan the basic blocks and split them at calls that can go to non-local 1371 labels or add missing abnormal call edges. Write down the CFG in the 1372 dump file. 1373 (pass_fixup_cfg): Remove TODO_dump_func flag. 1374 * unwind-sjlj.c: Poison setjmp. 1375 * doc/install.texi (enable-sjlj-exceptions): Use more general wording. 1376 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise. 1377 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo. 1378 (DONT_USE_BUILTIN_SETJMP): Document it. 1379 13802006-09-28 Geoffrey Keating <geoffk@apple.com> 1381 1382 PR target/28617 1383 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define 1384 to 1 when __ppc64__ is defined. 1385 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and 1386 darwin-64.c. 1387 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined. 1388 13892006-09-28 Steve Ellcey <sje@cup.hp.com> 1390 1391 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c. 1392 * config/ia64/unwind-hpux.c: Delete. 1393 13942006-09-28 Eric Botcazou <ebotcazou@adacore.com> 1395 1396 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr 1397 on the element before gimplifying it, instead of punting if it is of 1398 variable size. 1399 14002006-09-28 Zdenek Dvorak <dvorakz@suse.cz> 1401 1402 * doc/loop.texi: New file. 1403 * doc/gccint.texi: Reference loop.texi. 1404 * Makefile.in (loop.texi): Add. 1405 14062006-09-27 Geoffrey Keating <geoffk@apple.com> 1407 1408 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not 1409 __sysctl. 1410 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove. 1411 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove. 1412 14132006-09-28 Kaz Kojima <kkojima@gcc.gnu.org> 1414 1415 * config/sh/sh.md (divsi_inv_m0): Remove unused variable. 1416 14172006-09-27 Steven G. Kargl <kargl@gcc.gnu.org> 1418 1419 * doc/install.texi: Document required versions of GMP and MPFR. 1420 14212006-09-27 Paul Brook <paul@codesourcery.com> 1422 1423 PR target/29230 1424 * config/arm/arm.md (arith_adjacentmem): Handle large offsets. 1425 14262006-09-27 Richard Sandiford <richard@codesourcery.com> 1427 1428 * reload1.c (alter_reg): Require the alignment of the stack slot to 1429 be at least reg_max_ref_width bytes. 1430 (scan_paradoxical_subregs): Record the largest width in 1431 reg_max_ref_width. 1432 14332006-09-26 Jakub Jelinek <jakub@redhat.com> 1434 1435 PR middle-end/25261 1436 PR middle-end/28790 1437 * tree-nested.c (struct nesting_info): Added static_chain_added. 1438 (convert_call_expr): Set static_chain_added when adding static 1439 chain. Handle OMP_PARALLEL and OMP_SECTION. 1440 14412006-09-25 Matthias Klose <doko@debian.org> 1442 1443 * doc/invoke.texi: Add missing full stop. 1444 14452006-09-25 Richard Henderson <rth@redhat.com> 1446 1447 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called 1448 before cgraph_function_flags_ready. 1449 14502006-09-24 Zdenek Dvorak <dvorakz@suse.cz> 1451 Adam Nemet <anemet@caviumnetworks.com> 1452 1453 * tree-ssa-loop-ivopts.c (aff_combination_convert, 1454 determine_common_wider_type): New functions. 1455 (get_computation_aff): Use them to simplify arithmetic between 1456 UBASE and CBASE if they are shortened from the same type. 1457 14582006-09-24 Kazu Hirata <kazu@codesourcery.com> 1459 1460 PR target/28911 1461 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use 1462 -2147483647 - 1 instead of 0x80000000. 1463 14642006-09-23 Revital1 Eres <ERES@il.ibm.com> 1465 1466 * flags.h (HONOR_NANS): Fix typo in comment. 1467 14682006-09-23 Uros Bizjak <uros@kss-loka.si> 1469 1470 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype. 1471 14722006-09-23 Jakub Jelinek <jakub@redhat.com> 1473 1474 PR c/28706 1475 PR c/28712 1476 * tree.c (merge_attributes, attribute_list_contained): If both 1477 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of 1478 simple_cst_equal. 1479 * c-typeck.c (comptypes_internal): Don't consider aggregates 1480 in different TUs as compatible if there one set of attributes is 1481 not a subset of the other type's attributes. 1482 (composite_type): Try harder not to create a new aggregate type. 1483 14842006-09-22 Geoffrey Keating <geoffk@apple.com> 1485 1486 * config/i386/driver-i386.c: Always define host_detect_local_cpu. 1487 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386 1488 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT. 1489 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather 1490 than replicating condition above. 1491 * config.host (i[34567]86-*-*): Always use driver-i386.o. 1492 1493 * config/darwin.h (LINK_SYSROOT_SPEC): New. 1494 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to 1495 the linker by default. 1496 14972006-09-22 Mike Stump <mrs@apple.com> 1498 1499 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with 1500 code. 1501 15022006-09-22 Richard Guenther <rguenther@suse.de> 1503 1504 PR middle-end/28964 1505 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make 1506 sort of stack variables stable. 1507 15082006-09-22 Peter Bergner <bergner@vnet.ibm.com> 1509 1510 PR middle-end/28690 1511 * explow.c (force_reg): Set REG_POINTER flag according to 1512 MEM_POINTER flag. 1513 15142006-09-22 Zdenek Dvorak <dvorakz@suse.cz> 1515 1516 PR tree-optimization/28888 1517 * tree-if-conv.c (combine_blocks): Rewritten. 1518 * tree-cfg.c (tree_verify_flow_info): Check that edges with 1519 EDGE_TRUE/FALSE_VALUE follow COND_EXPR. 1520 15212006-09-22 Jakub Jelinek <jakub@redhat.com> 1522 1523 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if 1524 needed. 1525 15262006-09-21 Richard Sandiford <richard@codesourcery.com> 1527 1528 * varasm.c (copy_constant): Fix reversed gcc_assert check. 1529 15302006-09-21 Janis Johnson <janis187@us.ibm.com> 1531 1532 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins. 1533 15342006-09-21 Roger Sayle <roger@eyesopen.com> 1535 1536 PR debug/29132 1537 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label, 1538 dw_fde_current_label, to be the start of the function, i.e. the same 1539 value as dw_fde_begin. 1540 15412006-09-20 Richard Sandiford <richard@codesourcery.com> 1542 1543 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete. 1544 * config/mips/mips.md (UNSPEC_ABS_PS): New constant. 1545 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2) 1546 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1. 1547 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS. 1548 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise. 1549 (abs<mode>2, neg<mode>2): Likewise. 1550 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand. 1551 (*mips_abs_ps): New define_insn. 1552 15532006-09-20 Josh Conner <jconner@apple.com> 1554 1555 PR middle-end/25505 1556 * calls.c (expand_call): Allow reuse of structure return stack 1557 temp. 1558 15592006-09-20 Paul Brook <paul@codesourcery.com> 1560 1561 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for 1562 positive offsets. 1563 15642006-09-20 Janis Johnson <janis187@us.ibm.com> 1565 1566 * doc/extend.texi (Decimal Float): Update for latest draft TR, 1567 clean up terminology. 1568 15692006-09-20 Steve Ellcey <sje@cup.hp.com> 1570 1571 PR target/28574 1572 * ifcvt.c (dead_or_predicable): Don't predicate then blocks 1573 with tablejumps in them. 1574 15752006-09-20 Jakub Jelinek <jakub@redhat.com> 1576 1577 PR middle-end/28046 1578 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough, 1579 wrap it into TARGET_EXPR. 1580 15812006-09-20 Eric Christopher <echristo@apple.com> 1582 1583 * config/i386/i386.c (x86_fisttp): Remove. 1584 * config/i386/i386.h (x86_fisttp): Ditto. 1585 (TARGET_FISTTP): Ditto. 1586 15872006-09-19 Eric Christopher <echristo@apple.com> 1588 1589 * doc/tm.texi (OBJC_JBLEN): Describe. 1590 * config/i386/darwin.h (OBJC_JBLEN): Define. 1591 * config/rs6000/darwin.h: Ditto. 1592 15932006-09-19 Steven Bosscher <steven@gcc.gnu.org> 1594 1595 PR rtl-optimization/21299 1596 * reload1.c (reload): Purge invalid ASMs in the final pass. 1597 15982006-09-19 Steve Ellcey <sje@cup.hp.com> 1599 1600 PR 28490 1601 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function 1602 pointers as legitimate constants. 1603 16042006-09-19 Paul Brook <paul@codesourcery.com> 1605 1606 PR target/28516 1607 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const. 1608 16092006-09-17 Zdenek Dvorak <dvorakz@suse.cz> 1610 1611 PR tree-optimization/28887 1612 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable 1613 component parts from the reference. 1614 (gather_memory_references_ref): Record the reference without the 1615 nonaddressable component parts. 1616 16172006-09-17 Steven Bosscher <steven@gcc.gnu.org> 1618 1619 PR c/25993 1620 * c-opts.c (c_common_handle_option): Ignore the -std options 1621 if the input language is assembly. 1622 16232006-09-17 Ira Rosen <irar@il.ibm.com> 1624 1625 PR tree-opt/21591 1626 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory 1627 tag first. 1628 (ptr_ptr_may_alias_p): Likewise. 1629 (record_record_differ_p): New function. 1630 (base_object_differ_p): Call record_record_differ_p. 1631 16322006-09-16 Andrew Pinski <pinskia@physics.uc.edu> 1633 1634 PR tree-opt/29059 1635 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right 1636 away for the expr argument. 1637 16382006-09-16 Steven Bosscher <steven@gcc.gnu.org> 1639 1640 PR tree-opt/27742 1641 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location 1642 before using it for dumping after vectorizing loops. 1643 16442006-09-16 Andrew Pinski <pinskia@physics.uc.edu> 1645 Jack Howarth <howarth@bromo.med.uc.edu> 1646 1647 PR target/29030 1648 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse) 1649 skip on error_mark_node. 1650 (rs6000_darwin64_record_arg_recurse): Likewise. 1651 16522006-09-16 Steven Bosscher <steven@gcc.gnu.org> 1653 1654 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove. 1655 * doc/rtl.texi: Remove related documentation. 1656 16572006-09-16 Bernd Schmidt <bernd.schmidt@analog.com> 1658 1659 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging 1660 printf. 1661 16622006-09-15 Jim Wilson <wilson@specifix.com> 1663 1664 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST): 1665 Handle symbol offsets same as they are handled in ia64_expand_move 1666 and move_operand. 1667 16682006-09-16 Andreas Tobler <a.tobler@schweiz.org> 1669 1670 * loop-doloop.c (doloop_optimize): Change type of max_cost to int. 1671 Add forgotten parameter to the fprintf call. 1672 16732006-09-15 Steve Ellcey <sje@cup.hp.com> 1674 1675 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define. 1676 16772006-09-15 Uros Bizjak <uros@kss-loka.si> 1678 1679 * doc/contrib.texi: Add my entry. 1680 16812006-09-15 Nick Clifton <nickc@redhat.com> 1682 1683 * doc/md.texi (Processor pipeline description): Fix typo in 1684 example of how to use the absence_set directive and reword the 1685 description to make it slightly easier to read. 1686 16872006-09-15 Bernd Schmidt <bernd.schmidt@analog.com> 1688 1689 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New. 1690 * loop-doloop.c (doloop_optimize): Use it to limit costs of 1691 expanding the number of iterations. 1692 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD. 1693 1694 * cfgrtl.c (emit_insn_at_entry): New function. 1695 * rtl.h (emit_insn_at_entry): Declare it. 1696 * integrate.c (emit_initial_value_sets): Use it. 1697 1698 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort. 1699 1700 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and 1701 bad. 1702 (struct loop_work and related VEC declarations): Delete. 1703 (bfin_dump_loops): Print out new member bad. 1704 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse. 1705 (bfin_scan_loop): Don't recurse. 1706 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad 1707 loops. No longer need to update outer loops if the current one is 1708 found bad. Move some validitiy checks to bfin_discover_loop. 1709 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops, 1710 but changed not to check for nesting. Also changed to use the new bad 1711 flag. 1712 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a 1713 time. Use bitmap based test to discover loop nesting. 1714 17152006-09-15 Kazu Hirata <kazu@codesourcery.com> 1716 1717 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in 1718 one line. 1719 17202006-09-14 Richard Guenther <rguenther@suse.de> 1721 Kazu Hirata <kazu@codesourcery.com> 1722 1723 PR middle-end/28884. 1724 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document. 1725 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate. 1726 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE 1727 with TARGET_FUNCTION_VALUE. 1728 17292006-09-14 Anatoly Sokolov <aesok@post.ru> 1730 1731 PR target/26504 1732 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define. 1733 17342006-09-13 Aldy Hernandez <aldyh@redhat.com> 1735 1736 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand 1737 of a RETURN_EXPR 1738 17392006-09-13 Andrew Pinski <pinskia@physics.uc.edu> 1740 1741 PR debug/28980 1742 * dwarf2out.c (loc_descriptor_from_tree_1): Handle 1743 FUNCTION_DECL. 1744 17452006-09-13 Andreas Krebbel <krebbel1@de.ibm.com> 1746 1747 * basic_block.h (bb_has_eh_pred): Fix comment. 1748 17492006-09-13 Andreas Krebbel <krebbel1@de.ibm.com> 1750 1751 * flow.c (calculate_global_regs_live): Invalidate eh registers 1752 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge. 1753 (propagate_block): Handle eh registers as if they were set at basic 1754 block start. 1755 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh 1756 registers. 1757 * global.c (global_conflicts): Make eh registers to conflict with 1758 pseudos live at basic block begin. 1759 * basic_block.h (bb_has_eh_pred): New function. 1760 17612006-09-13 Richard Sandiford <richard@codesourcery.com> 1762 1763 PR rtl-optimization/28982 1764 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the 1765 index of a PRE_MODIFY or POST_MODIFY address. 1766 * reload1.c (inc_for_reload): Use find_replacement on the original 1767 base and index registers. 1768 17692006-09-12 H.J. Lu <hongjiu.lu@intel.com> 1770 1771 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception 1772 for -Os. Update __m128 alignment requirement. 1773 17742006-09-13 Jan Hubicka <jh@suse.cz> 1775 1776 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic. 1777 17782006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr> 1779 1780 PR rtl-optimization/28243 1781 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past 1782 the insn to which the note was originally attached. 1783 17842006-09-12 Andrew Pinski <pinskia@physics.uc.edu> 1785 Roger Sayle <roger@eyesopen.com> 1786 1787 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration 1788 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure 1789 on platforms that don't use dwarf for debug info. 1790 17912006-09-12 Jason Merrill <jason@redhat.com> 1792 1793 PR middle-end/28493 1794 * builtins.c (expand_builtin_setjmp_receiver): Clobber 1795 hard_frame_pointer_rtx after using it to update the frame pointer. 1796 17972006-09-12 Roger Sayle <roger@eyesopen.com> 1798 1799 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef. 1800 (TARGET_ASM_CLOSE_PAREN): Likewise. 1801 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define. 1802 (TARGET_ASM_CLOSE_PAREN): Likewise. 1803 18042006-09-12 Roger Sayle <roger@eyesopen.com> 1805 1806 PR target/22223 1807 * config/alpha/alpha.c (alpha_start_function): Don't emit stack 1808 frame information for frames larger than 512 Kbytes on Tru64 when 1809 using the native assembler. 1810 18112006-09-12 Roger Sayle <roger@eyesopen.com> 1812 1813 PR middle-end/4520 1814 PR bootstrap/28784 1815 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels 1816 and symbols. Instead use the implementation from cse.c's hash_rtx. 1817 18182006-09-12 Jan Hubicka <jh@suse.cz> 1819 1820 PR rtl-optimization/28071 1821 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast. 1822 (vect_transform_loop): Likewise. 1823 * tree-vectorizer.c (new_loop_vec_info): Likewise. 1824 (new_loop_vec_info): Likewise. 1825 (destroy_loop_vec_info): Likewise. 1826 * tree-dfa.c (create_var_ann): Use GCC_CNEW. 1827 (create_stmt_ann): Likewise. 1828 (create_tree_ann): Rename to ... 1829 (create_tree_common_ann): ... this one; allocate only the common part 1830 of annotations. 1831 * tree-vn.c (set_value_handle): Use get_tree_common_ann. 1832 (get_value_handle): Likewise. 1833 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for 1834 get_tree_common_ann. 1835 * tree-vectorizer.h (set_stmt_info): Take stmt annotation. 1836 (vinfo_for_stmt): Use stmt annotations. 1837 * tree-flow.h (tree_ann_common_t): New type. 1838 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New. 1839 (tree_ann, get_tree_ann, create_tree_ann): New. 1840 * tree-flow-inline.h (get_function_ann): Do more type checking. 1841 (stmt_ann): Likewise. 1842 (tree_ann): Rename to ... 1843 (tree_common_ann): ... this one; return ony common_ann 1844 (get_tree_ann): Rename to ... 1845 (tree_common_ann): This one; return only common_ann. 1846 * tree-vect-patterns.c (vect_pattern_recog_1): Update call 1847 of set_stmt_info. 1848 18492006-09-11 Geoffrey Keating <geoffk@apple.com> 1850 1851 * config.gcc (i[34567]86-*-darwin*): Set with_arch and 1852 with_cpu by default. 1853 1854 * dwarf2out.c (dwarf_file_data): New. 1855 (enum dw_val_class): Add dw_val_class_file. 1856 (struct dw_val_struct): Add val_file. 1857 (file_table): Change to a hash table. 1858 (file_table_emitted): Delete. 1859 (file_table_last_lookup_index): Delete. 1860 (emitcount): Delete. 1861 (last_emitted_file): New. 1862 (lookup_filename): Change prototype to return a struct dwarf_file_data. 1863 (init_file_table): Delete. 1864 (maybe_emit_file): Change prototype to take a struct dwarf_file_data. 1865 (AT_addr): Add comment. 1866 (add_AT_file): New. 1867 (AT_file): New. 1868 (get_AT_file): New. 1869 (print_die): Handle dw_val_class_file. 1870 (print_dwarf_line_table): Update for new file table structure. 1871 (attr_checksum): Do checksum a filename. 1872 (same_dw_val_p, same_attr_p): Do compare a filename. 1873 (size_of_die): Handle dw_val_class_file. 1874 (value_format): Likewise. 1875 (output_die): Likewise. Also, call maybe_emit_file here. 1876 (struct file_info): Constify filenames. Make file_idx a pointer 1877 to a struct dwarf_file_data. 1878 (struct dir_info): Constify directory names. Remove 'used' field. 1879 (struct file_name_acquire_data): New. 1880 (file_name_acquire): New. 1881 (output_file_names): Modify to handle new file data structures. 1882 (add_src_coords_attributes): Use add_AT_file. 1883 (add_call_src_coords_attributes): Likewise. 1884 (dwarf2out_imported_module_or_decl): Likewise. 1885 (gen_subprogram_die): Modify for new file data structures. 1886 (gen_variable_die): Likewise. 1887 (file_table_eq): New. 1888 (file_table_hash): New. 1889 (file_table_last_lookup): New. 1890 (lookup_filename): Rewrite to handle new file data structures. 1891 (maybe_emit_file): Rewrite to handle new file data structures. 1892 (dwarf2out_source_line): Always call lookup_filename and 1893 maybe_emit_file. 1894 (dwarf2out_init): Create file_table here. 1895 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here. 1896 (file_table_relative_p): New. 1897 (dwarf2out_finish): Change detection of relative filenames 1898 to work with new file data structures. Move output_line_info call 1899 after debug_info output. 1900 19012006-09-11 H.J. Lu <hongjiu.lu@intel.com> 1902 1903 PR target/13685 1904 PR target/27537 1905 PR target/28621 1906 * config/i386/i386.c (override_options): Always default to 16 1907 byte stack boundary. 1908 19092006-09-11 Alexandre Oliva <aoliva@redhat.com> 1910 1911 PR target/28672 1912 * var-tracking.c (dump_dataflow_set): Start dumping at 1913 register zero. 1914 (clobber_variable_part): Kill only the variable part in 1915 registers holding it, leaving other variables alone. 1916 19172006-09-11 Josh Triplett <josh@freedesktop.org> 1918 1919 * doc/extend.texi (Other Builtins): Actually use the macro 1920 argument in the documentation example for 1921 __builtin_types_compatible_p. 1922 19232006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr> 1924 1925 PR rtl-optimization/28726 1926 * sched-deps.c (sched_analyze_reg): New function extracted from... 1927 (sched_analyze_1): ...here. Call it to analyze references to 1928 registers. Treat again writes to a stack register as writing to the 1929 register. 1930 (sched_analyze_2): ...and here. Call it to analyze references to 1931 registers. Treat again reads of a stack register as reading the 1932 register. 1933 19342006-09-11 Guenter Roeck <guenter@roeck-us.net> 1935 David Edelsohn <edelsohn@gnu.org> 1936 1937 PR target/27287 1938 * config/rs6000/spe.md (frob_df_di): Remove %H. 1939 (frob_di_df): Remove %H. Change evmergelo to mr. 1940 (frob_di_df_2): Remove %H. Change evldd to two loads. 1941 19422006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp> 1943 1944 * doc/cpp.texi: Fix names of charset options. 1945 19462006-09-10 Andrew Pinski <pinskia@physics.uc.edu> 1947 1948 PR target/29009 1949 * config/i386/i386.c (override_options): Use 128-bit 1950 stack boundary always for 64bits. 1951 19522006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr> 1953 1954 PR rtl-optimization/28636 1955 * combine.c (force_to_mode): Test for side-effects before 1956 substituting by zero. 1957 (simplify_shift_const): Likewise for zero or other constants. 1958 19592006-09-10 Steven Bosscher <steven@gcc.gnu.org> 1960 1961 PR middle-end/26983 1962 * builtins.c (expand_builtin_setjmp): Force next_lab to be 1963 preserved. 1964 19652006-09-10 Richard Sandiford <richard@codesourcery.com> 1966 1967 PR target/29006 1968 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare. 1969 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode 1970 returned by mode_for_size, rather than the mode of src itself, 1971 to choose between 32-bit and 64-bit patterns. 1972 (mips_mem_fits_mode_p): New function. 1973 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check 1974 that the size of the source matches the size of the destination. 1975 (mov_<store>l, mov_<store>r): Likewise. 1976 19772006-09-10 Eric Christopher <echristo@apple.com> 1978 1979 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR 1980 for literal16. 1981 19822006-09-09 Eric Christopher <echristo@apple.com> 1983 1984 PR target/28995 1985 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT 1986 for literal16. 1987 19882006-09-09 Roger Sayle <roger@eyesopen.com> 1989 Nicolas Setton <setton@adacore.com> 1990 1991 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc. 1992 19932006-09-10 Andreas Schwab <schwab@suse.de> 1994 1995 * config/m68k/m68k.md (bungt_rev): New pattern. 1996 19972006-09-09 Paolo Bonzini <bonzini@gnu.org> 1998 Dale Johannesen <dalej@apple.com> 1999 2000 PR target/26778 2001 * regclass.c (struct reg_pref): Update documentation. 2002 (regclass): Set prefclass to NO_REGS if memory is the best option. 2003 (record_reg_classes): Cope with a prefclass set to NO_REGS. 2004 20052006-09-08 Eric Christopher <echristo@apple.com> 2006 2007 * config.gcc (i?86-*-darwin): Add 64-bit HWI support. 2008 * config/t-slibgcc-darwin: Support x86_64 multilib. 2009 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): 2010 Return 1 for x86_64-darwin. 2011 * config/i386/t-darwin: Add m64 multilib. 2012 (LIB2_SIDITI_CONV_FUNCS): Use. 2013 (LIB2FUNCS_EXTRA): Ditto. 2014 * config/i386/darwin.h: Support x86_64. 2015 * config/i386/i386.c (override_options): Turn on flag_pic 2016 for x86_64-darwin. Disable flag_omit_pointer. 2017 (get_pc_thunk_name): Assert !TARGET_64BIT. 2018 (legitimate_address_p): Disable machopic addressing for 2019 x86_64. 2020 (legitimize_pic_address): Ditto. 2021 (ix86_expand_move): Ditto. 2022 (ix86_expand_call): Ditto. 2023 (machopic_output_stub): Ditto. 2024 * config/darwin.c (machopic_select_section): Support literal16. 2025 (machopic_select_rtx_section): Ditto. 2026 * config/darwin-sections.def: Ditto. 2027 * config/darwin-64.c: New. 2028 20292006-09-08 Joseph S. Myers <joseph@codesourcery.com> 2030 2031 PR c/28504 2032 * c-tree.h (struct c_arg_info): Add pending_sizes. 2033 * c-parser.c (c_parser_parms_declarator, 2034 c_parser_parms_list_declarator): Initialize pending_sizes. 2035 * c-decl.c (get_parm_info): Initialize pending_sizes. 2036 (get_parm_info): Set pending_sizes. 2037 (grokdeclarator): Call put_pending_sizes for parameters for 2038 function definition only. 2039 20402006-09-07 Jason Merrill <jason@redhat.com> 2041 2042 PR middle-end/27724 2043 * varasm.c (output_constant): Only strip actual no-op conversions. 2044 2045 PR target/13685 2046 * config/i386/i386.c (override_options): Use 128-bit 2047 stack boundary if -msse. 2048 20492006-09-07 Eric Christopher <echristo@apple.com> 2050 2051 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update 2052 comment. 2053 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): 2054 Redefine. 2055 20562006-09-07 Geoffrey Keating <geoffk@apple.com> 2057 2058 * dwarf2out.c: Remove strange characters from comment above 2059 dwarf2out_frame_debug_expr. 2060 20612006-09-07 Eric Christopher <echristo@apple.com> 2062 2063 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here... 2064 * config/darwin.h: ... to here. 2065 20662006-09-07 H.J. Lu <hongjiu.lu@intel.com> 2067 2068 * config/i386/i386.c (x86_partial_flag_reg_stall): New. 2069 2070 * config/i386/i386.h (x86_partial_flag_reg_stall): New. 2071 (TARGET_PARTIAL_FLAG_REG_STALL): New. 2072 2073 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for 2074 TARGET_PARTIAL_FLAG_REG_STALL. 2075 (*ashldi3_cconly_rex64): Likewise. 2076 (*ashlsi3_cmp): Likewise. 2077 (*ashlsi3_cconly): Likewise. 2078 (*ashlsi3_cmp_zext): Likewise. 2079 (*ashlhi3_cmp): Likewise. 2080 (*ashlhi3_cconly): Likewise. 2081 (*ashlqi3_cmp): Likewise. 2082 (*ashlqi3_cconly): Likewise. 2083 (*ashrdi3_cmp_rex64): Likewise. 2084 (*ashrdi3_cconly_rex64): Likewise. 2085 (*ashrsi3_cmp): Likewise. 2086 (*ashrsi3_cconly): Likewise. 2087 (*ashrsi3_cmp_zext): Likewise. 2088 (*ashrhi3_cmp): Likewise. 2089 (*ashrhi3_cconly): Likewise. 2090 (*ashrqi3_cmp): Likewise. 2091 (*ashrqi3_cconly): Likewise. 2092 (*lshrdi3_cmp_rex64): Likewise. 2093 (*lshrdi3_cconly_rex64): Likewise. 2094 (*lshrsi3_cmp): Likewise. 2095 (*lshrsi3_cconly): Likewise. 2096 (*lshrsi3_cmp_zext): Likewise. 2097 (*lshrhi3_cmp): Likewise. 2098 (*lshrhi3_cconly): Likewise. 2099 (*lshrqi2_cmp): Likewise. 2100 (*lshrqi2_cconly): Likewise. 2101 21022006-09-07 Uros Bizjak <uros@kss-loka.si> 2103 2104 PR target/28946 2105 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly", 2106 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64", 2107 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly", 2108 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly", 2109 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly", 2110 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64", 2111 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly", 2112 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly", 2113 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to 2114 implement only CC setting effects of shift instructions. 2115 21162006-09-07 Martin Michlmayr <tbm@cyrius.com> 2117 2118 * doc/contrib.texi: Add myself. 2119 21202006-09-07 Andrew Pinski <pinskia@physics.uc.edu> 2121 2122 PR middle-end/28862 2123 * stor-layout.c (relayout_decl): Don't zero the alignment if it 2124 was set by the user. 2125 21262006-09-07 Paolo Bonzini <bonzini@gnu.org> 2127 2128 PR target/27117 2129 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns. 2130 (divsi_inv_m1): Use them. 2131 (UNSPEC_DIV_INV_TABLE): New constant. 2132 21332006-09-06 James E Wilson <wilson@specifix.com> 2134 2135 PR rtl-opt/27883 2136 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES 2137 then call count_or_remove_death_notes. 2138 21392006-09-06 Jason Merrill <jason@redhat.com> 2140 2141 PR c++/27371 2142 * tree-inline.c (copy_result_decl_to_var): New fn. 2143 (declare_return_variable): Use it. Call declare_inline_vars here. 2144 (expand_call_inline): Not here. 2145 21462006-09-06 Diego Novillo <dnovillo@redhat.com> 2147 2148 * doc/contrib.texi: Update my entry. 2149 21502006-09-06 Nick Clifton <nickc@redhat.com> 2151 2152 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define. 2153 21542006-09-05 Andrew Pinski <pinskia@physics.uc.edu> 2155 2156 PR tree-opt/28937 2157 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int. 2158 (canonicalize_induction_variables): Likewise. 2159 (tree_unroll_loops_completely): Likewise. 2160 (tree_ssa_prefetch_arrays): Likewise. 2161 (remove_empty_loops): Likewise. 2162 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return 2163 TODO_cleanup_cfg instead of directly calling 2164 cleanup_tree_cfg_loop. 2165 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): 2166 Likewise. 2167 (tree_unroll_loops_completely): Likewise. 2168 (remove_empty_loops): Likewise. 2169 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise. 2170 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value 2171 of tree_ssa_unswitch_loops. 2172 (tree_ssa_loop_ivcanon): Use the return value of 2173 canonicalize_induction_variables. 2174 (tree_ssa_empty_loop): Use the return value of 2175 remove_empty_loops. 2176 (tree_complete_unroll): Use the return value of 2177 tree_unroll_loops_completely. 2178 (tree_ssa_loop_prefetch): Use the return value of 2179 tree_ssa_prefetch_arrays. 2180 * passes.c (execute_todo): Before Cleanup CFG, set 2181 updating_used_alone and after cleanup CFG, call 2182 recalculate_used_alone. 2183 21842006-09-05 Andrew Pinski <pinskia@physics.uc.edu> 2185 2186 PR tree-opt/28952 2187 * tree-vect-transform.c (vectorizable_condition): Move the check 2188 for the type after the check for simple condition. 2189 21902006-09-05 J"orn Rennecke <joern.rennecke@st.com> 2191 Kaz Kojima <kkojima@gcc.gnu.org> 2192 2193 PR target/28764 2194 * mode-switching.c (optimize_mode_switching): Make the destination 2195 block of an abnormal edge have no anticipatable mode. Don't 2196 insert mode switching code at the end of the source block of 2197 an abnormal edge. 2198 21992006-09-05 Paolo Bonzini <bonzini@gnu.org> 2200 2201 PR rtl-optimization/26847 2202 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix. 2203 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno. 2204 (simplify_plus_minus): Count n_constants while filling ops. Replace 2205 qsort with insertion sort. Before going through the array to simplify 2206 pairs, sort it. Delay early exit until after the first sort, exiting 2207 only if no swaps occurred. Simplify pairs in reversed order, without 2208 special-casing the first iteration. Pack ops after simplifying pairs. 2209 22102006-09-05 Anatoly Sokolov <aesok@post.ru> 2211 2212 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device. 2213 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 2214 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 2215 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED. 2216 22172006-09-05 Richard Guenther <rguenther@suse.de> 2218 2219 PR tree-optimization/28900 2220 * tree-if-conv.c (find_phi_replacement_condition): Gimplify 2221 compound conditional before creating COND_EXPR condition. 2222 22232006-09-05 Richard Guenther <rguenther@suse.de> 2224 2225 PR tree-optimization/28905 2226 * tree-vrp.c (fix_equivalence_set): Manually implement 2227 !value_ranges_intersect_p to also handle symbolic ranges. 2228 22292006-09-05 Richard Guenther <rguenther@suse.de> 2230 2231 PR middle-end/28935 2232 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition 2233 of a COND_EXPR. 2234 22352006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr> 2236 2237 PR rtl-optimization/27616 2238 * cse.c (table_size): New static variable. 2239 (new_basic_block): Initialize it to 0. 2240 (remove_from_table): Decrement it. 2241 (insert): Increment it. 2242 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem. 2243 (fold_rtx_mem): Enforce a cap on the recursion depth. Call 2244 fold_rtx_mem_1 if under the cap. 2245 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little 2246 the lookup of the equivalent expression and test for equality of the 2247 first operand of the equivalent expression before in turn looking up 2248 an equivalent constant for the second operand. 2249 22502006-09-02 Geoffrey Keating <geoffk@apple.com> 2251 2252 Revert this change: 2253 2006-03-17 Alexandre Oliva <aoliva@redhat.com> 2254 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack 2255 pointer, instead of assuming it is possible to derive the 2256 correct args size from a call insn. 2257 22582006-09-02 Jakub Jelinek <jakub@redhat.com> 2259 2260 PR middle-end/27567 2261 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove. 2262 (fold_builtin_mempcpy): Rename to... 2263 (fold_builtin_memory_op): ... this. Optimize one element copy 2264 into an assignment. 2265 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New 2266 functions. 2267 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR. 2268 (expand_builtin_memcpy, expand_builtin_mempcpy, 2269 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op. 2270 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and 2271 BUILT_IN_BCOPY. Use fold_builtin_memory_op for 2272 BUILT_IN_MEM{CPY,PCPY,MOVE}. 2273 22742006-09-01 DJ Delorie <dj@redhat.com> 2275 2276 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload. 2277 (stzx_16): Likewise. 2278 ("stzx_24_<mode>"): Likewise. 2279 ("stzx_reversed_<mode>"): Likewise, and make mode-specific. 2280 ("cmp<mode>_op"): New. 2281 (cmp<mode>): Change to expander; just save operands. 2282 (b<code>_op): New. 2283 (b<code>): Change to expander, emit compare here. 2284 (s<code>_op): Change to use split and expander. 2285 (s<code>_24_op): Likewise. 2286 (s<code>_<mode>): New. 2287 (s<code>_<mode>_24): New. 2288 (movqicc_<code>_<mode): New. 2289 (movhicc_<code>_<mode>): New. 2290 (s<code>): New. 2291 (s<code>_24): New. 2292 * config/m32c/m32c.c (compare_op0, compare_op1): New. 2293 (m32c_pend_compare): New. 2294 (m32c_unpend_compare): New. 2295 (m32c_expand_scc): New. 2296 (m32c_expand_movcc): Emit the compare also. 2297 * config/m32c/predicates.md (mra_nopp_operand): New. 2298 22992006-09-01 J"orn Rennecke <joern.rennecke@st.com> 2300 Richard Guenther <rguenther@suse.de> 2301 Adam Nemet <anemet@caviumnetworks.com> 2302 2303 PR middle-end/27226 2304 * builtins.c (get_pointer_alignment): Handle more forms 2305 of base addresses that can be used to derive more precise 2306 information about alignment. 2307 23082006-09-01 Jason Merrill <jason@redhat.com> 2309 2310 PR c++/28899 2311 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle 2312 want_value. 2313 2314 * gimplify.c (voidify_wrapper_expr): Handle null type. 2315 23162006-09-01 Josh Conner <jconner@apple.com> 2317 2318 PR c++/25505 2319 * tree-nrv.c (dest_safe_for_nrv_p): New function. 2320 (execute_return_slot_opt): Use it. 2321 23222006-08-31 Josh Conner <jconner@apple.com> 2323 2324 PR c++/25505 2325 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions 2326 returning aggregates. 2327 23282006-08-31 Zdenek Dvorak <dvorakz@suse.cz> 2329 2330 PR tree-optimization/28839 2331 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in 2332 blocks in that phi arguments appear. 2333 23342006-08-31 Roger Sayle <roger@eyesopen.com> 2335 2336 PR other/22313 2337 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is 2338 NULL, otherwise use an advance_loc4 to adjust relative to the 2339 current label. 2340 (output_cfi) <DW_CFA_set_loc>: Update the current label. 2341 (dwarf2out_switch_text_section): Reset the current label to avoid 2342 using advance_loc4 over section boundaries. 2343 23442006-08-31 Andreas Krebbel <krebbel1@de.ibm.com> 2345 2346 PR target/24367 2347 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like 2348 r12 + SYMBOLIC_CONST. 2349 23502006-08-30 Richard Guenther <rguenther@suse.de> 2351 2352 * Makefile.in (see.o): Add $(EXPR_H) dependency. 2353 23542006-08-30 Zdenek Dvorak <dvorakz@suse.cz> 2355 2356 PR rtl-optimization/27735 2357 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop): 2358 Add new argument to keep track of whether an irreducible region 2359 was affected. All callers changed. 2360 (fix_irreducible_loops): Removed. 2361 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP 2362 flags were invalidated. 2363 23642006-08-29 H.J. Lu <hongjiu.lu@intel.com> 2365 2366 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands 2367 instead of SF operands. 2368 (*fop_df_comm_sse): Likewise. 2369 (*fop_df_comm_i387): Likewise. 2370 (*fop_df_1_mixed): Likewise. 2371 (*fop_df_1_sse): Likewise. 2372 23732006-08-29 Andrew Pinski <pinskia@physics.uc.edu> 2374 J"orn Rennecke <joern.rennecke@st.com> 2375 2376 PR tree-optimization/17506 2377 * tree-ssa.c (warn_uninit): If warning about a location outside of 2378 the current function, note where the variable was declared. 2379 23802006-08-28 Zdenek Dvorak <dvorakz@suse.cz> 2381 2382 PR tree-optimization/28411 2383 * double-int.c (double_int_div): Use double_int_divmod. 2384 (double_int_divmod, double_int_sdivmod, double_int_udivmod, 2385 double_int_mod, double_int_smod, double_int_umod): New functions. 2386 * double-int.h (double_int_divmod, double_int_sdivmod, 2387 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod): 2388 Declare. 2389 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result 2390 in double_int. 2391 (get_computation_aff, get_computation_cost_at): Handle double_int 2392 return type of constant_multiple_of. 2393 23942006-08-28 Kazu Hirata <kazu@codesourcery.com> 2395 2396 PR middle-end/26632 2397 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on 2398 an implicit conversion. 2399 24002006-08-28 Prafulla Thakare <prafullat@kpitcummins.com> 2401 2402 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New. 2403 24042006-08-27 Roger Sayle <roger@eyesopen.com> 2405 2406 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute 2407 x87 instructions. 2408 24092006-08-27 Kazu Hirata <kazu@codesourcery.com> 2410 2411 * config/i386/crtfastmath.c: Fix a comment typo. 2412 24132006-08-26 Roger Sayle <roger@eyesopen.com> 2414 2415 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating 2416 temporary visit flags on CASE_LABEL_EXPRs. 2417 * c-common.c (match_case_to_enum): Add function comment. Avoid 2418 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN. 2419 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and 2420 CASE_HIGH_SEEN for enumerated types. If the switch expression is 2421 a constant, only warn if that constant value isn't handled. 2422 24232006-08-26 Joseph S. Myers <joseph@codesourcery.com> 2424 2425 PR c++/24009 2426 * input.h (restore_input_file_stack): Declare. 2427 (INPUT_FILE_STACK_BITS): Define. 2428 * toplev.c (fs_p, input_file_stack_history, 2429 input_file_stack_restored, restore_input_file_stack): New. 2430 (push_srcloc, pop_srcloc): Check for input_file_stack_tick 2431 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack. 2432 (pop_srcloc): Don't free old state of stack. 2433 24342006-08-26 David Edelsohn <edelsohn@gnu.org> 2435 2436 PR target/27544 2437 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec. 2438 (PowerPC Type Attributes): New. 2439 24402006-08-26 Bob Wilson <bob.wilson@acm.org> 2441 2442 * config/xtensa/xtensa.c (function_arg_boundary): New. 2443 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to 2444 STACK_BOUNDARY. 2445 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new 2446 function_arg_boundary function that limits alignment to STACK_BOUNDARY. 2447 24482006-08-26 Jakub Jelinek <jakub@redhat.com> 2449 2450 PR middle-end/28683 2451 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly 2452 3 following insns. 2453 24542006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2455 2456 * flow.c (verify_wide_reg): Use internal_error for consistency failure. 2457 (verify_local_live_at_start): Likewise. 2458 24592006-08-25 Joseph S. Myers <joseph@codesourcery.com> 2460 2461 PR c/27893 2462 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval, 2463 omp_add_variable): Treat sizes as variable whenever not 2464 INTEGER_CST. 2465 24662006-08-26 Richard Guenther <rguenther@suse.de> 2467 2468 PR middle-end/28814 2469 * fold-const.c (fold_binary): Fold temporary to correct 2470 type before constructing new comparison. 2471 24722006-08-25 Fariborz Jahanian <fjahanian@apple.com> 2473 2474 PR c/28418 2475 * c-gimplify.c (gimplify_compound_literal_expr): Don't add 2476 variable again if DECL_SEEN_IN_BIND_EXPR_P. 2477 24782006-08-25 Joseph S. Myers <joseph@codesourcery.com> 2479 2480 PR c/28299 2481 * c-decl.c (start_function): Don't try to process prototype 2482 information from old declaration that isn't a function. 2483 24842006-08-25 Jan Hubicka <jh@suse.cz> 2485 2486 PR target/28621 2487 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment. 2488 24892006-08-25 Alan Modra <amodra@bigpond.net.au> 2490 2491 PR target/27075 2492 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax 2493 for 8 byte objects. 2494 24952006-08-25 J"orn Rennecke <joern.rennecke@st.com> 2496 2497 PR tree-optimization/16876 2498 * c-typeck.c (c_convert_parm_for_inlining): Don't take early 2499 exit if PARM doesn't match VALUE. 2500 25012006-08-25 Bob Wilson <bob.wilson@acm.org> 2502 2503 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a 2504 literal_prefix directive. 2505 (XTENSA_DECLARE_FUNCTION_SIZE): Delete. 2506 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete. 2507 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete. 2508 25092006-08-25 David Edelsohn <edelsohn@gnu.org> 2510 2511 PR target/28753 2512 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1 2513 predicate to general_operand. Add 0->y and I->r alternatives. 2514 25152006-08-25 Kazu Hirata <kazu@codesourcery.com> 2516 2517 * doc/tm.texi: Fix a typo. 2518 * predict.c: Fix comment typos. 2519 25202006-08-25 Nick Clifton <nickc@redhat.com> 2521 2522 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add 2523 assertions of "cpu" and "machine". 2524 25252006-08-24 Andrew Pinski <pinskia@physics.uc.edu> 2526 2527 PR tree-opt/28807 2528 * tree-ssa-operands.c (access_can_touch_variable): Don't say 2529 the access through a base which has an alias set of 0 cannot 2530 touch the variable. 2531 25322006-08-24 Bill Wendling <wendling@apple.com> 2533 2534 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English. 2535 25362006-08-24 Jan Hubicka <jh@suse.cz> 2537 2538 * reload1.c (emit_reload_insns): Fix yet another typo in my patch. 2539 25402006-08-24 Jan Hubicka <jh@suse.cz> 2541 2542 PR debug/26881 2543 * cgraph.c: Fix comments. 2544 (cgraph_varpool_mark_needed_node): Mark only variables not already 2545 output to file. 2546 * cgraphunit.c: Update comments; include gt-cgraphunit.h 2547 (cgraph_varpool_assembled_nodes_queue): New static variable. 2548 (cgraph_varpool_assemble_decl): Record output decls for debug out code. 2549 (cgraph_varpool_output_debug_info): New function. 2550 (cgraph_finalize_compilation_unit, cgraph_optimize): Call it. 2551 * Makefile.in: Add gt-cgraphunit.h 2552 25532006-08-24 Jan Hubicka <jh@suse.cz> 2554 2555 * predict.c (probability_reliable_p): New predicate. 2556 (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise. 2557 (predict_loops): Do not predict loop exit with less than 2% 2558 probability. 2559 * basic-block.h (edge_probability_reliable_p, 2560 br_prob_note_reliable_p): Declare. 2561 * ia64.h (ia64_print_operand): Do not disable on-chip branch 2562 prediction when static predictor is not reliable. 2563 * rs6000.c (output_cbranch): Likewise. 2564 25652006-08-23 Stuart Hastings <stuart@apple.com> 2566 2567 PR 28825 2568 * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate, 2569 ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test. 2570 25712006-08-21 Geoffrey Keating <geoffk@apple.com> 2572 2573 PR debug/28692 2574 * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for 2575 complex values, nor for generic vector values. 2576 25772006-08-22 Richard Guenther <rguenther@suse.de> 2578 2579 PR middle-end/28776 2580 * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt 2581 parameter. Convert arguments to arithmetic expression to the 2582 chrecs type. 2583 (analyze_scalar_evolution_1): Adjust caller. 2584 25852006-08-22 Jan Hubicka <jh@suse.cz> 2586 2587 Patch by Paolo Bonzini 2588 * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by 2589 my previous patch. 2590 25912006-08-22 Daniel Berlin <dberlin@dberlin.org> 2592 2593 PR tree-optimization/28003 2594 * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered 2595 before grouping aliases. 2596 25972006-08-22 Roger Sayle <roger@eyesopen.com> 2598 2599 * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG 2600 if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE. 2601 26022006-08-21 Jason Merrill <jason@redhat.com> 2603 2604 PR c++/27115 2605 * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a 2606 wrapper. Loop to handle nested wrappers. 2607 (gimplify_bind_expr): Remove temp parameter. 2608 (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR 2609 and STATEMENT_LIST on the rhs. 2610 (gimplify_statement_list): Voidify the STATEMENT_LIST. 2611 (gimplify_expr): Pass pre_p to gimplify_statement_list. 2612 (gimplify_target_expr): Remove special BIND_EXPR handling. 2613 26142006-08-21 J"orn Rennecke <joern.rennecke@st.com> 2615 2616 * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with 2617 #if !__SHMEDIA__ . 2618 26192006-08-21 Olivier Hainque <hainque@adacore.com> 2620 2621 * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>: 2622 Arrange for the temporary captures of components overlapping the lhs 2623 to happen before the lhs is possibly cleared. 2624 26252006-08-21 Mark Shinwell <shinwell@codesourcery.com> 2626 2627 * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in 2628 necessary places to pass the correct "number of registers" values 2629 to _Unwind_VRS_Pop. 2630 26312006-08-20 Jan Hubicka <jh@suse.cz> 2632 2633 * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function. 2634 (create_name_tags): Instead of quadratic checking use hashtable. 2635 * bitmap.h: Include hashtab.h. 2636 (bitmap_hash): Declare. 2637 * bitmap.c (bitmap_hash): New function. 2638 26392006-08-20 Jan Hubicka <jh@suse.cz> 2640 2641 PR rtl-optimization/28071 2642 * tree-optimize.c (tree_rest_of_compilation): Do not remove edges 2643 twice. 2644 * tree-inline.c (copy_bb): Use cgraph_set_call_stmt. 2645 * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument. 2646 (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function, 2647 cgraph_decide_inlining_incrementally): Update use of 2648 cgraph_check_inline_limits. 2649 * cgraph.c (edge_hash, edge_eq): New function. 2650 (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge, 2651 cgraph_edge_remove_caller, cgraph_node_remove_callees, 2652 cgraph_remove_node): Maintain call site hash. 2653 * cgraph.h (struct cgraph_node): Add call_site_hash. 2654 (cgraph_set_call_stmt): New function. 2655 26562006-08-20 Jan Hubicka <jh@suse.cz> 2657 2658 PR rtl-optimization/28071 2659 * reload1.c (reg_has_output_reload): Turn into regset. 2660 (reload_as_needed, forget_old_reloads_1, forget_marked_reloads, 2661 choose_reload_regs, emit_reload_insns): Update to new 2662 reg_has_output_reload. 2663 26642006-08-20 Jan Hubicka <jh@suse.cz> 2665 2666 PR middle-end/28779 2667 * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute 2668 function body sizes. 2669 * cgraphunit.c (cgraph_analyze_function): Don't do so. 2670 26712006-08-20 Danny Smith <dannysmith@users.sourceforge.net> 2672 2673 PR target/28648 c: 2674 * tree.c (handle_dll_attribute): Return early if not a 2675 var or function decl. 2676 26772006-08-18 Joseph Myers <joseph@codesourcery.com> 2678 2679 PR target/27565 2680 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust 2681 alignment of SPE vector types. 2682 26832006-08-18 Christophe Jaillet <christophe.jaillet@wanadoo.fr> 2684 2685 * tree.c (is_attribute_with_length_p): Remove a duplicated assert. 2686 26872006-08-17 Jakub Jelinek <jakub@redhat.com> 2688 2689 PR c/28744 2690 * cgraph.h (struct cgraph_node): Remove externally_visible 2691 bitfield. 2692 * cgraphunit.c (process_function_and_variable_attributes): Set 2693 local.externally_visible rather than externally_visible. 2694 2695 PR c/28744 2696 * c-common.c (handle_externally_visible_attribute): First look 2697 at TREE_CODE and only if it is function or var decl, check for 2698 non-public objects. Don't warn for DECL_EXTERNAL. 2699 * cgraphunit.c (process_function_and_variable_attributes): Warn 2700 if externally_visible attribute is used on non-public object. 2701 27022006-08-17 Jan Hubicka <jh@suse.cz> 2703 2704 PR tree-optimization/27865 2705 * reload1.c (forget_marked_reloads): New function. 2706 (forget_old_reloads_1): When data are passed, just mark the registers 2707 for later removal. 2708 (reload_as_needed): Use the new mechanizm. 2709 27102006-08-17 Alexandre Oliva <aoliva@redhat.com> 2711 2712 PR target/28146 2713 * reload.h (reg_equiv_alt_mem_list): New declaration. 2714 * reload1.c (reg_equiv_alt_mem_list): New definition. 2715 (reload): Initialize it and release it. 2716 (delete_output_reload): Use it. 2717 * reload.c (push_reg_equiv_alt_mem): New function. 2718 (find_reloads_toplev): Call it. 2719 (find_reloads_address, find_reloads_address_1): Likewise. 2720 (find_reloads_subreg_address): Likewise. 2721 27222006-08-17 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 2723 2724 PR rtl-optimization/28489 2725 * sched-ebb.c (begin_schedule_ready): Create basic block 2726 at the right place. 2727 (advance_target_bb): Skip empty blocks. 2728 * haifa-sched.c (bb_note): Make global. 2729 * sched-int.h (bb_note): Add prototype. 2730 27312006-08-16 Zdenek Dvorak <dvorakz@suse.cz> 2732 2733 PR tree-optimization/27865 2734 * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE 2735 for pointer types. 2736 * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p, 2737 fold_used_pointer, pointer_used_p): New functions. 2738 (analyze_scalar_evolution_1): Use fold_used_pointer. 2739 * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly. 2740 * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type 2741 for pointers. 2742 27432006-08-17 Paolo Bonzini <bonzini@gnu.org> 2744 2745 PR c++/28573 2746 * c-common.c (fold_offsetof_1): Add an argument and recurse down to it 2747 or the INTEGER_CST. Fail on a CALL_EXPR. 2748 (fold_offsetof): Pass new argument to fold_offsetof_1. 2749 * c-parser.c (c_parser_postfix_expression): Don't include a NULL 2750 operand into an INDIRECT_REF. 2751 * c-typeck.c (build_unary_op): Adjust call to fold_offsetof. 2752 27532006-08-16 Zdenek Dvorak <dvorakz@suse.cz> 2754 2755 PR gcov/profile/26570 2756 * value-prof.c (static_values): Removed. 2757 (tree_find_values_to_profile): Do not set static_values. 2758 (find_values_to_profile): Do not free static_values. 2759 * profile.c (instrument_values): Do not free the values. 2760 (branch_prob): Free the values. 2761 27622006-08-16 Naveen.H.S <naveenh@kpitcummins.com> 2763 2764 * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest. 2765 27662006-08-16 Joseph S. Myers <joseph@codesourcery.com> 2767 2768 PR c/27697 2769 * c-typeck.c (build_component_ref): Combine qualifiers of 2770 structure or union and field. 2771 27722006-08-16 Zdenek Dvorak <dvorakz@suse.cz> 2773 2774 PR rtl-optimization/28071 2775 * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare. 2776 * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions. 2777 * tree-into-ssa.c (struct dom_dfsnum): New. 2778 (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New 2779 functions. 2780 (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of 2781 compute_global_livein. 2782 (prepare_block_for_update, prepare_use_sites_for): Mark the uses 2783 in phi nodes in the correct blocks. 2784 27852006-08-16 Zdenek Dvorak <dvorakz@suse.cz> 2786 2787 PR tree-optimization/28364 2788 * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero 2789 correctly. 2790 (fold_affine_expr): New function. 2791 (may_eliminate_iv): Use fold_affine_expr. 2792 27932006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2794 2795 PR c/27489 2796 * c-typeck.c (c_start_case): Handle invalid orig_type correctly. 2797 Clean up. 2798 27992006-08-16 Mike Stump <mrs@apple.com> 2800 2801 * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref. 2802 * doc/cppopts.texi (-MD): Likewise. 2803 28042006-08-15 Danny Smith <dannysmith@users.sourceforge.net> 2805 2806 PR c/28287 2807 * c-common.c (handle_weak_attribute): Ignore and warn if 2808 not a FUNCTION_ or VAR_DECL. 2809 28102006-07-15 Mike Stump <mrs@apple.com> 2811 2812 PR c/28280 2813 * c-parser.c (c_parser_typeof_specifier): Don't use 2814 c_finish_expr_stmt, open code desired semantics instead. 2815 28162006-08-15 Nick Clifton <nickc@redhat.com> 2817 2818 * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile 2819 fragment to tmake_file only if threads are enabled. 2820 * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to... 2821 * config/i386/t-gthr-win32: New file. ... here. 2822 28232006-08-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2824 2825 PR c/28649 2826 * c-parser.c (c_parser_compound_statement_nostart): Reset 2827 parser->error after each statement. 2828 28292006-08-15 Jakub Jelinek <jakub@redhat.com> 2830 2831 PR middle-end/28713 2832 * omp-low.c (lower_omp_parallel): Convert t to 2833 receiver_decl's type. 2834 (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR 2835 source before comparison. 2836 2837 PR middle-end/28724 2838 * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival 2839 to itype in assignment to oldival2. 2840 28412006-07-14 Andrew Pinski <pinksia@physics.uc.edu> 2842 2843 PR c/27490 2844 PR c/27489 2845 * c-typeck.c (build_compound_expr): If the second expression 2846 is an error mark, then just return an error mark instead of 2847 creating a COMPOUND_EXPR. 2848 28492006-07-14 Mike Stump <mrs@apple.com> 2850 2851 * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES. 2852 28532006-08-14 Kazu Hirata <kazu@codesourcery.com> 2854 2855 * c-decl.c, var-tracking.c: Fix comment typos. 2856 28572006-08-14 Richard Sandiford <richard@codesourcery.com> 2858 2859 PR rtl-optimization/28634 2860 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A 2861 for floating-point modes unless flag_unsafe_math_optimizations. 2862 28632006-08-13 Alexandre Oliva <aoliva@redhat.com> 2864 Andrew Pinski <pinskia@physics.uc.edu> 2865 2866 PR c/27184 2867 * tree.c (build_array_type): Unify array types with 2868 unspecified index_type. 2869 * c-decl.c (grokdeclarator): Make sure we do not modify a 2870 unified incomplete array type. 2871 * c-typeck.c (store_init_value): Create distinct type before 2872 filling in the index type in an initializer from a compound 2873 literal. 2874 2875 * c-decl.c (grokdeclarator): Remove code where we copy the 2876 array type over. 2877 28782006-08-13 Andrew Pinski <pinskia@physics.uc.edu> 2879 2880 * tree-pass.h (TODO_update_ssa): Fix which bit is used to take 2881 into account for TODO_dump_cgraph. 2882 (TODO_update_ssa_no_phi): Likewise. 2883 (TODO_update_ssa_full_phi): Likewise. 2884 (TODO_update_ssa_only_virtuals): Likewise. 2885 (TODO_remove_unused_locals): Likewise. 2886 (TODO_set_props): Likewise. 2887 (TODO_update_stmt_usage): Likewise. 2888 28892006-08-13 Dirk Mueller <dmueller@suse.de> 2890 2891 * c-common.c (strict_aliasing_warning): Fix formatting. 2892 28932006-08-13 Matthias Klose <doko@debian.org> 2894 2895 * doc/invoke.texi: Fix spelling errors. 2896 28972006-08-11 Eric Botcazou <ebotcazou@libertysurf.fr> 2898 2899 PR rtl-optimization/23454 2900 * reorg.c (relax_delay_slots): Update comment. 2901 29022006-08-11 Richard Guenther <rguenther@suse.de> 2903 2904 PR middle-end/28651 2905 * simplify-rtx.c (simplify_const_relational_operation): 2906 Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison 2907 codes. 2908 29092006-08-10 Eric Botcazou <ebotcazou@adacore.com> 2910 2911 * tree.c (build1_stat): Also propagate the TREE_CONSTANT and 2912 TREE_INVARIANT flags for a VIEW_CONVERT_EXPR. 2913 29142006-08-10 Paul Brook <paul@codesourcery.com> 2915 2916 * final.c (final_scan_insn): Clear current_insn_predicate before 2917 outputting inline asm. 2918 29192006-08-10 Dorit Nuzman <dorit@il.ibm.com> 2920 2921 PR tree-optimization/26197 2922 * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls 2923 get_ref_base_and_extent and overlap_subvar to add only relevant 2924 subvars as may-aliases. 2925 (add_may_alias_for_new_tag): New function, factored out of 2926 new_type_alias. 2927 * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias 2928 with additional argument. 2929 * tree-flow.h (new_type_alias): Takes additional argument. 2930 29312006-08-09 Nathan Sidwell <nathan@codesourcery.com> 2932 2933 * gcov.c (no_data_file): New flag. 2934 (read_count_file): Set it if data file not present. Assume counts 2935 zero if not found. 2936 (output_lines): Don't name the data file, if there wasn't one. 2937 29382006-08-09 Eric Botcazou <ebotcazou@adacore.com> 2939 2940 * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust. 2941 (rs6000_generate_compare): Tweak comments. 2942 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment. 2943 29442006-08-09 Alexandre Oliva <aoliva@redhat.com> 2945 2946 * var-tracking.c (enum micro_operation_type): Add MO_COPY. 2947 (var_debug_decl): New function. 2948 (var_reg_set): Follow debug decl link. Add location even if 2949 reg is already known to hold some other variable. 2950 (var_mem_set): Follow debug decl link. 2951 (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug 2952 decl link. Delete other known locations of the variable part 2953 if requested. 2954 (var_reg_delete, var_mem_delete): Delete other known locations 2955 of the variable part if requested. 2956 (same_variable_part_p): New function. 2957 (add_stores): Select MO_COPY when appropriate. 2958 (vt_initialize): Handle it. 2959 (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete 2960 known locations for MO_SET and MO_CLOBBER. 2961 (find_variable_location_part): New function. 2962 (set_variable_part, delete_variable_part): Use it. 2963 (clobber_variable_part): New function. 2964 * dwarf2out.c (dwarf2out_var_location): Do not follow debug 2965 decl link. 2966 29672006-08-07 Victor Kaplansky <victork@il.ibm.com> 2968 2969 PR tree-optimization/26969 2970 * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch 2971 with an empty list of PHIs. 2972 29732006-08-06 Paolo Bonzini <bonzini@gnu.org> 2974 2975 PR target/27827 2976 2977 * conffig/i386/i386.md: Add peephole2 to avoid "fld %st" 2978 instructions. 2979 29802006-08-06 Andreas Schwab <schwab@suse.de> 2981 2982 * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format 2983 string. Whitespace and comment fixup. 2984 29852006-08-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2986 2987 PR c/28502 2988 * c-decl.c (validate_proto_after_old_defn): Return false on invalid 2989 argument. 2990 2991 PR c/27721 2992 * c-typeck.c (build_modify_expr): Test earlier for non-lvalues. 2993 2994 PR c/28136 2995 * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify. 2996 29972006-08-04 Jan Hubicka <jh@suse.cz> 2998 2999 PR target/26655 3000 PR target/28270 3001 * reload.c (push_reload): Patch out the mismatching instruction; 3002 return early. 3003 (find_reload): Bail out if the instruction was patched out. 3004 30052006-08-04 Jan Hubicka <jh@suse.cz> 3006 3007 PR tree-optimization/24888 3008 * tree-inline.c (expand_call_inline): Do not re-record variables. 3009 (declare_inline_vars): Add variable to unexpanded_var_list. 3010 30112006-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3012 Roger Sayle <roger@eyesopen.com> 3013 3014 PR rtl-optimization/26244 3015 * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or 3016 inner_const are negative or greater than or equal to the bitsize of 3017 MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated. 3018 Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1. 3019 Simplify complicated if statement. For ASHIFT and LSHIFTRT, return 3020 CONST0_RTX (mode) when the new shift count is greater than or equal to 3021 to the bitsize of the object being shifted and XEXP (y, 0) has no side 3022 effects. 3023 30242006-08-04 Kazu Hirata <kazu@codesourcery.com> 3025 3026 * tree-cfg.c: Fix a comment typo. 3027 30282006-08-03 Mark Mitchell <mark@codesourcery.com> 3029 3030 PR c++/28148 3031 * varasm.c (output_constant): Give the front end another chance to 3032 expand constants, after stripping NOPs. 3033 30342006-08-03 Jan Hubicka <jh@suse.cz> 3035 3036 * domwalk.c (walk_dominator_tree): Reorganize to non-recursive 3037 implementation. 3038 30392006-08-03 Dorit Nuzman <dorit@il.ibm.com> 3040 3041 PR tree-optimization/27770 3042 * tree-vectorizer.h (get_vectype_for_scalar_type): Function 3043 declaration removed (moved to tree-flow.h). 3044 (vect_can_force_dr_alignment_p): Likewise. 3045 * tree-flow.h (get_vectype_for_scalar_type): New function declaration 3046 (moved from tree-vectorizer.h). 3047 (vect_can_force_dr_alignment_p): Likewise. 3048 * tree-vectorizer.c (vect_print_dump_info): Allow calling this function 3049 from outside the vectorizer - in particular from cgraph stage. 3050 * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase 3051 the alignment of global arrays when -fsection-anchors is enabled. 3052 * cgraphunit.c (cgraph_increase_alignment): New function. 3053 (cgraph_optimize): Call cgraph_increase_alignment. 3054 30552006-08-03 David Edelsohn <edelsohn@gnu.org> 3056 3057 PR target/27566 3058 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do 3059 not reload a SPE symbol_ref into a lo_sum address. 3060 30612006-08-02 Daniel Jacobowitz <dan@codesourcery.com> 3062 3063 PR debug/28063 3064 * dwarf2out.c (prune_unused_types_prune): Move call to 3065 prune_unused_types_update_strings to cover the parent DIE also. 3066 30672006-08-02 Jan Hubicka <jh@suse.cz> 3068 3069 PR gcov/profile/28480 3070 * tree-cfg.c (change_bb_for_stmt): New function. 3071 (tree_merge_blocks, tree_split_blocks): Use it. 3072 30732006-08-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3074 3075 PR c++/28250 3076 PR c++/28257 3077 PR c++/28259 3078 PR c++/28267 3079 * toplev.c (compile_file): Return early on errorcount or sorrycount. 3080 * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise. 3081 (cgraph_optimize): Likewise. 3082 30832006-08-01 Stuart Hastings <stuart@apple.com> 3084 3085 * rtl.h (UINTVAL) New. 3086 * config/rs6000/rs6000.c (SMALL_INT) Use it. 3087 * testsuite/gcc.dg/20060801-1.c: New. 3088 30892006-08-01 Daniel Jacobowitz <dan@codesourcery.com> 3090 3091 PR debug/23336 3092 * c-typeck.c (build_external_type): Mark used enum types. 3093 * dwarf2out.c (dwarf2out_abstract_function): Save and restore 3094 cfun also. 3095 (gen_subprogram_die): Whitespace fix. 3096 30972006-08-01 Jan Hubicka <jh@suse.cz> 3098 3099 * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars 3100 bitmap when not needed. 3101 * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary 3102 bitmaps. 3103 31042006-08-01 Dirk Mueller <dmueller@suse.de> 3105 3106 * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak. 3107 31082006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3109 3110 * Makefile.in: Revert part of previous patch: 3111 Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H 3112 and REGS_H. 3113 31142006-07-30 Eric Christopher <echristo@apple.com> 3115 3116 PR target/27543 3117 * doc/extend.texi (i386 Variable Attributes): Add anchor. 3118 (PowerPC Variable Attributes): New section. 3119 31202006-07-30 Atsushi Nemoto <anemo@mba.ocn.ne.jp> 3121 3122 PR target/28126 (partial fix) 3123 * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no. 3124 31252006-07-28 Jan Hubicka <jh@suse.cz> 3126 3127 PR rtl-optimization/28071 3128 * cfgrtl.c (rtl_delete_block): Free regsets. 3129 * flow.c (allocate_bb_life_data): Re-use regsets if available. 3130 31312006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3132 3133 * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies 3134 and variables used in dependencies. 3135 31362006-07-27 Arjan van de Ven <arjan@linux.intel.com> 3137 3138 * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than 3139 %fs for -mcmodel=kernel. 3140 (stack_tls_protect_test_di): Likewise. 3141 31422006-07-27 Carlos O'Donell <carlos@codesourcery.com> 3143 3144 * Makefile.in: Use mkinstalldirs. 3145 31462006-07-27 H.J. Lu <hongjiu.lu@intel.com> 3147 3148 PR driver/28437 3149 * opts-common.c (prune_options): Skip joined switches. 3150 31512006-07-27 Jan Hubicka <jh@suse.cz> 3152 3153 PR rtl-optimization/28071 3154 * cselib.c (cselib_process_insn): Don't remove useless values too 3155 often for very large hashtables. 3156 31572006-07-27 Jan Hubicka <jh@suse.cz> 3158 3159 PR rtl-optimization/28071 3160 * global.c (greg_obstack): New obstack. 3161 (allocate_bb_info): Use it. 3162 (free_bb_info): Likewise. 3163 (modify_reg_pav): Likewise. 3164 31652006-07-27 Roger Sayle <roger@eyesopen.com> 3166 3167 * builtins.c (fold_fixed_mathfn): When long and long long are the 3168 same size, canonicalize llceil*, llfloor*, llround* and llrint* 3169 functions to their lceil*, lfloor*, lround* and lrint* forms. 3170 31712006-07-27 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 3172 3173 PR gcc/28508 3174 * config/m32r/m32r.md (branch_insn): Reduce pc range for short 3175 branch. 3176 (rev_branch_insn): Likewise. 3177 31782006-07-27 Jan Hubicka <jh@suse.cz> 3179 3180 PR rtl-optimization/28071 3181 * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour. 3182 (reg_set_in_bb, max_reg_computed): New static variables. 3183 (regmove_optimize): Free the new array. 3184 (fixup_match_1): Update call of reg_is_remote_constant_p. 3185 31862006-07-26 Jan Hubicka <jh@suse.cz> 3187 3188 PR tree-optimization/27882 3189 * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous 3190 and decl fields. 3191 * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill 3192 next pointer 3193 (cgraph_analyze_compilation_unit): Likewise. 3194 * ipa.c (cgraph_remove_unreachable_nodes): Likewise. 3195 * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise. 3196 (cgraph_early_inlinine): Make order garbage collected. 3197 * Makefile.in (gt-ipa-inline): New garbagecollected file. 3198 31992006-07-26 Daniel Jacobowitz <dan@codesourcery.com> 3200 3201 * dbxout.c (output_types_sort): Add a comment. 3202 (output_used_types): Free the VEC. 3203 32042006-07-26 Daniel Jacobowitz <dan@codesourcery.com> 3205 3206 * function.c (reorder_fix_fragments): Delete. 3207 (reorder_blocks): Don't call it. 3208 (reorder_blocks_1): Put all subblocks under the origin block. 3209 32102006-07-26 Zdenek Dvorak <dvorakz@suse.cz> 3211 3212 PR rtl-optimization/27907 3213 * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and 3214 FLOAT_TRUNCATE. 3215 32162006-07-25 Roger Sayle <roger@eyesopen.com> 3217 3218 PR middle-end/28473 3219 * convert.c (convert_to_integer): When transforming (T)foo(x) into 3220 bar(x) check that bar's result type can represent all the values of T. 3221 32222006-07-25 Zdenek Dvorak <dvorakz@suse.cz> 3223 3224 * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure. 3225 32262006-07-25 Nick Clifton <nickc@redhat.com> 3227 3228 * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the 3229 size_lookup[] array. 3230 (ggc_alloc_stat): Use NUM_SIZE_LOOKUP. 3231 (ggc_pch_count_object): Likewise. 3232 (ggc_pch_alloc_object): Likewise. 3233 (ggc_pch_write_object): Likewise. 3234 (init_ggc): Do not attempt to initialize entries in the 3235 size_lookup[] array for objects whose size is greater than than 3236 the length of the array. 3237 32382006-07-25 Daniel Jacobowitz <dan@codesourcery.com> 3239 3240 * dbxout.c (output_used_types_helper): Push queued types 3241 on a VEC. 3242 (output_types_sort): New. 3243 (output_used_types): Collect used types on a VEC and sort them 3244 before emission. 3245 32462006-07-24 Richard Guenther <rguenther@suse.de> 3247 3248 PR middle-end/28463 3249 * cgraph.c (cgraph_remove_node): Do not check if dumps 3250 are enabled. 3251 * cgraphunit.c (cgraph_optimize): Likewise. 3252 32532006-07-24 Jan Hubicka <jh@suse.cz> 3254 3255 PR rtl-optimization/28071 3256 * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes. 3257 * tree-iterator.c (tsi_split_statement_list_before): Do not crash when 3258 splitting before first stmt. 3259 32602006-07-24 Jan Hubicka <jh@suse.cz> 3261 3262 PR rtl-optimization/28071 3263 * ipa-inline.c (update_caller_keys): Remove edges that 3264 are no longer inline candidates. 3265 32662006-07-23 Daniel Jacobowitz <dan@codesourcery.com> 3267 3268 PR debug/27473 3269 * dbxout.c (output_used_types_helper, output_used_types): New. 3270 (dbxout_symbol): Call output_used_types. 3271 32722006-07-23 Jan Hubicka <jh@suse.cz> 3273 3274 PR c/25795 3275 PR c++/27369 3276 * cgraph.c (cgraph_varpool_nodes): Export. 3277 (decide_is_variable_needed): Ignored "used" attribute in 3278 unit-at-a-time mode. 3279 * cgraph.h (cgraph_varpool_nodes): Declare. 3280 * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in 3281 unit-at-a-time mode. 3282 32832006-07-23 Roger Sayle <roger@eyesopen.com> 3284 3285 PR target/28247 3286 * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and 3287 mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of 3288 the __gthrw form of thr_keycreate. 3289 (__gthread_key_delete): Silence the unused argument warning. 3290 32912006-07-23 Steven Bosscher <steven@gcc.gnu.org> 3292 3293 PR debug/25468 3294 * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks. 3295 Cache the last found '\0' marker to avoid quadratic behavior. 3296 32972006-07-23 Jan Hubicka <jh@suse.cz> 3298 3299 * i386.md (subsi_3_zext): Fix output template. 3300 33012006-07-21 Mike Stump <mrs@apple.com> 3302 3303 * doc/invoke.texi (C++ Dialect Options): Note that 3304 -fvisibility-inlines-hidden doesn't affect explicitly 3305 instantiationed inline methods. 3306 33072006-07-20 Roger Sayle <roger@eyesopen.com> 3308 3309 * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file 3310 if the target assembler is GNU binutils' gas. 3311 * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine 3312 whether to pass GNU gas or native as command line options. 3313 33142006-07-20 Jason Merrill <jason@redhat.com> 3315 3316 * tree.c (remove_attribute): New fn. 3317 * tree.h: Declare it. 3318 33192006-07-20 Paul Brook <paul@codesourcery.com> 3320 3321 PR 27363 3322 * cse.c (cse_insn): Add destination addresses to hash table. Check if 3323 they are invalidated by this instruction. 3324 33252006-07-21 Danny Smith <dannysmith@users.sourceforge.net> 3326 3327 PR target/28427 3328 * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define. 3329 33302006-07-20 Eric Christopher <echristo@apple.com> 3331 3332 PR target/26877 3333 * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder. 3334 33352006-07-19 Eric Christopher <echristo@apple.com> 3336 3337 * config/t-slibgcc-darwin (stmp-lipo): Remove. 3338 Rewrite dependencies for libgcc_s.1.dylib. 3339 33402006-07-19 Jakub Jelinek <jakub@redhat.com> 3341 3342 * except.c (duplicate_eh_regions_1): Clear next_peer. 3343 33442006-07-17 Nathan Sidwell <nathan@codesourcery.com> 3345 3346 * doc/invoke.texi (RS/6000 and PowerPC Options): Document that 3347 -mlongcall does not guarantee all calls will be long. 3348 * doc/extend.texi (long_call/short_call): Document that longcall 3349 does not guarantee a long call will be used. 3350 (longcall/shortcall): Likewise. 3351 33522006-07-18 Roger Sayle <roger@eyesopen.com> 3353 3354 PR middle-end/28283 3355 * expmed.c (expand_shift): Additionally check that the shift_cost 3356 is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD 3357 before implementing a LSHIFT_EXPR as a sequence of additions. 3358 * config/sh/sh.c (shift_costs): Return MAX_COST to inform the 3359 middle-end that DImode shifts need to be synthesized by expand. 3360 33612006-07-18 Diego Novillo <dnovillo@redhat.com> 3362 3363 PR 28410 3364 * tree-ssa-operands.c (access_can_touch_variable): Update 3365 comment. 3366 Return true if ALIAS is .GLOBAL_VAR. 3367 33682006-07-18 David Daney <ddaney@avtrex.com> 3369 3370 * gcc.c (display_help): Fix typo in help text. 3371 33722006-07-18 Olivier Hainque <hainque@adacore.com> 3373 3374 * tree.h (categorize_ctor_elements): Adjust prototype and add 3375 descriptive comment, both in accordance with the interface change 3376 described below. 3377 * varasm.c (constructor_static_from_elts_p): New function. 3378 Whether a constructor node is a valid static constant initializer 3379 if all its elements are. 3380 (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it. 3381 * output.h: Declare it. 3382 * expr.c (categorize_ctor_elements_1): Return whether the constructor 3383 is a valid constant initializer instead of computing the number of 3384 non-constant elements. Use constructor_static_from_elts_p for this 3385 purpose. Replace the head comment with an indication that this is a 3386 helper for categorize_ctor_elements. 3387 (categorize_ctor_elements): Same interface change as for the _1 3388 helper. Former head comment from this helper moved here, adjusted to 3389 account for the interface changes. 3390 (mostly_zeros_p): Adjust call to categorize_ctor_elements. 3391 (all_zeros_p): Likewise. 3392 * gimplify.c (gimplify_init_constructor): Decide whether we can make 3393 static versions of the constructor from the categorize_ctor_elements 3394 return value instead of the formerly computed number of non-constant 3395 elements. 3396 33972006-07-18 Paolo Bonzini <bonzini@gnu.org> 3398 3399 * configure: Regenerate. 3400 * Makefile.in (build_libsubdir): New configure substitution 3401 (build_libobjdir): New variable. 3402 (BUILD_LIBIBERTY): Use it. 3403 34042006-07-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 3405 3406 PR c/28286 3407 * c-pragma.c (handle_pragma_pack): Handle invalid constants. 3408 34092006-07-18 Alexandre Oliva <aoliva@redhat.com> 3410 3411 PR c/26993 3412 * c-common.c (handle_weakref_attribute): Ignore attribute in 3413 the same conditions the alias attribute is ignored. 3414 34152006-07-17 Carlos O'Donell <carlos@codesourcery.com> 3416 3417 * dbxout.c (dbxout_function_end): Do not increment scope_labelno. 3418 (dbxout_begin_prologue): Increment scope_labelno. 3419 34202006-07-17 Richard Henderson <rth@redhat.com> 3421 3422 PR 27889 3423 * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P 3424 if needed. 3425 34262006-07-17 Roger Sayle <roger@eyesopen.com> 3427 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 3428 3429 * config/i386/gmon-sol2.c: Silence compilation warnings by partially 3430 synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0 3431 blocks. #include "tconfig.h" and "tsystem.h" to prototype system 3432 functions such as sbrk, write, etc.. Add function prototypes. 3433 Convert function declarations from K&R to ISO C. Cast pointers 3434 to "long" and "unsigned long" instead of "int" and "unsigned int". 3435 Convert tokens following #endif into comments. 3436 34372006-07-17 Toon Moene <toon@moene.indiv.nluug.nl> 3438 3439 * invoke.texi: Remove mention of f77; Reformat table for 3440 inline parameter options correctly; mention that -malign-double 3441 is default on x86-64 targets. 3442 34432006-07-17 Zdenek Dvorak <dvorakz@suse.cz> 3444 3445 * tree-chrec.c (avoid_arithmetics_in_type_p): New. 3446 (convert_affine_scev, chrec_convert_aggressive): Use 3447 avoid_arithmetics_in_type_p. Do not check for the subtypes 3448 separately. 3449 34502006-07-17 Richard Sandiford <richard@codesourcery.com> 3451 3452 PR middle-end/28403 3453 * optabs.c (expand_doubleword_shift): Wrap the call to 3454 do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP. 3455 34562006-07-17 Richard Sandiford <richard@codesourcery.com> 3457 3458 PR middle-end/28402 3459 * optabs.c (expand_binop): Pass next_methods rather than methods 3460 to expand_doubleword_shift. 3461 34622006-07-17 J"orn Rennecke <joern.rennecke@st.com> 3463 3464 PR other/28251 3465 * tree.h (dump_addr): Declare. 3466 * print-tree.c (dump_addr): New function. 3467 (print_node_brief, print_node): Use it. 3468 * print-rtl.c (print_rtx): Likewise. 3469 * common.opt (-fdump-noaddr): New option. 3470 * doc/invoke.texi (-fdump-noaddr): Document. 3471 * loop-unroll.c (si_info_hash): Make hash independent of addresses. 3472 (ve_info_hash): Likewise. 3473 34742006-07-13 Andrew Haley <aph@redhat.com> 3475 3476 PR tree-optimization/19505 3477 * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH 3478 edge leaving this block, make sure that the destination of this 3479 block has only one predecessor. 3480 34812006-07-17 Richard Guenther <rguenther@suse.de> 3482 3483 PR tree-optimization/28238 3484 * tree-inline.c (copy_bb): Check if we produced valid 3485 gimple copying and substituting a stmt. If not, gimplify 3486 it. 3487 34882006-07-16 Eric Botcazou <ebotcazou@adacore.com> 3489 3490 * optabs.c (maybe_encapsulate_block): New function extracted from... 3491 (emit_libcall_block): ...here. Invoke it on the block of insns to 3492 maybe emit REG_LIBCALL/REG_RETVAL notes around the block. 3493 (emit_no_conflict_block): Likewise. 3494 34952006-07-16 Eric Botcazou <ebotcazou@libertysurf.fr> 3496 3497 * doc/install.texi (sparc-sun-solaris2*): Add GMP version number. 3498 34992006-07-15 Roger Sayle <roger@eyesopen.com> 3500 3501 * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into 3502 a new NOP_EXPR case of the switch statement. 3503 35042006-07-15 Kaz Kojima <kkojima@gcc.gnu.org> 3505 3506 PR middle-end/28160 3507 * stor-layout.c (place_field): Take the bit field with 3508 an excessive size into account in the ms-bitfiled case. 3509 3510 PR middle-end/28161 3511 * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of 3512 the previous bit field. 3513 35142006-07-14 Eliot Dresselhaus <eliot@sonic.net> 3515 3516 PR target/27287 3517 * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative. 3518 35192006-07-14 Ulrich Weigand <uweigand@de.ibm.com> 3520 3521 * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect 3522 signal frames correctly even when the signal was installed with 3523 sa_restorer set. 3524 35252006-07-14 Carlos O'Donell <carlos@codesourcery.com> 3526 3527 * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start. 3528 (dbxout_function_end): Use local label LFBB. Remove hook 3529 DBX_OUTPUT_NFUN. 3530 (dbxout_source_line): Use local label LFBB. 3531 (dbxout_block): Likewise. 3532 (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC. 3533 (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC. 3534 * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC, 3535 and DBX_OUTPUT_NFUN. 3536 35372006-07-13 Janis Johnson <janis187@us.ibm.com> 3538 3539 * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail. 3540 35412006-07-13 Jan Hubicka <jh@suse.cz> 3542 3543 * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call 3544 align_variable. 3545 * output.h (align_variable): Declare. 3546 * varasm.c (align_variable): Export. 3547 * value-prof.c (tree_value_profile_transformations): Recompute iterator 3548 when basic block changed. 3549 35502006-07-13 Nick Clifton <nickc@redhat.com> 3551 3552 * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst 3553 walking the LOG_LINKS chain. 3554 35552006-07-12 Geoffrey Keating <geoffk@apple.com> 3556 3557 * doc/invoke.texi (C++ Dialect Options): Explain difference 3558 between -fvisibility-inlines-hidden and setting hidden 3559 visibility explicitly. 3560 35612006-07-12 Eric Christopher <echristo@apple.com> 3562 3563 * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo. 3564 (stmp-lipo): Depend on libgcc.a. 3565 35662006-07-12 Kazu Hirata <kazu@codesourcery.com> 3567 3568 * tree.c: Fix a comment typo. 3569 35702006-07-12 Naveen.H.S <naveenh@kpitcummins.com> 3571 3572 * config/m32c/muldiv.md (umulhisi3_c): Use only registers for 3573 dest. 3574 (umulhisi3_r): Likewise. 3575 35762006-07-12 Paolo Carlini <pcarlini@suse.de> 3577 3578 PR libstdc++/27878 3579 * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x, 3580 x < 19, vs wchar_t support. 3581 35822006-07-12 Nick Clifton <nickc@redhat.com> 3583 3584 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up 3585 instead of -isa=sh4. 3586 35872006-07-12 Mike Stump <mrs@apple.com> 3588 3589 * protoize.c (edit_fn_definition): Add volatile to clean_text_p. 3590 35912006-07-10 Eric Christopher <echristo@apple.com> 3592 3593 * config/t-slibgcc-darwin: Rewrite. 3594 35952006-07-10 Laurynas Biveinis <laurynas.biveinis@gmail.com> 3596 3597 PR bootstrap/20437 3598 * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4 3599 dependencies. 3600 36012006-07-08 Matthias Klose <doko@debian.org> 3602 3603 * doc/sourcebuild.texi: Fix typo. 3604 36052006-07-07 Mike Stump <mrs@apple.com> 3606 3607 * toplev.c (process_options): Don't give -ffunction-sections may 3608 affect debugging warning for Mach-O. 3609 36102006-07-07 James E Wilson <wilson@specifix.com> 3611 3612 * config/mips/mips.md (cpu): Add sb1a. 3613 * config/mips/sb1.md: Modify almost all patterns to accept sb1a in 3614 addition to sb1. Adjust comments to clarify SB-1A differences from 3615 SB-1. 3616 (ir_sb1a_load): New. Modify bypasses to use it. 3617 (ir_sb1a_simple_alu): Likewise. 3618 * config/mips/mips.c (mips_cpu_info_table): Add sb1a. 3619 (mips_rtx_cost_data): Add PROCESSOR_SB1A support. 3620 (mips_issue_rate): Add PROCESSOR_SB1A. 3621 (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1. 3622 * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A. 3623 (TARGET_SB1): Add PROCESSOR_SB1A check. 3624 (TUNE_SB1): Likewise. 3625 3626 * config/mips/mips-protos.h (mips_store_data_bypass_p): New. 3627 * config/mips/mips.c (mips_store_data_bypass_p): New. 3628 * config/mips/sb1.md: Use mips_store_data_bypass_p instead of 3629 store_data_bypass_p. 3630 36312006-07-08 Paul Brook <paul@codesourcery.com> 3632 3633 PR target/27991 3634 * config/m68k/m68k.md: Add r-m patterns for 68881 movxf. 3635 36362006-07-07 Richard Guenther <rguenther@suse.de> 3637 3638 PR middle-end/28268 3639 * tree.h (build_one_cst): Declare. 3640 * tree.c (build_one_cst): New function. 3641 * tree-ssa-math-opts.c (get_constant_one): Remove. 3642 (insert_reciprocals): Use build_one_cst. 3643 * fold-const.c (fold_plusminus_mult): Likewise. 3644 36452006-07-07 Roger Sayle <roger@eyesopen.com> 3646 3647 * pointer-set.c (pointer_set_destroy): Correct whitespace. 3648 * cfgloopanal.c (dump_graph): Likewise. 3649 * dojump.c (discard_pending_stack_adjust): Likewise. 3650 * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES): 3651 Likewise. 3652 * alloc-pool.c (dump_alloc_pool_statistics): Likewise. 3653 * function.c (finalize_block_changes): Likewise. 3654 * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise. 3655 * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise. 3656 * rtl.c (dump_rtx_statistics): Likewise. 3657 * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars): 3658 Likewise. 3659 * varray.c (dump_varray_statistics): Likewise. 3660 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64, 3661 decode_decimal64, encode_decimal128, decode_decimal128, 3662 decimal_real_to_decimal): Likewise. 3663 36642006-07-07 Richard Guenther <rguenther@suse.de> 3665 3666 PR tree-optimization/28187 3667 * tree-vrp.c (vrp_operand_equal_p): New function. 3668 (vrp_bitmap_equal_p): Likewise. 3669 (update_value_range): Use them to compare old and new 3670 max and min values. 3671 36722006-07-06 Roger Sayle <roger@eyesopen.com> 3673 3674 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add 3675 a default case to switch statement to silence compiler warnings. 3676 36772006-07-06 Roger Sayle <roger@eyesopen.com> 3678 3679 PR target/27968 3680 * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether 3681 the configured assembler supports the x87's ffreep mnemonic. 3682 * configure: Regenerate. 3683 * config.in: Regenerate. 3684 3685 * config/i386/i386.c (output_387_ffreep): New function. 3686 (output_fp_compare): Use output_387_ffreep to emit ffreep insns. 3687 (output_387_reg_move): Likewise. 3688 36892006-07-06 Paul Eggert <eggert@cs.ucla.edu> 3690 3691 Port to hosts whose 'sort' and 'tail' implementations 3692 treat operands with leading '+' as file names, as POSIX 3693 has required since 2001. However, make sure the code still 3694 works on pre-POSIX hosts. 3695 * Makefile.in (slowcompare): Port to POSIX 1003.1-2001, 3696 which says you should use "tail -c +N" rather than "tail +Nc". 3697 Fix a bug: the old code incorrectly skipped 15 bytes, not 16. 3698 36992006-07-06 Zdenek Dvorak <dvorakz@suse.cz> 3700 3701 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in 3702 argument name. 3703 37042006-07-06 David Edelsohn <edelsohn@gnu.org> 3705 3706 PR target/28150 3707 * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow 3708 PRE_{INC,DEC} of TFmode. 3709 37102006-07-06 David Edelsohn <edelsohn@gnu.org> 3711 Alan Modra <amodra@bigpond.net.au> 3712 3713 PR target/28170 3714 * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop 3715 bounds. Simplify. 3716 37172006-07-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 3718 3719 PR target/28285 3720 * config/alpha/predicates.md (alpha_swapped_comparison_operator): 3721 Remove duplicate gtu. 3722 37232006-07-05 Jason Merrill <jason@redhat.com> 3724 3725 PR c++/13983 3726 PR c++/17519 3727 * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. 3728 * c-common.c (handle_packed_attribute): So don't copy it here. 3729 * c-decl.c (finish_struct): Don't copy TYPE_ALIGN. 3730 37312006-07-05 Mike Stump <mrs@apple.com> 3732 3733 * doc/invoke.texi (Invoking G++): Clarify prose for g++. 3734 37352006-07-05 H.J. Lu <hongjiu.lu@intel.com> 3736 3737 PR target/26146 3738 * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*. 3739 37402006-07-05 Richard Guenther <rguenther@suse.de> 3741 3742 PR target/28158 3743 * config/i386/i386.md (*negdf2_1): Restrict pattern to 3744 TARGET_SSE2 targets if using SSE math. 3745 (*absdf2_1): Likewise. 3746 37472006-07-05 Richard Guenther <rguenther@suse.de> 3748 3749 PR tree-optimization/28162 3750 * fold-const.c (fold_binary): For (-A) * (-B) -> A * B 3751 make sure to convert the operands to the correct type. 3752 37532006-07-04 Paolo Bonzini <bonzini@gnu.org> 3754 3755 PR tree-optimization/28218 3756 3757 * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls 3758 to calculate and free the dominator information. 3759 37602006-07-04 Peter O'Gorman <peter@pogma.com> 3761 3762 * mklibgcc.in: chmod 644 before ranlib during install. 3763 37642006-07-04 Andrew Stubbs <andrew.stubbs@st.com> 3765 J"orn Rennecke <joern.rennecke@st.com> 3766 3767 * configure.ac (.eh_frame data check): Use diff -b. 3768 37692006-07-04 Eric Botcazou <ebotcazou@libertysurf.fr> 3770 3771 PR bootstrap/18058 3772 * Makefile.in (BUILD_RTL): Add build/vec.o. 3773 (build/gencondmd.o): Filter out -fkeep-inline-functions. 3774 (build/genextract): Delete. 3775 (build/genautomata): Likewise. 3776 37772006-07-04 Alan Modra <amodra@bigpond.net.au> 3778 3779 PR target/28207 3780 * config/rs6000/rs6000.c (function_arg_boundary): Double-word align 3781 128-bit IBM long doubles for ABI_V4. 3782 37832006-07-03 Eric Botcazou <ebotcazou@adacore.com> 3784 3785 * tree.c (range_in_array_bounds_p): New predicate. 3786 * tree.h (range_in_array_bounds_p): Declare it. 3787 * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to 3788 return a less conservative answer. 3789 * tree-sra.c (struct sra_elt): Add new pointer field 'groups' 3790 and flag 'is_group'. 3791 (IS_ELEMENT_FOR_GROUP): New macro. 3792 (FOR_EACH_ACTUAL_CHILD): Likewise. 3793 (next_child_for_group): New helper function. 3794 (can_completely_scalarize_p): Take into account groups. 3795 (sra_hash_tree): Handle RANGE_EXPR. 3796 (sra_elt_eq): Likewise. 3797 (lookup_element): Be prepared for handling groups. 3798 (is_valid_const_index): Delete. 3799 (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p 3800 instead of is_valid_const_index. 3801 <ARRAY_RANGE_REF>: New case. 3802 (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of 3803 is_valid_const_index. 3804 <ARRAY_RANGE_REF>: Do not unconditionally punt. 3805 (scan_dump): Dump info for groups too. 3806 (decide_instantiation_1): Likewise. 3807 (decide_block_copy): Assert that the element is not a group. 3808 Propagate decision to groups. 3809 (generate_one_element_ref): Handle RANGE_EXPR. 3810 (mark_no_warning): Iterate over actual childs. 3811 (generate_copy_inout): Likewise. 3812 (generate_element_copy): Likewise. 3813 (generate_element_zero): Likewise. 3814 (generate_element_init_1): Likewise. 3815 (dump_sra_elt_name): Handle RANGE_EXPR. 3816 38172006-07-03 Roger Sayle <roger@eyesopen.com> 3818 3819 PR tree-optimization/26251 3820 * tree-ssa-threadupdate.c (redirection_block_p): New function. 3821 (thread_block): When optimizing for size refuse to thread jumps 3822 that would require duplication of blocks other than redirection 3823 blocks. 3824 38252006-07-03 Paolo Bonzini <bonzini@gnu.org> 3826 3827 * configure.ac: Fix thinko in previous check-in. 3828 * configure: Regenerate. 3829 38302006-07-03 Paolo Bonzini <bonzini@gnu.org> 3831 3832 PR other/27063 3833 * configure.ac (for lang...): Simplify nesting of conditionals. 3834 Test subdir_requires for non-enabled languages. Move processing 3835 of lang_opt_files and lang_tree_fiels below that test. 3836 * configure: Regenerate. 3837 * doc/sourcebuild.texi (Front End Config): Document subdir_requires. 3838 38392006-07-01 Martin Michlmayr <tbm@cyrius.com> 3840 3841 * doc/gcov.texi (Invoking Gcov): Add a missing word. 3842 38432006-06-30 Kazu Hirata <kazu@codesourcery.com> 3844 3845 * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix 3846 comment typos. 3847 38482006-06-29 Jason Merrill <jason@redhat.com> 3849 3850 PR c++/26905 3851 PR c++/26612 3852 PR c++/27000 3853 PR c++/26984 3854 PR c++/19134 3855 * tree.c (build_decl_stat): Don't hande #pragma visibility here. 3856 * c-common.c (c_determine_visibility): Handle it here. 3857 * c-decl.c (finish_decl): Call c_determine_visibility for 3858 functions, too. 3859 * flags.h (enum symbol_visibility): Sort from most to least visibility. 3860 * tree.h: Likewise. 3861 * varasm.c (default_assemble_visibility): Likewise. 3862 * c-common.c (handle_visibility_attribute): Complain about trying 3863 to give visibility to an already defined class, or trying to change 3864 declared visibility. Always attach the attribute. 3865 3866 PR c++/26905 3867 PR c++/21675 3868 PR c++/17470 3869 * attribs.c (decl_attributes): Ignore type-in-place attributes 3870 once the type has been defined. 3871 38722006-06-29 Roger Sayle <roger@eyesopen.com> 3873 3874 PR middle-end/27428 3875 * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount 3876 to indicate the cpplib has issued an error message for us. 3877 38782006-06-29 Asher Langton <langton2@llnl.gov> 3879 3880 PR target/25765 3881 * config/i386/i386.c (ix86_output_function_epilogue): Don't 3882 insert a label at the end of an function under Mach-O. 3883 38842006-06-29 Eric Christopher <echristo@apple.com> 3885 Evan Cheng <evan.cheng@apple.com> 3886 3887 * predicates.md (vector_all_ones_operand): New. 3888 (nonimmediate_or_sse_const_operand): Ditto. 3889 * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare. 3890 * config/i386/i386.c (standard_sse_constant_opcode): Define. 3891 (standard_sse_mode_p): Ditto. 3892 (standard_sse_constant_p): Add case for -1 vector. 3893 (ix86_expand_vector_move): Try to use. 3894 * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand. 3895 Call standard_sse_constant_opcode. 3896 (*movv4sf_internal): Ditto. 3897 (*movv2df_internal): Ditto. 3898 38992006-06-29 Roger Sayle <roger@eyesopen.com> 3900 3901 * genpreds.c (write_match_code_switch): Correctly use XSTR instead 3902 of XEXP to extract the operands of a MATCH_CODE rtx. 3903 39042006-06-28 Andrew Pinski <pinskia@gmail.com> 3905 3906 * tree.c (tree_size): Do not waste tail padding in 3907 struct tree_string and make the size be the same as 3908 build_string will generate. 3909 39102006-06-28 Jason Merrill <jason@redhat.com> 3911 3912 PR c++/27768 3913 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add 3914 may_aliases already in the tag's annotations to the bitmap. 3915 39162006-06-28 Roger Sayle <roger@eyesopen.com> 3917 3918 * genpreds.c (write_predicate_stmts) <IOR>: Add missing break. 3919 39202006-06-28 Roger Sayle <roger@eyesopen.com> 3921 3922 * genpreds.c (generate_switch_p): New function. 3923 (add_mode_tests): Push the new mode test down inside an AND expr 3924 if this allows the switch-suitable MATCH_CODE to be near the root. 3925 (write_match_code_switch): New function to write a MATCH_CODE as 3926 a switch statement. 3927 (write_predicate_stmts): New function to write a predicate RTX 3928 expression as a sequence of statements. 3929 (write_one_predicate_function): Use write_predicate_stmts. 3930 (write_tm_constrs_h): Likewise. 3931 39322006-06-26 Fred Fish <fnf@specifix.com> 3933 3934 * config/mips/t-sb1: New file. 3935 * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to 3936 tmake_file list. 3937 39382006-06-26 DJ Delorie <dj@redhat.com> 3939 3940 * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic. 3941 39422006-06-26 Naveen H.S <naveenh@kpitcummins.com> 3943 Jayant Sonar <jayants@kpitcummins.com> 3944 Jaydeep Vipradas <jaydeepv@kpitcummins.com> 3945 3946 * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New. 3947 (subsi3, subsi3_1, subsi3_2): New. 3948 * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New. 3949 * config/m32c/mov.md (SI mov peephole): New. 3950 * config/m32c/m32.c (m32c_immd_dbl_mov): New. 3951 * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New. 3952 39532006-06-26 Olivier Hainque <hainque@adacore.com> 3954 3955 * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on 3956 a CALL_EXPR target function declaration. 3957 39582006-06-26 Richard Guenther <rguenther@suse.de> 3959 3960 * tree.c (build_string): Do not waste tail padding in 3961 struct tree_string. 3962 39632006-06-26 Richard Guenther <rguenther@suse.de> 3964 3965 * ggc-page.c (init_ggc): Add missing element to size_lookup 3966 table. 3967 3968 Revert 3969 2006-06-23 Richard Guenther <rguenther@suse.de> 3970 3971 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table 3972 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour 3973 alignment requests instead. Add verification code. 3974 Add struct tree_function_decl and struct tree_binfo size to 3975 extra_order_size_table. Add missing element to size_lookup 3976 table. 3977 39782006-06-25 Eric Botcazou <ebotcazou@adacore.com> 3979 3980 PR middle-end/28151 3981 * fold-const.c (const_binop): Be prepared for self returning zero. 3982 Simplify code handling complex values. 3983 39842006-06-24 Olivier Hainque <hainque@adacore.com> 3985 3986 * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function. 3987 (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode 3988 aggregate types. 3989 39902006-06-24 Olivier Hainque <hainque@adacore.com> 3991 3992 * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as 3993 ARRAY_REF, so have the callback called for the low bound expression. 3994 39952006-06-23 Janis Johnson <janis187@us.ibm.com> 3996 3997 * tree.h (DECIMAL_FLOAT_TYPE_P): New. 3998 * c-typeck.c (c_common_type): Disallow operations on decimal float 3999 types and other float types. 4000 * convert.c (convert_to_real): Don't ignore conversions involving 4001 decimal float types. 4002 40032006-06-23 Olivier Hainque <hainque@adacore.com> 4004 4005 * tree.c (max_int_size_in_bytes): New function, inspired from 4006 code in function.c:assign_temp. 4007 * tree.h (max_int_size_in_bytes): Declare. 4008 * function.c (assign_temp): Use it. 4009 * gimplify.c (create_tmp_var): Relax the assertions on the type 4010 properties, not mandating constant size any more. 4011 (force_constant_size): New static function. 4012 (gimple_add_tmp_var): Use it, forcing variable size to a 4013 constant upper bound if it is not constant on entry. 4014 40152006-06-23 Danny Smith <dannysmith@users.sourceforge.net> 4016 4017 PR target/27789 4018 * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check 4019 for initialization and setting of one_only flag to ... 4020 (i386_pe_encode_section_info): ...here. 4021 (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also. 4022 Recheck that the symbol has not been defined. 4023 40242006-06-23 Richard Guenther <rguenther@suse.de> 4025 4026 * ggc-page.c (init_ggc): Do not round up the extra_order_size_table 4027 sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour 4028 alignment requests instead. Add verification code. 4029 Add struct tree_function_decl and struct tree_binfo size to 4030 extra_order_size_table. Add missing element to size_lookup 4031 table. 4032 40332006-06-22 Roger Sayle <roger@eyesopen.com> 4034 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 4035 4036 PR middle-end/28131 4037 * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the 4038 call to lang_hooks.types.type_for_mode returned NULL_TREE. 4039 40402006-06-23 Ben Elliston <bje@au.ibm.com> 4041 4042 * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to 4043 negate dn -- manipulate it directly. 4044 40452006-06-22 Roger Sayle <roger@eyesopen.com> 4046 Steven Bosscher <stevenb.gcc@gmail.com> 4047 4048 PR target/27531 4049 * reload1.c (gen_reload): Call mark_jump_label on the new insns 4050 generated by gen_move_insn to add REG_LABEL notes if necessary. 4051 40522006-06-22 Bob Wilson <bob.wilson@acm.org> 4053 4054 * config/xtensa/lib1funcs.asm (MIN_ESA): Delete. 4055 (leaf_entry): Remove use of MIN_ESA. 4056 40572006-06-22 Zdenek Dvorak <dvorakz@suse.cz> 4058 4059 PR rtl-optimization/28121 4060 * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from 4061 the entry edge. 4062 40632006-06-21 DJ Delorie <dj@redhat.com> 4064 4065 * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest 4066 (TN-16C-A156A/E). 4067 (mulhisi3_r): Likewise. 4068 40692006-06-21 Richard Sandiford <richard@codesourcery.com> 4070 4071 PR middle-end/28034 4072 * coverage.c (coverage_counter_alloc): Leave the index type 4073 unspecified. 4074 (coverage_counter_alloc): Use null arguments for operands 2 and 3 4075 of the ARRAY_REF. 4076 40772006-06-21 Andrew Pinski <pinskia@physics.uc.edu> 4078 4079 * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect" 4080 section from the "Options for Code Generation Conventions". 4081 40822006-06-21 Richard Henderson <rth@redhat.com> 4083 4084 PR target/26347 4085 PR target/27082 4086 * config/alpha/predicates.md (small_symbolic_operand): Deny weak 4087 symbols. 4088 (global_symbolic_operand): Allow weak symbols, even if local_p. 4089 40902006-06-21 Eric Botcazou <ebotcazou@adacore.com> 4091 4092 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function. 4093 (find_interesting_uses_address): Punt if above function returns true. 4094 40952006-06-21 Richard Guenther <rguenther@suse.de> 4096 4097 * configure: Regenerated. 4098 40992006-06-21 Joseph Myers <joseph@codesourcery.com> 4100 4101 * config/mips/mips.c (function_arg): Where one part of a 4102 complex argument is in registers and the other part in the stack, 4103 return a REG not a PARALLEL. 4104 41052006-06-21 Mark Mitchell <mark@codesourcery.com> 4106 4107 * configure.ac: Set gcc_gxx_include_dir to $target/include/c++ 4108 when cross-compiling. Do not substitute libstdcxx_incdir. 4109 * configure: Regenerated. 4110 41112006-06-21 Jakub Jelinek <jakub@redhat.com> 4112 4113 * varasm.c (mergeable_string_section): Check for embedded NULs and 4114 NUL termination in the first int_size_in_bytes (TREE_TYPE (decl)) 4115 rather than TREE_STRING_LENGTH bytes. 4116 41172006-06-21 Richard Guenther <rguenther@suse.de> 4118 4119 * ggc-page.c (extra_order_size_table): Add var_ann_d, 4120 tree_ssa_name, bitmap_element and phi_node with 4 arguments 4121 sizes. 4122 41232006-06-21 Richrad Guenther <rguenther@suse.de> 4124 4125 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): 4126 Limit iteration over the dominators. 4127 41282006-06-20 Roger Sayle <roger@eyesopen.com> 4129 4130 * config/mips/iris6.h (LIB_SPEC): Add support for -pthread. 4131 (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified. 4132 41332006-06-20 Richard Guenther <rguenther@suse.de> 4134 Michael Matz <matz@suse.de> 4135 4136 * alloc-pool.h (free_alloc_pool_if_empty): Prototype new 4137 function. 4138 * alloc-pool.c (free_alloc_pool_if_empty): New function. 4139 * et-forest.h (et_free_pools): Prototype new function. 4140 * et-forest.c (et_free_tree_force): Free parent occurrence. 4141 (et_free_pools): New function. 4142 * dominance.c (free_dominance_info): Free et-forest alloc 4143 pools. 4144 41452006-06-20 Roger Sayle <roger@eyesopen.com> 4146 4147 * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with 4148 integer modes, attempt to directly construct an integer constant. 4149 4150 * fold-const.c (native_encode_vector): Determine the size of each 4151 element from the vector type instead of the first vector element. 4152 4153 * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant, 4154 if all of its elements/components are constant. 4155 (build_constructor_from_list): Likewise. 4156 41572006-06-20 Zdenek Dvorak <dvorakz@suse.cz> 4158 4159 PR tree-optimization/27331 4160 * tree-data-ref.c (free_data_ref): New function. 4161 (create_data_ref): Fail if the data reference has unknown access 4162 function. 4163 (free_data_refs): Use free_data_ref. 4164 41652006-06-19 Andrew Pinski <pinskia@gmail.com> 4166 4167 PR middle-end/28075 4168 * tree-inline.c (setup_one_parameter): Strip useless 4169 type conversion before adding it to the IR. 4170 (declare_return_variable): Likewise. 4171 41722006-06-19 Martin Michlmayr <tbm@cyrius.com> 4173 4174 PR c/27149 4175 * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning. 4176 41772006-06-19 Mike Stump <mrs@apple.com> 4178 4179 * tree.c (variably_modified_type_p): VM arguments don't make the 4180 type a VM type. 4181 41822006-06-19 Richard Guenther <rguenther@suse.de> 4183 4184 * tree-ssa-pre.c (try_combine_conversion): Strip useless 4185 type conversions after folding. 4186 41872006-06-19 Richard Guenther <rguenther@suse.de> 4188 4189 * ggc-page.c (extra_order_size_tab): Add entries with 4190 size of struct function and basic_block. 4191 (size_lookup): Extend to cover sizes up to 511. 4192 (ggc_alloc_stat): Adjust user. 4193 (ggc_pch_count_object): Likewise. 4194 (ggc_pch_alloc_object): Likewise. 4195 (ggc_pch_write_object): Likewise. 4196 41972006-06-19 Zdenek Dvorak <dvorakz@suse.cz> 4198 4199 * tree-ssa-loop-niter.c (implies_ge_p): New function. 4200 (derive_constant_upper_bound): Handle OP0 - CST in unsigned types 4201 correctly. 4202 42032006-06-19 Denis Chertykov <denisc@overta.ru> 4204 4205 * config/avr/libgcc.S : Correct my wrong previous commit. 4206 42072006-06-19 Roger Sayle <roger@eyesopen.com> 4208 4209 PR target/27861 4210 * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may 4211 have stripped a SUBREG from the shift count, so we may need to 4212 convert_to_mode back to the type's mode before calling make_tree. 4213 Use new_amount instead of amount to avoid expanding a tree twice. 4214 42152006-06-19 Richard Guenther <rguenther@suse.de> 4216 4217 PR middle-end/28045 4218 * fold-const.c (operand_equal_p): Check if the argument types 4219 have the same precision before stripping NOPs. 4220 42212006-06-19 Daniel Berlin <dberlin@dberlin.org> 4222 4223 Fix PR tree-optimization/27341 4224 * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the 4225 statement we get. 4226 * tree-complex.c (pass_lower_complex): Update SMT usage. 4227 42282006-06-19 Andreas Krebbel <krebbel1@de.ibm.com> 4229 4230 * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"): 4231 Add a new alternative to the constraint strings. Add move of 4232 operand 1 to 3 to the splitter definition. 4233 ("doloop_si_long"): Second contraint alternative removed. 4234 42352006-06-08 Anatoly Sokolov <aesok@post.ru> 4236 4237 * config/avr/avr.h (avr_have_movw_lpmx_p): Declare. 4238 (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and 4239 __AVR_HAVE_LPMX__. 4240 (AVR_HAVE_MOVW) Define. 4241 (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW. 4242 (ASM_SPEC): Add avr25. 4243 (LINK_SPEC): Add avr25. 4244 * config/avr/avr.c (avr_have_movw_lpmx_p): Add. 4245 (base_arch_s): Add new member 'have_movw_lpmx'. 4246 (avr_arch_types): Init 'have_movw_lpmx'. 4247 (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24, 4248 attiny44, attiny84, attiny25, attiny45, attiny85, attiny261, 4249 attiny461, attiny861 and at86rf401 in 'avr25' arhitecture. 4250 (avr_override_options): Init 'avr_have_movw_lpmx_p'. 4251 (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use 4252 AVR_HAVE_MOVW. 4253 (avr_file_start): Do not output '.arh' derective. 4254 * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__. 4255 (__do_copy_data): Use __AVR_HAVE_LPMX__. 4256 * config/avr/avr.md (mcu_enhanced): Delete. 4257 (mcu_have_movw): Define. 4258 (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'. 4259 (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__. 4260 * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25. 4261 (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44, 4262 attiny84, attiny25, attiny45, attiny85, attiny261, attiny461, 4263 attiny861 and at86rf401 devices. 4264 42652006-06-18 Jie Zhang <jie.zhang@analog.com> 4266 4267 * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead 4268 of 4096. 4269 42702006-06-17 Karl Berry <karl@gnu.org> 4271 4272 * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi, 4273 doc/gccint.texi, doc/install.texi (@dircategory): Use 4274 "Software development" instead of "Programming", following 4275 the Free Software Directory. 4276 42772006-06-17 Alexandre Oliva <aoliva@redhat.com> 4278 4279 * config/i386/i386.c (legitimate_tls_address) 4280 <TARGET_GNU2_TLS>: Add tp after DTPOFF. 4281 * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust. 4282 (*tls_dynamic_gnu2_combine_64): Likewise. 4283 42842006-06-16 Richard Guenther <rguenther@suse.de> 4285 4286 PR middle-end/27116 4287 * fold-const.c (negate_expr_p): Do not introduce undefined 4288 overflow in negating INTEGER_CSTs. 4289 (fold_negate_expr): Rename from negate_expr. Revert last 4290 change for folding BIT_NOT_EXPR. Change semantics to 4291 return NULL_TREE for non-simplified negations. Do not 4292 strip type conversions and unify type handling. 4293 (negate_expr): New function, wrap around fold_negate_expr 4294 but ensure building a tree always. Strip type conversions 4295 here, fold to result type. 4296 (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR. 4297 42982006-06-16 Roger Sayle <roger@eyesopen.com> 4299 4300 PR middle-end/27802 4301 * reg-stack.c (subst_stack_regs): Handle noreturn function calls 4302 that (would) return their results in stack registers. 4303 43042006-06-16 Michael Matz <matz@suse.de> 4305 Richard Guenther <rguenther@suse.de> 4306 4307 * fold-const.c (fold_truthop): Only return new tree node if 4308 we canonicalized something. 4309 43102006-06-16 Richard Guenther <rguenther@suse.de> 4311 4312 * function.h (enum function_frequency): Move declaration 4313 out of struct function. 4314 (struct function): Move bool fields and the enum to the bitfield 4315 section. Reorder elements to avoid padding. Remove unused 4316 fields left over from the RTL inliner removal. 4317 * function.c (free_after_compilation): Do not zero removed fields. 4318 * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency. 4319 (ipa-type-escape.o): Likewise. 4320 43212006-06-16 Richard Guenther <rguenther@suse.de> 4322 4323 * cgraph.h (struct cgraph_local_info): Turn bool elements 4324 into a bitfield. 4325 (struct cgraph_node): Likewise. 4326 (struct cgraph_varpool_node): Likewise. 4327 43282006-06-15 Richard Guenther <rguenther@suse.de> 4329 4330 * fold-const.c (fold_truth_not_expr): Rename from 4331 invert_truthvalue. Give it fold_* semantics to avoid 4332 generating garbage. 4333 (invert_truthvalue): New function. Wrapper around 4334 fold_truth_not_expr. 4335 (optimize_minmax_comparison): Avoid creating garbage. 4336 (fold_unary): Use fold_truth_not_expr for folding 4337 TRUTH_NOT_EXPR. 4338 (fold_ternary): Replace uses of invert_truthvalue with 4339 fold_truth_not_expr where applicable. 4340 * tree.h (fold_truth_not_expr): Prototype. 4341 43422006-06-16 Richard Guenther <rguenther@suse.de> 4343 4344 PR tree-optimization/27781 4345 * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency. 4346 * ipa-pure-const.c (target.h): Include. 4347 (analyze_function): Do not analyze functions that do not 4348 bind locally. 4349 43502006-06-15 Andrew MacLeod <amacleod@redhat.com> 4351 4352 PR middle-end/27793 4353 * tree-dfa.c (referenced_vars_dup_list): Remove. 4354 (find_referenced_vars): Remove assert. 4355 (referenced_var_check_and_insert): Replace dup list with assert. 4356 * tree-ssa.c (delete_tree_ssa): Remove dup list processing. 4357 * tree-flow.h (referenced_vars_dup_list): Remove extern decl. 4358 43592006-06-15 Richard Guenther <rguenther@suse.de> 4360 4361 * tree-ssa-structalias.c (alias_get_name): Avoid creating 4362 extra unused identifiers if not dumping. 4363 (create_variable_info_for): Likewise. 4364 43652006-06-15 Zdenek Dvorak <dvorakz@suse.cz> 4366 4367 * tree-ssa-loop-niter.c (implies_nonnegative_p): New function. 4368 (derive_constant_upper_bound): Derive more precise upper bound in 4369 common cases. Return type changed to double_int. 4370 (record_estimate): Reflect the changed return type of 4371 derive_constant_upper_bound. 4372 * double-int.c (double_int_zext, double_int_sext): Fix. 4373 43742006-06-15 Paolo Bonzini <bonzini@gnu.org> 4375 4376 * configure.ac (CFLAGS): Get them from the toplevel or from the 4377 configure invocation. 4378 * configure: Regenerate. 4379 * Makefile.in (CFLAGS): Substitute value provided by configure. 4380 43812006-06-14 Mark Mitchell <mark@codesourcery.com> 4382 4383 PR c++/26559 4384 * c-common.h (c_finish_omp_atomic): Adjust declaration. 4385 * c-omp.c (c_finish_omp_atomic): Return the expression to perform, 4386 rather than calling add_stmt on it. 4387 * c-parser.c (c_parser_omp_atomic): Adjust accordingly. 4388 43892006-06-14 Andreas Krebbel <krebbel1@de.ibm.com> 4390 4391 PR middle-end/27959 4392 * reload1.c (reload): Remove registers returned by update_eliminables 4393 from used_spill_regs. 4394 43952006-06-13 DJ Delorie <dj@redhat.com> 4396 4397 * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants. 4398 43992006-06-13 Carlos O'Donell <carlos@codesourcery.com> 4400 4401 * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL, 4402 html__strip_dir, html__mkdir_p. Enhance install-html target. 4403 * configure.ac: AC_SUBST datarootdir, docdir and htmldir. 4404 * configure: Regenerate. 4405 44062006-06-13 Fariborz Jahanian <fjahanian@apple.com> 4407 4408 * fold-const.c (fold_cond_expr_with_comparison): Check for 4409 Objective-C++ as language in deciding COND_EXPR transformation. 4410 44112006-06-06 J"orn Rennecke <joern.rennecke@st.com> 4412 4413 PR target/28014: 4414 * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16 4415 * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'. 4416 * config/sh/lib1funcs.h (SL, SL1): Define. 4417 * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function. 4418 * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss. 4419 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule. 4420 (OBJS_Os_4_200): New variable. 4421 ($(T)libgcc-Os-4-200.a): Use it. 4422 * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call 4423 when dividing 1 and/or by 0. 4424 44252006-06-13 Roger Sayle <roger@eyesopen.com> 4426 4427 * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h> 4428 before <ucontext.h> to define sigset_t required by <sys/ucontext.h>. 4429 * configure: Regenerate. 4430 44312006-06-13 Jie Zhang <jie.zhang@analog.com> 4432 4433 * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized () 4434 for real instruction. 4435 44362006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 4437 4438 PR middle-end/26807 4439 * haifa-sched.c (check_cfg): Handle special case. 4440 44412006-06-13 Eric Botcazou <ebotcazou@adacore.com> 4442 4443 PR debug/26754 4444 * gimplify.c (declare_tmp_vars): Rename into declare_vars. 4445 Add debug_info parameter. Chain the vars to the BLOCK instead 4446 of the BIND_EXPR if debug info are requested for them. 4447 (pop_gimplify_context): Adjust for above change. 4448 (gimple_add_tmp_var): Likewise. 4449 * tree-gimple.h (declare_tmp_vars): Rename into declare_vars. 4450 Add bool parameter. 4451 * tree-nested.c (convert_nonlocal_reference): Adjust for above change. 4452 (convert_local_reference): Likewise. 4453 (get_local_debug_decl): Set DECL_IGNORED_P on the original variable. 4454 (finalize_nesting_tree_1): Request that debug info be emitted 4455 for debug_var_chain. 4456 44572006-06-13 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 4458 4459 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch 4460 for PR target/27863. 4461 44622006-06-13 Richard Guenther <rguenther@suse.de> 4463 4464 PR middle-end/27536 4465 * except.c (output_ttype): Expand type with EXPAND_INITIALIZER. 4466 44672006-06-13 Richard Guenther <rguenther@suse.de> 4468 4469 PR tree-optimization/27830 4470 * tree-inline.c (copy_body_r): For copying the operand 4471 of an ADDR_EXPR make sure to fold &* afterwards. 4472 44732006-06-12 Eric Botcazou <ebotcazou@adacore.com> 4474 4475 * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other 4476 lvalues in the fb_none case with side-effects. 4477 44782006-06-12 Kazu Hirata <kazu@codesourcery.com> 4479 4480 * tree-flow.h: Remove the prototype for 4481 compute_phi_arg_on_exit. 4482 * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use, 4483 protect_loop_closed_ssa_form, compute_phi_arg_on_exit): 4484 Remove. 4485 44862006-06-12 Mark Shinwell <shinwell@codesourcery.com> 4487 4488 * builtins.c (expand_builtin_return_addr): Only use 4489 frame_pointer_rtx when count == 0 and we are expanding 4490 __builtin_return_address. 4491 44922006-06-12 Fred Fish <fnf@specifix.com> 4493 4494 * config/mips/mips.c (mips_file_start): Create special section 4495 ".gcc_compiled_longXX" for o64 ABI as well as EABI. 4496 44972006-06-11 Eric Christopher <echristo@apple.com> 4498 4499 PR middle-end/27948 4500 * stor-layout.c (place_field): Remove check for 4501 remaining_in_alignment when aligning at the end of a run. 4502 45032006-06-11 Eric Christopher <echristo@apple.com> 4504 4505 PR 27542 4506 * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct 4507 pragma. 4508 45092006-06-11 Roger Sayle <roger@eyesopen.com> 4510 4511 PR target/27858 4512 Revert incorrect fix for PR target/27158 4513 2006-05-08 Roger Sayle <roger@eyesopen.com> 4514 * reload.c (find_reloads_toplev): Only return the simplified SUBREG 4515 of a reg_equiv_constant if the result is a legitimate constant. 4516 45172006-06-11 Roger Sayle <roger@eyesopen.com> 4518 4519 PR target/27158 4520 * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to 4521 extract a CONST_VECTOR element and interpret it as an integer. 4522 (vspltis_constant): Use const_vector_elt_as_int instead of the 4523 macro CONST_VECTOR_ELT in order to handle FP vector modes. 4524 * config/rs6000/predicates.md (easy_vector_const): Consider 4525 floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant. 4526 45272006-06-11 Kaz Kojima <kkojima@gcc.gnu.org> 4528 4529 PR middle-end/27942 4530 * stor-layout.c (update_alignment_for_field): Don't add extra 4531 alignment for packed non-bitfield fields in ms_bitfield_layout_p 4532 code. 4533 45342006-06-09 Ralf Corsepius <ralf.corsepius@rtems.org> 4535 4536 * config/mips/t-rtems: Add EL/EB multilib variants. 4537 45382006-06-09 Mike Stump <mrs@apple.com> 4539 4540 * c-typeck.c (c_begin_vm_scope): Fix file_scope processing. 4541 45422006-06-09 David Daney <ddaney@avtrex.com> 4543 4544 * doc/install.texi: Add binutils version recommendation for mips-*-*. 4545 45462006-06-09 Andreas Krebbel <krebbel1@de.ibm.com> 4547 4548 * reload.c (find_reloads): Unset force_reload for 'X' constraint. 4549 45502006-06-09 Richard Guenther <rguenther@suse.de> 4551 4552 PR tree-optimization/26998 4553 * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR 4554 of signed types, only TYPE_MIN_VALUE is special, but for both, 4555 minimum and maximum value. Likewise VR_ANTI_RANGE is special 4556 in this case, as is -fwrapv. 4557 45582006-06-08 Mike Stump <mrs@apple.com> 4559 4560 PR target/26427 4561 * config/darwin.c (darwin_asm_output_anchor): Disable 4562 -fsection-anchors on darwin for now. 4563 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise. 4564 * rs6000/rs6000.c (optimization_options): Likewise. 4565 45662006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 4567 4568 PR target/27421 4569 * config/i386/i386.c (classify_argument): Skip fields with invalid 4570 types in unions. 4571 45722006-06-08 Steven Bosscher <steven@gcc.gnu.org> 4573 4574 * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG. 4575 (cse_insn): Likewise for the stack_pointer_rtx. 4576 45772006-06-08 Roger Sayle <roger@eyesopen.com> 4578 4579 * tree-ssa-dom.c (record_conditions): Only record "unordered" 4580 conditions from floating point comparisons. 4581 45822006-06-08 Paolo Bonzini <bonzini@gnu.org> 4583 4584 PR middle-end/27733 4585 * expmed.c (struct alg_hash_entry): Fix type of field T 4586 to match synth_mult argument. 4587 (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT. 4588 45892006-06-08 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 4590 4591 PR target/27863 4592 * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic 4593 block boundaries. 4594 45952006-06-08 Richard Guenther <rguenther@suse.de> 4596 4597 PR middle-end/27116 4598 * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR 4599 only, if overflow is defined and not trapping. 4600 (negate_expr): Likewise. 4601 46022006-06-07 Zdenek Dvorak <dvorakz@suse.cz> 4603 4604 PR tree-optimization/27872 4605 * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP 4606 flag on the new exit edge of the unrolled loop. 4607 46082006-06-07 Zdenek Dvorak <dvorakz@suse.cz> 4609 4610 PR rtl-optimization/26449 4611 * loop-invariant.c (move_invariant_reg): Fail if force_operand fails. 4612 46132006-06-07 Andrew MacLeod <amacleod@redhat.com> 4614 4615 PR middle-end/27793 4616 * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate 4617 referenced_variables with matching DECL_UID's. 4618 (find_referenced_vars): Make sure duplicate list is empty to start. 4619 (referenced_var_p): Remove. 4620 (referenced_var_check_and_insert): Renamed from referenced_var_insert. 4621 Check if var is in the list, and add if needed. Update the duplicate 4622 list if a different var is in the list with the same DECL_UID. 4623 (add_referenced_var): Call routine to check and insert. 4624 * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates. 4625 * tree-flow.h (referenced_vars_dup_list): External declaration. 4626 46272006-06-07 Fred Fish <fnf@specifix.com> 4628 4629 * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries 4630 into single entry. 4631 46322006-06-07 Paolo Bonzini <bonzini@gnu.org> 4633 4634 PR target/27390 4635 * reg-stack.c (subst_stack_regs_pat): Reorder resetting of 4636 the imaginary and real parts of a clobbered register. 4637 Emit insn to set the imaginary part. 4638 46392006-06-06 Peter Lemieszewski <lemie@us.ibm.com> 4640 4641 * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c 4642 in lieu of unwind-dw2-fde.c. 4643 46442006-06-06 Francois-Xavier Coudert <coudert@clipper.ens.fr> 4645 4646 * config/i386/mingw32.h (GOMP_SELF_SPECS): Define. 4647 46482006-06-06 Ulrich Weigand <uweigand@de.ibm.com> 4649 4650 PR target/27842 4651 * config/rs6000/altivec.md (UNSPEC_VSLW): Remove. 4652 ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove. 4653 ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use 4654 V4SImode temporaries and operations instead. 4655 46562006-06-06 Joseph S. Myers <joseph@codesourcery.com> 4657 4658 * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not 4659 dp-bit.c. 4660 46612006-06-06 Mike Stump <mrs@apple.com> 4662 4663 * Makefile.in: Rename to htmldir to build_htmldir to avoid 4664 installing during build. 4665 46662006-06-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 4667 4668 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default 4669 value to 0. 4670 * doc/invoke.texi (max-sched-extend-regions-iters): Document. 4671 * config/ia64/ia64.c (params.h): New header. 4672 (ia64_optimization_options): New function to adjust parameters. 4673 * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype. 4674 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro. 4675 * config/ia64/t-ia64 (ia64.o): Add dependence from params.h . 4676 46772006-06-05 Kazu Hirata <kazu@codesourcery.com> 4678 4679 * stor-layout.c (debug_rli): Fix a typo in a debug message. 4680 46812006-06-05 Steve Ellcey <sje@cup.hp.com> 4682 4683 PR target/27051 4684 * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA. 4685 46862006-06-05 Dorit Nuzman <dorit@il.ibm.com> 4687 Victor Kaplansky <victork@il.ibm.com> 4688 4689 PR tree-optimization/26360 4690 * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern 4691 stmts. 4692 46932006-06-04 Roger Sayle <roger@eyesopen.com> 4694 Andrew Pinski <pinskia@physics.uc.edu> 4695 4696 PR middle-end/27382 4697 * c-common.c (c_common_truthvalue_conversion): Explicitly check 4698 for LABEL_DECL before calling DECL_WEAK. 4699 4700 PR c/27150 4701 * c-typeck.c (build_binary_op): Likewise, explicitly check for 4702 LABEL_DECL and PARM_DECL. 4703 47042006-06-05 Joseph S. Myers <joseph@codesourcery.com> 4705 4706 PR c/25161 4707 PR c/27020 4708 * c-decl.c (grokdeclarator): Disallow variably modified types at 4709 file scope. Avoid marking shared array type of constant size as 4710 VLA. 4711 47122006-06-04 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 4713 4714 PR c++/27601 4715 * c-common.c (fold_offsetof_1): Handle static members. 4716 47172006-06-04 Eric Christopher <echristo@apple.com> 4718 4719 * stor-layout.c (start_record_layout): Initialize remaining_in_alignment. 4720 (debug_rli): Output value for remaining_in_alignment. 4721 (update_alignment_for_field): Unconditionalize 4722 ms_bitfield_layout_p code. Handle non-bitfield fields. Remove 4723 extra alignment code. 4724 (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize 4725 ms_bitfield_layout_p code. Rewrite handling of structure fields. 4726 * tree.h (record_layout_info_s): Remove prev_packed. 4727 * doc/extend.texi (ms_struct): Add documentation of format. 4728 47292006-06-04 Mark Shinwell <shinwell@codesourcery.com> 4730 4731 * tree.h: Declare folding_initializer. 4732 * builtins.c (fold_builtin_constant_p): Give definite answer 4733 if folding inside an initializer. 4734 * fold-const.c: Define folding_initializer. 4735 (START_FOLD_INIT): Save and then set folding_initializer. 4736 (END_FOLD_INIT): Restore folding_initializer. 4737 47382006-06-04 Richard Guenther <rguenther@suse.de> 4739 4740 PR tree-optimization/27039 4741 * fold-const.c (fold_comparison): Handle pointer comparison 4742 again for all comparison codes. Compare offsets in signed 4743 size type. 4744 (fold_binary): Move code from here. 4745 47462006-06-03 Roger Sayle <roger@eyesopen.com> 4747 4748 PR target/26223 4749 * config/i386/i386.c (construct_container): Split static issued_error 4750 flag into issued_sse_arg_error, issued_sse_ret_error and 4751 issued_x87_ret_error. Issue a daignostic if the x86-64 ABI 4752 requires the use of x87 registers and the user explicitly 4753 specified the -mno-80387 command line option. 4754 47552006-06-02 Geoffrey Keating <geoffk@apple.com> 4756 4757 * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with 4758 HAVE_DECL_SIGALTSTACK. 4759 (MC_FLD): New. 4760 (segv_handler): Use MC_FLD. 4761 * configure.ac: Check for a sigaltstack declaration. 4762 Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin. 4763 * configure: Regenerate. 4764 * config.in: Regenerate. 4765 47662006-06-03 J"orn Rennecke <joern.rennecke@st.com> 4767 4768 PR other/27850 4769 * Makefile.in (stmp-fixinc): Fix typo. 4770 47712006-06-02 Roger Sayle <roger@eyesopen.com> 4772 4773 * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions 4774 are type correct. Clean-up. 4775 <REALPART_EXPR>: Likewise. Optimize creal(~z) as creal(z). 4776 <IMAGPART_EXPR>: Likewise. Optimize cimag(~z) as -cimag(z). 4777 47782006-06-01 DJ Delorie <dj@redhat.com> 4779 4780 * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the 4781 shift, as we've disabled the "switch" insn that needs it. 4782 47832006-06-01 Per Bothner <bothner@bothner.com> 4784 4785 Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output. 4786 * c-opts.c (finish_options): Use internal line 0 for <command-line>. 4787 * c-ppoutput.c (cb_define): Don't increment line 0. 4788 47892006-06-01 Pete Steinmetz <steinmtz@us.ibm.com> 4790 4791 * doc/invoke.texi: Add cpu_type power6. 4792 * config.gcc: Add cpu_type power6. 4793 * config/rs6000/rs6000.c (rs6000_override_options): Alias power6 4794 to power5+ with Altivec. 4795 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6. 4796 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6. 4797 47982006-05-30 Anatoly Sokolov <aesok@post.ru> 4799 4800 * config/avr/avr.h (SET_ASM_OP): Define. 4801 48022006-06-01 Kazu Hirata <kazu@codesourcery.com> 4803 4804 * config/bfin/bfin.c: Fix comment typos. 4805 48062006-06-01 Paolo Bonzini <bonzini@gnu.org> 4807 4808 PR 25453 4809 * doc/install.texi: Document --enable-bootstrap and 4810 --disable-bootstrap. 4811 48122006-06-01 Paolo Bonzini <bonzini@gnu.org> 4813 4814 * doc/install.texi: Document that InfoZIP can replace jar. 4815 48162006-05-31 Roger Sayle <roger@eyesopen.com> 4817 4818 * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE 4819 isn't available, directly generate the simpler x87 patterns without 4820 the (use (const_int 0)). 4821 * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE 4822 implementation isn't available. 4823 (*negdf2_1): Likewise. 4824 (*negxf2_1): XF mode negation is always done using the x87. 4825 (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs. 4826 48272006-05-31 Roger Sayle <roger@eyesopen.com> 4828 4829 * builtins.c (fold_builtin_cabs): Delete prototype. Require an 4830 additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as 4831 cabs(z). 4832 (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call. 4833 48342006-05-31 Jie Zhang <jie.zhang@analog.com> 4835 4836 * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare. 4837 * config/bfin/bfin.c (basic-block.h): Include. 4838 (struct machine_function): New. 4839 (bfin_init_machine_status): New. 4840 (override_options): Initialize init_machine_status. 4841 (bfin_hardware_loop): New. 4842 (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define. 4843 (DEF_VEC_P (loop_info)): New. 4844 (DEF_VEC_ALLOC_P (loop_info,heap)): New. 4845 (struct loop_info): New. 4846 (loop_info): New typedef. 4847 (struct loop_work): New. 4848 (loop_work): New typedef. 4849 (DEF_VEC_O (loop_work)): New. 4850 (DEF_VEC_ALLOC_O (loop_work,heap)): New. 4851 (bfin_dump_loops): New. 4852 (bfin_bb_in_loop): New. 4853 (bfin_scan_loop): New. 4854 (bfin_optimize_loop): New. 4855 (bfin_reorg_loops): New. 4856 (bfin_reorg): Use bfin_reorg_loops. 4857 * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding 4858 loop registers. 4859 (I_REGNO_P): Simplify. 4860 (DP_REGNO_P, DPREG_P): New macros. 4861 (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS, 4862 REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1. 4863 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): 4864 Add LT_REGS, LC_REGS, LB_REGS. 4865 (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS, 4866 'l' for LB_REGS. 4867 (REGNO_REG_CLASS): Deal with loop registers. 4868 * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint 4869 letters. 4870 (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1): 4871 New constants for loop registers. 4872 (UNSPEC_LSETUP_END): New. 4873 (seq_insns): New define_attr. Set it for appropriate insns. 4874 (movsi_insn): Add alternatives for move from/to 4875 loop count registers. 4876 (doloop_end): New define_expand. 4877 (loop_end): New define_insn. 4878 (define_split for bad doloop_end): New. 4879 (lsetup_with_autoinit): New define_insn. 4880 (lsetup_without_autoinit): New define_insn. 4881 (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1. 4882 * config/bfin/predicates.md (lc_register_operand): New. 4883 (lt_register_operand): New. 4884 (lb_register_operand): New. 4885 (nondp_register_operand): New. 4886 (nondp_reg_or_memory_operand): New. 4887 * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters. 4888 48892006-05-31 Jie Zhang <jie.zhang@analog.com> 4890 4891 * config/bfin/bfin.c (bfin_delegitimize_address): New. 4892 (TARGET_DELEGITIMIZE_ADDRESS): Define. 4893 48942006-05-31 Daniel Jacobowitz <dan@codesourcery.com> 4895 4896 * Makefile.in (CATALOGS): Add po/ prefix. 4897 * configure: Regenerated. 4898 48992006-05-31 Richard Earnshaw <richard.earnshaw@arm.com> 4900 4901 PR target/27829 4902 * arm.c (arm_print_operand case 'S'): Validate that the operand is 4903 a shift operand before calling shift_op. Avoid redundant call of 4904 shift_op. 4905 49062006-05-30 Naveen.H.S <naveenh@kpitcummins.com> 4907 DJ Delorie <dj@redhat.com> 4908 4909 * config/m32c/m32c.c (m32c_expand_insv): Check that the value 4910 we're inserting is a singlt-bit constant. 4911 49122006-05-30 Roger Sayle <roger@eyesopen.com> 4913 4914 * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast 4915 width to HOST_WIDE_INT to avoid comparison warnings on some targets. 4916 49172006-05-30 Roger Sayle <roger@eyesopen.com> 4918 4919 PR tree-optimization/23452 4920 * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary, 4921 to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2. 4922 (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral 4923 complex values and with -ffast-math for FP complex values. 4924 49252006-05-30 Kazu Hirata <kazu@codesourcery.com> 4926 4927 * c-common.h: Remove the prototype for yyparse. 4928 * rtl.h: Remove the prototype for init_loop. 4929 49302006-05-30 Andreas Krebbel <krebbel1@de.ibm.com> 4931 4932 * cse.c (validate_canon_reg, cse_insn): Don't change insns without 4933 calling recog. 4934 49352006-05-30 Roger Sayle <roger@eyesopen.com> 4936 4937 * simplify-rtx.c (simplify_binary_operation): Unfactor the shift 4938 and rotate cases. 4939 <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is 4940 log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics. 4941 49422006-05-30 Dirk Mueller <dmueller@suse.de> 4943 4944 PR c/27273 4945 * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW 4946 for CONSTANT_CLASS_P expresisons. 4947 49482006-05-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 4949 4950 PR c/27718 4951 * c-typeck.c (c_expr_sizeof_type): Handle invalid types. 4952 49532006-05-30 Zdenek Dvorak <dvorakz@suse.cz> 4954 4955 PR tree-optimization/27779 4956 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use 4957 initial_condition instead of CHREC_LEFT. 4958 49592006-05-30 Steven Bosscher <stevenb.gcc@gmail.com> 4960 4961 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label. 4962 * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors): 4963 Make prototypes ISO C90. 4964 49652006-05-30 Mircea Namolaru <namolaru@il.ibm.com> 4966 Leehod Baruch <leehod.baruch@weizmann.ac.il> 4967 4968 * see.c (see_analyze_one_def): Correct check. 4969 (see_get_extension_data): Check if extension is parallel. 4970 (see_get_extension_reg): Likewise. 4971 49722006-05-30 Uros Bizjak <uros@kss-loka.si> 4973 4974 PR target/27790 4975 * config/i386/i386.c (ix86_expand_int_vcond): Force cop0 4976 into register for (code == GTU). 4977 49782006-05-29 Roger Sayle <roger@eyesopen.com> 4979 4980 PR tree-optimization/24964 4981 * simplify-rtx.c (simplify_binary_operation_1): Add function comment. 4982 <MULT>: Minor clean-up. Don't convert x*-1.0 into -x if we honor 4983 signaling NaNs. Optimize -x*-x as x*x for all float modes, and 4984 abs(x)*abs(x) as x*x for scalar floating point modes. 4985 49862006-05-29 Sebastian Pop <pop@cri.ensmp.fr> 4987 4988 PR middle-end/27745 4989 * lambda-code.c (perfect_nestify): Don't copy statements 4990 in the inner loop: move them to the inner loop header. 4991 49922006-05-29 Diego Novillo <dnovillo@redhat.com> 4993 4994 PR 26237 4995 * c-tree.texi: Document OpenMP directives and clauses. 4996 49972006-05-29 Kazu Hirata <kazu@codesourcery.com> 4998 4999 * varasm.c (globalize_decl): Fix indentation. 5000 50012006-05-29 Diego Novillo <dnovillo@redhat.com> 5002 5003 PR 26242 5004 * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta, 5005 pass_fre, pass_store_ccp, pass_copy_prop, 5006 pass_store_copy_prop, pass_merge_phi, pass_nrv, 5007 pass_return_slot, pass_object_size, pass_lim, 5008 pass_linear_transform, pass_empty_loop, pass_complete_unroll, 5009 pass_loop_prefetch and pass_stdarg. 5010 50112005-05-29 Bernd Schmidt <bernd.schmidt@analog.com> 5012 5013 * config/bfin/bfin.opt (mfdpic): New option. 5014 * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o. 5015 (EXTRA_MULTILIB_PARTS): Likewise. 5016 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic. 5017 (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic 5018 multilib. 5019 * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared. 5020 (CRT_CALL_STATIC_FUNCTION): New. 5021 * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if 5022 -shared. 5023 (CRT_CALL_STATIC_FUNCTION): New. 5024 * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle 5025 FD-PIC moves. 5026 (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC. 5027 (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4. 5028 (initialize_trampoline): Changed to handle FD-PIC code generation. 5029 (expand_move): If TARGET_FDPIC, use emit_pic_move as needed. 5030 (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC. 5031 (override_options): Disallow -mid-shared-library -mfdpic combination. 5032 Can't do unaligned ops if FD-PIC. 5033 Turn off flag_pic if trying to generate non-id-shared-library 5034 non-fdpic code, since it's not supported. 5035 (bfin_assemble_integer): New function. 5036 (TARGET_ASM_INTEGER): Define. 5037 * config/bfin/crti.s (__init, __fini): Save P3 on the stack if 5038 __BFIN_FDPIC__. 5039 * config/bfin/crtn.s: Restore them. 5040 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__ 5041 if TARGET_FDPIC. 5042 (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS, 5043 LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros. 5044 (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros. 5045 (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC. 5046 (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is 5047 call-used. 5048 (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add 5049 FDPIC_REGS and FDPIC_FPTR_REGS. 5050 (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them. 5051 * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4, 5052 UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants. 5053 (load_funcdescsi): New pattern. 5054 (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic, 5055 sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic, 5056 call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns. 5057 50582006-05-29 Kazu Hirata <kazu@codesourcery.com> 5059 5060 * gcse.c, rtlanal.c: Remove obsolete comments associated with 5061 loop.c. 5062 5063 * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove. 5064 5065 * tree-flow.h: Remove the prototype for add_type_alias. 5066 * tree-ssa-alias.c (add_type_alias): Remove. 5067 50682006-05-28 Kazu Hirata <kazu@codesourcery.com> 5069 5070 * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c, 5071 config/fr30/fr30.md, config/i386/i386-interix.h, 5072 config/i386/i386.c, config/i386/i386.md, config/sh/superh.h, 5073 config/sh/superh64.h, config/v850/v850.c, df-core.c, 5074 df-problems.c, df.h, except.c, final.c, haifa-sched.c, 5075 lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c, 5076 reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c, 5077 tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos. 5078 Follow spelling conventions. 5079 * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos. 5080 Follow spelling conventions. 5081 50822006-05-27 Richard Guenther <rguenther@suse.de> 5083 5084 PR middle-end/27773 5085 * fold-const.c (fold_plusminus_mult_expr): Use fold_convert 5086 to produce a constant of value 1 of generic type. 5087 50882006-05-27 Dirk Mueller <dmueller@suse.de> 5089 5090 * cgraphunit.c (decide_is_function_needed): Fix wrong 5091 PR reference. 5092 50932006-05-26 Ulrich Weigand <uweigand@de.ibm.com> 5094 5095 PR rtl-optimization/27661 5096 * reload.c (find_reloads): When reloading a VOIDmode constant 5097 as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint, 5098 use Pmode as mode of the reload register. 5099 51002006-05-26 Eric Botcazou <ebotcazou@adacore.com> 5101 5102 * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time 5103 is enabled at -O and above. 5104 51052006-05-26 Steven Bosscher <steven@gcc.gnu.org> 5106 5107 PR target/27571 5108 * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump 5109 table data. 5110 51112006-05-25 Mark Mitchell <mark@codesourcery.com> 5112 5113 PR c++/20103 5114 * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var 5115 for anonymous variables explicitly declared by front ends. 5116 51172006-05-25 Eric Botcazou <ebotcazou@adacore.com> 5118 5119 * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro. 5120 (struct alias_info): Add new field ref_all_symbol_mem_tag. 5121 * tree-ssa-alias.c (compute_may_aliases): If the program contains 5122 ref-all pointers, run a finalization pass for them. 5123 (compute_flow_insensitive_aliasing): Skip ref-all pointers. 5124 (finalize_ref_all_pointers): New function. 5125 (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a 5126 regular pointer type to a ref-all pointer type. 5127 (get_tmt_for): Return the special memory tag for ref-all pointers. 5128 51292006-05-25 Richard Guenther <rguenther@suse.de> 5130 5131 PR middle-end/27743 5132 * fold-const.c (fold_binary): Do not look at the stripped 5133 op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization. 5134 51352006-05-25 Eric Botcazou <ebotcazou@adacore.com> 5136 5137 * tree-vrp.c (extract_range_from_assert): Set the range to VARYING 5138 for LT and GT if the computed range is effectively empty. 5139 51402006-05-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 5141 5142 PR target/27627 5143 * pa/pa-modes.def: Use mips_single_format, mips_double_format and 5144 mips_quad_format formats instead of ieee_single_format, 5145 ieee_double_format and ieee_quad_format formats, respectively. 5146 51472006-05-24 Zdenek Dvorak <dvorakz@suse.cz> 5148 5149 PR tree-optimization/27639 5150 PR tree-optimization/26719 5151 * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust 5152 call to scev_probably_wraps_p. 5153 * tree-ssa-loop-niter.c (compare_trees, convert_step_widening, 5154 used_in_pointer_arithmetic_p, convert_step): Removed. 5155 (nowrap_type_p): New function. 5156 (scev_probably_wraps_p): Rewritten. 5157 * tree-scalar-evolution.c (instantiate_parameters_1): Do not call 5158 chrec_convert if chrec_convert_aggressive might have been used. 5159 * tree-chrec.c (convert_affine_scev, chrec_convert_1, 5160 scev_direction): New functions. 5161 (chrec_convert): Changed to a wrapper over chrec_convert_1. 5162 * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev 5163 instead of convert_step. 5164 * tree-flow.h (scev_probably_wraps_p): Declaration changed. 5165 (convert_step): Declaration removed. 5166 (convert_affine_scev, nowrap_type_p, scev_direction): Declare. 5167 51682006-05-23 Kenneth Zadeck <zadeck@naturalbridge.com> 5169 5170 * df-core.c: Added to header comments. 5171 * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, 5172 df_ur_bb_info, df_urec_bb_info): Added comments. 5173 * df-problems (df_ref_bitmap, ru, rd, lr, ur, 5174 urec, ri problems): Fixed header comments. 5175 (df_ru_transfer_function): Fixed in-out set dyslexia when copying 5176 code from df_rd_transfer_function. 5177 51782006-05-23 Richard Sandiford <richard@codesourcery.com> 5179 5180 * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro. 5181 (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than 5182 MIN_UNITS_PER_WORD to set the default. Also use it in the guard. 5183 51842006-05-23 Joseph Myers <joseph@codesourcery.com> 5185 5186 * expr.c (undefined_operand_subword_p): New. 5187 (emit_move_multi_word): Do not generate move from undefined bits 5188 of a paradoxical subreg. 5189 51902006-05-23 Richard Sandiford <richard@codesourcery.com> 5191 5192 PR rtl-optimization/27736 5193 * combine.c (replaced_rhs_value): New variable. 5194 (combine_instructions): Set it. 5195 (distribute_notes): When distributing a note in replaced_rhs_insn, 5196 check whether the value was used in replaced_rhs_value. 5197 51982006-05-23 Andrew MacLeod <amacleod@redhat.com> 5199 5200 PR c++/26757 5201 * tree-ssa-loop-im.c (determine_invariantness_stmt): Use 5202 add_referenced_var instead of add_referenced_tmp_var. 5203 * tree-complex.c (create_one_component_var): Use add_referenced_var. 5204 * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use 5205 add_referenced_var. 5206 * tree-tailcall.c (adjust_accumulator_values, adjust_return_value, 5207 tree_optimize_tail_calls_1): Use add_referenced_var. 5208 * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var. 5209 * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft): 5210 Use add_referenced_var. 5211 * tree-if-conv.c (ifc_temp_var): Use add_referenced_var. 5212 * gimplify.c (force_gimple_operand): Use add_referenced_var. 5213 * tree-ssa-phiopt.c (conditional_replacement, abs_replacement): 5214 Use add_referenced_var. 5215 * tree-dfa.c (struct walk_state): Remove. 5216 (find_referenced_vars): Remove walk state and vars_found hash table. 5217 (make_rename_temp): Use add_referenced_var. 5218 (find_vars_r): Pass less parameters to add_referenced_var. 5219 (referenced_var_p): New. Is var in referenced_var hash table. 5220 (referenced_var_insert): Assert var isn't already in hash table. 5221 (add_referenced_var): Don't need walk_state parameter. Add var if it 5222 isn't already in the hash table. 5223 (add_referenced_tmp_var): Remove. 5224 (find_new_referenced_vars_1): Use add_referenced_var. 5225 * tree-ssa-pre.c (create_expression_by_pieces, 5226 insert_into_preds_of_block, insert_extra_phis, realify_fake_stores): 5227 Use add_referenced_var. 5228 * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var. 5229 * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression, 5230 lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use 5231 add_referenced_var. 5232 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, 5233 vect_create_data_ref_ptr, vect_create_destination_var, 5234 vect_init_vector, vect_build_loop_niters, 5235 vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer, 5236 vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks): 5237 Use add_referenced_var. 5238 * tree-outof-ssa.c (create_temp): Use add_referenced_var. 5239 * tree-flow.h (add_referenced_tmp_var): Remove prototype 5240 (add_referenced_var): Add prototype. 5241 * tree-ssa-structalias.c (get_constraint_for, 5242 intra_create_variable_infos): Use add_referenced_var. 5243 52442006-05-23 Alexandre Oliva <aoliva@redhat.com> 5245 5246 * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for 5247 big-endian paradoxical subregs. 5248 * var-tracking.c (struct micro_operation_def): Document that, 5249 for modify micro operations, insn is the subsequent instruction. 5250 (var_reg_delete_and_set, var_mem_delete_and_set): Split into... 5251 (var_reg_set, var_mem_set): ... new functions. 5252 (add_stores): Record subsequent insn. 5253 (compute_bb_dataflow): Use new functions for MO_USE. 5254 (emit_notes_in_bb): Use new functions for MO_USE. Emit use 5255 notes after the insn, and modify notes before the insn known 5256 to be the subsequent one. 5257 (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs. 5258 52592006-05-23 Kazu Hirata <kazu@codesourcery.com> 5260 5261 PR target/27696 5262 * config/i386/i386.c (ix86_expand_builtin): Use 5263 gen_sse3_monitor64 for TARGET_64BIT. 5264 52652006-05-22 Kenneth Zadeck <zadeck@naturalbridge.com> 5266 5267 PR rtl-optimization/26375 5268 PR rtl-optimization/26855 5269 * df-problems (df_ru_bb_local_compute_process_def): Removed update 5270 to gen set. 5271 (df_ru_bb_local_compute): Reversed statements and removed bogus 5272 comment explaining why they should be in wrong order. 5273 (df_ru_dump, df_rd_dump): Enhanced debug info. 5274 * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced 5275 debug info. 5276 * ddg.c (add_deps_for_def): Converted use of reaching defs to 5277 reaching uses and fixed space problem. 5278 52792006-05-23 Jan Hubicka <jh@suse.cz> 5280 5281 * cgraphunit.c (decide_is_function_needed): Also nested functions 5282 and functions declared inline can be optimized out at -O0. 5283 52842006-05-22 Gerald Pfeifer <gerald@pfeifer.com> 5285 5286 * doc/install.texi (Configuration): Remove reference to CrossGCC 5287 FAQ which was gone. 5288 (Building): Ditto. 5289 52902006-05-22 Kazu Hirata <kazu@codesourcery.com> 5291 5292 PR target/27266 5293 * config/i386/i386.c (ix86_expand_branch): Jump to simple if 5294 ix86_compare_emitted is non-NULL. 5295 52962006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 5297 5298 PR c++/27451 5299 * stmt.c (expand_asm_operands): Skip asm statement with erroneous 5300 clobbers. 5301 53022006-05-22 Richard Sandiford <richard@codesourcery.com> 5303 5304 PR rtl-optimization/25514 5305 * combine.c (replaced_rhs_insn): New variable. 5306 (combine_instructions): Set replaced_rhs_insn when trying to replace 5307 a SET_SRC with a REG_EQUAL note. 5308 (distribute_notes): Use replaced_rhs_insn when determining the live 5309 range of a REG_DEAD register. 5310 53112006-18-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de> 5312 Anatoly Sokolov <aesok@post.ru> 5313 5314 * config/avr/avr.c (avr_mcu_types): Add support for attiny261, 5315 attiny461, attiny861, attiny25, attiny45, attiny85, attiny24, 5316 attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, 5317 atmega164p, atmega324p, atmega644p, atmega644, atmega329, 5318 atmega3290, atmega649, atmega6490, atmega406, atmega640, 5319 atmega1280, atmega1281, at90can32, at90can64, at90usb646, 5320 at90usb647, at90usb1286 and at90usb1287 devices. 5321 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 5322 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 5323 53242006-05-22 Richard Sandiford <richard@codesourcery.com> 5325 5326 * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment. 5327 53282006-05-22 Richard Guenther <rguenther@suse.de> 5329 5330 Revert 5331 2006-01-31 Richard Guenther <rguenther@suse.de> 5332 Paolo Bonzini <bonzini@gnu.org> 5333 5334 * doc/install.texi (--disable-libgcc-math): Document. 5335 53362006-05-22 Richard Guenther <rguenther@suse.de> 5337 5338 Revert 5339 2006-01-31 Richard Guenther <rguenther@suse.de> 5340 5341 * doc/invoke.texi (-msselibm): Document. 5342 * target.h (expand_library_builtin): New target hook. 5343 * builtins.c (expand_builtin): Use expand_library_builtin. 5344 (default_expand_library_builtin): New function. 5345 * gcc.c (LINK_GCC_MATH_SPEC): Define. 5346 (LINK_COMMAND_SPEC): Handle %(link_gcc_math). 5347 (link_gcc_math_spec): Declare. 5348 (static_specs): Add link_gcc_math_spec. 5349 * expr.h (default_expand_library_builtin): Declare. 5350 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define. 5351 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN. 5352 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC. 5353 * config/i386/i386.opt (msselibm): New target option. 5354 * config/i386/i386.c (ix86_builtin_function_variants): New array. 5355 (ix86_init_sse_abi_builtins): New function. 5356 (ix86_expand_library_builtin): Likewise. 5357 (TARGET_EXPAND_LIBRARY_BUILTIN): Define. 5358 (override_options): Handle error conditions wrt -msselibm. 5359 (ix86_builtins): Add function codes for SSE2 ABI builtins. 5360 (ix86_init_builtins): Call ix86_init_sse_abi_builtins. 5361 * doc/extend.texi (__builtin_sse2_*): Document new target specific 5362 builtins. 5363 53642006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 5365 5366 PR c/27420 5367 * c-common.c (self_promoting_args_p): Skip erroneous args. 5368 5369 PR c/26818 5370 * c-decl.c (finish_struct): Skip erroneous fields. 5371 53722006-05-22 Nick Clifton <nickc@redhat.com> 5373 5374 * config/cris/cris.opt (march): Remove VarExists attribute. 5375 (max-stackframe=): Likewise. 5376 53772006-05-22 Kazu Hirata <kazu@codesourcery.com> 5378 5379 * doc/rtl.texi: Fix a typo. 5380 * see.c: Fix comment typos. 5381 5382 * tree-ssa-structalias.h (alias_info): Remove num_references. 5383 53842006-05-21 Mike Stump <mrs@apple.com> 5385 5386 * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas. 5387 (BAD2): Add. 5388 (darwin_pragma_options): Use BAD instead. 5389 (darwin_pragma_unused): Likewise. 5390 (darwin_pragma_ms_struct): Likewise. 5391 53922006-05-21 David Edelsohn <edelsohn@gnu.org> 5393 5394 * config/rs6000/rs6000.md (floatsitf2): Remove constraints. 5395 53962006-05-21 Kazu Hirata <kazu@codesourcery.com> 5397 5398 PR rtl-optimization/27671 5399 * simplify-rtx.c (simplify_relational_operation_1): Fix 5400 simplifications of (eq/ne (xor x y) y) and 5401 (eq/ne (xor x y) x). 5402 5403 PR tree-optimization/26622. 5404 * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert 5405 on arg1. 5406 54072006-05-21 Bernhard Fischer <aldot@gcc.gnu.org> 5408 5409 * tree-cfg.c: Prune whitespace. 5410 (debug_tree_cfg): Point to correct header containing the 5411 TDF_* defines. 5412 54132006-05-21 Bernhard Fischer <aldot@gcc.gnu.org> 5414 5415 PR middle-end/25776 5416 * cgraphunit.c (verify_cgraph_node): Typo in error message. 5417 54182006-05-20 Andrew Pinski <pinskia@physics.uc.edu> 5419 5420 PR middle-end/25776 5421 * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error 5422 or sorry count is non zero. 5423 54242006-05-20 Andreas Schwab <schwab@suse.de> 5425 5426 * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab. 5427 54282006-05-19 Daniel Berlin <dberlin@dberlin.org> 5429 Kenneth Zadeck <zadeck@naturalbridge.com> 5430 5431 PR rtl-optimization/26855 5432 5433 * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for 5434 multiword refs. 5435 (df_scan_alloc): Added code to properly handle multiword hard 5436 registers and add all_blocks parameter. 5437 (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added 5438 code to properly handle multiword hard registers. 5439 (df_rescan_blocks): Added code to remove deleted blocks from 5440 bitmap. 5441 (df_ref_create_structure, df_ref_record): Added code to properly 5442 handle subregs. 5443 (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER 5444 and set DF_REF_PARTIAL. 5445 (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER. 5446 (df_uses_record): Added DF_REF_PARTIAL for subreg. 5447 (df_scan_add_problem): Added flags parameter. 5448 (df_ref_create_structure): Changed switching structure. 5449 (df_bb_refs_record): Fixed case where duplicate artificial refs 5450 were created. Changed location of flags. 5451 (df_record_entry_block_defs): Added code to make stack pointer 5452 live in entry block. Refined cases where frame pointer is needed. 5453 Changed location of flags. 5454 (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags. 5455 (df_set_state): Removed function. 5456 (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove, 5457 df_insn_create_insn_record, df_insn_refs_delete, 5458 df_ref_create_structure): Formatting changes. 5459 * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags, 5460 df_delete_basic_block): New function. 5461 (df_init): Changed location of flags. 5462 (df_add_problem): Added flags parameter and the way flags are 5463 processed. 5464 (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref, 5465 debug_df_chain): Improved debugging output. 5466 (df_insn_debug, df_insn_uid_debug): Added multiword reg support. 5467 (df_refs_chain_dump): Removed df parameter. 5468 (df_iterative_dataflow): Added consistency check. 5469 (df_prune_to_subcfg): Made public. 5470 (df_analyze_problem): Added blocks_to_init parameter and made 5471 public. 5472 (df_ref_record, df_bb_refs_record, df_mark_reg, 5473 df_record_exit_block_uses): Whitespace changes. 5474 (df_dump): Whitespace changes. 5475 * df.h: Some reordering to remove forward references. 5476 (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL, 5477 DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields. 5478 (df_ref_flags.DF_REF_CLOBBER): Deleted field. 5479 (dataflow.flags): New field. 5480 (df.flag): Deleted field. 5481 (df_alloc_function): Added additional bitmap parameter. 5482 (df_dependent_problem_function): New type. 5483 (df_problem.changeable_flags): New field. 5484 (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL, 5485 DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed. 5486 (df_mw_hardreg): New struct. 5487 (DF_INSN_UID_MWS): New macro. 5488 (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df 5489 parameter. 5490 (df_add_problem, df_ru_add_problem, df_rd_add_problem, 5491 df_lr_add_problem, df_ur_add_problem, df_urec_add_problem, 5492 df_ri_add_problem, df_scan_add_problem): Added flags parameter. 5493 (df_set_state): Removed function. 5494 (df_set_flags, df_clear_flags, df_delete_basic_block) New functions. 5495 * df-problems.c (df_chain_dump): Removed df parameter. 5496 (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc, 5497 df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks 5498 parameter. 5499 (df_ru_alloc, df_rd_alloc): Now resets all blocks. 5500 (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute, 5501 df_chain_create_bb, df_create_unused_note, df_ri_bb_compute): 5502 Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and 5503 DF_REF_MUST_CLOBBER cases. 5504 (df_ru_bb_local_compute_process_def, 5505 df_rd_bb_local_compute_process_def, df_lr_bb_local_compute, 5506 df_lr_bb_local_compute, df_ur_bb_local_compute, 5507 df_chain_create_bb): Made subreg aware. 5508 (df_ru_bb_local_compute, df_rd_bb_local_compute, 5509 df_lr_bb_local_compute, df_lr_bb_local_compute, 5510 df_chain_create_bb): Cleanup to use proper macros. 5511 (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary 5512 code to fixup bitvectors. 5513 (df_ri_alloc): Cleared lifetime. 5514 (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw, 5515 df_create_unused_note): New function. 5516 (df_ri_bb_compute, df_ri_compute): Added code to create/update 5517 REG_DEAD and REG_UNUSED notes as well as register information. 5518 (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump, 5519 df_chains_dump): Fixed crash if problem was never run. 5520 (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem, 5521 df_ur_add_problem, df_urec_add_problem, df_chain_add_problem, 5522 df_ri_add_problem): Processes flags in uniform manner. 5523 (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free, 5524 df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free, 5525 df_rd_dump, df_urec_free_bb_info): Formatting changes. 5526 (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump, 5527 df_rd_free_bb_info, df_rd_bb_local_compute_process_def, 5528 df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info, 5529 df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info, 5530 df_ur_dump, df_urec_free_bb_info, df_urec_dump, 5531 df_chain_create_bb, df_ri_bb_compute): Whitespace changes. 5532 * modulo-sched.c (sms_schedule): Added flag parameter to calls. 5533 * see.c (see_initialize_data): Ditto. 5534 * final.c (rest_of_clean_state) Added regstack_completed. 5535 * rtl.h (regstack_completed): Ditto. 5536 * reg-stack.c (regstack_completed): Ditto. 5537 55382006-05-19 Mike Stump <mrs@apple.com> 5539 5540 * c-tree.h (default_conversion): Remove. 5541 * c-common.h (default_conversion): Add. 5542 55432006-05-19 Zdenek Dvorak <dvorakz@suse.cz> 5544 5545 * tree-vrp.c (valid_value_p): New function. 5546 (adjust_range_with_scev): Fail if the value of bound is not 5547 simple. 5548 55492006-05-19 Richard Sandiford <richard@codesourcery.com> 5550 5551 * config/mips/linux-unwind.h: Include <asm/unistd.h> 5552 (mips_fallback_frame_state): Use syscall numbers to determine 5553 the appropriate li instruction for the current ABI. Only use 5554 __NR_sigreturn for o32. 5555 55562006-05-19 Nicolas Setton <setton@adacore.com> 5557 5558 * langhooks.h (struct lang_hooks): Add dwarf_name language hook. 5559 * langhooks.c (lhd_dwarf_name): New function. 5560 * langhooks-def.h (lhd_dwarf_name): Declare. 5561 (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name. 5562 * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook. 5563 55642006-05-19 Richard Sandiford <richard@codesourcery.com> 5565 5566 * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from 5567 libgcc2.h. 5568 (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old 5569 MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if 5570 LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD. 5571 * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here. 5572 Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to 5573 determine the size of Wtype, etc. 5574 * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument. 5575 (swfloatfuncs): New variable. 5576 (dwfloatfuncs): Likewise. 5577 (lib2funcs): Remove floating-point conversion functions from 5578 initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine 5579 the set of conversion routines needed. Allow entries to specify 5580 an object name, filename and word size. Update users accordingly. 5581 * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS. 5582 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define. 5583 5584 Revert: 5585 5586 2006-02-08 Roger Sayle <roger@eyesopen.com> 5587 5588 PR target/22209 5589 * config/fixtfdi.c: New libgcc source file. 5590 * config/fixunstfdi.c: New source file. 5591 * config/floatditf.c: New source file. 5592 * config/floatunditf.c: New souce file. 5593 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source 5594 files above instead of config/mips/_tilib.c. 5595 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. 5596 55972006-05-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 5598 5599 * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'. 5600 * pa/pa-hpux11.h (LIB_SPEC): Update comment. 5601 56022006-05-18 Mike Stump <mrs@apple.com> 5603 5604 Fix up vla, vm and [*] sematics. 5605 5606 PR c/18740 5607 PR c/7948 5608 PR c/25802 5609 PR c/27673 5610 * c-tree.h (struct c_arg_info): Add had_vla_unspec. 5611 (c_vla_unspec_p): Add. 5612 (c_vla_type_p): Add. 5613 * c-decl.c (struct c_scope): Add had_vla_unspec. 5614 (build_array_declarator): Add support for [*]. 5615 (grokdeclarator): Likewise. 5616 (grokparms): Likewise. 5617 (get_parm_info): Likewise. 5618 * c-objc-common.c (c_vla_unspec_p): Likewise. 5619 * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise. 5620 * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to 5621 typeof when argument is a variably modified type not inside sizeof or alignof. 5622 (c_parser_direct_declarator_inner): Propagate errors. 5623 (c_parser_sizeof_expression): Add support for [*]. 5624 (c_parser_parms_declarator): Initialize had_vla_unspec. 5625 (c_parser_parms_list_declarator): Likewise. 5626 * c-typeck.c (c_vla_type_p): Add. 5627 (composite_type): Add support for vla compositing. 5628 (comptypes_internal): Add support for vla compatibility. 5629 (c_expr_sizeof_expr): Evaluate vla arguments. 5630 * tree.c (variably_modified_type_p): Update comment for [*]. 5631 56322006-05-18 Michael Matz <matz@suse.de> 5633 5634 PR target/27599 5635 * config.host: Make assignments to host_xmake_file cumulative. 5636 * config.host (*-darwin*): Test $host, not $target. 5637 56382006-05-12 Stuart Hastings <stuart@apple.com> 5639 5640 * config/i386/i386.opt (-mstackrealign): New flag. 5641 * config/i386/i386.c (force_align_arg_pointer): New attribute. 5642 (ix86_handle_cconv_attribute): Emit error when 5643 force_align_arg_pointer attribute collides with too many regparms. 5644 (ix86_function_regparm): Limit regparms when used with 5645 force_align_arg_pointer attribute. (ix86_internal_arg_pointer): 5646 Support stack-realigning prologue in non-main functions. Emit 5647 warning for nested functions under -mstackrealign, emit error for 5648 nested functions with force_align_arg_pointer attribute. 5649 * doc/extend.texi (force_align_arg_pointer): Document it. 5650 * doc/invoke.texi (-mstackrealign): Document it. 5651 56522006-05-17 Kazu Hirata <kazu@codesourcery.com> 5653 5654 PR rtl-optimization/27477 5655 * combine.c (try_combine): Don't split a parallel consisting 5656 of two sets into two individual sets if both sets reference 5657 cc0. 5658 56592006-05-17 H.J. Lu <hongjiu.lu@intel.com> 5660 5661 * config/arm/arm.opt (target_fpe_name): Remove VarExists. 5662 * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise. 5663 5664 * doc/options.texi (VarExists): Updated. 5665 56662006-05-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 5667 5668 * unwind-dw2.c: Add declarations for uw_update_context and 5669 uw_frame_state_for. 5670 * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is 5671 detected, advance frame state and context once to skip over stub. 5672 56732006-05-17 Sebastian Pop <pop@cri.ensmp.fr> 5674 5675 PR middle-end/20256 5676 PR middle-end/26435 5677 * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p. 5678 Call rewrite_into_loop_closed_ssa only when something changed. 5679 * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration. 5680 * lambda-code.c (can_convert_to_perfect_nest): Declared. 5681 (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter. 5682 Test for perfect_nest_p here. Fix formating. 5683 (replace_uses_equiv_to_x_with_y): Fix formating. 5684 (stmt_uses_op): Removed. 5685 (can_convert_to_perfect_nest): Removed loopivs parameter. 5686 Complete the test by checking the scalar dependences. 5687 (perfect_nestify): Remove the test for can_convert_to_perfect_nest. 5688 Fix formating. 5689 56902005-05-17 Bernd Schmidt <bernd.schmidt@analog.com> 5691 5692 PR bootstrap/22541 5693 From Dan Kegel <dank@kegel.com>: 5694 * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR. 5695 56962006-05-17 Eric Botcazou <ebotcazou@adacore.com> 5697 5698 * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true 5699 if the element type is variably modified without recursing. 5700 57012006-05-17 Sebastian Pop <pop@cri.ensmp.fr> 5702 5703 PR middle-end/27332 5704 * tree-loop-linear.c (try_interchange_loops): Test for 5705 no data dependences. 5706 57072006-05-17 Zdenek Dvorak <dvorakz@suse.cz> 5708 5709 PR tree-optimization/27548 5710 * tree-scalar-evolution.c (scev_const_prop): Do not prolong life 5711 range of ssa names that appear on abnormal edges. 5712 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export. 5713 * tree-flow.h (contains_abnormal_ssa_name_p): Declare. 5714 57152005-05-17 Bernd Schmidt <bernd.schmidt@analog.com> 5716 5717 PR middle-end/27620 5718 * expr.c (safe_from_p): Handle CONSTRUCTOR again. 5719 57202006-05-17 Jakub Jelinek <jakub@redhat.com> 5721 5722 PR middle-end/27415 5723 * tree.h (OMP_PARALLEL_COMBINED): Define. 5724 * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field. 5725 (new_omp_context): Add is_combined_parallel argument. 5726 (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust 5727 new_omp_context caller. 5728 (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare): 5729 Adjust gimplify_scan_omp_clauses callers. 5730 (omp_is_private): Issue errors if iteration variable is firstprivate 5731 or reduction in the current context. 5732 * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED 5733 on combined parallel workshare constructs. 5734 57352006-05-16 H.J. Lu <hongjiu.lu@intel.com> 5736 5737 * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o. 5738 (gcc-options.o): New rule. 5739 5740 * optc-gen.awk: Protect variables for gcc-options.o with 5741 #ifdef GCC_DRIVER/#endif. 5742 57432006-05-16 Daniel Berlin <dberlin@dberlin.org> 5744 5745 Fix PR tree-optimization/27373 5746 * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument. 5747 (forward_propagate_addr_expr): Update call. 5748 57492006-05-16 H.J. Lu <hongjiu.lu@intel.com> 5750 5751 * doc/options.texi: Move the Negative option. 5752 57532006-05-16 Richard Guenther <rguenther@suse.de> 5754 5755 PR tree-optimization/22303 5756 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads 5757 from STRING_CSTs. 5758 (evaluate_stmt): Fall back to fold_const_aggregate_ref, if 5759 ccp_fold did not simplify the statement. 5760 57612006-05-16 H.J. Lu <hongjiu.lu@intel.com> 5762 5763 PR driver/26885 5764 * Makefile.in (GCC_OBJS): New. 5765 (OBJS-common): Add opts-common.o. 5766 (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS). 5767 (cpp$(exeext)): Likewise. 5768 (gcc.o): Also depend on opts.h. 5769 (opts-common.o): New. 5770 5771 * common.opt (gcoff): Add Negative(gdwarf-2). 5772 (gdwarf-2): Add Negative(gstabs). 5773 (gstabs): Add Negative(gstabs+). 5774 (gstabs+): Add Negative(gvms). 5775 (gvms): Add Negative(gxcoff). 5776 (gxcoff): Add Negative(gxcoff+). 5777 (gxcoff+): Add Negative(gcoff). 5778 * config/i386/i386.opt (m32): Add Negative(m64). 5779 (m64): Add Negative(m32). 5780 5781 * doc/options.texi: Document the Negative option. 5782 5783 * gcc.c: Include "opts.h". 5784 (main): Call prune_options after expandargv. 5785 5786 * optc-gen.awk: Generate common declarations for all flag 5787 variables in options.c. Output the neg_index field. 5788 5789 * opts.c (find_opt): Moved to ... 5790 * opts-common.c: Here. New file. 5791 5792 * opts.h (cl_option): Add a neg_index field. 5793 (find_opt): New. 5794 (prune_options): Likewise. 5795 57962006-05-16 Jakub Jelinek <jakub@redhat.com> 5797 5798 PR middle-end/27573 5799 * omp-low.c (expand_omp_parallel): Don't assert 5800 .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block, 5801 instead search for it. 5802 5803 PR c/27499 5804 * gimplify.c (gimplify_omp_for): Remove assertion that iteration var 5805 is signed. 5806 58072006-05-16 Andreas Schwab <schwab@suse.de> 5808 5809 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end 5810 defmac. 5811 58122006-05-15 Roger Sayle <roger@eyesopen.com> 5813 5814 PR target/26600 5815 * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode 5816 integer constants other than zero are only legitimate on TARGET_64BIT. 5817 <CONST_VECTOR> Only zero vectors are legitimate. 5818 (ix86_cannot_force_const_mem): Integral and vector constants can 5819 always be put in the constant pool. 5820 58212006-05-16 DJ Delorie <dj@redhat.com> 5822 5823 * crtstuff.c (__dso_handle): Set section from 5824 TARGET_LBIGCC_SDATA_SECTION if defined. 5825 * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document. 5826 * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define. 5827 58282006-05-16 Danny Smith <dannysmith@users.sourceforge.net> 5829 5830 PR target/27599 5831 * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to 5832 host_xmake_file. 5833 58342006-05-16 Ben Elliston <bje@au.ibm.com> 5835 5836 * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'. 5837 58382006-05-15 Per Bothner <per@bothner.com> 5839 5840 * tree.c: (last_annotated_node): Use source_locus typedef. 5841 This permits bootstrapping with --enable-mapped-location. 5842 58432006-05-15 Zdenek Dvorak <dvorakz@suse.cz> 5844 5845 PR tree-optimization/26830 5846 * tree-into-ssa.c (struct ssa_name_info): Add age field. 5847 (info_for_ssa_name, current_info_for_ssa_name_age, 5848 blocks_to_update): New variables. 5849 (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX. 5850 (clear_ssa_name_info, initialize_flags_in_bb, 5851 mark_block_for_update): New functions. 5852 (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL. 5853 (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update, 5854 prepare_def_site_for): Use mark_block_for_update. 5855 (mark_def_interesting): Assert that the processed block is marked in 5856 blocks_to_update. Do not take blocks argument. 5857 (prepare_use_sites_for, prepare_names_to_update): Do not take blocks 5858 argument. 5859 (rewrite_update_init_block, rewrite_update_stmt): Only process 5860 blocks with statements to rewrite. 5861 (delete_update_ssa): Do not clear SSA_NAME_AUX. 5862 (update_ssa): Initialize and free blocks_to_update. Do not 5863 clear flags on statements. Do not use blocks bitmap. 5864 * tree.h (SSA_NAME_AUX): Removed. 5865 (struct tree_ssa_name): Removed aux field. 5866 * print-tree.c (print_node): Do not print SSA_NAME_AUX. 5867 58682006-05-15 Richard Guenther <rguenther@suse.de> 5869 5870 PR tree-optimization/27603 5871 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): 5872 Do computations in original type. 5873 58742006-05-15 Mircea Namolaru <namolaru@il.ibm.com> 5875 5876 * see.c: Code style changes such as redundant paranthesis, 5877 redundant intialization of local variables etc. 5878 (see_main): Declared now as static. 5879 * doc/invoke.texi: Update that -fsee is not enabled by 5880 default at -O3. 5881 58822006-05-15 Jakub Jelinek <jakub@redhat.com> 5883 5884 * omp-low.c (check_omp_nesting_restrictions): New function. 5885 (scan_omp_1): Call it. 5886 5887 PR middle-end/27416 5888 * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned 5889 construct, return *VAR. 5890 58912006-05-14 Kaz Kojima <kkojima@gcc.gnu.org> 5892 5893 PR rtl-optimization/27406 5894 * bt-load.c (migrate_btr_def): Skip the block having abnormal 5895 edges. 5896 58972006-05-14 Roger Sayle <roger@eyesopen.com> 5898 5899 PR rtl-optimization/27538 5900 * combine.c (expand_compound_operation): Call gen_lowpart 5901 before calling simplify_shift_const. 5902 59032006-05-14 Roger Sayle <roger@eyesopen.com> 5904 5905 PR rtl-optimization/22563 5906 * expmed.c (store_fixed_bit_field): When using AND and IOR to store 5907 a fixed width bitfield, always force the intermediates into psuedos. 5908 59092006-05-14 Bernhard Fischer <aldot@gcc.gnu.org> 5910 5911 PR 27501 5912 * mkconfig.sh: Use operator = instead of == for test. 5913 59142006-05-13 Nick Clifton <nickc@redhat.com> 5915 5916 * dwarf2out.c (dbx_reg_number): Check return value from 5917 LEAF_REG_REMAP and only use it if it is valid. 5918 (multiple_reg_loc_descriptor): Likewise. 5919 59202006-05-13 Richard Guenther <rguenther@suse.de> 5921 5922 * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to 5923 host_xmake_file. 5924 59252006-05-13 Steven Bosscher <stevenb.gcc@gmail.com> 5926 5927 * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow 5928 information attached to non-INSNs such as NOTEs. 5929 (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise. 5930 59312006-05-12 Andreas Krebbel <krebbel1@de.ibm.com> 5932 5933 * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for 5934 On contraint. 5935 * config/s390/s390.md: Adjust comment describing On constraint. 5936 59372006-05-11 Jan Hubicka <jh@suse.cz> 5938 5939 * cgraphunit.c (decide_is_function_needed): Don't force always_inline 5940 to be output at -O0. 5941 59422006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 5943 5944 PR middle-end/27384 5945 * fold-const.c (size_binop): Move sanity check for arguments to 5946 the beginning of the function. 5947 5948 PR middle-end/27488 5949 * fold-const.c (tree_expr_nonnegative_p): Return early on invalid 5950 expression. 5951 59522006-05-11 Richard Guenther <rguenther@suse.de> 5953 5954 PR middle-end/27529 5955 * fold-const.c (fold_unary): Handle intermediate conversion 5956 to a pointer type like intermediate conversion to an integer 5957 type in folding of (T1)(T2)var to var. 5958 Match the code to the comment in the final conversion for 5959 (T1)(T2)var to (T1)var regarding to type precision. Rather 5960 than disallow T1 being of pointer type, assert that both T1 5961 and var are of pointer type or not. Make sure not to fall 5962 over the frontends lazyness wrt array to pointer decay though. 5963 59642006-05-10 Richard Earnshaw <rearnsha@arm.com> 5965 5966 * arm.c (arm_struct_value_rtx): Delete. 5967 (TARGET_STRUCT_VALUE_RTX): Use the default definition. 5968 (arm_init_cumulative_args): Always initialize nregs to zero. 5969 59702006-05-10 Richard Guenther <rguenther@suse.de> 5971 5972 PR tree-optimization/27532 5973 * tree-object-size.c (plus_expr_object_size): Fix typo. 5974 59752006-05-10 Kazu Hirata <kazu@codesourcery.com> 5976 5977 PR target/24949 5978 * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem, 5979 ashrdi_const, ashrdi3): Use a scratch register. 5980 59812006-05-10 Richard Guenther <rguenther@suse.de> 5982 5983 PR tree-optimization/27302 5984 * fold-const.c (operand_equal_p): For two comparisons, 5985 try comparison of one comparison code swapped if that yields 5986 the same code. 5987 59882006-05-10 Ben Elliston <bje@au.ibm.com> 5989 5990 * tree-pretty-print.c (pretty_print_string): No need to handle 5991 '\0' as a special character. 5992 5993 * tree.h: Include "hashtab.h". 5994 (iterative_hash_expr): Use hashval_t in its prototype. 5995 * Makefile.in (TREE_H): Add $(HASHTAB_H). 5996 59972006-05-09 Steve Ellcey <sje@cup.hp.com> 5998 5999 PR bootstrap/26872 6000 * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes. 6001 (hppa*64*-*-hpux11*): Ditto. 6002 (hppa[12]*-*-hpux11*): Ditto. 6003 60042006-05-09 David Edelsohn <edelsohn@gnu.org> 6005 6006 PR target/26545 6007 * config/rs6000/aix41.h (TARGET_64BIT): Define. 6008 60092006-05-09 Michael Matz <matz@suse.de> 6010 6011 * config.host (<i[34567]86-*-*, x86_64-*-*>): Set 6012 host_extra_gcc_objs and host_xmake_file. 6013 (<*-*-linux*>): Don't overwrite host_xmake_file. 6014 * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS. 6015 * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define. 6016 (host_detect_local_cpu): Declare. 6017 (CC1_CPU_SPEC): Add -march=native and -mtune=native cases. 6018 * config/i386/i386.c (override_options): Handle -mtune=native 6019 as -mtune=generic. 6020 * config/i386/x-i386: New file. 6021 * config/i386/driver-i386.c: New file. 6022 * doc/invoke.texi (<i386 and x86-64 Options>): Describe 6023 cpu-type "native". 6024 60252006-05-09 Dirk Mueller <dmueller@suse.de> 6026 Richard Guenther <rguenther@suse.de> 6027 6028 PR middle-end/27498 6029 * fold-const.c (fold_read_from_constant_string): Relax check 6030 for matching types to matching modes. 6031 60322006-05-09 Zdenek Dvorak <dvorakz@suse.cz> 6033 6034 PR rtl-optimization/27335 6035 * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the 6036 loops. 6037 60382006-05-08 Chao-ying Fu <fu@mips.com> 6039 Richard Sandiford <richard@codesourcery.com> 6040 6041 * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns. 6042 (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise. 6043 * config/mips/mips.md (UNSPEC_SCC): New constant. 6044 * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare. 6045 * config/mips/mips.c (mips_reverse_fp_cond_p): New function. 6046 (mips_emit_compare): Use it. 6047 (mips_expand_vcondv2sf): New function. 6048 60492006-05-08 Daniel Berlin <dberlin@dberlin.org> 6050 6051 Fix PR tree-optimization/27093 6052 * tree-ssa-alias.c (recalculate_used_alone): Mark variables for 6053 renaming when they become not-used_alone. 6054 60552006-05-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 6056 6057 * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter 6058 relocation and relocation stubs. 6059 60602006-05-08 Eric Christopher <echristo@apple.com> 6061 6062 * unwind-dw2-fde-darwin.c (examine_objects): Only check data 6063 section for ppc. 6064 60652006-05-08 Jan Hubicka <jh@suse.cz> 6066 6067 PR middle-end/24561 6068 * cgraphunit.c (decide_is_function_needed): When not optimizing even 6069 unused static functions are needed. 6070 60712006-05-08 Roger Sayle <roger@eyesopen.com> 6072 6073 PR target/27158 6074 * reload.c (find_reloads_toplev): Only return the simplified SUBREG 6075 of a reg_equiv_constant if the result is a legitimate constant. 6076 60772006-05-08 Uros Bizjak <uros@kss-loka.si> 6078 6079 PR target/27277 6080 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For 6081 standard 80387 constants, raise the cost to prevent 6082 compress_float_constant() to generate load from memory. 6083 60842006-05-08 Kazu Hirata <kazu@codesourcery.com> 6085 6086 * config/arm/constraints.md (c): Fix a typo. 6087 6088 * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment 6089 typos. 6090 60912006-05-07 H.J. Lu <hongjiu.lu@intel.com> 6092 6093 PR target/24879 6094 * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use 6095 inline function. 6096 (_mm_mwait): Likewise. 6097 6098 * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with 6099 "mwait". 6100 (sse3_monitor): Make it 32bit only. 6101 (sse3_monitor64): New. 64bit monitor. 6102 61032006-05-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 6104 6105 PR target/27421 6106 * config/i386/i386.c (classify_argument): Skip fields with invalid 6107 types. 6108 61092006-05-07 Richard Guenther <rguenther@suse.de> 6110 6111 PR tree-optimization/27409 6112 * tree-ssa-structalias.c (get_constraint_for_component_ref): 6113 Do not try to find zero-sized subvars. 6114 61152006-05-07 Richard Guenther <rguenther@suse.de> 6116 6117 PR tree-optimization/27136 6118 * tree-ssa-loop-niter.c (get_val_for): Correct function 6119 comment, assert requirements. 6120 (loop_niter_by_eval): Stop processing if the iterated 6121 value did not simplify. 6122 61232006-05-07 Mircea Namolaru <namolaru@il.ibm.com> 6124 6125 * opts.c (flag_see): remove its setting at -O3. 6126 61272006-05-07 Richard Earnshaw <rearnsha@arm.com> 6128 6129 * genpeep.c (main): Make insn-peep.c depend on flags.h. 6130 * arm/constraints.md: New file. 6131 * arm.h (REG_CLASS_FROM_LETTER_P): Delete. 6132 (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER) 6133 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER) 6134 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM) 6135 (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR) 6136 (EXTRA_MEMORY_CONSTRAINT): Likewise. 6137 * arm.md: Include constraints.md. 6138 (thumb_movsi_insn): Use satisfies_constraint_J. 6139 (movhi, movqi): Use satisfies_constraint_I. 6140 61412006-04-29 Anatoly Sokolov <aesok@post.ru> 6142 6143 * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name 6144 for atmeg a645 device. 6145 61462006-05-06 Richard Guenther <rguenther@suse.de> 6147 6148 PR tree-optimization/27151 6149 * tree-vect-transform.c (vectorizable_condition): Punt on 6150 values that have a different type than the condition. 6151 61522006-05-03 Aldy Hernandez <aldyh@redhat.com> 6153 6154 PR/21391 6155 * c-parser.c (c_parser_cast_expression): Only insert casts into 6156 hash table if pointer. 6157 * function.c (used_types_insert_helper): Rename from 6158 used_types_insert. 6159 (used_types_insert): Call used_types_insert_helper. 6160 * function.h (used_types_insert): Accept only one argument. 6161 61622006-05-05 David Edelsohn <edesohn@gnu.org> 6163 6164 * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered 6165 scratch with output modifier. 6166 61672006-05-04 David Edelsohn <edelsohn@gnu.org> 6168 6169 PR target/26481 6170 * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint 6171 with output modifier. 6172 61732006-05-04 Richard Sandiford <richard@codesourcery.com> 6174 6175 PR target/26765 6176 * config/mips/mips.c (mips_symbolic_address_p): Return true 6177 for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL, 6178 SYMBOL_GOTTPREL, and SYMBOL_TLS. 6179 61802006-05-04 Richard Guenther <rguenther@suse.de> 6181 6182 PR tree-optimization/14287 6183 PR tree-optimization/14844 6184 PR tree-optimization/19792 6185 PR tree-optimization/21608 6186 PR tree-optimization/27090 6187 * tree-ssa-pre.c (try_combine_conversion): New function. 6188 (compute_avail): After constructing the value-handle 6189 expression, use try_combine_conversion to combine NOP_EXPRs 6190 with previous value-handle expressions and use the result if it 6191 is available. 6192 61932006-05-04 Joseph S. Myers <joseph@codesourcery.com> 6194 6195 * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove. 6196 61972006-05-04 Jan Hubicka <jh@suse.cz> 6198 6199 PR middle-end/25962 6200 * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing. 6201 62022006-05-04 Bernd Schmidt <bernd.schmidt@analog.com> 6203 6204 * config/bfin/predicates.md (const01_rtx): Tell generator programs 6205 that this only matches CONST_INTs. All users changed to VOIDmode 6206 operands. 6207 6208 * config/bfin/bfin.c: Include "optabs.h". 6209 (bfin_rtx_costs): Some costs for vector operations, to allow combine 6210 to do more work. 6211 (enum bfin_builtins): Add a number of fractional and vector builtins. 6212 (bfin_init_builtins): Likewise. 6213 (struct builtin_description, bdesc_2arg, bdesc_1arg): New. 6214 (safe_vector_operand, bfin_expand_binop_builtin, 6215 bfin_expand_unop_builtin): New functions. 6216 (bfin_expand_builtin): Handle the new builtins. 6217 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define 6218 __ADSPBLACKFIN__. 6219 62202006-05-04 Leehod Baruch <leehod@il.ibm.com> 6221 6222 * see.c: New file. 6223 * Makefile.in (OBJS-common): Add see.o. 6224 (see.o): Add dependencies. 6225 * common.opt (fsee): New flag for the see optimization was added. 6226 * opts.c (flag_see): Initialized. 6227 * passes.c (init_optimization_passes, pass_see): New pass. 6228 * rtl.h (see_main): Declaration as extern. 6229 * timevar.def (TV_SEE): New. 6230 * tree-pass.h (pass_see): Declaration as extern. 6231 * invoke.texi (-fsee): Document. 6232 * recog.c (validate_simplify_insn): New function. 6233 * recog.h (validate_simplify_insn): Declaration as extern. 6234 * df-problems.c (df_chain_dump): Check for NULL. 6235 62362006-05-04 Kenneth Zadeck <zadeck@naturalbridge.com> 6237 Daniel Berlin <dberlin@dberlin.org> 6238 6239 * cfgrtl.c (insert_insn_bb_end_new): New function. 6240 * basic-block.h (insert_insn_bb_end_new): Declaration as extern. 6241 62422006-05-04 Leehod Baruch <leehod.baruch@weizmann.ac.il> 6243 6244 * df.h (struct web_entry): Moved from web.c. 6245 (union_defs): Declaration as extern. 6246 (unionfind_root): Likewise. 6247 (unionfind_union): Likewise. 6248 * web.c (struct web_entry): Moved to df.h. 6249 (unionfind_root): Remove static declaration. 6250 (unionfind_union): Likewise. 6251 (union_defs): Likewise and generalize to use callback function. 6252 (web_main): Update arguments for union_defs function call. 6253 62542006-05-04 Richard Guenther <rguenther@suse.de> 6255 6256 PR tree-optimization/26447 6257 * tree-ssa-pre.c (realify_fake_stores): For necessary loads 6258 produce SSA_NAME copies before the store stmt to avoid 6259 breaking exception handling. 6260 62612006-05-04 Jakub Jelinek <jakub@redhat.com> 6262 6263 PR middle-end/27388 6264 * gimplify.c (omp_is_private): If var is shared in some outer context, 6265 return false instead of true. Stop searching on parallel context 6266 boundary. 6267 62682006-05-03 Alexandre Oliva <aoliva@redhat.com> 6269 6270 PR java/8260 6271 * coverage.c: Use get_gcov_unsigned_t() instead of 6272 unsigned_type_node all over. 6273 62742006-05-02 Andrew MacLeod <amacleod@redhat.com> 6275 6276 PR tree-optimization/27381 6277 * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument, 6278 maintain the same immediate_use links. 6279 * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker 6280 node rather than segfaulting. 6281 62822006-05-03 Jakub Jelinek <jakub@redhat.com> 6283 6284 PR fortran/27395 6285 * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE 6286 rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN 6287 bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER. 6288 62892006-05-02 Daniel Berlin <dberlin@dberlin.org> 6290 6291 Fix PR tree-optimization/26626 6292 * tree-ssa-structalias.c (compute_points_to_sets): For now, solve 6293 always. 6294 * tree-ssa-operands.c (access_can_touch_variable): Allow 6295 typecasting through union pointers. 6296 62972006-05-02 Jakub Jelinek <jakub@redhat.com> 6298 6299 PR c++/26943 6300 * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function. 6301 (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx 6302 to find if var will be a global variable even in the nested context. 6303 (omp_copy_decl): Only check for global variable at the end, it might 6304 be overridden in outer contexts. 6305 (scan_sharing_clauses): For global variables don't create a field. 6306 (lower_rec_input_clauses): Do nothing for global shared variables. 6307 Emit a barrier at the end of ILIST if there were any decls in both 6308 firstprivate and lastprivate clauses. 6309 (lower_send_clauses): Do nothing for global variables except for 6310 COPYIN. 6311 63122006-05-02 Zdenek Dvorak <dvorakz@suse.cz> 6313 6314 * tree.c (unsigned_type_for, signed_type_for): Make sure a type 6315 of the correct signedness is returned. 6316 63172006-05-02 Jeff Law <law@redhat.com> 6318 6319 PR tree-optimization/27364 6320 * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from 6321 multiply expressions. 6322 63232006-05-02 Tom Tromey <tromey@redhat.com> 6324 6325 * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo. 6326 63272006-05-02 Kazu Hirata <kazu@codesourcery.com> 6328 6329 PR target/27387 6330 * arm.c (arm_output_mi_thunk): Use pc-relative addressing when 6331 -mthumb -fPIC are used. 6332 63332006-05-02 Stanislaw Skowronek <skylark@linux-mips.org> 6334 Joshua Kinard <kumba@gentoo.org> 6335 6336 PR target/25871 6337 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves 6338 with 64-bit pointers. 6339 63402006-05-02 Paul Brook <paul@codesourcery.com> 6341 6342 * config/arm/arm.c (add_minipool_forward_ref): Check if insn 6343 and pool overlap. 6344 (create_fix_barrier): Check that a suitable barrier location is 6345 found. 6346 (arm_reorg): Include ftmp->address in allowable range of addresses. 6347 63482006-05-02 David Billinghurst <David.Billinghurst@riotinto.com> 6349 6350 PR ada/27366 6351 * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment 6352 on Cygwin. 6353 63542006-05-02 Jakub Jelinek <jakub@redhat.com> 6355 6356 PR middle-end/27337 6357 * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF 6358 around RESULT_DECL for result passed by reference. 6359 (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen. 6360 * omp-low.c (use_pointer_for_field): Don't look at 6361 DECL_HAS_VALUE_EXPR_P for RESULT_DECLs. 6362 (scan_omp_1): Call remap_decl on RESULT_DECLs. 6363 (lower_rec_input_clauses): Don't allocate VLA memory for the second 6364 time or var for passing by reference for 6365 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of 6366 TREE_ADDRESSABLE variables when passing by reference. 6367 6368 * omp-low.c (dump_omp_region): Fix output formatting. 6369 6370 PR middle-end/27328 6371 * omp-low.c (remove_exit_barrier): Handle NULL exit_bb. 6372 (expand_omp_parallel): Likewise. 6373 * tree-cfg.c (move_sese_region_to_fn): Likewise. 6374 6375 PR middle-end/27325 6376 * omp-low.c (lower_omp_sections): Call maybe_catch_exception 6377 on statement list containing also constructors and destructors. 6378 (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise. 6379 6380 PR middle-end/27310 6381 * except.c (duplicate_eh_regions): Fix clearing of 6382 cfun->eh->region_array entries. 6383 63842006-05-01 DJ Delorie <dj@redhat.com> 6385 6386 * configure.ac (gcc_cv_nm): Don't use an in-tree nm if 6387 build!=host. 6388 (gcc_cv_objdump): Likewise. 6389 * configure: Regenerated. 6390 63912006-05-01 Kazu Hirata <kazu@codesourcery.com> 6392 6393 PR target/27374 6394 * config/arm/vfp.md (*arm_movdi_vfp): Correct the output 6395 templates for case 3 and 4. 6396 63972006-05-01 DJ Delorie <dj@redhat.com> 6398 6399 * vec.c: Include bconfig.h when appropriate. 6400 * Makefile.in (build/vec.o): Adjust dependencies. 6401 * mkconfig.sh: Make sure config.h isn't used for build machine 6402 compiles. 6403 64042006-05-01 Zdenek Dvorak <dvorakz@suse.cz> 6405 6406 * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New 6407 variables. 6408 (mark_phi_for_rewrite): New function. 6409 (insert_phi_nodes_for, mark_use_interesting): Call 6410 mark_phi_for_rewrite. 6411 (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite. 6412 (update_ssa): Initialize and free phis_to_rewrite. 6413 64142006-05-01 Zdenek Dvorak <dvorakz@suse.cz> 6415 6416 PR rtl-optimization/27291 6417 * loop-doloop.c (add_test, doloop_modify): Handle the case condition is 6418 folded to a constant. 6419 64202006-05-01 Zdenek Dvorak <dvorakz@suse.cz> 6421 6422 PR tree-optimization/27283 6423 * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees, 6424 not whole # of iteration descriptions. 6425 (niter_for_exit): Return just # of iterations. Fail if # of iterations 6426 uses abnormal ssa name. 6427 (niter_for_single_dom_exit): Ditto. 6428 (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to 6429 return just the number of iterations. 6430 64312006-05-01 Zdenek Dvorak <dvorakz@suse.cz> 6432 6433 PR tree-optimization/27144 6434 * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function. 6435 (record_estimate): Only record constant upper bound. 6436 (infer_loop_bounds_from_undefined): Call 6437 compute_estimated_nb_iterations just once. 6438 (proved_non_wrapping_p): Renamed to ... 6439 (n_of_executions_at_most): ... this. Expect bound to be a constant. 6440 (convert_step_widening, scev_probably_wraps_p): Call 6441 n_of_executions_at_most instead of proved_non_wrapping_p. 6442 (substitute_in_loop_info): Do not replace values in bounds. 6443 * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update 6444 comments. 6445 64462006-05-01 Richard Henderson <rth@redhat.com> 6447 6448 PR c/27358 6449 * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after 6450 c_parser_skip_to_pragma_eol. Convert to switch statement. Handle 6451 CPP_PRAGMA. 6452 64532006-05-01 Roger Sayle <roger@eyesopen.com> 6454 6455 * c-typeck.c (parser_build_binary_op): Don't call the function 6456 unsigned_conversion_warning to spot operand/result type overflow. 6457 (build_binary_op): Instead, call convert_and_check instead of 6458 convert to report the problem when the operands are promoted. 6459 * c-common.c (unsigned_conversion_warning): Make static. 6460 * c-common.h (unsigned_conversion_warning): Delete prototype. 6461 64622006-05-01 Richard Guenther <rguenther@suse.de> 6463 6464 PR tree-optimization/26726 6465 * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the 6466 problem ... 6467 (find_interesting_uses_address): ... we work around here 6468 by folding INDIRECT_REFs in the substituted base. 6469 64702006-05-01 Diego Novillo <dnovillo@redhat.com> 6471 6472 * omp-low.c (dump_omp_region): Add newlines. 6473 64742006-04-30 Roger Sayle <roger@eyesopen.com> 6475 6476 * common.opt (Woverflow): New command line option. 6477 * c-common.c (constant_expression_warning): Check warn_overflow. 6478 (overflow_waring): Pass OPT_Woverflow to warning. 6479 (unsigned_conversion_warning): Likewise. 6480 (convert_and_check): Likewise. 6481 * doc/invoke.texi: Document new command line option. 6482 64832006-04-30 David Edelsohn <edelsohn@gnu.org> 6484 6485 * config/rs6000/rs6000.c (rs6000_override_options): Enable 6486 TARGET_NO_FP_IN_TOC for section anchors. 6487 (optimization_options): Enable section anchors for all 6488 non-"Objective" languages. 6489 64902006-04-28 Eric Christopher <echristo@apple.com> 6491 6492 * config/darwin-c.c (darwin_ms_struct): Move this 6493 (darwin_set_default_type_attributes): and this... 6494 * config/darwin.c: ... here. 6495 * config/darwin.h (darwin_ms_struct): Declare. 6496 64972006-04-28 Andrew MacLeod <amacleod@redhat.com> 6498 6499 * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause. 6500 65012006-04-28 Roger Sayle <roger@eyesopen.com> 6502 6503 PR c/25309 6504 * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT. 6505 (push_array_bounds): Delete prototype. Change BOUNDS argument to 6506 an unsigned HOST_WIDE_INT. 6507 (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the 6508 array index. 6509 (really_start_incremental_init): No need to call convert because 6510 bitsize_zero_node is already of type bitsizetype. 6511 (push_init_level): Extract the value of constructor_index as an 6512 unsigned HOST_WIDE_INT quantity, using tree_low_cst. 6513 (process_init_element): Likewise. 6514 65152006-04-28 Joseph S. Myers <joseph@codesourcery.com> 6516 6517 * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX 6518 value before passing to make_relative_prefix. 6519 65202006-04-28 Alan Modra <amodra@bigpond.net.au> 6521 6522 PR middle-end/27260 6523 * builtins.c (expand_builtin_memset): Expand val in original mode. 6524 65252006-04-27 Eric Christopher <echristo@apple.com> 6526 6527 * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket 6528 with #ifndef/#endif. 6529 * config/darwin-c.c (darwin_ms_struct): New. 6530 (darwin_pragma_ms_struct): Ditto. 6531 (darwin_set_default_type_attributes): Ditto. 6532 * config/darwin-protos.h (darwin_pragma_ms_struct): Declare. 6533 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): 6534 Register ms_struct pragma. 6535 * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare. 6536 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto. 6537 * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call 6538 darwin_set_default_type_attributes if TARGET_MACHO. 6539 65402006-04-27 Andrew MacLeod <amacleod@redhat.com> 6541 6542 PR tree-optimization/26854 6543 * tree-vrp.c (remove_range_assertions): Use new Immuse iterator. 6544 * doc/tree-ssa.texi: Update immuse iterator documentation. 6545 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator. 6546 * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator. 6547 * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p, 6548 first_safe_imm_use, next_safe_imm_use): Remove. 6549 (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal. 6550 (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal. 6551 (move_use_after_head): New. Helper function to sort immuses in a stmt. 6552 (link_use_stmts_after): New. Link all immuses in a stmt consescutively. 6553 (first_imm_use_stmt): New. Get first stmt in an immuse list. 6554 (next_imm_use_stmt): New. Get next stmt in an immuse list. 6555 (first_imm_use_on_stmt): New. Get first immuse on a stmt. 6556 (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt. 6557 (next_imm_use_on_stmt): New. Move to next immuse on a stmt. 6558 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator. 6559 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator. 6560 (perfect_nestify): Use new iterator. 6561 * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new 6562 iterator. 6563 * tree-flow.h (struct immediate_use_iterator_d): Add comments. 6564 (next_imm_name): New field in struct immediate_use_iterator_d. 6565 (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove. 6566 (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT, 6567 FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros. 6568 * tree-cfg.c (replace_uses_by): Use new iterator. 6569 * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator. 6570 * tree-ssa-operands.c (correct_use_link): Remove. 6571 (finalize_ssa_use_ops): No longer call correct_use_link. 6572 65732006-04-27 Stuart Hastings <stuart@apple.com> 6574 6575 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New. 6576 * config/t-darwin (crt3.o): Use it. 6577 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove 6578 'pmode', use Pmode instead of SImode for SYMBOL_REF. 6579 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv, 6580 call_nonlocal_sysv, call_value_indirect_nonlocal_sysv, 6581 call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64 6582 support. 6583 65842006-04-27 Roger Sayle <roger@eyesopen.com> 6585 6586 * expmed.c (store_fixed_bit_field): If we're not optimizing for 6587 size, force the intermediate into a new pseudo rather instead of 6588 performing both a bitwise AND and a bitwise IOR in memory. 6589 65902006-04-27 Richard Guenther <rguenther@suse.de> 6591 6592 PR rtl-optimization/26685 6593 * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named 6594 this one "max-flow-memory-locations". 6595 65962006-04-27 Richard Guenther <rguenther@suse.de> 6597 6598 PR tree-optimization/25148 6599 * tree-vrp.c (compare_values): Remove code dealing with 6600 comparisons against type min/max value. Honour overflow 6601 and negative constants in code dealing with comparisons 6602 of plus and minus expressions. 6603 (value_inside_range): Use fold_binary with LE_EXPR and 6604 GE_EXPR rather than compare_values. 6605 66062006-04-27 Dirk Mueller <dmueller@suse.de> 6607 6608 * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare 6609 prototype for SSE. 6610 66112006-04-26 Kenneth Zadeck <zadeck@naturalbridge.com> 6612 6613 * basic-block.h (safe_insert_insn_on_edge): Removed. 6614 * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed. 6615 66162006-04-26 David Edelsohn <edelsohn@gnu.org> 6617 Paolo Bonzini <bonzini@gnu.org> 6618 6619 PR middle-end/27282 6620 * combine.c (simplify_and_const_int_1): Use gen_int_mode. 6621 (simplify_and_const_int): Same. 6622 66232006-04-26 Aldy Hernandez <aldyh@redhat.com> 6624 6625 * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE. 6626 66272006-04-26 Jakub Jelinek <jakub@redhat.com> 6628 6629 PR c/26171 6630 * cgraph.c (cgraph_varpool_finalize_decl): Don't call 6631 cgraph_varpool_assemble_pending_decls if -fopenmp, unless 6632 cgraph_global_info_ready. 6633 6634 PR middle-end/26913 6635 * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR. 6636 6637 PR c/25996 6638 * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if 6639 either decl or init is error_mark_node. 6640 6641 PR middle-end/25989 6642 * tree-flow.h (struct omp_region): Add sched_kind. 6643 * omp-low.c (expand_parallel_call): Use region->inner->sched_kind 6644 instead of extracting omp for data. 6645 (expand_omp_for): Save extracted sched_kind. 6646 66472006-04-25 Roger Sayle <roger@eyesopen.com> 6648 6649 * expmed.c (store_bit_field): Also check whether the bitsize is 6650 valid for the machine's "insv" instruction before moving the 6651 target into a pseudo for use with the insv. 6652 * config/i386/predicates.md (const8_operand): New predicate. 6653 * config/i386/i386.md (extv, extzv, insv): Use the new 6654 const8_operand predicate where appropriate. 6655 66562006-04-25 DJ Delorie <dj@redhat.com> 6657 6658 * doc/install.texi (Specific): Clarify that this is not a list of 6659 supported hosts or targets. 6660 66612006-04-25 Richard Sandiford <richard@codesourcery.com> 6662 6663 PR rtl-optimization/26725 6664 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source 6665 block's BB_DIRTY flag. 6666 66672006-04-25 Geoffrey Keating <geoffk@apple.com> 6668 6669 * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there 6670 are no branches. 6671 6672 * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just 6673 to print an integer. 6674 66752006-04-25 David Edelsohn <edelsohn@gnu.org> 6676 6677 * varasm.c (align_variable): New function. 6678 (get_block_for_decl): Apply align_variable to DECL before 6679 calculating section information. 6680 (assemble_variable): Split out alignment computation. 6681 66822006-04-25 Andreas Krebbel <krebbel1@de.ibm.com> 6683 6684 * expmed.c (store_bit_field): Handle paradoxical subregs on big endian 6685 machines. 6686 66872006-04-25 Bernd Schmidt <bernd.schmidt@analog.com> 6688 6689 * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a 6690 MODE_PARTIAL_INT mode. 6691 * config/bfin/bfin-modes.def: Add V2PDI and V2SI. 6692 * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers 6693 for CONST_INTs. 6694 (hard_regno_mode_ok): V2PDImode is ok for accumulators. 6695 * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle 6696 V2PDImode. 6697 * config/bfin/predicates.md (const01_operand, vec_shift_operand): 6698 New predicates. 6699 * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG): 6700 New constants. 6701 (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS, 6702 MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2, 6703 MACFLAG_IH): Likewise. 6704 (movstricthi_1): Renamed from "*movstricthi". 6705 (load_accumulator, load_accumulator_pair, movsi_insv, insv, 6706 ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3, 6707 abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high, 6708 movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low, 6709 movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low, 6710 movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3, 6711 addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, 6712 sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, 6713 addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, 6714 mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2, 6715 ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi, 6716 flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly, 6717 flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts, 6718 flag_macv2hi_parts, flag_macv2hi_parts_acconly, 6719 flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns. 6720 6721 * doc/rtl.texi (ss_ashift): Improve wording. 6722 67232006-04-24 Geoffrey Keating <geoffk@apple.com> 6724 6725 * dwarf2out.c (verify_marks_clear): New. 6726 (prune_unused_types): Call verify_marks_clear initially, not 6727 prune_unmark_dies. 6728 67292006-04-24 Bernd Schmidt <bernd.schmidt@analog.com> 6730 6731 * rtl.def (SS_ASHIFT, SS_NEG): New codes. 6732 * doc/rtl.texi: Document them. 6733 * simplify-rtx.c (simplify_unary_operation, 6734 simplify_binary_operation_1): Don't abort when we see them. 6735 67362006-04-24 Mark Mitchell <mark@codesourcery.com> 6737 6738 Revert: 6739 2006-04-23 Mark Mitchell <mark@codesourcery.com> 6740 * configure.ac: Completely disregard languages that are not 6741 enabled. 6742 * configure: Regenerated. 6743 67442006-04-24 Andrew Pinski <pinskia@gcc.gnu.org> 6745 Richard Guenther <rguenther@suse.de> 6746 6747 PR tree-optimization/27236 6748 * tree-inline.c (copy_body_r): Make sure to copy 6749 TREE_THIS_VOLATILE flag. 6750 67512006-04-24 Richard Guenther <rguenther@suse.de> 6752 6753 PR middle-end/26869 6754 * tree-complex.c (update_parameter_components): Don't handle 6755 unused parameters which have no default def. 6756 67572006-04-24 Andrew Pinski <pinskia@gcc.gnu.org> 6758 Richard Guenther <rguenther@suse.de> 6759 6760 PR tree-optimization/27218 6761 * tree-inline.c (expand_call_inline): Strip useless type 6762 conversions for the return slot address. 6763 67642006-04-24 Richard Guenther <rguenther@suse.de> 6765 6766 * cfgloop.h (struct loops): Remove unused field array. Reorder 6767 state after num. 6768 (LOOP_PREFETCH): Remove. 6769 67702006-04-24 Richard Guenther <rguenther@suse.de> 6771 6772 PR tree-optimization/22525 6773 * value-prof.c (tree_mod_pow2): Remove unnecessary temporary 6774 variable, adjust types of generated expressions. 6775 67762006-04-23 H.J. Lu <hongjiu.lu@intel.com> 6777 6778 * Makefile.in (c-convert.o): Add dependency on $(TARGET_H) 6779 (tree-vect-patterns.o): Likewise. 6780 (jump.o): Likewise. 6781 (cselib.o): Likewise. 6782 (loop-doloop.o): Likewise. 6783 (regclass.o): Likewise. 6784 (reload1.o): Likewise. 6785 (explow.o): Replace target.h with $(TARGET_H). 6786 (ipa-prop.o): Likewise. 6787 (ipa-cp.o): Likewise. 6788 (ipa-inline.o): Likewise. 6789 (reorg.o): Likewise. 6790 (reg-stack.o): Likewise. 6791 67922006-04-23 Eric Botcazou <ebotcazou@adacore.com> 6793 6794 * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too. 6795 67962006-04-23 Mark Mitchell <mark@codesourcery.com> 6797 6798 * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE. 6799 6800 * configure.ac: Completely disregard languages that are not 6801 enabled. 6802 * configure: Regenerated. 6803 6804 PR c++/26534 6805 * c-common.h (c_build_bitfield_integer_type): Declare. 6806 * c-decl.c (c_build_bitfield_integer_type): Move to ... 6807 * c-common.c (c_build_bitfield_integer_type): ... here. 6808 68092006-04-23 Roger Sayle <roger@eyesopen.com> 6810 6811 PR target/21283 6812 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on 6813 a SImode SUBREG of a floating point register after no_new_pseudos. 6814 68152006-04-23 Roger Sayle <roger@eyesopen.com> 6816 6817 * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to 6818 identify potentially eliminable registers to additionally catch 6819 VIRTUAL_INCOMING_ARGS_REGNUM. 6820 (addsi3): Update the conditions on when to use addsi_small_int. 6821 68222006-04-23 Roger Sayle <roger@eyesopen.com> 6823 6824 PR target/16641 6825 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for 6826 STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the 6827 rtx to stack_pointer_rtx or frame_pointer_rtx directly. 6828 68292006-04-23 Eric Botcazou <ebotcazou@adacore.com> 6830 6831 * fold-const.c (range_predecessor): Use operand_equal_p 6832 as the predicate for equality. 6833 (range_successor): Likewise. 6834 68352006-04-22 Kazu Hirata <kazu@codesourcery.com> 6836 6837 Revert: 6838 * config/soft-fp/op-common.h: Fix a typo. 6839 68402006-04-22 Frank Ch. Eigler <fche@redhat.com> 6841 6842 PR libmudflap/26864 6843 * common.opt (flag_mudflap_threads): Overload flag_mudflap. 6844 * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap. 6845 68462006-04-22 Kazu Hirata <kazu@codesourcery.com> 6847 6848 * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c: 6849 Fix comment typos. 6850 * doc/tm.texi: Fix a typo. 6851 68522006-04-21 Geoffrey Keating <geoffk@apple.com> 6853 6854 * dwarf2out.c (struct die_struct): Document that die_sib makes 6855 a circular linked list. 6856 (FOR_EACH_CHILD): New. 6857 (reverse_die_lists): Delete. 6858 (reverse_all_dies): Delete. 6859 (add_dwarf_attr): Correct documentation. 6860 (remove_child_with_prev): New. 6861 (remove_child_TAG): Update for change to die_struct, use 6862 remove_child_with_prev. 6863 (add_child_die): Update for change to die_struct. 6864 (splice_child_die): Use remove_child_with_prev and add_child_die. 6865 (print_die): Use FOR_EACH_CHILD. 6866 (die_checksum): Likewise. 6867 (assign_symbol_names): Likewise. 6868 (output_location_lists): Likewise. 6869 (build_abbrev_table): Likewise. 6870 (calc_die_sizes): Likewise. 6871 (mark_dies): Likewise. 6872 (unmark_dies): Likewise. 6873 (unmark_all_dies): Likewise. 6874 (output_die): Likewise. 6875 (prune_unused_types_mark): Likewise. 6876 (prune_unused_types_walk): Likewise. 6877 (same_die_p): Update for change to die_struct. 6878 (break_out_includes): Likewise. 6879 (prune_unused_types_prune): Likewise. 6880 (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic. 6881 (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if 6882 it's already clear. 6883 (dwarf2out_finish): Don't call reverse_all_dies. 6884 68852006-04-21 Eric Christopher <echristo@apple.com> 6886 6887 * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos 6888 in comments and function names. 6889 68902006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 6891 6892 PR c/25875 6893 * c-typeck.c (digest_init): Robustify. 6894 6895 * c-typeck.c (pop_init_level): Simplify. 6896 68972006-04-21 Steve Ellcey <sje@cup.hp.com> 6898 6899 * config/pa/t-pa64: Add dependencies on $(GCC_PASSES). 6900 69012006-04-21 Paul Brook <paul@codesourcery.com> 6902 6903 * config/arm/arm.c (arm_override_options): Error on iWMMXt and 6904 hardware floating point. 6905 69062006-04-21 David Edelsohn <edelsohn@gnu.org> 6907 6908 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to 6909 NON_FLOAT_REGS. 6910 69112006-04-21 Nick Clifton <nickc@redhat.com> 6912 6913 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include 6914 OPT_EXTRA_PARTS. 6915 69162006-04-21 Alan Modra <amodra@bigpond.net.au> 6917 6918 PR target/27230 6919 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use 6920 C++ lang type in traceback table for Objective-C++. 6921 6922 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment. 6923 69242006-04-20 H.J. Lu <hongjiu.lu@intel.com> 6925 6926 * config/i386/i386.c (asm_preferred_eh_data_format): Reformat. 6927 69282006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 6929 6930 PR mudflap/26789 6931 * tree-mudflap.c (mudflap_finish_file): Skip function when there 6932 were errors. Remove check for erroneous objects. 6933 69342006-04-20 Jeff Law <law@redhat.com> 6935 6936 PR tree-optimization/26854 6937 * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when 6938 checking for zero or one use. 6939 * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly. 6940 * tree-cfgcleanup.c (merge_phi_nodes): Similarly. 6941 * tree-ssa-reassoc.c (negate_value): Similarly. 6942 (reassociate_bb): Similarly. 6943 69442006-04-20 Jakub Jelinek <jakub@redhat.com> 6945 6946 * c-pretty-print.c (pp_c_direct_abstract_declarator): Print 6947 TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather 6948 than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)). 6949 69502006-04-20 Alan Modra <amodra@bigpond.net.au> 6951 6952 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all 6953 fp regs if the last fp arg doesn't fit in regs. 6954 69552006-04-20 Kaz Kojima <kkojima@gcc.gnu.org> 6956 6957 PR target/27182 6958 * config/sh/sh.md (movsicc_true+3): Tweak condition for the case 6959 that the last insn has the REG_INC note. 6960 69612006-04-19 Carlos O'Donell <carlos@codesourcery.com> 6962 Nathan Sidwell <nathan@codesourcery.com> 6963 6964 PR c/26774 6965 * stor-layout.c (update_alignment_for_field): Do not align 6966 ERROR_MARK nodes. 6967 (place_union_field): Place union field at the start of the union. 6968 (place_field): Move ERROR_MARK check later, and use the current 6969 allocation position to maintain monotonicity. 6970 69712006-04-19 Zdenek Dvorak <dvorakz@suse.cz> 6972 6973 * dominance.c: Include timevar.h. 6974 (calculate_dominance_info): Use TV_DOMINANCE. 6975 * timevar.def (TV_DOMINANCE): New timevar. 6976 * Makefile.in (dominance.o): Add TIMEVAR_H dependency. 6977 69782006-04-19 Andreas Krebbel <krebbel1@de.ibm.com> 6979 6980 PR rtl-optimization/14261 6981 * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting 6982 move would be an INSV insn. 6983 (noce_process_if_block): Don't optimize if the destination is a 6984 ZERO_EXTRACT which can't be handled by noce_emit_move_insn. 6985 69862006-04-19 Andreas Krebbel <krebbel1@de.ibm.com> 6987 6988 * config/s390/s390.md: Add comments with the instructions emitted 6989 by an insn pattern if macros are used. 6990 69912006-04-19 Alan Modra <amodra@bigpond.net.au> 6992 6993 PR rtl-optimization/26026 6994 * fold-const.c (fold_binary): Optimize div and mod where the divisor 6995 is a known power of two shifted left a variable amount. 6996 69972006-04-18 Geoffrey Keating <geoffk@apple.com> 6998 6999 * dwarf2out.c (prune_unused_types_update_strings): Don't add strings 7000 to hash table twice when the debug_str section has SECTION_MERGE. 7001 70022006-04-18 Joseph S. Myers <joseph@codesourcery.com> 7003 7004 * config/soft-fp: New directory. From glibc. 7005 * config/soft-fp/t-softfp: New. 7006 * config/soft-fp/README: New. 7007 * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE. 7008 * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New. 7009 (libgcc.mk): Pass LIB2FUNCS_EXCLUDE. 7010 (LIBGCC_DEPS): Add $(SFP_MACHINE). 7011 * config.gcc: Use rs6000/t-fprules-fpbit or 7012 rs6000/t-fprules-softfp and soft-fp/t-softfp together with 7013 rs6000/t-fprules. 7014 * config/rs6000/sfp-machine.h: New. Based on glibc. 7015 * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp: 7016 New. 7017 * config/rs6000/t-fprules: Remove fp-bit rules. 7018 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=. 7019 * config/rs6000/t-linux64: Likewise. Remove duplicates from 7020 LIB2FUNCS_EXTRA. Remove fp-bit rules. 7021 (softfp_wrap_start, softfp_wrap_end): New. 7022 70232006-04-18 DJ Delorie <dj@redhat.com> 7024 7025 * config/m32c/m32c.h (PTRDIFF_TYPE): Define. 7026 70272006-04-18 Devang Patel <dpatel@apple.com> 7028 7029 * doc/invoke.texi (-Wuninitialized): Clarify -O connection. 7030 70312006-04-18 Nick Clifton <nickc@redhat.com> 7032 7033 * config/sh/t-symbian: Add rule to build sh-c.o 7034 * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use 7035 of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P. 7036 (sh_symbian_encode_section_info): Likewise. 7037 70382006-04-18 Andreas Krebbel <krebbel1@de.ibm.com> 7039 7040 * builtins.c (expand_builtin_strcmp): Cover label definition of 7041 do_libcall with HAVE_cmpstrnsi. 7042 70432006-04-18 Kazu Hirata <kazu@codesourcery.com> 7044 7045 * function.c (temp_slots_at_level, max_slot_level): Use VEC 7046 instead of VARRAY. 7047 * function.h (temp_slot_p): New. 7048 (function): Change the type of x_used_temp_slots to 7049 VEC(temp_slot_p,gc) *. 7050 70512006-04-18 Nick Clifton <nickc@redhat.com> 7052 7053 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to 7054 flag_strength_reduce. 7055 7056 * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo. 7057 70582006-04-18 Paolo Bonzini <bonzini@gnu.org> 7059 7060 PR target/27117 7061 7062 Partial revert of revision 112637 7063 2006-04-03 Paolo Bonzini <bonzini@gnu.org> 7064 Dale Johannesen <dalej@apple.com> 7065 7066 PR target/19653 7067 * regclass.c (struct reg_pref): Update documentation. 7068 (regclass): Set prefclass to NO_REGS if memory is the best option. 7069 (record_reg_classes): Cope with a prefclass set to NO_REGS. 7070 70712006-04-18 Paolo Bonzini <bonzini@gnu.org> 7072 7073 PR tree-optimization/26821 7074 * tree-ssa-math-opts.c (get_constant_one): New. 7075 (insert_reciprocals): Use it. 7076 70772006-04-17 Geoffrey Keating <geoffk@apple.com> 7078 7079 * dwarf2out.c (free_AT): Delete. 7080 (remove_AT): Update string ref counts. 7081 (remove_child_TAG): Don't call free_die. 7082 (free_die): Delete. 7083 (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL 7084 or DW_TAG_GNU_EINCL. 7085 (prune_unused_types_walk_attribs): Reset string refcounts. 7086 (prune_unused_types_update_strings): New. 7087 (prune_unused_types_prune): Don't make unnecessary stores. Don't 7088 call free_die. Do call prune_unused_types_update_strings. 7089 (prune_unused_types): Empty debug_str_hash. 7090 70912006-04-17 Roger Sayle <roger@eyesopen.com> 7092 7093 * expr.c (expand_assignment): Optimize away no-op moves where the 7094 source and destination are equal and have no side-effects. 7095 70962006-04-17 Richard Guenther <rguenther@suse.de> 7097 7098 PR target/26826 7099 * reload.c (push_reload): Guard calls to get_secondary_mem 7100 for memory subregs. 7101 71022006-04-16 Kazu Hirata <kazu@codesourcery.com> 7103 7104 * alias.c (reg_base_value, old_reg_base_value): Change the 7105 type to VEC(rtx,gc) *. 7106 (REG_BASE_VALUE, find_base_value, record_set, 7107 init_alias_analysis): Use VEC instead of VARRAY. 7108 7109 * alias.c (alias_sets): Change the type to 7110 VEC(alias_set_entry,gc) *. 7111 (get_alias_set_entry, new_alias_set, record_alias_subset): Use 7112 VEC instead of VARRAY. 7113 (last_alias_set): Remove. 7114 7115 * cgraph.h (cgraph_edge_p): New. 7116 Update the prototype of cgraph_function_versioning. 7117 * cgraphunit.c (cgraph_copy_node_for_versioning, 7118 cgraph_function_versioning): Use VEC instead of VARRAY. 7119 * ipa-cp.c (ipcp_insert_stage): Likewise. 7120 71212006-04-16 Roger Sayle <roger@eyesopen.com> 7122 7123 PR target/26961 7124 * fold-const.c (fold_ternary): When converting "A ? B : C" into either 7125 "A op B" or "A op C", we may need to convert A to the type of B and C. 7126 71272006-04-16 Adam Nemet <anemet@caviumnetworks.com> 7128 7129 * target.h (struct gcc_target): Add mode_rep_extended. 7130 * rtlanal.c (num_sign_bit_copies_in_rep): New global. 7131 (init_num_sign_bit_copies_in_rep): Initialize it using 7132 mode_rep_extended. 7133 (truncate_to_mode): Use it. 7134 (init_rtlanal): Call init_num_sign_bit_copies_in_rep. 7135 * targhooks.h (default_mode_rep_extended): Declare it. 7136 * targhooks.c (default_mode_rep_extended): Define it. 7137 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to 7138 default_mode_rep_extended. 7139 (TARGET_INITIALIZER): Include it. 7140 * doc/tm.texi (Misc): Document it. 7141 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it. 7142 (mips_truncated_to_mode): New function. 7143 71442006-04-16 Roger Sayle <roger@eyesopen.com> 7145 7146 PR middle-end/25474 7147 * expr.c (compress_float_constant): Copy the narrow constant into 7148 a new pseudo before extending it to its final width. 7149 71502006-04-16 Roger Sayle <roger@eyesopen.com> 7151 Andrew Pinski <pinskia@gcc.gnu.org> 7152 Dale Johannesen <dalej@apple.com> 7153 7154 PR target/24076 7155 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add 7156 special case code to implement V8HImode and V16QImode with SSE2. 7157 71582006-04-15 Roger Sayle <roger@eyesopen.com> 7159 7160 * config/i386/i386.c (ix86_va_start): Ensure all integer constant 7161 trees are constructed with a suitable tree type. 7162 71632006-04-15 Roger Sayle <roger@eyesopen.com> 7164 7165 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW. 7166 (integer_onep): Likewise. 7167 (integer_all_onesp): Likewise. 7168 (integer_pow2p): Likewise. 7169 (integer_nonzerop): Likewise. 7170 (real_zerop): Likewise. 7171 (real_onep): Likewise. 7172 (real_twop): Likewise. 7173 (real_minus_onep): Likewise. 7174 (int_size_in_bytes): Likewise. 7175 (host_integerp): Likewise. 7176 71772006-04-15 Kazu Hirata <kazu@codesourcery.com> 7178 7179 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c, 7180 jump.c, mips-tfile.c, omp-low.c, sched-int.h, 7181 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos. 7182 7183 * tree-ssa-structalias.h (alias_info): Remove num_references. 7184 71852006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7186 7187 * pa.md (output_bb patterns): Shorten long branch alternatives by 4. 7188 (output_bvb patterns): Likewise. 7189 * pa.c (output_bb): Use 'bb' insn for long branch case. 7190 (output_bvb): Likewise use '{bvb|bb}' for long branch case. 7191 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative 7192 1. Correct length operand for alternatives 1 and 2. 7193 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives 7194 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3. 7195 71962006-04-14 Roger Sayle <roger@eyesopen.com> 7197 7198 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r, 7199 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that 7200 were accidentally reverted by r112959. 7201 72022006-04-15 Jakub Jelinek <jakub@redhat.com> 7203 7204 PR middle-end/26823 7205 * except.h (eh_region_outermost): New prototype. 7206 * except.c (eh_region_outermost): New function. 7207 * tree-cfg.c (find_outermost_region_in_block): Use it. 7208 72092006-04-14 Kazu Hirata <kazu@codesourcery.com> 7210 7211 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead 7212 of VARRAY. 7213 * reload1.c (reg_equiv_memory_loc_varray): Rename to 7214 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *. 7215 (init_reload, reload): Use VEC instead of VARRAY. 7216 * reload.h: Update the prototype for 7217 reg_equiv_memory_loc_varray. 7218 72192006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com> 7220 Eric Botcazou <ebotcazou@libertysurf.fr> 7221 7222 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the 7223 register save area. 7224 72252005-04-13 Uros Bizjak <uros@kss-loka.si> 7226 7227 PR middle-end/27134 7228 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal() 7229 to expand fallback builtin function call. 7230 72312006-04-14 Alan Modra <amodra@bigpond.net.au> 7232 7233 PR middle-end/27095 7234 * builtins.c: (expand_builtin_memset): Stabilize args before expansion 7235 and emit libcall here in case the builtin fails. 7236 (expand_builtin_strcmp): Always emit the libcall here on failure. 7237 72382006-04-14 Kazu Hirata <kazu@codesourcery.com> 7239 7240 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY. 7241 * flow.c (reg_n_info): Change the type to 7242 VEC(reg_info_p,heap) *. 7243 * regclass.c (allocate_reg_info, free_reg_info): Use VEC 7244 instead of VARRAY. 7245 * regs.h (reg_info_p): New. 7246 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS, 7247 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED, 7248 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC 7249 instead of VARRAY. 7250 72512006-04-13 Eric Botcazou <ebotcazou@adacore.com> 7252 7253 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter, 7254 defaulting to 100. 7255 * params.h (MAX_SCHED_READY_INSNS): New macro. 7256 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle 7257 past MAX_SCHED_READY_INSNS during the first scheduling pass. 7258 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in 7259 the ready list for 1 cycle during the first scheduling pass. 7260 * doc/invoke.texi (--param): New parameter max-sched-ready-insns. 7261 72622006-04-13 Richard Henderson <rth@redhat.com> 7263 7264 PR libgomp/26651 7265 * gimple-low.c (lower_omp_directive): Remove dead code. 7266 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL. 7267 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE. 7268 * omp-low.c (struct omp_region): Move to tree-flow.h. 7269 (root_omp_region): Export. 7270 (omp_regions, lookup_omp_region): Remove. 7271 (determine_parallel_type): Update for struct omp_region changes. 7272 (dump_omp_region): Dump regions with block numbers. 7273 (new_omp_region): Take type and block instead of stmt; malloc 7274 instead of ggc. 7275 (free_omp_region_1, free_omp_regions): New. 7276 (expand_parallel_call): Take entry_stmt as argument; update for 7277 changes to omp_region. 7278 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT. 7279 (remove_exit_barriers): New. 7280 (expand_omp_parallel): Update for struct omp_region changes. 7281 (expand_omp_synch): Likewise. 7282 (expand_omp): Likewise. 7283 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE. 7284 (expand_omp_for_static_chunk): Likewise. 7285 (expand_omp_for): Likewise. 7286 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call. 7287 (expand_omp_sections): Similarly, with GOMP_sections_end. 7288 (expand_omp_single): New. 7289 (build_omp_regions_1): Update for OMP_CONTINUE. 7290 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions. 7291 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect 7292 OMP_SECTIONS_SECTIONS. 7293 (lower_omp_single_simple): Don't emit barrier here. 7294 (lower_omp_single_copy): Likewise. 7295 (lower_omp_single): Fix bindings, and lower to straightline now. 7296 (lower_omp_master, lower_omp_ordered): Likewise. 7297 (lower_omp_critical): Likewise. 7298 (lower_omp_for): Likewise. Emit OMP_CONTINUE. 7299 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for 7300 omp edges, free it afterward. 7301 (make_omp_sections_edges): Remove. 7302 (is_ctrl_altering_stmt): Don't bother checking flag_openmp. 7303 (move_stmt_r): Handle OMP_CONTINUE. 7304 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch 7305 statement pointers to basic blocks. Add type member. 7306 (root_omp_region, new_omp_region, free_omp_regions): Declare. 7307 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE. 7308 * tree-inline.c (estimate_num_insns_1): Likewise. 7309 * tree-pretty-print.c (dump_generic_node): Likewise. 7310 * tree-ssa-operands.c (get_expr_operands): Likewise. 7311 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand. 7312 (OMP_RETURN): Rename from OMP_RETURN_EXPR. 7313 (OMP_CONTINUE): New. 7314 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE. 7315 (OMP_SECTIONS_SECTIONS): Remove. 7316 (OMP_SECTION_LAST): New. 7317 (OMP_RETURN_NOWAIT): New. 7318 73192006-04-13 Roger Sayle <roger@eyesopen.com> 7320 7321 * fold-const.c (native_encode_vector, native_interpret_real): 7322 Correct obvious mistakes in the previous check-in. 7323 73242006-04-13 Roger Sayle <roger@eyesopen.com> 7325 7326 * fold-const.c (native_encode_expr): New function to encode 7327 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST 7328 or VECTOR_CST into a specified buffer. 7329 (native_encode_int): New function. 7330 (native_encode_real): New function. 7331 (native_encode_complex): New function. 7332 (native_encode_vector): New function. 7333 (native_interpret_expr): Inverse of native_encode_expr to convert 7334 a target representation into an INTEGER_CST, REAL_CST etc... 7335 (native_interpret_int): New function. 7336 (native_interpret_real): New function. 7337 (native_interpret_complex): New function. 7338 (native_interpret_vector): New function. 7339 (fold_view_convert_expr): New function to constant fold/evaluate 7340 a VIEW_CONVERT_EXPR of a suitable constant expression. 7341 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr. 7342 Change call of build1 to fold_build1 when constructing a 7343 VIEW_CONVERT_EXPR. 7344 73452006-04-13 Paolo Bonzini <bonzini@gnu.org> 7346 Ulrich Weigand <uweigand@de.ibm.com> 7347 7348 PR target/27006 7349 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n 7350 to be even. 7351 73522006-04-13 Alan Modra <amodra@bigpond.net.au> 7353 7354 PR target/26459 7355 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't 7356 optimize to lo_sum for DFmode if !TARGET_FPRS. 7357 73582006-04-12 Kazu Hirata <kazu@codesourcery.com> 7359 7360 * tree-ssa-alias.c (set_initial_properties, init_alias_info, 7361 delete_alias_info, compute_flow_sensitive_aliasing, 7362 group_aliases): Use VEC instead of VARRAY. 7363 * tree-ssa-structalias.c (update_alias_info): Likewise. 7364 * tree-ssa-structalias.h (alias_info): Change the type of 7365 processed_ptrs to VEC(tree,heap) *. 7366 73672006-04-12 J"orn Rennecke <joern.rennecke@st.com> 7368 7369 PR target/27060 7370 * config/sh/lib1funcs.h: New file, broken out of: 7371 * config/sh/lib1funcs.asm. 7372 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41): 7373 New macros. 7374 * config/sh/lib1funcs.asm (udivsi3_i4): Use them. 7375 * config/sh/lib1funcs-Os-4-200.asm: New file. 7376 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200. 7377 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable. 7378 (EXTRA_MULTILIB_PARTS): Include it. 7379 ($(T)sdivsi3_i4i-Os-4-200.o): New rule. 7380 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise. 7381 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS. 7382 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for 7383 TARGET_SH2. 7384 73852006-04-12 Kazu Hirata <kazu@codesourcery.com> 7386 7387 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h. 7388 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete, 7389 tpa_compact, root_var_init, type_var_init): Use VEC instead of 7390 VARRAY. 7391 * tree-ssa-live.h: Include vecprim.h. 7392 (tree_partition_associator_d): Change the type of 7393 first_partition to VEC(int,heap) *. 7394 (tpa_first_partition): Use VEC instead of VARRAY. 7395 7396 * Makefile.in (GTFILES): Move functions.h after tree.h. 7397 * function.c (reset_block_changes, record_block_change, 7398 check_block_change, free_block_changes): Use VEC instead of 7399 VARRAY. 7400 * function.h (function): Change the type of 7401 ib_boundaries_block to VEC(tree,gc) *. 7402 * tree-inline.c (copy_cfg_body): Initialize 7403 ib_boundaries_block to NULL instead of (varray_type) 0. 7404 74052006-04-12 Roger Sayle <roger@eyesopen.com> 7406 7407 * expr.c (emit_group_store): Correct operand order in call to 7408 subreg_lowpart_offset. Always create paradoxical SUBREGs with 7409 a SUBREG_BYTE of zero. 7410 74112006-04-12 Richard Guenther <rguenther@suse.de> 7412 7413 * profile.c (compute_branch_probabilities): Remove code 7414 encapsulated in !ir_type (), which are remanents of the 7415 removed RTL profiling code. 7416 * rtl-profile.c: Remove. 7417 74182006-04-12 Alan Modra <amodra@bigpond.net.au> 7419 7420 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update 7421 magic NULL_RTX comment. 7422 (function_arg): Store entire fp arg to mem if any part should go 7423 on stack. 7424 (rs6000_arg_partial_bytes): Adjust for above change. 7425 74262006-04-11 Roger Sayle <roger@eyesopen.com> 7427 7428 * dwarf2out.c (output_call_frame_info): Create debug_frame_section 7429 if it hasn't been initialized by dwarf2out_init. 7430 74312006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca> 7432 7433 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new 7434 symbolic constants in branch patterns. 7435 74362006-04-11 Roger Sayle <roger@eyesopen.com> 7437 7438 * caller-save.c: #include "addresses.h" after #include "tm_p.h". 7439 74402006-04-11 Richard Sandiford <richard@codesourcery.com> 7441 7442 PR rtl-optimization/27073 7443 * gcse.c (try_replace_reg): Revert last change. Continue to search 7444 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements 7445 on the former. 7446 74472006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr> 7448 7449 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle 7450 aggregate types other than record and union types. 7451 (function_arg): Likewise. 7452 (function_arg_pass_by_reference): In 64-bit mode, return 0 for 7453 small arrays. 7454 (function_value): In 64-bit mode, return objects that require it 7455 in FP registers. 7456 74572006-04-11 Roger Sayle <roger@eyesopen.com> 7458 7459 * dwarf2out.c (premark_used_types): Remove problematic prototype. 7460 74612006-04-11 Jakub Jelinek <jakub@redhat.com> 7462 7463 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o. 7464 74652006-04-03 Jeff Law <law@redhat.com> 7466 7467 PR/27087 7468 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive 7469 alias information too. 7470 74712006-04-10 Mike Frysinger <vapier@gentoo.org> 7472 7473 * Makefile.in (gcc-cross): Add $(exeext) to target name. 7474 74752006-04-10 Aldy Hernandez <aldyh@redhat.com> 7476 7477 PR/21391 7478 * dwarf2out.c (struct die_struct): Add die_perennial_p field. 7479 (premark_used_types_helper): New. 7480 (premark_used_types): New. 7481 (gen_subprogram_die): Call premark_used_types. 7482 (prune_unused_types_walk): Do not prune perennial dies. 7483 * function.c (used_types_insert): New. 7484 * function.h (struct function): Add used_types_hash field. 7485 (used_types_insert): Add prototype. 7486 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H. 7487 * c-parser.c (c_parser_cast_expression): Save casted types in used 7488 types hash table. 7489 74902006-04-11 Mark Mitchell <mark@codesourcery.com> 7491 7492 PR target/26459 7493 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test 7494 rs6000_explicit_options.float_gprs. 7495 74962006-04-10 Roger Sayle <roger@eyesopen.com> 7497 7498 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed 7499 from ix86_expand_vector_init_low_nonzero. Take an additional 7500 one_var argument indicating which element is non-zero. Support 7501 one_var != 0 for V4SFmode and V4SImode by permuting the result. 7502 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero 7503 with one_var instead of ix86_expand_vector_init_low_nonzero. 7504 75052006-04-10 Kazu Hirata <kazu@codesourcery.com> 7506 7507 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o, 7508 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o, 7509 global.o, cfglayout.o, lambda-code.o, reg-stack.o, 7510 build/genextract.o): Depend on vecprim.h. 7511 * cfglayout.c, df-problems.c, function.c, genextract.c, 7512 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c, 7513 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include 7514 vecprim.h. 7515 * vecprim.h: New. 7516 75172006-04-10 Geoffrey Keating <geoffk@apple.com> 7518 7519 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next. 7520 Declare VECs of this type. 7521 (struct die_struct): Make field die_attr a VEC of dw_attr_struct. 7522 (remove_children): Delete. 7523 (add_dwarf_attr): Use VEC routines. 7524 (add_AT_flag): Update for changes to add_dwarf_attr. 7525 (add_AT_int): Likewise. 7526 (add_AT_unsigned): Likewise. 7527 (add_AT_long_long): Likewise. 7528 (add_AT_vec): Likewise. 7529 (add_AT_string): Likewise. 7530 (add_AT_die_ref): Likewise. 7531 (add_AT_fde_ref): Likewise. 7532 (add_AT_loc): Likewise. 7533 (add_AT_loc_list): Likewise. 7534 (add_AT_addr): Likewise. 7535 (add_AT_lbl_id): Likewise. 7536 (add_AT_lineptr): Likewise. 7537 (add_AT_macptr): Likewise. 7538 (add_AT_offset): Likewise. 7539 (add_AT_range_list): Likewise. 7540 (get_AT): Use VEC_iterate. 7541 (remove_AT): Use VEC_ordered_remove. 7542 (free_die): Fold remove_children into here; have it use VEC_iterate. 7543 (print_die): Use VEC_iterate on attrs. 7544 (reverse_die_lists): Don't reverse attr lists. 7545 (die_checksum): Use VEC_iterate on attrs. 7546 (same_die_p): Likewise. 7547 (output_location_lists): Likewise. 7548 (build_abbrev_table): Likewise. 7549 (size_of_die): Likewise. 7550 (unmark_all_dies): Likewise. 7551 (output_abbrev_section): Likewise. 7552 (output_die): Likewise. 7553 (prune_unused_types_walk_attribs): Likewise. 7554 75552006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr> 7556 7557 * doc/install.texi (*-*-solaris2*): Point to the configure page. 7558 75592006-04-10 Jakub Jelinek <jakub@redhat.com> 7560 7561 PR debug/27057 7562 * dwarf2out.c (is_symbol_die): Return true also for namespaces. 7563 75642006-04-09 Roger Sayle <roger@eyesopen.com> 7565 7566 * expr.c (store_constructor): Don't bother clearing target if 7567 we're about to assign a vector to it using vec_init_optab. 7568 75692006-04-10 Daniel Berlin <dberlin@dberlin.org> 7570 7571 * tree-ssa-alias.c (lhs_may_store_to): New function. 7572 (recalculate_used_alone): Handle LHS of calls. 7573 75742006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7575 7576 PR target/27034 7577 PR target/26508 7578 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts. 7579 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a. 7580 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here. 7581 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines. 7582 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK. 7583 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text 7584 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB 7585 stubs. Add ".align 8" directives before all ".dword" directives. 7586 (GTHREAD_USE_WEAK): Revise comment. 7587 (TARGET_ATTRIBUTE_WEAK): Define. 7588 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o, 7589 dfi-stub.o, cxaf-stub.o and jvrc-stub.o. 7590 * stublib.c: New file. 7591 7592 PR target/26743 7593 PR target/11254 7594 PR target/10274 7595 * pa.md (cbranch patterns): Revise arguments used in calls to 7596 output_cbranch, output_bb and output_bvd. Add long branch length 7597 attributes. 7598 (fbranch patterns): Handle long branches. 7599 (jump): Revise length check. Revise arguments for output_lbranch call. 7600 Add long branch length attributes. 7601 (decrement_and_branch_until_zero): Add long branch length attributes. 7602 (output_movb, output_parallel_addb and output_parallel_movb patterns): 7603 Likewise. Revise arguments for output_parallel_addb and 7604 output_parallel_movb calls. 7605 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb, 7606 output_parallel_movb and output_parallel_addb): Update prototypes. 7607 * pa.c (output_cbranch): Revise arguments. Correct handling of 7608 nullification in long branches. 7609 (output_lbranch): Add new argument to control extraction of delay 7610 instruction. 7611 (output_bb): Handle long branches. 7612 (output_bvb, output_dbra, output_movb, output_parallel_movb, 7613 output_parallel_addb): Likewise. 7614 76152006-04-09 Richard Sandiford <richard@codesourcery.com> 7616 7617 PR rtl-optimization/27073 7618 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes, 7619 not REG_EQUIVs. 7620 76212006-04-08 Daniel Berlin <dberlin@dberlin.org> 7622 7623 * tree.h (tree_memory_tag): Add old_used_alone. 7624 (SMT_OLD_USED_ALONE): New macro. 7625 * tree-ssa-alias.c (recalculate_used_alone): Stop 7626 marking things for renaming unnecessarily. 7627 76282006-04-08 Kazu Hirata <kazu@codesourcery.com> 7629 7630 * builtins.c, config/arm/arm.c, config/i386/cygwin.h, 7631 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h, 7632 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c, 7633 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h, 7634 sched-rgn.c, tree-inline.h, tree-ssa-dom.c, 7635 tree-ssa-loop-prefetch.c, tree-ssa-operands.c, 7636 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow 7637 spelling convensions. 7638 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi, 7639 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment 7640 typos. Follow spelling conventions. 7641 76422006-04-07 DJ Delorie <dj@redhat.com> 7643 7644 * config/m32c/m32c.c (m32c_function_arg): Structures are always 7645 passed on the stack. 7646 (m32c_init_cumulative_args): When a function returns a structure, 7647 always pass the pointer to that return area on the stack. 7648 (m32c_function_arg_advance): Don't increment the parameter number 7649 if we're processing the returned structure pointer. 7650 (pushm_info): Reverse order of registers. 7651 76522006-04-07 Sebastian Pop <pop@cri.ensmp.fr> 7653 7654 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne, 7655 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt, 7656 number_of_iterations_le, number_of_iterations_cond, find_loop_niter, 7657 estimate_numbers_of_iterations_loop): Use build_int_cst instead of 7658 build_int_cst_type. 7659 * tree-chrec.c (chrec_fold_multiply_poly_poly, 7660 chrec_fold_multiply): Same. 7661 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost, 7662 force_expr_to_var_cost): Same. 7663 * tree-mudflap.c (mf_xform_derefs_1): Same. 7664 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same. 7665 76662006-04-07 David Edelsohn <edelsohn@gnu.org> 7667 7668 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not 7669 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra 7670 insn. 7671 76722006-04-07 Jan Hubicka <jh@suse.cz> 7673 7674 * ipa-inline.c (cgraph_early_inlining): Collect garbage. 7675 76762006-04-07 Richard Guenther <rguenther@suse.de> 7677 7678 PR tree-optimization/26135 7679 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory 7680 loads for store copy-prop. 7681 (copy_prop_visit_stmt): Likewise. 7682 76832006-04-05 Robert Millan <robertmh@gnu.org> 7684 7685 * config/i386/linux.h: Add a comment to mark macros that are 7686 being overriden in config/k*bsd-gnu.h. 7687 * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of 7688 DYNAMIC_LINKER. 7689 * config/knetbsd-gnu.h: Ditto. 7690 76912006-04-06 Jan Hubicka <jh@suse.cz> 7692 7693 PR profile/20815 7694 PR profile/26399 7695 * coverage.c (coverage_checksum_string): Reorganize loop to not read 7696 after buffer. 7697 76982006-04-06 Mike Stump <mrs@apple.com> 7699 7700 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if 7701 for HAVE_nonlocal_goto to be consistent. 7702 (expand_builtin_nonlocal_goto): Likewise. 7703 (expand_builtin_strcmp): Use #ifdef instead of #if 7704 for HAVE_cmpstrnsi to be consistent. 7705 77062006-04-05 DJ Delorie <dj@redhat.com> 7707 7708 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c 7709 vs m32c. 7710 77112006-04-05 Bernd Schmidt <bernd.schmidt@analog.com> 7712 7713 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow 7714 got-relative addressing for anything but SImode. 7715 7716 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered 7717 even if the calling function doesn't modify them. 7718 77192006-04-05 Richard Guenther <rguenther@suse.de> 7720 7721 PR tree-optimization/26919 7722 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument 7723 to cgraph_estimate_size_after_inlining. 7724 77252006-04-05 Alan Modra <amodra@bigpond.net.au> 7726 7727 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change. 7728 77292006-04-05 Sebastian Pop <pop@cri.ensmp.fr> 7730 7731 PR tree-optimization/26996 7732 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze 7733 VECTOR_TYPE variables. 7734 77352006-04-05 Richard Guenther <rguenther@suse.de> 7736 7737 PR tree-optimization/26763 7738 * fold-const.c (fold_comparison): Move folding of 7739 PTR + CST CMP PTR + CST ... 7740 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR. 7741 77422006-04-05 Gerald Pfeifer <gerald@pfeifer.com> 7743 7744 * doc/install.texi (Prerequisites): Refine some wording on 7745 bootstrapping and ksh. 7746 Move the version numbers of DejaGnu here from the testing section 7747 and fix casing of names. 7748 Fix markup and clarify wording for autogen requirements. 7749 Refer to GCJ instead of just java. 7750 Refer to SVN instead of CVS. 7751 Describe diffutils as useful instead of necessary. 7752 (Downloading the source): Refer to SVN instead of CVS. 7753 Adjust a link to our web site accordingly. 7754 (Configuration): Fix casing of Bison. 7755 (Building): Refer to SVN instead of CVS. 7756 Fix a sentence on the use of Bison and remove duplicate (and 7757 incorrect) version number of Bison requirement. 7758 Remove one redundant list of packages needed for building. 7759 (Specific): Avoid reference to CVS. 7760 77612006-04-04 Eric Christopher <echristo@apple.com> 7762 7763 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define. 7764 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto. 7765 (rs6000_handle_struct_attribute): New. 7766 (rs6000_ms_bitfield_layout_p): Ditto. 7767 77682006-04-04 Geoffrey Keating <geoffk@apple.com> 7769 7770 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than 7771 NULL for dso parameter to atexit_common. 7772 77732006-04-04 Eric Christopher <echristo@apple.com> 7774 7775 * config/i386/i386.c (machopic_output_stub): Output \t 7776 between instructions and operands. 7777 77782006-04-04 David Edelsohn <edelsohn@gnu.org> 7779 7780 * config/rs6000/rs6000.c (num_insns_constant_wide): Change 7781 satisfies_constraint_[IL] to explicit tests on value. 7782 77832006-04-04 Sebastian Pop <pop@cri.ensmp.fr> 7784 7785 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, 7786 set_nb_iterations_in_loop): Use build_int_cst instead of 7787 build_int_cst_type. 7788 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use 7789 build_int_cst instead of convert. 7790 77912006-04-04 Carlos O'Donell <carlos@codesourcery.com> 7792 7793 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document 7794 new value 2 for incoming. 7795 * function.c (expand_function_start): Call struct_value_rtx 7796 with incoming as 2. 7797 * config/sparc/sparc.md: Comment updated_return. 7798 * config/sparc/sparc.opt: Add -mstd-struct-return option. 7799 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard 7800 struct return if sparc_std_struct_return and incoming is 2. 7801 (print_operand): Do not adjust return if 7802 sparc_std_struct_return. 7803 78042006-04-04 Roger Sayle <roger@eyesopen.com> 7805 7806 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of 7807 convert in the middle-end. 7808 * expr.c (store_expr, store_constructor, get_inner_reference, 7809 expand_expr_real_1, string_constant, try_casesi, try_tablejump): 7810 Likewise. 7811 * tree.c (build_range_type): Likewise. 7812 78132006-04-04 Tom Tromey <tromey@redhat.com> 7814 7815 * doc/install.texi (Prerequisites): Mention jar. 7816 78172006-04-04 Daniel Berlin <dberlin@dberlin.org> 7818 7819 * doc/tree-ssa.texi (Preserving the virtual ssa form): New 7820 subsection. 7821 78222006-04-04 Matthias Klose <doko@debian.org> 7823 7824 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o. 7825 7826 PR bootstrap/26764 7827 PR bootstrap/27334 7828 * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted 7829 strings. 7830 78312006-04-03 Geoffrey Keating <geoffk@apple.com> 7832 7833 * doc/extend.texi (Function Attributes): Rewrite visibility 7834 attribute documentation. 7835 * doc/invoke.texi (C++ Dialect Options): Rewrite 7836 -fvisibility-inlines-hidden documentation to describe something 7837 entirely different, although in practise compatible. 7838 (Code Gen Options): Warn about system headers in -fvisibility= 7839 documentation. 7840 7841 * doc/extend.texi (Other Builtins): Document that 7842 __builtin_nan is a compile-time constant only when its argument 7843 is valid. 7844 78452006-04-03 Adam Nemet <anemet@caviumnetworks.com> 7846 7847 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When 7848 trying to remove TRUNCATE check if all bits outside the new mode 7849 are identical to the sign bit. 7850 78512006-04-03 Jeff Law <law@redhat.com> 7852 7853 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding 7854 and operand scanning in some common cases. 7855 78562006-04-03 Paolo Bonzini <bonzini@gnu.org> 7857 Dale Johannesen <dalej@apple.com> 7858 7859 PR target/19653 7860 * regclass.c (struct reg_pref): Update documentation. 7861 (regclass): Set prefclass to NO_REGS if memory is the best option. 7862 (record_reg_classes): Cope with a prefclass set to NO_REGS. 7863 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS 7864 into account. For non-registers, equate an empty preferred 7865 reload class to a `!' in the constraint; move the if clause to 7866 do so after those that reject the insn. 7867 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally 7868 return NO_REGS. 7869 (find_dummy_reload): Likewise. 7870 * doc/tm.texi (Register Classes): Document what it means 7871 if PREFERRED_*_RELOAD_CLASS return NO_REGS. 7872 * config/i386/i386.c (ix86_preferred_reload_class): Force 7873 using SSE registers (and return NO_REGS for floating-point 7874 constants) if math is done with SSE. 7875 (ix86_preferred_output_reload_class): New. 7876 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New. 7877 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New. 7878 * config/i386/i386.md: Remove # register preferences. 7879 78802006-04-02 Sebastian Pop <pop@cri.ensmp.fr> 7881 7882 PR bootstrap/26992 7883 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, 7884 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for 7885 the type of nb_iter. 7886 (instantiate_parameters_1): Convert the operands before calling 7887 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply. 7888 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same. 7889 78902006-04-02 Roger Sayle <roger@eyesopen.com> 7891 7892 * builtins.c (dummy_object): Use build_int_cst instead of convert. 7893 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert 7894 instead of convert. 7895 * dojump.c (do_jump): Likewise. 7896 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise. 7897 * gimplify.c (gimple_boolify, gimplify_init_constructor, 7898 gimplify_boolean_expr): Likewise. 7899 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. 7900 * varasm.c (array_size_for_constructor): Likewise. 7901 * tree-object-size.c (compute_object_offset): Likewise. 7902 79032006-04-02 Roger Sayle <roger@eyesopen.com> 7904 7905 PR middle-end/26977 7906 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns 7907 NULL_RTX, indicating it couldn't create a valid paradoxical subreg. 7908 79092006-04-02 Sebastian Pop <pop@cri.ensmp.fr> 7910 7911 PR tree-optimization/26939 7912 * tree-chrec.c (chrec_merge): Use eq_evolutions_p. 7913 79142006-04-02 Sebastian Pop <pop@cri.ensmp.fr> 7915 7916 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument 7917 at_stmt. Convert the type of operands before calling 7918 build_polynomial_chrec. 7919 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to 7920 add_to_evolution_1. 7921 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution. 7922 (instantiate_parameters_1): Convert the type of operands before calling 7923 build_polynomial_chrec. 7924 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly, 7925 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition, 7926 reset_evolution_in_loop): Insert asserts to check the types of the 7927 operands. 7928 (chrec_type): Moved... 7929 (eq_evolutions_p): Use operand_equal_p. 7930 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check 7931 the types of the operands. 7932 (chrec_type): ...here. 7933 * tree-data-ref.c (create_data_ref): Convert the operands before 7934 calling chrec_replace_initial_condition. 7935 (same_access_functions, analyze_subscript_affine_affine, 7936 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p. 7937 (compute_subscript_distance, analyze_ziv_subscript, 7938 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2, 7939 analyze_miv_subscript): Convert the operands before calling 7940 chrec_fold_minus or chrec_fold_plus. 7941 79422006-04-02 Sebastian Pop <pop@cri.ensmp.fr> 7943 7944 * tree-data-ref.c (compute_all_dependences): Use a pointer to 7945 the dependence_relations vector. 7946 (compute_data_dependences_for_loop): Adjust call to 7947 compute_all_dependences. 7948 79492006-04-01 Roger Sayle <roger@eyesopen.com> 7950 Richard Henderson <rth@redhat.com> 7951 7952 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call 7953 gimple_boolify on the condition before calling gimplify_expr. 7954 79552006-03-31 Bob Wilson <bob.wilson@acm.org> 7956 7957 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros 7958 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to 7959 the frame size. Update to use the new macros. 7960 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros. 7961 * config/xtensa/ieee754-df.S: Likewise. 7962 79632006-03-31 Richard Henderson <rth@redhat.com> 7964 7965 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into... 7966 (make_edges): ... here. Control fallthru creation with a local 7967 variable. Do not play with fake edges. 7968 (make_omp_sections_edges): Don't set EDGE_ABNORMAL. 7969 (make_goto_expr_edges): Don't play with fake edges. Make for_call 7970 a boolean. 7971 79722006-04-01 Joseph S. Myers <joseph@codesourcery.com> 7973 7974 * dwarf2.h (DW64_CIE_ID): Define. 7975 * dwarf2out.c (DWARF_CIE_ID): Define. 7976 (output_call_frame_info): Output 0xffffffff before standard 8-byte 7977 length header. Use DWARF_CIE_ID. 7978 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for 7979 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE. 7980 79812006-03-31 Kaz Kojima <kkojima@gcc.gnu.org> 7982 7983 * config/sh/linux-atomic.asm: New file. 7984 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm. 7985 79862006-03-31 DJ Delorie <dj@redhat.com> 7987 7988 * config/m32c/cond.md: Set condition flags properly throughout. 7989 * config/m32c/minmax.md: Likewise. 7990 * config/m32c/prologue.md: Likewise. 7991 * config/m32c/bitops.md: Likewise. 7992 * config/m32c/muldiv.md: Likewise. 7993 * config/m32c/mov.md: Likewise. 7994 * config/m32c/addsub.md: Likewise. 7995 * config/m32c/m32c.md: Likewise. 7996 * config/m32c/jump.md: Likewise. 7997 * config/m32c/shift.md: Likewise. 7998 7999 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to 8000 conditionally output the pattern for this. 8001 * config/m32c/m32c.c (flags_needed_for_conditional): New. 8002 (m32c_compare_redundant): New. 8003 (m32c_output_compare): New. 8004 * config/m32c/m32c-protos.h (m32c_output_compare): New. 8005 8006 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber 8007 dest, not src. Allow other 4-byte modes. 8008 80092006-03-30 Denis Chertykov <denisc@overta.ru> 8010 8011 * doc/md.texi: Refer to avr/constraints.md instead of 8012 avr/avr.h. 8013 80142006-03-30 Roger Sayle <roger@eyesopen.com> 8015 8016 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to 8017 signed vs. unsigned comparison failures on some hosts. 8018 80192006-03-31 Alan Modra <amodra@bigpond.net.au> 8020 8021 PR target/26459 8022 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08 8023 change to FLOAT_REGS. 8024 8025 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee. 8026 (rs6000_override_options): Use it. 8027 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi 8028 only for -mabi=spe/no-spe and -mabi=altivec. 8029 80302006-03-30 Geoffrey Keating <geoffk@apple.com> 8031 8032 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with 8033 !Zdynamiclib. 8034 80352006-03-30 Carlos O'Donell <carlos@codesourcery.com> 8036 8037 * Makefile.in: Rename docdir to gcc_docdir. 8038 80392006-03-30 Roger Sayle <roger@eyesopen.com> 8040 8041 PR target/17959 8042 * expr.c (emit_group_store): Optimize group stores into a pseudo 8043 register by using a paradoxical subreg to initialize the destination 8044 if the first or last member of the group specifies a "low part". 8045 80462006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 8047 8048 PR target/26734 8049 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'. 8050 * target.h (struct gcc_target.speculate_insn): Change type of the 8051 second parameter to 'int'. 8052 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to 8053 the second operand of the DEPS_LIST. 8054 (copy_DEPS_LIST_list): Update reference to the second operand of the 8055 DEPS_LIST. 8056 * rtl.h (alloc_DEPS_LIST): Update signature. 8057 * sched-int.h (ds_t): Change typedef to 'int'. 8058 (DEP_STATUS, BITS_PER_DEP_STATUS): Update. 8059 80602006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 8061 8062 * haifa-sched.c (try_ready): Change condition to restore 8063 non-speculative pattern of the instruction. 8064 (process_insn_depend_be_in_spec): Code to keep probability of the 8065 speculative dependence non-decreasing. 8066 80672006-03-30 Jie Zhang <jie.zhang@analog.com> 8068 8069 * config/bfin/bfin.c (single_move_for_strmov): Renamed to... 8070 (single_move_for_movmem): ... this. Also change all uses. 8071 (bfin_expand_strmov): Renamed to... 8072 (bfin_expand_movmem): ... this. Also change all uses. 8073 * config/bfin/bfin.md (movstrsi): Renamed to... 8074 (movstrsi): ...this. 8075 80762006-03-30 Paolo Bonzini <bonzini@gnu.org> 8077 8078 PR tree-optimization/26830 8079 8080 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth. 8081 (copy_prop_visit_stmt): Remove write-only variable ann. 8082 (init_copy_prop): Check variable loop depth here. Do not simulate 8083 memory-tag and virtual operand PHIs except for store copy prop. 8084 80852006-03-30 Richard Guenther <rguenther@suse.de> 8086 8087 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic 8088 variants with double arguments. 8089 80902006-03-29 David Edelsohn <edelsohn@gnu.org> 8091 8092 * genpreds.c (write_tm_constrs_h): Delete variable p. 8093 * genconditions.c (write_header): Add tm-constrs.h to included 8094 headers. 8095 * genpeep.c (main): Add toplev.h to included headers. 8096 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency. 8097 (build/genpeep.o): Add toplev.h dependency. 8098 * config/rs6000/constraints.md: Add "W" constraint. 8099 81002006-03-29 Roger Sayle <roger@eyesopen.com> 8101 8102 * stor-layout.c (mode_for_size_tree): Remove restiction on type 8103 sizes by correctly testing whether the size fits a host integer. 8104 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type 8105 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full 8106 SImode range for the default sizetype and bitsizetype. 8107 81082006-03-29 Roger Sayle <roger@eyesopen.com> 8109 8110 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW 8111 and TREE_CONSTANT_OVERFLOW bits of the argument. Return 8112 quickly if the argument is already of the correct type. 8113 Call fold_build1 instead of build1. Tidy up blank lines. 8114 81152006-03-29 David Edelsohn <edelsohn@gnu.org> 8116 8117 * genemit.c (main): Add tm-constrs.h to included headers. 8118 * genoutput.c (output_prologue): Add tm-constrs.h to included headers. 8119 * genpeep.c (main): Add tm-constrs.h to included headers. 8120 * genpreds.c (write_satisfies_constraint_fns): Rename to ... 8121 (write_tm_constrs_h): this and write complete file. 8122 (write_tm_preds_h): Do not emit satisfies_constraint fns. 8123 (write_insn_preds_c): Add tm-constrs.h to included headers. 8124 (gen_constrs): New variable. 8125 (parse_option): Parse "-c". 8126 (main): Invoke write_tm_constrs_h. 8127 * genrecog.c (write_header): Add tm-constrs.h to included headers. 8128 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h. 8129 (object_out_file): Add tm-constrs.h dependency. 8130 (insn-emit.o): Same. 8131 (insn-output.o): Same. 8132 (insn-peep.o): Same. 8133 (insn-preds.o): Same. 8134 (insn-recog.o): Same. 8135 (tm-constsr.h): New target. 8136 (s-constrs-h): New target. 8137 8138 * config/rs6000/constraints.md: New file. 8139 * config/rs6000/rs6000.c: Include tm-constrs.h. 8140 (num_insn_constant_wide): Convert to satisfies_constraint. 8141 (rs6000_rtx_costs): Convert to satisfies_constraint. 8142 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete. 8143 (CONST_OK_FOR_LETTER_P): Delete. 8144 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. 8145 (EXTRA_CONSTRAINT): Delete. 8146 (EXTRA_MEMORY_CONSTRAINT): Delete. 8147 (EXTRA_ADDRESS_CONSTRAINT): Delete. 8148 * config/rs6000/predicates.md: Convert to satisfies_constraint. 8149 * config/rs6000/rs6000.md: Include constraints.md. Convert to 8150 satisfies_constraint. 8151 8152 * config/i386/i386.c: Include tm-constrs.h. 8153 81542006-03-29 Sebastian Pop <pop@cri.ensmp.fr> 8155 8156 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls. 8157 * tree-data-ref.c (find_data_references_in_loop, 8158 compute_data_dependences_for_loop): Use pointers to VEC. 8159 (analyze_all_data_dependences): Adjust calls. 8160 * tree-data-ref.h (find_data_references_in_loop, 8161 compute_data_dependences_for_loop): Adjust declarations. 8162 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to 8163 compute_data_dependences_for_loop. 8164 81652006-03-29 Paul Brook <paul@codesourcery.com> 8166 8167 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives. 8168 (movdf_vfp): Ditto. 8169 81702006-03-29 Sebastian Pop <pop@cri.ensmp.fr> 8171 8172 PR tree-optimization/26859 8173 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid 8174 division by zero. 8175 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags 8176 for the step after fold_convert. 8177 81782006-03-29 Paul Brook <paul@codesourcery.com> 8179 8180 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators. 8181 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses. 8182 81832006-03-29 Paul Brook <paul@codesourcery.com> 8184 8185 PR middle-end/23623 8186 * targhooks.c (default_narrow_bitfield): New fuction. 8187 * targhooks.h (default_narrow_bitfield): add prototype. 8188 * target.h (gcc_target): Add narrow_volatile_bitfield. 8189 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define. 8190 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield. 8191 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS. 8192 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define. 8193 81942006-03-29 Andreas Krebbel <krebbel1@de.ibm.com> 8195 8196 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to 8197 tmake_file. 8198 * config/s390/s390.c (S390_scalar_mode_supported_p): New function. 8199 (NR_C_MODES): Add TDmode, DDmode and SDmode. 8200 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT. 8201 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs. 8202 (s390_function_arg_float): Allow SDmode and DDmode values to be 8203 passed in floating point registers. 8204 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT 8205 check with SCALAR_FLOAT_MODE_P. 8206 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro. 8207 82082006-03-28 Zdenek Dvorak <dvorakz@suse.cz> 8209 8210 PR tree-optimization/25985 8211 * tree-ssa-loop-niter.c (number_of_iterations_le, 8212 number_of_iterations_ne): Make comments more precise. 8213 (number_of_iterations_cond): Add only_exit argument. Use the 8214 fact that signed variables do not overflow only when only_exit 8215 is true. 8216 (loop_only_exit_p): New. 8217 (number_of_iterations_exit): Pass result of loop_only_exit_p to 8218 number_of_iterations_cond. 8219 82202006-03-28 Zdenek Dvorak <dvorakz@suse.cz> 8221 8222 PR tree-optimization/26643 8223 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle 8224 bit_field_refs. 8225 82262006-03-28 Kaz Kojima <kkojima@gcc.gnu.org> 8227 8228 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG. 8229 (divsi3_i4_int): Likewise. 8230 82312006-03-28 Roger Sayle <roger@eyesopen.com> 8232 8233 * expr.c (emit_group_store): Only create a new pseudo reg if the 8234 quantity it needs to hold isn't already a suitable pseudo. 8235 82362006-03-28 Jeff Law <law@redhat.com> 8237 8238 * timevar.def (TV_TREE_PHI_CPROP): New timevar. 8239 * tree-ssa-dom.c (pass_phi_only_cprop): Use it. 8240 82412006-03-28 Roger Sayle <roger@eyesopen.com> 8242 8243 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as 8244 the equivalent ~X & Y, and the symmetry related transformations. 8245 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as 8246 ~X & Y, and symmetry related transforms. 8247 82482006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 8249 8250 Revert my 2006-03-27 patches. 8251 82522006-03-28 Roger Sayle <roger@eyesopen.com> 8253 8254 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as 8255 ~(T1)X, when T1 and T2 are integer types of the same precision 8256 and (T2)X isn't an extension. 8257 82582006-03-28 Jeff Law <law@redhat.com> 8259 8260 PR tree-optimization/26796 8261 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which 8262 need EH edge cleanups rather than purging them immediately. 8263 (eliminate_degenerate_phis): Handle queued EH cleanups. 8264 82652006-03-28 Daniel Berlin <dberlin@dberlin.org> 8266 8267 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE 8268 from parent_var. 8269 82702006-03-27 Roger Sayle <roger@eyesopen.com> 8271 8272 PR middle-end/22524 8273 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to 8274 cast BIT_NOT_EXPR operand to the correct type. 8275 82762006-03-27 Sebastian Pop <pop@cri.ensmp.fr> 8277 8278 * tree-loop-linear.c: Don't include varray.h. 8279 (gather_interchange_stats, try_interchange_loops, 8280 linear_transform_loops): Use VEC instead of VARRAY. 8281 * lambda-mat.c: Don't include varray.h. 8282 * tree-chrec.c: Same. 8283 * lambda-trans.c: Same. 8284 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use 8285 VEC instead of VARRAY. 8286 * tree-vectorizer.h: Idem. 8287 * tree-data-ref.c (dump_data_references, 8288 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs, 8289 initialize_data_dependence_relation, finalize_ddr_dependent, 8290 compute_all_dependences, find_data_references_in_loop, 8291 compute_data_dependences_for_loop, analyze_all_data_dependences, 8292 free_dependence_relation, free_dependence_relations, 8293 free_data_refs): Idem. 8294 * tree-data-ref.h (data_reference_p, subscript_p): New. 8295 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use 8296 VEC instead of VARRAY. 8297 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed. 8298 (find_data_references_in_loop, compute_data_dependences_for_loop, 8299 dump_ddrs, dump_dist_dir_vectors, dump_data_references, 8300 dump_data_dependence_relations, free_dependence_relations, 8301 free_data_refs): Adjust declaration. 8302 (lambda_transform_legal_p): Move declaration here... 8303 * tree-vect-analyze.c (vect_analyze_data_ref_dependences, 8304 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment, 8305 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses, 8306 vect_analyze_data_refs): Use VEC instead of VARRAY. 8307 * lambda.h (lambda_transform_legal_p): ...from here. 8308 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY. 8309 * tree-vect-transform.c (vect_update_inits_of_drs): Idem. 8310 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o, 8311 tree-chrec.o): Don't depend on VARRAY_H. 8312 83132006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 8314 8315 * rtl.def (Copyright): Update date. 8316 (DEPS_LIST): Change type of the second operand to 'int'. 8317 * target.h (Copyright): Update date. 8318 (struct gcc_target.speculate_insn): Change type of the second parameter 8319 to 'int'. 8320 * lists.c (Copyright): Update date. 8321 (alloc_DEPS_LIST): Change signature. Update reference to the second 8322 operand of the DEPS_LIST. 8323 (copy_DEPS_LIST_list): Update reference to the second operand of the 8324 DEPS_LIST. 8325 * rtl.h (Copyright): Update date. 8326 (alloc_DEPS_LIST): Update signature. 8327 * sched-int.h (Copyright): Update date. 8328 (ds_t): Change typedef to 'int'. 8329 (DEP_STATUS, BITS_PER_DEP_STATUS): Update. 8330 83312006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 8332 8333 * haifa-sched.c (Copyright): Update date. 8334 (try_ready): Change condition to restore non-speculative pattern 8335 of the instruction. 8336 (process_insn_depend_be_in_spec): Code to keep probability of the 8337 speculative dependence non-decreasing. 8338 83392006-03-27 Bernd Schmidt <bernd.schmidt@analog.com> 8340 8341 * regrename.c (replace_oldest_value_addr): Initialize a variable to 8342 shut up the compiler. 8343 83442006-03-27 J"orn Rennecke <joern.rennecke@st.com> 8345 8346 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule 8347 to use lib prefix for target. 8348 ($(T)libic_invalidate_array_4-200.a): Likewise. 8349 ($(T)libic_invalidate_array_4a.a): Likewise. 8350 83512006-03-27 Andrew Stubbs <andrew.stubbs@st.com> 8352 J"orn Rennecke <joern.rennecke@st.com> 8353 8354 * superh.opt: New file. 8355 * sh.c (boardtype, osruntime): Remove. 8356 * superh.h (SUBTARGET_OPTIONS): Remove. 8357 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options. 8358 8359 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed 8360 arguments with ^ and/or []. 8361 8362 * config.gcc (sh-*-*): Add quoting to account for quirk of 8363 Solaris /bin/sh. 8364 Replace == with = in enable_incomplete_targets test. 8365 8366 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT 8367 with MASK_LITTLE_ENDIAN. 8368 8369 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file. 8370 * config/sh/sh.opt: Added to some comments. 8371 * config/sh/superh.h: Removed some chaff. 8372 8373 * config/sh/sh.opt: Add m4-[1234]00* options. 8374 * config/sh/sh.c (sh_handle_option): Likewise. 8375 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define. 8376 (ic_invalidate_array_4-100.o): New rule. 8377 ($(T)libic_invalidate_array_4-100.a): Likewise. 8378 (ic_invalidate_array_4-200.o): Likewise. 8379 ($(T)libic_invalidate_array_4-200.a): Likewise. 8380 (ic_invalidate_array_4a.o): Likewise. 8381 ($(T)libic_invalidate_array_4a.a): Likewise. 8382 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS. 8383 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*, 8384 m4-200*, and m4a*. 8385 * config/sh/crt1.asm: Merged in profiling code. 8386 * config/sh/superh.h (STARTFILE_SPEC): Override. 8387 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS. 8388 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o. 8389 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file. 8390 8391 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants. 8392 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS / 8393 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings. 8394 8395 * sh.opt (mpretend-cmove): New option. 8396 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1. 8397 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns. 8398 (movsicc): Add TARGET_PRETEND_CMOVE code. 8399 84002006-03-27 Andreas Krebbel <krebbel1@de.ibm.com> 8401 8402 * config/s390/s390-protos.h (s390_hard_regno_mode_ok, 8403 s390_class_max_nregs): New function prototypes. 8404 * config/s390/s390.c (REGNO_PAIR_OK): New macro. 8405 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions. 8406 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, 8407 CLASS_MAX_NREGS): Macro bodies replaced by function calls. 8408 84092006-03-26 Geoffrey Keating <geoffk@apple.com> 8410 8411 * dwarf2out.c (add_location_or_const_value_attribute): Call 8412 tree_add_const_value_attribute if nothing else works. 8413 (reference_to_unused): New. 8414 (rtl_for_decl_init): Use reference_to_unused to decide whether 8415 to output an initializer. 8416 84172006-03-27 Alan Modra <amodra@bigpond.net.au> 8418 8419 PR target/26459 8420 * config/rs6000/rs6000.md (DF reg move peephole): Prevent 8421 peephole removing spe frob_di_df_2. 8422 84232006-03-26 Sebastian Pop <pop@cri.ensmp.fr> 8424 8425 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS. 8426 (subscript_dependence_tester_1): Declared. 8427 (print_dir_vectors, print_dist_vectors): New. 8428 (debug_data_dependence_relation): New. 8429 (dump_data_dependence_relation): Print more details. 8430 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST. 8431 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0. 8432 (save_dist_v, save_dir_v, add_outer_distances, 8433 build_classic_dist_vector_1): New. 8434 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST. 8435 Don't test for lambda_vector_lexico_pos. 8436 (same_access_functions, add_multivariate_self_dist, 8437 add_other_self_distances, dir_from_dist): New. 8438 (build_classic_dir_vector): Replace implementation almost identical to 8439 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to 8440 dir_from_dist. 8441 (subscript_dependence_tester_1): New. 8442 (subscript_dependence_tester): Handle the lexicographically negative 8443 distance vectors by recomputing the dependence relation. 8444 (compute_affine_dependence): Remove parameter loop_nest_depth. 8445 (compute_self_dependence): Don't call compute_subscript_distance. 8446 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth. 8447 Add a parameter for the loop_nest. 8448 (find_loop_nest_1, find_loop_nest): New. 8449 (compute_data_dependences_for_loop): Compute the loop nest, and give 8450 up if the nest is not well formed. 8451 * tree-data-ref.h (loop_p): New. 8452 (struct data_dependence_relation): Replace size_vect field with 8453 loop_nest, a vec of loops. 8454 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS. 8455 (DDR_LOOP_NEST): New. 8456 (print_dir_vectors, print_dist_vectors, 8457 debug_data_dependence_relation): Declared. 8458 (index_in_loop_nest): New. 8459 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use 8460 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence 8461 distance. 8462 84632006-03-25 Adam Nemet <anemet@caviumnetworks.com> 8464 8465 * simplify-rtx.c (simplify_relational_operation): Call 8466 simplify_relational_operation_1 even if mode is VOIDmode. 8467 84682006-03-25 Daniel Berlin <dberlin@dberlin.org> 8469 8470 PR tree-optimization/26804 8471 * tree.h (DECL_CALL_CLOBBERED): New macro. 8472 (tree_decl_common): Add call_clobbered_flag. 8473 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED. 8474 (mark_call_clobbered): Set DECL_CALL_CLOBBERED. 8475 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED. 8476 (mark_non_addressable): Ditto. 8477 * tree-ssa.c (verify_call_clobbered): New function. 8478 (verify_alias_info): Use it. 8479 * tree-pass.h (pass_reset_cc_flags): New prototype. 8480 * tree-ssa-alias.c (pass_reset_cc_flags): New structure. 8481 (reset_cc_flags): New function. 8482 * passes.c (init_optimization_passes): Call reset_cc_flags after 8483 initializing referenced_vars. 8484 84852006-03-25 Uros Bizjak <uros@kss-loka.si> 8486 Roger Sayle <roger@eyesopen.com> 8487 8488 PR middle-end/26717 8489 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A 8490 to 1.0 for non-real operands. Implement A / A optimization for 8491 complex operands. 8492 84932006-03-25 H.J. Lu <hongjiu.lu@intel.com> 8494 8495 * config/i386/i386.c (size_cost): Correct the comment for 8496 cost of storing fp registers. 8497 (i386_cost): Likewise. 8498 (i486_cost): Likewise. 8499 (pentium_cost): Likewise. 8500 (pentiumpro_cost): Likewise. 8501 (k6_cost): Likewise. 8502 (athlon_cost): Likewise. 8503 (k8_cost): Likewise. 8504 (pentium4_cost): Likewise. 8505 (nocona_cost): Likewise. 8506 (generic64_cost): Likewise. 8507 (generic32_cost): Likewise. 8508 85092006-03-24 Denis Chertykov <denisc@overta.ru> 8510 8511 * config/avr/avr-protos.h (extra_constraint): Delete. 8512 (extra_constraint_Q): New declaration. 8513 * config/avr/constraints.md: New file. 8514 * config/avr/avr.md: Include it. 8515 (REG_X, REG_Y, REG_Z, REG_W): New constants. 8516 (TMP_REGNO, ZERO_REGNO): Likewise. 8517 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise. 8518 * config/avr/avr.c (avr_reg_class_from_letter): Delete. 8519 (extra_constraint): Delete. 8520 (extra_constraint_Q): Test for memory constraint 'Q'. 8521 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete. 8522 (REG_CLASS_FROM_LETTER): Delete. 8523 (CONST_OK_FOR_LETTER_P): Delete. 8524 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. 8525 (EXTRA_CONSTRAINT): Delete. 8526 (TMP_REGNO): Delete. 8527 (ZERO_REGNO): Delete. 8528 85292006-03-24 Jeff Law <law@redhat.com> 8530 8531 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt 8532 directly. Call mark_new_vars_to_rename slightly earlier. 8533 85342006-03-24 Geoffrey Keating <geoffk@apple.com> 8535 8536 * dwarf2out.c (is_c_family): Understand new DWARF3 language types. 8537 (is_cxx): Likewise. 8538 (gen_compile_unit_die): Use new language types for Objective-C and 8539 Objective-C++. 8540 (dwarf2out_decl): Use is_cxx rather than testing explicitly against 8541 DW_LANG_C_plus_plus. 8542 8543 PR 26793 8544 * config/t-darwin (crt3.o): Work around bug 26840. 8545 * config/darwin-crt3.c: Rewrite. 8546 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o. 8547 85482006-03-24 Carlos O'Donell <carlos@codesourcery.com> 8549 8550 * doc/invoke.texi: Document -femit-class-debug-always 8551 * common.opt: Add -femit-class-debug-always. 8552 85532006-03-24 Andreas Krebbel <krebbel1@de.ibm.com> 8554 8555 * config/s390/s390.c (s390_decompose_address): Allow SImode for 8556 index and base register. 8557 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p, 8558 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P 8559 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with 8560 REGNO_OK_FOR_INDEX_P. 8561 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with 8562 ADDR_REGNO_P. 8563 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P, 8564 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P, 8565 REG_OK_FOR_BASE_P): Definitions removed. 8566 85672006-03-24 Jakub Jelinek <jakub@redhat.com> 8568 8569 PR middle-end/26611 8570 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on 8571 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit 8572 set yet or weren't marked as local yet. 8573 85742006-03-24 Bernd Schmidt <bernd.schmidt@analog.com> 8575 8576 * regrename.c (scan_rtx_address): Initialize a variable to shut up 8577 the compiler. 8578 85792006-03-24 Eric Botcazou <ebotcazou@adacore.com> 8580 8581 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare. 8582 (rs6000_legitimate_small_data_p): Delete. 8583 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate. 8584 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p 8585 and make static. Add forward declaration. Update uses. 8586 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead 8587 of offsettable_memref_p. 8588 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix. 8589 Use rs6000_offsettable_memref_p instead of a less accurate predicate. 8590 85912006-03-24 Jeff Law <law@redhat.com> 8592 8593 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work 8594 around bug in immediate-use iterator. 8595 85962006-03-24 Alan Modra <amodra@bigpond.net.au> 8597 8598 PR target/26607 8599 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__ 8600 or __LITTLE_ENDIAN__. 8601 86022006-03-23 J"orn Rennecke <joern.rennecke@st.com> 8603 8604 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files. 8605 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant. 8606 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table. 8607 * config/sh/sh.opt (mdiv=): Amend description. 8608 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro. 8609 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise. 8610 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1, 8611 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC. 8612 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1. 8613 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros. 8614 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns. 8615 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE / 8616 TARGET_DIVIDE_CALL_FP. 8617 86182006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 8619 8620 * haifa-sched.c (choose_ready): Fix type of the local variable. 8621 Move local variables. Add comment. 8622 (check_reg_live): Change signature. Make callable from debugger. 8623 * sched-int.h (check_reg_live): Update signature. 8624 * sched-ebb.c (check_reg_live): Update parameters. 8625 * sched-rgn.c (check_reg_live): Ditto. 8626 (region_head_or_leaf_p): Check pointer before dereferencing. 8627 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation 8628 before reload on optimization levels below 1. 8629 86302006-03-23 Richard Henderson <rth@redhat.com> 8631 8632 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject 8633 tls symbols. 8634 8635 PR target/26347 8636 * config/alpha/predicates.md (local_symbolic_operand): Reject 8637 weak symbols. 8638 86392006-03-23 Andrew Pinski <pinskia@physics.uc.edu> 8640 8641 PR tree-opt/26795 8642 * tree-ssa-pre.c (create_value_expr_from): Don't reject 8643 expressions which have overflowed constants. 8644 86452006-03-23 Zdenek Dvorak <dvorakz@suse.cz> 8646 8647 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note. 8648 86492006-03-23 Zdenek Dvorak <dvorakz@suse.cz> 8650 8651 * cfgloopmanip.c (create_loop_notes): Removed. 8652 * final.c (final_scan_insn): Do not handle loop notes. 8653 * jump.c (squeeze_notes): Ditto. 8654 * cfglayout.c (skip_insns_after_block, 8655 duplicate_insn_chain): Ditto. 8656 * cfgcleanup.c (rest_of_handle_jump2): Do not call 8657 create_loop_notes. 8658 * cfgloop.h (create_loop_notes): Declaration removed. 8659 86602006-03-23 Richard Sandiford <richard@codesourcery.com> 8661 8662 * varasm.c (output_constant_pool): Restore fnname and fndecl 8663 arguments. 8664 (assemble_start_function): Adjust call accordingly. 8665 (assemble_end_function): Likewise. 8666 86672006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 8668 8669 PR mudflap/26789 8670 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects. 8671 8672 PR mudflap/26790 8673 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node. 8674 86752006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 8676 8677 PR driver/22600 8678 * system.h (ICE_EXIT_CODE): New macro. 8679 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE. 8680 (diagnostic_action_after_output): Likewise. 8681 * gcc.c (fatal_ice): New function. 8682 (execute): Use it instead of fatal. 8683 (fancy_abort): Likewise. 8684 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs. 8685 86862006-03-22 Jeff Law <law@redhat.com> 8687 8688 * loop-unroll.c (analyze_iv_to_split_insn): Handle 8689 iv_analyze_result returning false. 8690 86912006-03-22 Jie Zhang <jie.zhang@analog.com> 8692 8693 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove. 8694 86952006-03-22 Richard Henderson <rth@redhat.com> 8696 8697 PR middle-end/26084 8698 * except.c (duplicate_eh_regions_0): New. 8699 (duplicate_eh_region_1): Duplicate the children of the node as 8700 well as the node itself. Link them up properly. 8701 (duplicate_eh_region_2): Merge into ... 8702 (duplicate_eh_regions): ... here. Take copy_region argument, and 8703 copy only a sub-tree if asked. Simplify copying and fixup. 8704 (eh_region_outer_p): New. 8705 * except.h (duplicate_eh_regions): Update decl. 8706 (eh_region_outer_p): Declare. 8707 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN. 8708 (lower_omp_master): Likewise. 8709 (lower_omp_ordered): Likewise. 8710 * tree-cfg.c (struct move_stmt_d): Add new_label_map. 8711 (move_stmt_r): Use it to remap labels. Handle recursion vs 8712 remap_decls_p properly. 8713 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR. 8714 (find_outermost_region_in_block): New. 8715 (new_label_mapper): New. 8716 (move_sese_region_to_fn): Copy eh information to the new function 8717 properly. 8718 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions 8719 argument. 8720 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region 8721 number. 8722 87232006-03-22 Richard Sandiford <richard@codesourcery.com> 8724 8725 * doc/md.texi (-mshared): Mention that -mshared code can be linked 8726 into shared libraries. 8727 87282006-03-22 Richard Sandiford <richard@codesourcery.com> 8729 8730 * doc/md.texi: Refer to i386/constraints.md instead of 8731 i386/predicates.md. 8732 * config/i386/constraints.md: New file, extracted from... 8733 * config/i386/predicates.md: ...here. 8734 * config/i386/i386.md: Include constraints.md. 8735 87362006-03-21 Jason Merrill <jason@redhat.com> 8737 8738 * builtins.c (expand_builtin_fork_or_exec): Fix pasto. 8739 8740 PR middle-end/20297 8741 * expr.c (init_block_move_fn): Force default visibility. 8742 (init_block_clear_fn): Likewise. 8743 * builtins.c (expand_builtin_fork_or_exec): Likewise. 8744 * targhooks.c (default_external_stack_protect_fail): Likewise. 8745 87462006-03-21 Richard Sandiford <richard@codesourcery.com> 8747 8748 * config/mips/predicates.md (const_call_insn_operand): Allow direct 8749 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS. 8750 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS. 8751 Use TARGET_OLDABI instead of !TARGET_NEWABI. 8752 (loadgp): Use mips_current_loadgp_style. 8753 (loadgp_noshared): New pattern. 8754 (sibcall_internal): Use MIPS_CALL. 8755 (sibcall_value_internal): Likewise. 8756 (sibcall_value_multiple_internal): Likewise. 8757 (call_internal): Likewise. 8758 (call_value_internal): Likewise. 8759 (call_value_multiple_internal): Likewise. 8760 (call_split): Use MIPS_CALL and add an 'S' constraint. 8761 (call_value_split): Likewise. 8762 (call_value_multiple_split): Likewise. 8763 * config/mips/mips.opt (-mabicalls): Tweak docstring. 8764 (-mshared): New option. 8765 * config/mips/mips-protos.h (mips_loadgp_style): New enum. 8766 (mips_current_loadgp_style): Declare. 8767 * config/mips/mips.c (mips_classify_symbol): Avoid using 8768 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL 8769 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if 8770 TARGET_ABSOLUTE_ABICALLS. 8771 (override_options): Adjust comments. Improve the warning that is 8772 issued when -mabicalls and -G are used together. 8773 (mips_file_start): Remove comment. 8774 (mips_current_loadgp_style): New function. 8775 (mips_gnu_local_gp): New variable. 8776 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle 8777 LOADGP_ABSOLUTE. 8778 (mips_output_function_prologue): Use mips_current_laodgp_style. 8779 (mips_expand_prologue): Call mips_emit_loadgp before emitting 8780 the cprestore instruction. 8781 (mips_extra_live_on_entry): Fix reversed test. Don't make $25 8782 live for TARGET_ABSOLUTE_ABICALLS. 8783 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro. 8784 (ASM_SPEC): Pass down -mshared and -mno-shared. 8785 (MIPS_CALL): New macro. 8786 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__ 8787 definition. 8788 * doc/invoke.texi (-mabicalls): Update documentation. 8789 (-mshared): Document. 8790 87912006-03-21 Steve Ellcey <sje@cup.hp.com> 8792 8793 * config/ia64/unwind-hpux.c: New file. 8794 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc. 8795 87962006-03-21 Steve Ellcey <sje@cup.hp.com> 8797 8798 PR libgomp/26384 8799 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options. 8800 88012006-03-21 Jeff Law <law@redhat.com> 8802 8803 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for 8804 type conversions of a VR_VARYING source to a wider type. 8805 88062006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr> 8807 8808 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to 8809 tm_file on Solaris 10 and later. 8810 (sparc64-*-solaris2*): Likewise. 8811 (sparc-*-solaris2*): Likewise. 8812 * config/sol26.h: Rename to config/sol2-6.h. 8813 * config/sol2-10.h: New file. 8814 88152006-03-21 Andrew Pinski <pinskia@physics.uc.edu> 8816 8817 PR tree-opt/26781 8818 * tree-ssa-pre.c (create_component_ref_by_pieces): 8819 Handle STRING_CST. 8820 88212006-03-21 Jakub Jelinek <jakub@redhat.com> 8822 8823 PR c++/26690 8824 * tree.c (get_callee_fndecl): If CALL is error_mark_node, 8825 return it immediately. 8826 88272006-03-21 Michael Matz <matz@suse.de> 8828 8829 * genautomata.c (<struct state>, num_out_arcs, presence_signature): 8830 New members. 8831 (remove_arc, add_arc): Update num_out_arcs member. 8832 (set_out_arc_insns_equiv_num): Returns nothing instead of number 8833 of out arcs. 8834 (cache_presence): New function. 8835 (compare_states_for_equiv): New function. 8836 (state_is_differed): Don't take number of outargs, adjust callers. 8837 Use new invariant for speeding up. 8838 (init_equiv_class): Create initial classes based on sorted 8839 input. 8840 (partition_equiv_class): Don't track out_arcs_num. 8841 (evaluate_equiv_classes): Call cache_presence on all states and 8842 sort them. 8843 88442006-03-21 Bernd Schmidt <bernd.schmidt@analog.com> 8845 8846 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare. 8847 * config/bfin/bfin.c (bfin_dsp_memref_p): New function. 8848 (bfin_valid_reg_p): Test for pseudos explicitly and use only 8849 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all 8850 callers changed. 8851 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P. 8852 (IREG_P, P_REGNO_P, I_REGNO_P): New macros. 8853 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS. 8854 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, 8855 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete 8856 macros. 8857 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS, 8858 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros. 8859 (REGNO_REG_CLASS): ARGP is in PREGS. 8860 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing 8861 IREGS. 8862 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split 8863 to deal with those addresses. 8864 * addresses.h: New file. 8865 * caller-save.c: Include "addresses.h". 8866 (init_caller_save): Use new base_reg_class function. 8867 * rtl-factoring.c: Include "addresses.h". 8868 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1. 8869 * recog.c: Include "addresses.h". 8870 (preprocess_constraints): Use new base_reg_class function. 8871 * regrename.c: Include "addresses.h". 8872 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class 8873 functions. Keep track of a new var INDEX_CODE to compute valid 8874 classes. 8875 (replace_oldest_value_addr): Likewise. 8876 (replace_oldest_value_mem): Use base_reg_class. 8877 * reload.c: Include "addresses.h". 8878 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros. 8879 (find_reloads): Use new base_reg_class function. 8880 (find_reloads_address): Likewise; also use regno_ok_for_base_p. 8881 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE; 8882 all callers and prototype changed. 8883 * reload1.c: Include "addresses.h". 8884 (maybe_fix_stack_asms): Use base_reg_class. 8885 * regclass.c: Include "addresses.h". 8886 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions. 8887 (init_reg_autoinc): Use new base_reg_class function. 8888 (record_reg_classes): Likewise. 8889 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE, 8890 OUTER_CODE and INDEX_CODE. All callers and prototype changed. 8891 Use new args to compute necessary class. 8892 8893 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o, 8894 regrename.o, rtl-factoring.o): Update dependencies. 8895 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document. 8896 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. 8897 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P, 8898 REG_OK_FOR_INDEX_P): Delete documentation. 8899 89002006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com> 8901 8902 * config.gcc (sparc-*-solaris2*): Change the default CPU setting 8903 from V7 to V9 for Solaris 7 and above. 8904 89052006-03-21 Toon Moene <toon@moene.indiv.nluug.nl> 8906 8907 * doc/invoke.texi: Document new flag -fargument-noalias-anything. 8908 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2, 8909 argument pointers may not alias any other storage. 8910 * common.opt: Define option -fargument-noalias-anything. 8911 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran 8912 alias semantics is specified by flag_argument_noalias > 2. 8913 89142006-03-20 Jeff Law <law@redhat.com> 8915 8916 * tree-pass.h (pass_phi_only_copy_prop): Delete. 8917 (pass_phi_only_cprop): Declare. 8918 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop 8919 with phi_only_cprop 8920 * tree-ssa-dom.c (degenerate_phi_result): New function. 8921 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise. 8922 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise. 8923 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise. 8924 (eliminate_degenerate_phis): Likewise. 8925 (pass_phi_only_cprop): New pass descriptor. 8926 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and 8927 support code. Callers updated. 8928 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes. 8929 (store_copy_prop): Likewise. 8930 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove. 8931 89322006-03-20 Jason Merrill <jason@redhat.com> 8933 8934 PR c++/21764 8935 * c-pragma.c (visstack): Move out of handle_pragma_visibility. 8936 (push_visibility, pop_visibility): Likewise. 8937 * c-pragma.h: Declare them. 8938 89392006-03-20 Kaz Kojima <kkojima@gcc.gnu.org> 8940 8941 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target. 8942 8943 * config/sh/sh.c (find_regmode_weight): Change the type of the first 8944 parameter and use get_ebb_head_tail. 8945 (sh_md_init_global): Adjust uses of find_regmode_weight. 8946 89472006-03-20 Steven Bosscher <stevenb.gcc@gmail.com> 8948 8949 * function.h (struct function) <x_tail_recursion_reentry>: 8950 Rename to x_stack_check_probe_note. 8951 (tail_recursion_reentry): Rename to stack_check_probe_note. 8952 * function.c: Replace tail_recursion_reentry with 8953 stack_check_probe_note everywhere. 8954 (expand_function_start): Only emit a note for 8955 stack_check_probe_note with -fstack-protect. 8956 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes. 8957 8958 * emit-rtl.c (remove_unnecessary_notes): Remove. 8959 (pass_remove_unnecessary_notes): Remove. 8960 * rtl.h (remove_unnecessary_notes): Remove prototype. 8961 * final.c (final_start_function): Don't call remove_unnecessary_notes. 8962 * tree-pass.h (pass_remove_unnecessary_notes): Remove. 8963 * passes.c (pass_remove_unnecessary_notes): Don't run it. 8964 89652006-03-20 Andrew Pinski <pinskia@physics.uc.edu> 8966 8967 PR tree-opt/26629 8968 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands. 8969 (valid_in_set): Handle ARRAY_REF. 8970 Change "if min_variant or VH" to asserts. 8971 (create_component_ref_by_pieces): Handle ARRAY_REF. 8972 (create_expression_by_pieces): Likewise. 8973 (can_PRE_operation): ARRAY_REFs can now be PRE'd. 8974 89752006-03-20 David Edelsohn <edelsohn@gnu.org> 8976 8977 * genpreds.c (write_insn_extra_address_constraint): Argument `c' 8978 is operand of switch, not str[0]. 8979 89802006-03-20 Alan Modra <amodra@bigpond.net.au> 8981 8982 * config/rs6000/rs6000.c (rs6000_handle_option): Use 8983 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too. 8984 89852006-03-19 David Edelsohn <edelsohn@gnu.org> 8986 8987 * genpreds.c (write_tm_preds_h): Add semicolon and newline at 8988 end of insn_extra_address_constraint declaration. 8989 89902006-03-19 David Edelsohn <edelsohn@gnu.org> 8991 8992 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask. 8993 (no-sum-in-toc): Same. 8994 * config/rs6000/rs6000.c (rs6000_handle_option): Use new 8995 variables. 8996 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set 8997 NO_FP_IN_TOC for -fPIC instead of mask. 8998 8999 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete. 9000 (BOOT_LDFLAGS): Delete. 9001 (LDFLAGS): Delete. 9002 * config/rs6000/t-aix52: Same. 9003 9004 * config/rs6000/rs6000.md (store_multiple_power): Delete. 9005 (stmsi[345678]_power): New. 9006 90072006-03-17 Steve Ellcey <sje@cup.hp.com> 9008 9009 * config/ia64/ia64.opt: Add empty line to end of file. 9010 90112006-03-17 Richard Guenther <rguenther@suse.de> 9012 9013 PR middle-end/26721 9014 * builtins.c (get_pointer_alignment): For component style references 9015 adjust alignment to the component type alignment. Make sure 9016 to adjust alignment for component access of constants. 9017 90182006-03-17 David Edelsohn <edelsohn@gnu.org> 9019 9020 * config/rs6000/rs6000.md (strlensi): Emit barrier after 9021 unconditional jump. 9022 90232006-03-17 Paul Brook <paul@codesourcery.com> 9024 9025 * doc/install.texi: Docuemnt --with-mode. 9026 * config.gcc: Add --with-mode for arm*-*-*. 9027 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode". 9028 90292006-03-17 J"orn Rennecke <joern.rennecke@st.com> 9030 9031 * sh.c (max_labelno_before_reorg): New variable. 9032 (sh_reorg): Initialize it. 9033 (find_barrier): Check max_labelno_before_reorg before using 9034 label_to_alignment. Take length of explicit alignment insns 9035 into account. When seeing a UNSPECV_CONST_END, return it. 9036 9037 * sh.c (fixup_mova): Set mode of affected label to QImode. 9038 (untangle_mova): New function. 9039 (find_barrier): Use it. Check mode of label before decrementing 9040 num_mova. 9041 (sh_reorg): Likewise. 9042 Set mode of all insns back to VOIDmode. 9043 9044 * sh.c (MOVA_LABELREF): New macro. 9045 (mova_p, fixup_mova, sh_reorg): Use it. 9046 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless 9047 ADDR_DIFF_VEC matches mova. 9048 90492006-03-17 Steven Bosscher <stevenb.gcc@gmail.com> 9050 9051 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument 9052 with ATTRIBUTE_UNUSED. 9053 90542006-03-17 Alexandre Oliva <aoliva@redhat.com> 9055 9056 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack 9057 pointer, instead of assuming it is possible to derive the 9058 correct args size from a call insn. 9059 90602006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de> 9061 9062 * rtl.h (CONST_INT_P): Define. 9063 * config/vax/vax.c (print_operand_address): Use CONST_INT_P() 9064 instead of GET_CODE(x) == CONST_INT. 9065 (vax_rtx_costs): Likewise. 9066 (vax_output_int_move): Likewise. 9067 (vax_output_int_add): Likewise. 9068 (legitimate_constant_address_p): Likewise. 9069 (index_term_p): Likewise. 9070 * config/vax/vax.h (PRINT_OPERAND): Likewise. 9071 * config/vax/vax.md (and<mode>3): Likewise. 9072 (ashrsi3): Likewise. 9073 (extv): Likewise. 9074 (movstricthi): Likewise. 9075 (movstrictqi): Likewise. 9076 (rotrsi3): Likewise. 9077 (five unnamed insns): Likewise. 9078 90792006-03-16 Geoffrey Keating <geoffk@apple.com> 9080 9081 * doc/tm.texi (SDB and DWARF): Add extra parameter to 9082 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables. 9083 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter. 9084 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter. 9085 Pass to ASM_OUTPUT_DWARF_OFFSET. 9086 * dwarf2out.c (debug_frame_section): New. 9087 (output_call_frame_info): Use debug_frame_section. Pass it to 9088 dw2_asm_output_offset. 9089 (output_die): Pass appropriate section to dw2_asm_output_offset. 9090 (output_compilation_unit_header): Likewise. 9091 (output_pubnames): Likewise. 9092 (output_aranges): Likewise. 9093 (enum dw_val_class): Break dw_val_class_lbl_offset into 9094 dw_val_class_lineptr and dw_val_class_macptr. 9095 (add_AT_lbl_offset): Delete. 9096 (add_AT_lineptr): New. 9097 (add_AT_macptr): New. 9098 (AT_lbl): Expect a lineptr or macptr. 9099 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr. 9100 (attr_checksum): Likewise. 9101 (same_dw_val_p): Likewise. 9102 (size_of_die): Likewise. 9103 (value_format): Likewise. 9104 (output_die): Likewise. 9105 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of 9106 add_AT_lbl_offset. 9107 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. 9108 * config/i386/i386.c (x86_file_start): Call darwin_file_start. 9109 * config/darwin-protos.h (darwin_file_start): New. 9110 (darwin_asm_output_dwarf_offset): New. 9111 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. 9112 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call 9113 darwin_file_start. 9114 * config/darwin.c (darwin_emit_unwind_label): Don't output label 9115 if not EH section; simplify. 9116 (darwin_file_start): New. 9117 (darwin_asm_output_dwarf_offset): New. 9118 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment, 9119 mark as 'debug'. 9120 (DEBUG_INFO_SECTION): Likewise. 9121 (DEBUG_ABBREV_SECTION): Likewise. 9122 (DEBUG_ARANGES_SECTION): Likewise. 9123 (DEBUG_MACINFO_SECTION): Likewise. 9124 (DEBUG_LINE_SECTION): Likewise. 9125 (DEBUG_LOC_SECTION): Likewise. 9126 (DEBUG_PUBNAMES_SECTION): Likewise. 9127 (DEBUG_STR_SECTION): Likewise. 9128 (DEBUG_RANGES_SECTION): Likewise. 9129 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section. 9130 (ASM_OUTPUT_DWARF_OFFSET): New. 9131 91322006-03-16 Joseph S. Myers <joseph@codesourcery.com> 9133 9134 * config.gcc (tm_defines): Always add to previous value rather 9135 than replacing it. 9136 91372006-03-16 Richard Sandiford <richard@codesourcery.com> 9138 9139 * config/mips/predicates.md (splittable_const_int_operand): New, 9140 split from move_operand. 9141 (splittable_symbolic_operand): New. 9142 (move_operand): Add commentary. Use splittable_const_int_operand. 9143 Inline mips_atomic_symbolic_constant_p. 9144 * config/mips/mips.md: Add combine splitters for handling moves 9145 of splittable_const_int_operands and splittable_symbolic_operands. 9146 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete. 9147 (mips_split_symbol): Declare. 9148 (mips_move_integer): Declare. 9149 * config/mips/mips.c (mips_split_p): Make global. 9150 (TARGET_MIN_ANCHOR_OFFSET): Override default. 9151 (TARGET_MAX_ANCHOR_OFFSET): Likewise. 9152 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. 9153 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise. 9154 (mips_offset_within_object_p): Handle block symbols. 9155 (mips_atomic_symbolic_constant_p): Delete. 9156 (mips_cannot_force_const_mem): Return false for constants that 9157 mips_legitimize_move can handle. 9158 (mips_use_blocks_for_constant_p): New function. 9159 (mips_split_symbol): Make global. 9160 (mips_move_integer): Likewise. Add a temporary register argument. 9161 (mips_legitimize_const_move): Use splittable_const_int_operand and 9162 splittable_symbolic_operand. 9163 (mips_use_anchors_for_symbol_p): New function. 9164 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET. 9165 (mips_split_p): Declare. 9166 91672006-03-16 Richard Sandiford <richard@codesourcery.com> 9168 9169 * config.gcc (mips64*-*-linux*): Keep existing tm_defines. 9170 (mips*-*-linux*): Likewise. 9171 91722006-03-16 Roger Sayle <roger@eyesopen.com> 9173 Daniel Speyer <dspeyer@wam.umd.edu> 9174 9175 PR middle-end/18259 9176 * tree-dump.c (dump_real): New function. 9177 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants. 9178 * Makefile.in (REAL_H): New macro for dependencies on real.h. 9179 (tree-dump.o): Add $(REAL_H) to the dependencies. 9180 91812006-03-16 Roger Sayle <roger@eyesopen.com> 9182 9183 PR middle-end/21781 9184 * real.c (real_from_string): If the mantissa is zero, don't bother 9185 parsing the exponent as the result should always be zero. 9186 91872006-03-16 Andreas Krebbel <krebbel1@de.ibm.com> 9188 9189 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms. 9190 91912006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 9192 9193 * config/ia64/ia64.c (stops_p): Added explicit initialization. 9194 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, 9195 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn, 9196 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global, 9197 ia64_sched_finish_global): New static functions to implement 9198 hooks from gcc_target.sched. 9199 (spec_check_no, max_uid, pending_data_specs): New static variables. 9200 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p, 9201 ia64_spec_check_src_p): New static functions. 9202 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2. 9203 (TARGET_SCHED_ADJUST_COST): Removed. 9204 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL, 9205 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED, 9206 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, 9207 TARGET_SCHED_GEN_CHECK, 9208 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, 9209 TARGET_SCHED_SET_SCHED_FLAGS): New macros. 9210 (update_set_flags, group_barrier_needed, set_src_needs_barrier): 9211 Fixed to handle speculation checks. 9212 (rtx_needs_barrier): Fixed to handle speculative loads and 9213 their checks. 9214 (ia64_variable_issue): Added code to count speculative loads and their 9215 checks. 9216 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle 9217 speculative loads. 9218 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): 9219 New enumerations. 9220 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET): 9221 New constants. 9222 (ia64_ld_address_bypass_p): Fixed to handle speculative loads. 9223 (ia64_reorg): Reset stops_p to NULL after it is freed. 9224 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA, 9225 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants. 9226 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f, 9227 chk_a. 9228 (data_speculative, control_speculative, check_load): New attributes. 9229 (mov<mode>_advanced, mov<mode>_speculative, 9230 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced, 9231 zero_extend<mode>di2_speculative, 9232 zero_extend<mode>di2_speculative_advanced): New patterns for 9233 data and control speculative loads. 9234 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for 9235 check loads. 9236 (advanced_load_check_clr_<mode>, speculation_check_<mode>): 9237 New pattern for data and control speculation checks. 9238 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr, 9239 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr, 9240 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes): 9241 Auxiliary definitions for the patterns. 9242 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a, 9243 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource 9244 constraints. 9245 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition 9246 for speculation. 9247 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i. 9248 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f, 9249 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a): 9250 New resource constraints. 9251 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition 9252 for speculation. 9253 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i. 9254 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec, 9255 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, 9256 msched-in-control-spec, msched-ldc, msched-control-ldc, 9257 msched-spec-verbose, msched-prefer-non-data-spec-insns, 9258 msched-prefer-non-control-spec-insns, 9259 msched-count-spec-in-critical-path): New flags to tune speculative 9260 scheduling. 9261 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec, 9262 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, 9263 msched-in-control-spec, msched-ldc, msched-control-ldc, 9264 msched-spec-verbose, msched-prefer-non-data-spec-insns, 9265 msched-prefer-non-control-spec-insns, 9266 msched-count-spec-in-critical-path): Document new flags. 9267 92682006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 9269 9270 * target.h (struct spec_info_def): New opaque declaration. 9271 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended, 9272 speculate_insn, needs_block_p, gen_check, 9273 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags. 9274 * target-def.h (TARGET_SCHED_ADJUST_COST_2, 9275 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN, 9276 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK, 9277 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, 9278 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in 9279 gcc_target.sched. 9280 (TARGET_SCHED): Use new macros. 9281 * rtl.h (copy_DEPS_LIST_list): New prototype. 9282 * sched-int.h (struct sched_info): Change signature of new_ready field, 9283 adjust all initializations. New fields: add_remove_insn, 9284 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg, 9285 region_head_or_leaf_p. 9286 (struct spec_info_def): New structure declaration. 9287 (spec_info_t): New typedef. 9288 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec, 9289 recovery_block, orig_pat. 9290 (glat_start, glat_end): New variables declaraions. 9291 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT): 9292 New access macros. 9293 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB, 9294 DETACH_LIFE_INFO, USE_GLAT. 9295 (enum SPEC_SCHED_FLAGS): New enumeration. 9296 (NOTE_NOTE_BB_P): New macro. 9297 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block, 9298 attach_life_info, debug_spec_status, check_reg_live): New functions. 9299 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust 9300 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c, 9301 sched-ebb.c 9302 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c . 9303 * ddg.c (get_block_head_tail): Adjust all uses. 9304 * modulo-sched.c (get_block_head_tail): Adjust all uses. 9305 (sms_sched_info): Initialize new fields. 9306 (contributes_to_priority): Removed. 9307 * haifa-sched.c (params.h): New include. 9308 (get_block_head_tail): Adjust all uses. 9309 (ISSUE_POINTS): New macro. 9310 (glat_start, glat_end): New global variables. 9311 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data, 9312 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header, 9313 old_last_basic_block, before_recovery, current_sched_info_var, 9314 rgn_n_insns, luid): New static variables. 9315 (insn_cost1): New function. Move logic from insn_cost to here. 9316 (find_insn_reg_weight1): New function. Move logic from 9317 find_insn_reg_weight to here. 9318 (reemit_notes, move_insn, max_issue): Change signature. 9319 (move_insn1): Removed. 9320 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d, 9321 extend_bb): New static functions to support extension of scheduler's 9322 data structures. 9323 (generate_recovery_code, process_insn_depend_be_in_spec, 9324 begin_speculative_block, add_to_speculative_block, 9325 init_before_recovery, create_recovery_block, create_check_block_twin, 9326 fix_recovery_deps): New static functions to support 9327 generation of recovery code. 9328 (fix_jump_move, find_fallthru_edge, dump_new_block_header, 9329 restore_bb_notes, move_block_after_check, move_succs): New static 9330 functions to support ebb scheduling. 9331 (init_glat, init_glat1, attach_life_info1, free_glat): New static 9332 functions to support handling of register live information. 9333 (associate_line_notes_with_blocks, change_pattern, speculate_insn, 9334 sched_remove_insn, clear_priorities, calc_priorities, bb_note, 9335 add_jump_dependencies): New static functions. 9336 (check_cfg, has_edge_p, check_sched_flags): New static functions for 9337 consistancy checking. 9338 (debug_spec_status): New function to call from debugger. 9339 (priority): Added code to handle speculation checks. 9340 (rank_for_schedule): Added code to distinguish speculative instructions. 9341 (schedule_insn): Added code to handle speculation checks. 9342 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes): 9343 Fixed to handle ebbs. 9344 (move_insn): Added code to handle ebb scheduling. 9345 (max_issue): Added code to use ISSUE_POINTS of instructions. 9346 (choose_ready): Added code to choose between speculative and 9347 non-speculative instructions. 9348 (schedule_block): Added code to handle ebb scheduling and scheduling of 9349 speculative instructions. 9350 (sched_init): Initialize new variables. 9351 (sched_finish): Free new variables. Print statistics. 9352 (try_ready): Added code to handle speculative instructions. 9353 * lists.c (copy_DEPS_LIST_list): New function. 9354 * sched-deps.c (extend_dependency_caches): New function. Move logic 9355 from create_dependency_caches to here. 9356 (get_dep_weak, ds_merge): Make global. 9357 * genattr.c (main): Code to output prototype for 9358 dfa_clear_single_insn_cache. 9359 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros. 9360 (output_dfa_clean_insn_cache_func): Code to output 9361 dfa_clear_single_insn_cache function. 9362 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use 9363 n_insns. 9364 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs): 9365 Removed. 9366 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb): 9367 New static variables. 9368 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb, 9369 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from 9370 struct sched_info. 9371 (ebb_sched_info): Initialize new fields. 9372 (get_block_head_tail): Adjust all uses. 9373 (compute_jump_reg_dependencies): Fixed to use glat_start. 9374 (schedule_ebb): Code to remove unreachable last block. 9375 (schedule_ebbs): Added code to update register live information. 9376 * sched-rgn.c (region_sched_info): Initialize new fields. 9377 (get_block_head_tail): Adjust all uses. 9378 (last_was_jump): Removed. Adjust users. 9379 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions, 9380 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p): 9381 Implement new hooks. 9382 (check_dead_notes1): New static function. 9383 (struct region): New fields: dont_calc_deps, has_real_ebb. 9384 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros. 9385 (BB_TO_BLOCK): Fixed to handle EBBs. 9386 (EBB_FIRST_BB, EBB_LAST_BB): New macros. 9387 (ebb_head): New static variable. 9388 (debug_regions, contributes_to_priority): Fixed to handle EBBs. 9389 (find_single_block_regions, find_rgns, find_more_rgns): Initialize 9390 new fields. 9391 (compute_dom_prob_ps): New assertion. 9392 (check_live_1, update_live_1): Fixed to work with glat_start instead of 9393 global_live_at_start. 9394 (init_ready_list): New assertions. 9395 (can_schedule_ready_p): Split update code to begin_schedule_ready. 9396 (new_ready): Add support for BEGIN_CONTROL speculation. 9397 (schedule_insns): Fixed code that updates register live information 9398 to handle EBBs. 9399 (schedule_region): Fixed to handle EBBs. 9400 (init_regions): Use extend_regions and check_dead_notes1. 9401 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY, 9402 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters. 9403 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED, 9404 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, 9405 TARGET_SCHED_GEN_CHECK, 9406 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, 9407 TARGET_SCHED_SET_SCHED_FLAGS): Document. 9408 * doc/invoke.texi (max-sched-insn-conflict-delay, 9409 sched-spec-prob-cutoff): Document. 9410 94112006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 9412 9413 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps, 9414 inter_tick, queue_index. 9415 (struct sched_info): Change signature of init_ready_list field. 9416 Adjust all initializations. 9417 (RESOLVED_DEPS): New access macro. 9418 (ready_add): Remove prototype. 9419 (try_ready): Add prototype. 9420 * sched-rgn.c (init_ready_list): Use try_ready. 9421 (schedule_region): Initialize 9422 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}. 9423 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info. 9424 (init_ready_list): Use try_ready. 9425 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority. 9426 * lists.c (remove_list_elem): Remove `static'. 9427 (remove_free_INSN_LIST_elem): New function. 9428 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes. 9429 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros. 9430 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY): 9431 New constants. 9432 (readyp): New variable. 9433 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready, 9434 change_queue_index, resolve_dep): New static functions. 9435 (try_ready): New function. Adjust callers in sched-rgn.c and 9436 sched-ebb.c to use it instead of ready_add. 9437 (clock_var): Move at the begining of file. 9438 (rank_for_schedule): Fix typo. 9439 (queue_insn): Add assertion. Handle QUEUE_INDEX. 9440 (ready_lastpos): Enforce assertion. 9441 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument, 9442 update all callers. 9443 (ready_remove_first, ready_remove): Handle QUEUE_INDEX. 9444 (schedule_insn): Rewrite to use try_ready and resolve_dep. 9445 (queue_to_ready): Use free_INSN_LIST_list. 9446 (early_queue_to_ready): Fix typo. 9447 (schedule_block): Init readyp. Move init_ready_list call after the 9448 initialization of clock_var. Fix error in rejecting insn by 9449 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code 9450 that previously corrected INSN_TICKs. Add code for handling 9451 QUEUE_INDEX. 9452 (set_priorities): Fix typo. 9453 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX. 9454 Clarify comment and code that keeps current_sched_info->next_tail 9455 non-null. 9456 94572006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 9458 9459 * sched-rgn.c (extend_rgns): New static function. 9460 (find_rgns): Use it. 9461 (gather_region_statistics, print_region_statistics): New static 9462 functions. 9463 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter. 9464 * doc/invoke.texi (max-sched-extend-regions-iters): Document. 9465 94662006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru> 9467 Andrey Belevantsev <abel@ispras.ru> 9468 9469 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call. 9470 * lists.c (unused_deps_list): New variable. 9471 (free_list): Add assertions to verify the proper distinguishing 9472 between INSN_LISTs and DEPS_LISTs. 9473 (find_list_elem, remove_list_elem, remove_list_node): New static 9474 functions. 9475 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node, 9476 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem, 9477 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions. 9478 (alloc_INSN_LIST): Assert that the list we're working on is indeed 9479 an INSN_LIST. 9480 (free_INSN_LIST_node): Likewise. 9481 * modulo-sched.c (current_sched_info): Initialize flags field. 9482 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT. 9483 * rtl.def (DEPS_LIST): Define. 9484 * rtl.h: Declare new functions from lists.c. 9485 * sched-deps.c (spec_dependency_cache): New static variable. 9486 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions. 9487 (add_dependence): Change return type to void. Move the logic to ... 9488 (add_or_update_back_dep_1): ... here. Handle speculative dependencies. 9489 (delete_all_dependences): Add comment about forward_dependency_cache. 9490 Handle spec_dependency_cache. Handle DEPS_LISTs. 9491 (fixup_sched_groups): Clarify the change of priority of output 9492 and anti dependencies. 9493 (sched_analyze_2): Adjust add_dependence calls to create data 9494 speculative dependence. 9495 (add_forward_dependence): Renamed to add_forw_dep, change prototype. 9496 Adjust all callers. Handle DEPS_LISTS. 9497 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in 9498 presence of speculation. 9499 (init_dependency_caches, free_dependency_caches): 9500 Handle spec_dependency_cache. 9501 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep, 9502 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status): 9503 New static functions. 9504 (add_or_update_back_dep, add_or_update_back_forw_dep, 9505 add_back_forw_dep, delete_back_forw_dep): New functions. 9506 * sched-int.h (ds_t, dw_t): New typedefs. 9507 (struct sched_info): Add new field flags. 9508 (struct haifa_insn_data): Add new bitfield has_internal_dep. 9509 Prototype new sched-deps.c functions. 9510 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros. 9511 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK, 9512 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA, 9513 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC, 9514 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE, 9515 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP): 9516 New constants. 9517 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS): 9518 New enums. 9519 * sched-rgn.c (current_sched_info): Initialize flags field. 9520 (schedule_insns): Initialize current_sched_info before the sched_init 9521 call. 9522 * sched-ebb.c (current_sched_info): Initialize flags field. 9523 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P. 9524 Call add_or_update_back_dep instead of add_dependence. 9525 Create control speculative dependencies. 9526 (schedule_insns): Initialize current_sched_info before the sched_init 9527 call. 9528 95292006-03-16 Kaz Kojima <kkojima@gcc.gnu.org> 9530 9531 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set 9532 fs->signal_frame. 9533 (sh_fallback_frame_state): Likewise. 9534 95352006-03-15 Geoffrey Keating <geoffk@apple.com> 9536 9537 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports. 9538 Do switch on default_use_cxa_atexit. 9539 (powerpc*-*-darwin*): Build crt2.o on powerpc. 9540 * config/darwin-crt3.o: New. 9541 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default 9542 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use. 9543 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate 9544 OS version. 9545 * config/rs6000/t-darwin: Move crt2.o building to here. 9546 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update 9547 Mac OS version for using __cxa_get_exception_ptr. Don't test versions 9548 of __cxa_atexit. 9549 95502006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de> 9551 9552 * config/vax/vax.c (nonindexed_address_p): Change logical negation 9553 from '! xxx' to '!xxx' for coding-style conformance. 9554 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise. 9555 (EXTRA_CONSTRAINT): Likewise. 9556 * config/vax/vax.md (four unnamed insns): Likewise. 9557 95582006-03-15 Paul Brook <paul@codesourcery.com> 9559 9560 * config/arm/arm.c (minipool_pad): New. 9561 (add_minipool_forward_ref): Include pool alignment padding in address 9562 calculation. 9563 (push_minipool_fix): Set minipool_pad. 9564 (minipool_pad): Ditto. 9565 95662006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de> 9567 9568 * config/vax/vax.c (split_quadword_operands): Use MEM_P() 9569 instead of GET_CODE() == MEM and REG_P() instead of 9570 GET_CODE() == REG. 9571 (print_operand_address): Likewise. 9572 (vax_address_cost): Likewise. 9573 (vax_rtx_costs): Likewise. 9574 (vax_notice_update_cc): Likewise. 9575 (vax_output_int_add): Likewise. 9576 (INDEX_REGISTER_P): Likewise. 9577 (BASE_REGISTER_P): Likewise. 9578 (nonindexed_address_p): Likewise. 9579 (vax_mode_dependent_address_p): Likewise. 9580 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise. 9581 (PRINT_OPERAND): Likewise. 9582 * config/vax/vax.md (ashlsi3): Likewise. 9583 (ashlsi3): Likewise. 9584 (some more unnamed insns): Likewise. 9585 95862006-03-15 Kazu Hirata <kazu@codesourcery.com> 9587 9588 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an 9589 iterator-style macro. 9590 (mark_control_dependent_edges_necessary): Update the use of 9591 EXECUTE_IF_CONTROL_DEPENDENT. 9592 95932006-03-15 J"orn Rennecke <joern.rennecke@st.com> 9594 9595 * config/sh/predicates.md (cache_address_operand): Special. 9596 (ua_address_operand): Likewise. 9597 95982006-03-15 Zdenek Dvorak <dvorakz@suse.cz> 9599 9600 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle 9601 loop notes. 9602 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto. 9603 96042006-03-15 Andreas Schwab <schwab@suse.de> 9605 9606 * gensupport.c (identify_predicable_attribute): Don't free p_false 9607 when it is still in use. 9608 96092006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr> 9610 9611 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify 9612 the default setting here. 9613 96142006-03-14 Steven Bosscher <stevenb.gcc@gmail.com> 9615 9616 * tree-pass.h (pass_cfg): Remove. 9617 * alias.c (rest_of_handle_cfg, pass_cfg): Remove. 9618 * passes.c (pass_cfg): Don't run it. 9619 96202006-03-14 Kazu Hirata <kazu@codesourcery.com> 9621 9622 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h. 9623 * reg-stack.c (stack_regs_mentioned_data): Change the type to 9624 VEC(char,heap) *. 9625 (stack_regs_mentioned): Update the uses of 9626 stack_regs_mentioned_data. Don't access the array beyond its 9627 end. 9628 (reg_to_stack): Update the uses of stack_regs_mentioned_data. 9629 Don't include gt-reg-stack.h. 9630 9631 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove. 9632 * system.h (UNALIGNED_WORD_ASM_OP): Poison. 9633 9634 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove. 9635 9636 PR middle-end/26684 9637 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef 9638 STACK_REGS. 9639 96402006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 9641 9642 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo. 9643 96442006-03-14 Richard Guenther <rguenther@suse.de> 9645 9646 PR tree-optimization/26672 9647 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in 9648 SSA form. 9649 96502006-03-14 Richard Guenther <rguenther@suse.de> 9651 9652 PR tree-optimization/26667 9653 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct 9654 node for the callees. Always allow inlining if it will shrink 9655 the function size. 9656 96572006-03-14 Richard Guenther <rguenther@suse.de> 9658 9659 PR middle-end/26659 9660 * builtins.c (get_pointer_alignment): Prefer alignment 9661 information from decls over that from types. 9662 96632006-03-14 Andrew Pinski <pinskia@physics.uc.edu> 9664 9665 PR target/26657 9666 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp. 9667 96682006-03-14 Joseph S. Myers <joseph@codesourcery.com> 9669 9670 * config/rs6000/rs6000.opt (mdlmzb): New option. 9671 (msched-prolog, msched-epilog): Use Var not Mask. 9672 * doc/invoke.texi (-mdlmzb): Document. 9673 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove 9674 MASK_SCHED_PROLOG. 9675 (rs6000_override_options): Enable -mdlmzb for 405 and 440. 9676 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440. 9677 96782006-03-13 Uttam Pawar <uttamp@us.ibm.com> 9679 9680 PR rtl-optimization/25739 9681 * bt-load.c (augment_live_range): Free tos pointer. 9682 9683 * gensupport.c (identify_predicable_attribute): Free 9684 p_false pointer. 9685 * gcov.c (create_file_names): Free name pointer. 9686 96872006-03-13 Roger Sayle <roger@eyesopen.com> 9688 9689 PR middle-end/26557 9690 * stmt.c (emit_case_nodes): Handle the case where the index is a 9691 CONST_INT, where the comparison mode is specified by the index type. 9692 96932006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 9694 9695 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O 9696 is defined. 9697 96982006-03-13 Richard Sandiford <richard@codesourcery.com> 9699 9700 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition. 9701 (*branch_fp_inverted): Likewise. 9702 97032006-03-13 Jakub Jelinek <jakub@redhat.com> 9704 9705 PR middle-end/25989 9706 * omp-low.c (expand_omp_for_generic): Mark istart0 9707 and iend0 as addressable. 9708 97092006-03-13 Jie Zhang <jie.zhang@analog.com> 9710 9711 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC. 9712 97132006-03-13 Jeff Law <law@redhat.com> 9714 9715 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with 9716 virtual operands are interesting. 9717 (vrp_visit_stmt): Corresponding changes. 9718 97192006-03-13 Bernd Schmidt <bernd.schmidt@analog.com> 9720 9721 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents 9722 of RETS. 9723 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If 9724 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__. 9725 * config/bfin/crti.S: Use it instead of __PIC__. 9726 * config/bfin/crtn.S: Likewise. 9727 9728 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol, 9729 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY, 9730 not if flag_pic. 9731 Lose 'G' modifier for call operand. 9732 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't 9733 recognize 'G' modifier. 9734 97352006-03-13 Eric Botcazou <ebotcazou@adacore.com> 9736 9737 PR middle-end/18859 9738 * gimplify.c (gimplify_switch_expr): Discard empty ranges. 9739 * stmt.c (expand_case): Likewise. 9740 97412006-03-13 Zdenek Dvorak <dvorakz@suse.cz> 9742 9743 PR rtl-optimization/26254 9744 * loop-invariant.c (seq_insns_valid_p): New function. 9745 (move_invariant_reg): Only emit new code if it is valid. 9746 97472006-03-13 Zdenek Dvorak <dvorakz@suse.cz> 9748 9749 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p): 9750 Removed. 9751 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note. 9752 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p. 9753 (commit_one_edge_insertion): Do not look for loop notes. 9754 97552006-03-13 Zdenek Dvorak <dvorakz@suse.cz> 9756 9757 * jump.c (follow_jumps): Do not check for loop notes. Move check for 9758 flag_test_coverage out of loop. 9759 97602006-03-13 Zdenek Dvorak <dvorakz@suse.cz> 9761 9762 * final.c (shorten_branches): Remove outdated comment, and turn 9763 the if branch that guards it to continue. 9764 97652006-03-13 Zdenek Dvorak <dvorakz@suse.cz> 9766 9767 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field. 9768 * cfgloop.h (struct loop): Remove unused fields. 9769 97702006-03-13 Kazu Hirata <kazu@codesourcery.com> 9771 9772 * doc/invoke.texi (-fdump-rtl-loop): Remove. 9773 (-dL, -fdump-rtl-loop2): Update the dump file names 9774 9775 * doc/invoke.texi: Update dump file names. 9776 97772006-03-12 Steven Bosscher <stevenb.gcc@gmail.com> 9778 9779 * predict.c (estimate_probability): Remove. 9780 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove. 9781 * basic-block.h (estimate_probability): Remove prototype. 9782 * passes.c (finish_optimization_passes): Dump branch prediction or 9783 profiling heuristics to the .profile tree dump. 9784 (init_optimization_passes): Unqueue pass_branch_prob. 9785 9786 * doc/invoke.texi (-fdump-rtl-bp): Remove. 9787 97882006-03-11 Steven Bosscher <stevenb.gcc@gmail.com> 9789 9790 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF. 9791 * rtl.h (LABEL_NEXTREF): Remove field accessor. 9792 97932006-03-11 Eric Botcazou <ebotcazou@adacore.com> 9794 9795 * function.h (frame_offset_overflow): Declare. 9796 * function.c (frame_offset_overflow): New function. 9797 (assign_stack_local_1): Call it to detect that the offset overflows. 9798 * cfgexpand.c (alloc_stack_frame_space): Likewise. 9799 98002006-03-11 Steven Bosscher <stevenb.gcc@gmail.com> 9801 9802 * config/sh/sh.c: Include alloc-pool.h. 9803 (label_ref_list_pool): New alloc pool. 9804 (label_ref_list_t): New type for lists of labels. 9805 (struct pool_node): Make wend a label_ref_list_t. 9806 (add_constant): Use the new type, eradicate LABEL_NEXTREF 9807 references. 9808 (dump_table): Likewise. 9809 (sh_reorg): Set up the alloc pool before using add_constant and 9810 dump_table, and destroy it when finishing. 9811 98122006-03-11 Richard Sandiford <richard@codesourcery.com> 9813 9814 * config/mips/mips.c: Remove redundant comment. 9815 98162006-03-10 Jason Merrill <jason@redhat.com> 9817 9818 PR c/26004 9819 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if 9820 the target was declared 'register'. 9821 98222006-03-10 Adam Nemet <anemet@caviumnetworks.com> 9823 9824 * genpreds.c (write_insn_constraint_len): Change definition of 9825 insn_constraint_len to return size_t to match the declaration. 9826 98272006-03-10 DJ Delorie <dj@redhat.com> 9828 9829 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers 9830 start at zero. 9831 (m32c_expand_insv): Fix test for an AND mask. 9832 98332006-03-10 Richard Guenther <rguenther@suse.de> 9834 9835 PR middle-end/26565 9836 * builtins.c (get_pointer_alignment): Handle component 9837 references for field alignment. 9838 98392006-03-10 J"orn Rennecke <joern.rennecke@st.com> 9840 9841 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h 9842 when building with libgloss. 9843 (sh*elf): Implement --without-fp option. 9844 (sh64-superh-linux*): Don't multilib. 9845 98462006-03-10 J"orn Rennecke <joern.rennecke@st.com> 9847 9848 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case. 9849 98502006-03-09 Andrew Pinski <pinskia@physics.uc.edu> 9851 9852 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable. 9853 Set it when one of the replacement functions returned true. 9854 Return TODO_cleanup_cfg if cfgchanged is true. 9855 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg. 9856 98572006-03-09 Adam Nemet <anemet@caviumnetworks.com> 9858 9859 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate 9860 instead of gen_lowpart. 9861 98622006-03-09 Richard Sandiford <richard@codesourcery.com> 9863 9864 * config/mips/mips-protos.h (mips_output_conditional_branch): Change 9865 interface. 9866 (mips_output_order_conditional_branch): Declare. 9867 * config/mips/mips.h (MIPS_BRANCH): New macro. 9868 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode 9869 for the comparison. Use gen_condjump. 9870 (mips_output_conditional_branch): Rework interface to take the 9871 asm templates for a direct branch and the inverse of a direct branch. 9872 (mips_output_order_conditional_branch): New function. 9873 (mips_builtin_branch_and_move): New function. 9874 (mips_expand_builtin_compare): Use it. Use VOIDmode for the 9875 branch condition. Use gen_single_cc as the condition for 9876 __builtin_mips_upper_* or __builtin_mips_lower_*. 9877 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move. 9878 Use VOIDmode for the branch condition. 9879 * config/mips/predicates.md (order_operator): New predicate. 9880 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant. 9881 (branch_fp): Rename to... 9882 (*branch_fp): ...this. Remove mode from comparison operator. 9883 Use new mips_output_conditional_branch interface. 9884 (branch_fp_inverted): Rename to... 9885 (*branch_fp_inverted): ...this and update as for *branch_fp. 9886 (*branch_zero<mode>): Rename to... 9887 (*branch_order<mode>): ...this. Remove mode from comparison operator. 9888 Use mips_output_order_conditional_branch. Only accept ordered 9889 comparisons. 9890 (*branch_zero<mode>_inverted): Rename to... 9891 (*branch_order<mode>_inverted): ...this and update as for 9892 *branch_order<mode>. 9893 (*branch_equality<mode>): Accept zero as the second operand to 9894 the equality operator. Use the new mips_output_conditional_branch 9895 interface. 9896 (*branch_equality<mode>_inverted): Likewise. 9897 (condjump): New expander. 9898 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison 9899 operator. 9900 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise. 9901 (bc1any2t, bc1any2f): Likewise. 9902 (single_cc): New expander. 9903 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns. 9904 99052006-03-09 Richard Sandiford <richard@codesourcery.com> 9906 9907 * doc/md.texi: Update documentation of MIPS constraints. 9908 * config/mips/constraints.md: New file. 9909 * config/mips/mips.md: Include it. 9910 * config/mips/mips.c (mips_char_to_class): Delete. 9911 (override_options): Don't initialize mips_char_to_class. 9912 * config/mips/mips.h (mips_char_to_class): Delete. 9913 (REG_CLASS_FROM_LETTER): Delete. 9914 (CONST_OK_FOR_LETTER_P): Delete. 9915 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. 9916 (EXTRA_CONSTRAINT_Y): Delete. 9917 (EXTRA_CONSTRAINT_STR): Delete. 9918 (CONSTRAINT_LEN): Delete. 9919 (EXTRA_MEMORY_CONSTRAINT): Delete. 9920 99212006-03-09 Diego Novillo <dnovillo@redhat.com> 9922 9923 * tree-cfg.c (move_block_to_fn): Remove the statements from the 9924 original fn's eh regions. 9925 99262006-03-09 Eric Botcazou <ebotcazou@adacore.com> 9927 9928 * fold-const.c (build_range_check): Make sure to use a valid type to 9929 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)" 9930 transformation. 9931 9932 (range_predecessor): New static function. 9933 (range_successor): Likewise. 9934 (merge_ranges): Use them to compute predecessors and successors of 9935 range bounds. 9936 99372006-03-09 Roger Sayle <roger@eyesopen.com> 9938 9939 PR middle-end/26561 9940 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as 9941 X op C3, consider whether C3 overflows towards +Inf or -Inf. 9942 99432006-03-08 DJ Delorie <dj@redhat.com> 9944 9945 * config/m32c/addsub.md (addqi3): Disparage a0/a1. 9946 (addpsi3): Expand to include memory operands. Remove 9947 reload-specific splits. 9948 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New. 9949 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New. 9950 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New. 9951 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders. 9952 (shift1_qi, shift1_hi, insv): New. 9953 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove. 9954 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed, 9955 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc, 9956 cond_to_int): New. 9957 * config/m32c/m32c-protos.h: Update as needed. 9958 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't 9959 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1. 9960 Fail for unrecognized R* constraints. 9961 (m32c_cannot_change_mode_class): Be more picky about pseudos. 9962 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00. 9963 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)). 9964 Add Sp constraint. 9965 (m32c_init_libfuncs): New. 9966 (m32c_legitimate_address_p): Add debug wrapper. 9967 (m32c_rtx_costs): New. 9968 (m32c_address_cost): New. 9969 (conversions): Add 'B' prefix. 9970 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of 9971 operands, or word regnames for QI operands. 'B' prints bit 9972 position. 9973 (m32c_expand_setmemhi): New. 9974 (m32c_expand_movmemhi): New. 9975 (m32c_expand_movstr): New. 9976 (m32c_expand_cmpstr): New. 9977 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time. 9978 (m32c_expand_neg_mulpsi3): Handle non-ints. 9979 (m32c_cmp_flg_0): New. 9980 (m32c_expand_movcc): New. 9981 (m32c_expand_insv): New. 9982 (m32c_scc_pattern): New. 9983 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take 9984 a0/a1 out of SIregs. 9985 (STORE_FLAG_VALUE): New. 9986 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and 9987 code macros. 9988 (no_insn): New. 9989 * config/m32c/mov.md: Make constraints more liberal. 9990 (zero_extendqihi2): Optimize r0/r1 case. 9991 * config/m32c/muldiv.md (mulpsi3): Check for intvals. 9992 * config/m32c/predicates.md (m32c_any_operand): New. 9993 (m32c_nonimmediate_operand): New. 9994 (m32c_hl_operand): New. 9995 (m32c_r3_operand): New. 9996 (ap_operand): New. 9997 (ma_operand): New. 9998 (memsym_operand): New. 9999 (memimmed_operand): New. 10000 (a_qi_operand): New. 10001 (m32c_eqne_operator): New. 10002 (m32c_1bit8_operand): New. 10003 (m32c_1bit16_operand): New. 10004 (m32c_1mask8_operand): New. 10005 (m32c_1mask16_operand): New. 10006 * config/m32c/blkmov.md: New file. 10007 * config/m32c/t-m32c (MD_FILES): Add blkmov. 10008 100092006-03-08 Andreas Tobler <a.tobler@schweiz.ch> 10010 10011 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum 10012 unsigned to fix signed/unsigned comparison issue in 10013 DWARF2_FRAME_REG_OUT. 10014 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/ 10015 unsigned comparison issue in DWARF2_FRAME_REG_OUT. 10016 10017 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration 10018 of ptr into the ENABLE_CHECKING section. 10019 100202006-03-08 Jeff Law <law@redhat.com> 10021 10022 * tree-vrp.c (infer_value_range): Only count pointer uses 10023 and dereferences if -fdelete-null-pointer-checks is enabled. 10024 10025 * tree-vrp.c (find_assert_locations): Infer value ranges for 10026 single use pointers, but do not create ASSERT_EXPRs for them. 10027 When a non-null range is inferred for a pointer, backwards 10028 propagate that range to other equivalent pointers through the 10029 use-def chain. 10030 100312006-03-08 Paolo Bonzini <bonzini@gnu.org> 10032 10033 PR bootstrap/26500 10034 * Makefile.in (dvi, html, install-info): Invoke the corresponding 10035 language hook targets. 10036 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in, 10037 objcp/Make-lang.in: Create stub rules for dvi, html, install-info 10038 if language hook targets were missing. 10039 100402006-03-07 Zdenek Dvorak <dvorakz@suse.cz> 10041 10042 * tree-ssa-opfinalize.h: Removed. 10043 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h 10044 dependency. 10045 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h. 10046 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST, 10047 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op, 10048 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops, 10049 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops, 10050 finalize_ssa_v_must_def_ops): New. 10051 100522006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com> 10053 10054 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong 10055 block as parameter. 10056 100572006-03-07 Geoffrey Keating <geoffk@apple.com> 10058 10059 * varasm.c (assemble_end_function): Say that 'fnname' is unused. 10060 10061 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin 10062 addresses with offsets; reorganize. 10063 10064 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file. 10065 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT. 10066 (expand_builtin_init_dwarf_reg_sizes): Likewise. 10067 100682006-03-08 David Billinghurst <David.Billinghurst@riotinto.com> 10069 10070 PR target/26588 10071 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define. 10072 100732006-03-08 Ben Elliston <bje@au.ibm.com> 10074 10075 * config/fp-bit.h (CMPtype): Typedef to a word mode integer. 10076 100772006-03-07 Aldy Hernandez <aldyh@redhat.com> 10078 10079 PR gomp/26238 10080 * doc/passes.texi (Tree-SSA passes): Document omp lowering and 10081 expansion. 10082 100832006-03-07 Richard Guenther <rguenther@suse.de> 10084 10085 PR tree-optimization/26587 10086 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR. 10087 100882006-03-07 Richard Sandiford <richard@codesourcery.com> 10089 10090 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION. 10091 100922006-03-07 Richard Sandiford <richard@codesourcery.com> 10093 10094 * hooks.c (hook_bool_mode_rtx_true): New function. 10095 * hooks.h (hook_bool_mode_rtx_true): Declare. 10096 * toplev.c (compile_file): Call output_shared_constant_pool. 10097 * varasm.c (shared_constant_pool): New variable. 10098 (assemble_start_function, assemble_end_function): Remove arguments 10099 from call to output_constant_pool. 10100 (create_constant_pool): New function, split out from... 10101 (init_varasm_status): ...here. 10102 (force_const_mem): Choose between the shared and per-function constant 10103 pools. Set current_function_uses_const_pool when reusing old entries 10104 as well as when creating new ones. 10105 (mark_constant): Ignore data argument. 10106 (mark_constants): Remove pool argument. 10107 (mark_constant_pool): Likewise. Use current_function_uses_const_pool 10108 to decide whether the function uses a constant pool. 10109 (output_constant_pool_contents): New function, split out from... 10110 (output_constant_pool): ...here. 10111 (output_shared_constant_pool): New function. 10112 (init_varasm_once): Initialize shared_constant_pool. 10113 * output.h (output_constant_pool): Delete. 10114 (output_shared_constant_pool): Declare. 10115 * config/s390/s390-protos.h (s390_output_constant_pool): Delete. 10116 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override. 10117 101182006-03-06 Nick Clifton <nickc@redhat.com> 10119 10120 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to 10121 flag_strength_reduce. 10122 101232006-03-06 Ben Elliston <bje@au.ibm.com> 10124 10125 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and 10126 x86_64-*-linux* configurations. 10127 10128 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer. 10129 (LIBGCC2_WORDS_BIG_ENDIAN): Define. 10130 101312006-03-05 Kazu Hirata <kazu@codesourcery.com> 10132 10133 * tree-ssa-threadupdate.c (rediscover_loops_after_threading): 10134 Remove. 10135 * basic-block.h: Remove the extern for 10136 rediscover_loops_after_threading. 10137 10138 * cfgloop.c (cancel_loop): Make it static. 10139 * cfgloop.h: Remove the prototype for cancel_loop. 10140 10141 * flow.c (recompute_reg_usage): Make it static. 10142 * rtl.h: Remove the prototype for recompute_reg_usage. 10143 10144 * function.c (use_return_register): Make it static. 10145 * function.h: Remove the prototype. 10146 101472006-03-05 Kazu Hirata <kazu@codesourcery.com> 10148 10149 * recog.c (volatile_mem_p, validate_change_maybe_volatile): 10150 Remove. 10151 * recog.h: Remove the prototype for 10152 validate_change_maybe_volatile. 10153 101542006-03-05 Kazu Hirata <kazu@codesourcery.com> 10155 10156 * rtlanal.c (replace_reg): Remove. 10157 * rtl.h: Remove the prototype for replace_reg. 10158 101592006-03-05 Kazu Hirata <kazu@codesourcery.com> 10160 10161 * regclass.c (reg_scan_update): Remove. 10162 (reg_scan_mark_refs): Remove the last argument. 10163 * rtl.h: Remove the prototype for reg_scan_update. 10164 101652006-03-04 Kazu Hirata <kazu@codesourcery.com> 10166 10167 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c, 10168 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c, 10169 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c, 10170 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c, 10171 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c, 10172 loop-invariant.c, omp-low.c, opts.c, passes.c, 10173 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c, 10174 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c, 10175 tree-ssa-structalias.c, tree-ssa-threadedge.c, 10176 tree-ssa-threadupdate.c, tree-vect-patterns.c, 10177 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c, 10178 unwind-dw2.c: Fix comment typos. Follow spelling conventions. 10179 101802006-03-04 Kazu Hirata <kazu@codesourcery.com> 10181 10182 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove. 10183 * dwarf2out.h: Remove the prototype for 10184 dwarf2out_add_library_unit_info. 10185 101862006-03-04 Kazu Hirata <kazu@codesourcery.com> 10187 10188 * tree.c (add_var_to_bind_expr): Remove. 10189 * tree.h: Remove the prototype for add_var_to_bind_expr. 10190 101912006-03-04 Kazu Hirata <kazu@codesourcery.com> 10192 10193 * regclass.c (n_non_fixed_regs): Remove. 10194 (init_reg_sets_1, globalize_reg): Remove all uses of 10195 n_non_fixed_regs. 10196 * hard-reg-set.h: Remove the extern for n_non_fixed_regs. 10197 101982006-03-04 Kazu Hirata <kazu@codesourcery.com> 10199 10200 * rtlanal.c (insns_safe_to_move_p): Remove. 10201 * rtl.h: Remove the prototype for insns_safe_to_move_p. 10202 102032006-03-04 Kazu Hirata <kazu@codesourcery.com> 10204 10205 * expmed.c (expand_mult_add): Remove. 10206 * expr.h: Remove the prototype for expand_mult_add. 10207 102082006-03-04 Jakub Jelinek <jakub@redhat.com> 10209 10210 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET 10211 and REG_SAVED_VAL_EXP constants. 10212 * unwind-dw2.c (struct _Unwind_Context): Add by_value array. 10213 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr): 10214 Handle regs stored by value. 10215 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions. 10216 (execute_cfa_program): Handle DW_CFA_val_offset, 10217 DW_CFA_val_offset_sf and DW_CFA_val_expression. 10218 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by 10219 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP. 10220 (uw_install_context_1): Handle target regs stored by value. 10221 102222006-03-03 Daniel Berlin <dberlin@dberlin.org> 10223 10224 * tree-sra.c (tree_sra): Return todoflags; 10225 (generate_one_element): Set TODO_update_smt_usage if needed. 10226 (pass_sra): Remove TODO_update_smt_usage. 10227 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some 10228 parameter. 10229 (tree_ssa_forward_propagate_single_use_vars): Return 10230 TODO_update_smt_usage if we need to update SMT usage. 10231 (pass_forwprop): Remove TODO_update_smt_usage. 10232 102332006-03-03 Diego Novillo <dnovillo@redhat.com> 10234 10235 * tree-ssa-operands.c: Tidy whitespace. Fix spelling. 10236 (correct_use_link): Remove reference to get_stmt_operands. 10237 (update_stmt_operands): Likewise. 10238 (get_modify_expr_operands): New function factored out of 10239 parse_ssa_operands and get_expr_operands. 10240 Try to create V_MUST_DEFs for LHS by default. 10241 (get_expr_operands) <case MODIFY_EXPR>: Call 10242 get_modify_expr_operands. 10243 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF. 10244 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS. 10245 (parse_ssa_operands) <case MODIFY_EXPR>: Call 10246 get_modify_expr_operands. 10247 102482006-03-03 Kazu Hirata <kazu@codesourcery.com> 10249 10250 * tree-dfa.c (referenced_var_lookup_if_exists): Remove. 10251 * tree-flow.h: Remove the prototype for 10252 referenced_var_lookup_if_exists. 10253 102542006-03-03 Steve Ellcey <sje@cup.hp.com> 10255 10256 PR rtl-optimization/26345 10257 PR target/19061 10258 * config/ia64/predicates.md (basereg_operand): Don't look in subregs. 10259 102602006-03-03 Roger Sayle <roger@eyesopen.com> 10261 10262 PR tree-optimization/26524 10263 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use 10264 fold_convert to create a constant of the appropriate type. 10265 102662006-03-03 Richard Sandiford <richard@codesourcery.com> 10267 10268 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of 10269 SYMBOL_REF_IN_BLOCK_P. 10270 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead 10271 of SYMBOL_FLAG_IN_BLOCK. 10272 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P 10273 instead of SYMBOL_REF_IN_BLOCK_P. 10274 * explow.c (use_anchored_address): Likewise. 10275 * rtl.c (rtx_size): Likewise. 10276 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO 10277 instead of SYMBOL_FLAG_IN_BLOCK. 10278 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of 10279 SYMBOL_REF_IN_BLOCK_P. 10280 (assemble_variable): Likewise. 10281 (output_constant_def_contents): Likewise. 10282 (output_constant_pool): Likewise. 10283 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO 10284 instead of SYMBOL_FLAG_IN_BLOCK. 10285 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of 10286 SYMBOL_REF_IN_BLOCK_P. 10287 (SYMBOL_REF_BLOCK): Likewise. 10288 (SYMBOL_REF_OFFSET): Likewise. 10289 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of 10290 SYMBOL_REF_IN_BLOCK_P. 10291 (SYMBOL_FLAG_IN_BLOCK): Replace with... 10292 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this. 10293 (SYMBOL_REF_IN_BLOCK_P): Replace with... 10294 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this. 10295 102962006-03-03 Jakub Jelinek <jakub@redhat.com> 10297 10298 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto. 10299 103002006-03-02 Roger Sayle <roger@eyesopen.com> 10301 10302 * simplify-rtx.c (simplify_unary_operation): When simplifying 10303 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure 10304 that we perform the right shift in the appropriate mode, and 10305 then extend or truncate the result to requested mode. 10306 103072006-03-03 Zdenek Dvorak <dvorakz@suse.cz> 10308 10309 * gengtype.c (main): Handle double_int type. 10310 * tree.h (struct tree_int_cst): Make type of int_cst double_int. 10311 * double-int.c: New file. 10312 * double-int.h: New file. 10313 * system.h: Include doubleint.h. 10314 * Makefile.in (SYSTEM_H): Include double-int.h. 10315 (double-int.o): Add. 10316 103172006-03-03 Joseph S. Myers <joseph@codesourcery.com> 10318 10319 PR bootstrap/26478 10320 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before 10321 copying over it. 10322 103232006-03-02 Zdenek Dvorak <dvorakz@suse.cz> 10324 10325 * tree-vrp.c (remove_range_assertions): Do not update statements 10326 unnecessarily. 10327 103282006-03-02 Zdenek Dvorak <dvorakz@suse.cz> 10329 10330 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg 10331 cleanup. 10332 * gcse.c (rest_of_handle_gcse): Ditto. 10333 * except.c (gate_handle_eh): Ditto. 10334 * cfgcleanup.c (rest_of_handle_jump2): Ditto. 10335 * basic-block.h (CLEANUP_PRE_LOOP): Remove. 10336 103372006-03-02 Eric Christopher <echristo@apple.com> 10338 10339 * config/i386/i386.c (machopic_output_stub): Add indirection to 10340 jump. 10341 103422006-03-02 Zdenek Dvorak <dvorakz@suse.cz> 10343 10344 * loop.c: Removed. 10345 103462006-03-02 David S. Miller <davem@sunset.davemloft.net> 10347 10348 Sun Niagara specific optimizations. 10349 * config.gcc: Recognize niagara as target. 10350 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara. 10351 (TARGET_CPU_niagara): Define. 10352 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara. 10353 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara. 10354 (CPP_CPU_SPEC): Handle -mcpu=niagara. 10355 (ASM_CPU_SPEC): Likewise. 10356 (PROCESSOR_NIAGARA): New enum entry. 10357 (REGISTER_MOVE_COST): Handle Niagara. 10358 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise. 10359 * config/sparc/sparc.c (niagara_costs): New processor_costs entry. 10360 (sparc_override_options): Recognize "niagara", set appropriate 10361 default MASK_* values for it, and align functions to 32-bytes 10362 by default just like ULTRASPARC/ULTRASPARC3. 10363 (sparc_initialize_trampoline): Handle niagara like ultrasparc. 10364 (sparc64_initialize_trampoline): Likewise. 10365 (sparc_use_sched_lookahead): Use zero for niagara. 10366 (sparc_issue_rate): Use one for niagara. 10367 * config/sparc/niagara.md: New file. 10368 * config/sparc/sparc.md: Include it. 10369 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC, 10370 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately 10371 when default cpu is niagara. 10372 (CPP_CPU_SPEC): Handle -mcpu=niagara. 10373 (ASM_CPU_SPEC): Likewise. 10374 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately 10375 when default cpu is niagara. 10376 (ASM_CPU_SPEC): Handle -mcpu=niagara. 10377 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara 10378 just like v9/ultrasparc/ultrasparc3. 10379 * doc/invoke.texi: Add documentation for "niagara" and improve 10380 existing documentation for ultrasparc variants. 10381 103822006-03-02 Diego Novillo <dnovillo@redhat.com> 10383 10384 * tree-ssa-operands.c (update_stmt_operands): Update documentation. 10385 103862006-03-02 Richard Sandiford <richard@codesourcery.com> 10387 10388 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document. 10389 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS, 10390 and say that only one is needed. 10391 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null. 10392 * target.h (have_switchable_bss_sections): New hook. 10393 * explow.c (use_anchored_address): Check that the symbol is in a block. 10394 * varasm.c (tls_comm_section, comm_section, lcomm_section) 10395 (bss_noswitch_section): New variables. 10396 (get_unnamed_section): Add SECTION_UNNAMED to the flags. 10397 (get_noswitch_section): New function. 10398 (get_block_for_section): Allow SECT to be null. 10399 (unlikely_text_section_p): Use SECTION_STYLE. 10400 (bss_initializer_p): New function. 10401 (get_variable_section): Move earlier in file. Take a new argument, 10402 prefer_noswitch_p. Move bss checks from assemble_variable to here. 10403 Return one of the new *_sections in such cases. 10404 (get_block_for_decl): New function, extracting some logic from 10405 use_blocks_for_decl_p. 10406 (change_symbol_section): Remove in favor of... 10407 (change_symbol_block): ...this new function. 10408 (use_blocks_for_decl_p): Remove checks now performed by 10409 get_block_for_decl. 10410 (make_decl_rtl): Use change_symbol_block and get_block_for_decl. 10411 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of... 10412 (emit_local, emit_bss, emit_common): ...these new functions. 10413 Return true if the alignment was honored. 10414 (emit_tls_common): New function. 10415 (asm_emit_uninitialised): Delete. 10416 (assemble_variable_noswitch): New function, split out from... 10417 (assemble_variable): ...here. Don't make decisions about common 10418 variables here. Globalize all public decls that go into non-common 10419 sections. Check whether SYMBOL_REF_BLOCK is null. 10420 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null. 10421 (output_constant_pool): Likewise. 10422 (init_varasm_once): Initialize the new section variables. 10423 (have_global_bss_p): New function. 10424 (categorize_decl_for_section): Use bss_initializer_p. 10425 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH. 10426 (place_block_symbol): Assert that the symbol must be in a block. 10427 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro. 10428 (TARGET_INITIALIZER): Include it. 10429 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative. 10430 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros. 10431 (SECTION_MACH_DEP): Bump by two. 10432 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros. 10433 (unnamed_section): Mention SECTION_UNNAMED in comment. 10434 (named_section): Likewise SECTION_NAMED. 10435 (noswitch_section_callback): New type. 10436 (noswitch_section): New structure. 10437 (section): Add a noswitch_section alternative. 10438 (SECTION_STYLE): New macro. 10439 (tls_comm_section, comm_section, lcomm_section): Declare. 10440 (bss_noswitch_section, have_global_bss_p): Declare. 10441 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override. 10442 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): 10443 Override. 10444 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override. 10445 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): 10446 Override. 10447 104482006-03-02 Daniel Berlin <dberlin@dberlin.org> 10449 10450 * tree-vrp.c (execute_vrp): Return value. 10451 * regrename.c (rest_of_handle_regrename): Ditto. 10452 * tree-into-ssa.c (rewrite_into_ssa): Ditto. 10453 * tree-complex.c (tree_lower_complex): Ditto. 10454 (tree_lower_complex_O0): Ditto. 10455 * tracer.c (rest_of_handle_tracer): Ditto. 10456 * postreload-gcse.c (rest_of_handle_gcse2): Ditto. 10457 * postreload.c (rest_of_handle_postreload): Ditto. 10458 * tree-tailcall.c (execute_tail_recursion): Ditto. 10459 (execute_tail_calls): Ditto. 10460 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. 10461 * tree.h (init_function_for_compilation): Ditto. 10462 * ipa-cp.c (ipcp_driver): Ditto. 10463 * tree-scalar-evolution.c (scev_const_prop): Ditto. 10464 * tree-scalar-evolution.h (scev_const_prop): Ditto. 10465 * final.c (compute_alignments): Ditto. 10466 (rest_of_handle_final): Ditto. 10467 (rest_of_handle_shorten_branches): Ditto. 10468 (rest_of_clean_state): Ditto. 10469 * omp-low.c (execute_expand_omp): Ditto. 10470 (execute_lower_omp): Ditto. 10471 * tree-ssa-dse.c (tree_ssa_dse): Ditto. 10472 * ipa-reference.c (static_execute): Ditto. 10473 * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto. 10474 * reorg.c (rest_of_handle_delay_slots): Ditto. 10475 (rest_of_handle_machine_reorg): Ditto. 10476 * cgraphunit.c (rebuild_cgraph_edges): Ditto. 10477 * flow.c (recompute_reg_usage): Ditto. 10478 (rest_of_handle_remove_death_notes): Ditto. 10479 (rest_of_handle_life): Ditto. 10480 (rest_of_handle_flow2): Ditto. 10481 * tree-ssa-copyrename.c (rename_ssa_copies): Ditto. 10482 * tree-ssa-ccp.c (do_ssa_ccp): Ditto. 10483 (do_ssa_store_ccp): Ditto. 10484 (execute_fold_all_builtins): Ditto. 10485 * mode-switching.c (rest_of_handle_mode_switching): Ditto. 10486 * modulo-sched.c (rest_of_handle_sms): Ditto. 10487 * ipa-pure-const.c (static_execute): Ditto. 10488 * cse.c (rest_of_handle_cse): Ditto. 10489 (rest_of_handle_cse2): Ditto. 10490 * web.c (rest_of_handle_web): Ditto. 10491 * tree-stdarg.c (execute_optimize_stdarg): Ditto. 10492 * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto. 10493 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto. 10494 * tree-nrv.c (tree_nrv): Ditto. 10495 (execute_return_slot_opt): Ditto. 10496 * tree-ssa-alias.c (compute_may_aliases): Ditto. 10497 (create_structure_vars): Ditto. 10498 * loop-init.c (rtl_loop_init): Ditto. 10499 (rtl_loop_done): Ditto. 10500 (rtl_move_loop_invariants): Ditto. 10501 (rtl_unswitch): Ditto. 10502 (rtl_unroll_and_peel_loops): Ditto. 10503 (rtl_doloop): Ditto. 10504 * gimple-low.c (lower_function_body): Ditto. 10505 (mark_used_blocks): Ditto. 10506 * tree-ssa-sink.c (execute_sink_code): Ditto. 10507 * ipa-inline.c (cgraph_decide_inlining): Ditto. 10508 (cgraph_early_inlining): Ditto. 10509 * global.c (rest_of_handle_global_alloc): Ditto. 10510 * jump.c (cleanup_barriers): Ditto. 10511 (purge_line_number_notes): Ditto. 10512 * ifcvt.c (rest_of_handle_if_conversion): Ditto. 10513 (rest_of_handle_if_after_reload): Ditto. 10514 * tree-ssa-loop.c (tree_ssa_loop_init): Ditto. 10515 (tree_ssa_loop_im): Ditto. 10516 (tree_ssa_loop_unswitch): Ditto. 10517 (tree_vectorize): Ditto. 10518 (tree_linear_transform): Ditto. 10519 (tree_ssa_loop_ivcanon): Ditto. 10520 (tree_ssa_empty_loop): Ditto. 10521 (tree_ssa_loop_bounds): Ditto. 10522 (tree_complete_unroll): Ditto. 10523 (tree_ssa_loop_prefetch): Ditto. 10524 (tree_ssa_loop_ivopts): Ditto. 10525 (tree_ssa_loop_done): Ditto. 10526 * predict.c (tree_estimate_probability): Ditto. 10527 * recog.c (split_all_insns_noflow): Ditto. 10528 (rest_of_handle_peephole2): Ditto. 10529 (rest_of_handle_split_all_insns): Ditto. 10530 * tree-eh.c (lower_eh_constructs): Ditto. 10531 * regmove.c (rest_of_handle_regmove): Ditto. 10532 (rest_of_handle_stack_adjustments): Ditto. 10533 * local-alloc.c (rest_of_handle_local_alloc): Ditto. 10534 * function.c (instantiate_virtual_regs): Ditto. 10535 (init_function_for_compilation): Ditto. 10536 (rest_of_handle_check_leaf_regs): Ditto. 10537 * gcse.c (rest_of_handle_jump_bypass): Ditto. 10538 (rest_of_handle_gcse): Ditto. 10539 * ipa-type-escape.c (type_escape_execute): Ditto. 10540 * alias.c (rest_of_handle_cfg): Ditto. 10541 * tree-if-conv.c (main_tree_if_conversion): Ditto. 10542 * profile.c (rest_of_handle_branch_prob): Ditto. 10543 * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto. 10544 * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto. 10545 * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto 10546 * tree-dfa.c (find_referenced_vars): Ditto. 10547 * except.c (set_nothrow_function_flags): Ditto. 10548 (convert_to_eh_region_ranges): Ditto. 10549 (rest_of_handle_eh): Ditto. 10550 * emit-rtl.c (unshare_all_rtl): Ditto. 10551 (remove_unnecessary_notes): Ditto. 10552 * except.h (set_nothrow_function_flags): Ditto. 10553 (convert_to_eh_region_ranges): Ditto. 10554 * cfgexpand.c (tree_expand_cfg): Ditto. 10555 * tree-cfgcleanup.c (merge_phi_nodes): Ditto. 10556 * tree-ssa-pre.c (do_pre): Ditto. 10557 (execute_fre): Ditto. 10558 * cfgcleanup.c (rest_of_handle_jump): Ditto. 10559 (rest_of_handle_jump2): Ditto. 10560 * tree-sra.c (tree_sra): Ditto. 10561 * tree-mudflap.c (execute_mudflap_function_ops): Ditto. 10562 (execute_mudflap_function_decls): Ditto. 10563 * tree-ssa-copy.c (do_copy_prop): Ditto. 10564 (do_store_copy_prop): Ditto. 10565 * ipa-prop.h (ipcp_driver): Ditto. 10566 * cfglayout.c (insn_locators_initialize): Ditto. 10567 * tree-ssa-forwprop.c 10568 (tree_ssa_forward_propagate_single_use_vars): Ditto. 10569 * cfglayout.h (insn_locators_initialize): Ditto. 10570 * tree-ssa-dce.c (tree_ssa_dce): Ditto. 10571 * tree-ssa.c (execute_early_warn_uninitialized): Ditto. 10572 (execute_late_warn_uninitialized): Ditto. 10573 * rtl.h (cleanup_barriers): Ditto. 10574 (split_all_insns_noflow): Ditto. 10575 (purge_line_number_notes): Ditto. 10576 (unshare_all_rtl): Ditto. 10577 (remove_unnecessary_notes): Ditto. 10578 (recompute_reg_usage): Ditto. 10579 (variable_tracking_main): Ditto. 10580 * integrate.c (emit_initial_value_sets): Ditto. 10581 * integrate.h (emit_initial_value_sets): Ditto. 10582 * tree-optimize.c (execute_free_datastructures): Ditto 10583 (execute_free_cfg_annotations): Ditto. 10584 (execute_fixup_cfg): Ditto. 10585 (execute_cleanup_cfg_pre_ipa): Ditto. 10586 (execute_cleanup_cfg_post_optimizing): Ditto. 10587 (execute_init_datastructures): Ditto. 10588 * tree-object-size.c (compute_object_sizes): Ditto. 10589 * combine.c (rest_of_handle_combine): Ditto. 10590 * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto. 10591 * bb-reorder.c (duplicate_computed_gotos): Ditto. 10592 (rest_of_handle_reorder_blocks): Ditto. 10593 (rest_of_handle_partition_blocks): Ditto. 10594 * var-tracking.c (variable_tracking_main): Ditto. 10595 * tree-profile.c (tree_profiling): Ditto. 10596 * tree-vect-generic.c (expand_vector_operations): Ditto. 10597 * reg-stack.c (rest_of_handle_stack_regs): Ditto. 10598 * sched-rgn.c (rest_of_handle_sched): Ditto. 10599 (rest_of_handle_sched2): Ditto. 10600 * basic-block.h (free_bb_insn): Ditto. 10601 * tree-ssa-structalias.c (ipa_pta_execute): Ditto. 10602 * tree-cfg.c (execute_build_cfg): Ditto. 10603 (remove_useless_stmts): Ditto. 10604 (split_critical_edges): Ditto. 10605 (execute_warn_function_return): Ditto. 10606 (execute_warn_function_noreturn): Ditto. 10607 * tree-ssa-reassoc.c (execute_reassoc): Ditto. 10608 * cfgrtl.c (free_bb_for_insn): Ditto. 10609 * passes.c (execute_one_pass): Run additional 10610 todos returned by execute function. 10611 * tree-pass.h (struct tree_opt_pass): Make execute 10612 return a value. 10613 106142006-03-02 Richard Guenther <rguenther@suse.de> 10615 10616 * tree-ssa-alias.c (find_used_portions): Consider taking 10617 the address as making the variable not write-only. 10618 106192006-03-02 Nick Clifton <nickc@redhat.com> 10620 10621 * config.gcc (default_use_cxa_atexit): Extend the description of 10622 this configure variable. Set its default value to "yes" for 10623 Linux, NetBSD and ELF targets on the assumption that they will 10624 use C libraries with the __cxa_atexit function. 10625 106262006-03-02 Ben Elliston <bje@au.ibm.com> 10627 10628 * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs' 10629 parameter as unused to suppress a build warning. 10630 106312006-03-02 Ben Elliston <bje@au.ibm.com> 10632 10633 * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile 10634 config/dfp-bit.c. 10635 106362006-03-01 Roger Sayle <roger@eyesopen.com> 10637 10638 PR other/26489 10639 * gthr-posix.h (__gthrw2): Define to take three parameters, the 10640 declared name, the weak reference name, and the typeof name. 10641 (__gthrw): Avoid expanding the declared name suffix. 10642 (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls. 10643 106442006-03-01 Jakub Jelinek <jakub@redhat.com> 10645 10646 * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants 10647 from DWARF 3. 10648 (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale, 10649 DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count, 10650 DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled, 10651 DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity, 10652 DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New. 10653 (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New. 10654 (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited, 10655 DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New. 10656 (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch, 10657 DW_DS_leading_separate, DW_DS_trailing_separate): New. 10658 (DW_END_default, DW_END_big, DW_END_little): New. 10659 (DW_END_lo_user, DW_END_hi_user): Define. 10660 (DW_LNE_lo_user, DW_LNE_hi_user): Define. 10661 (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New. 10662 (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC, 10663 DW_LANG_D): New. 10664 106652006-03-01 Diego Novillo <dnovillo@redhat.com> 10666 10667 * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG. 10668 Update all users. 10669 * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage. 10670 Update all users. 10671 (TODO_update_smt_usage): Rename from TODO_update_tmt_usage. 10672 Update all users. 10673 * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE. 10674 Update all users. 10675 * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag' 10676 to 'symbol_mem_tag'. 10677 Update all users. 10678 * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT 10679 rename. 10680 106812006-03-01 Roger Sayle <roger@eyesopen.com> 10682 10683 * builtins.c (fold_builtin_copysign): Delete unreachable code. 10684 106852006-03-01 Andrew Pinski <pinskia@physics.uc.edu> 10686 10687 PR target/25761 10688 * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just 10689 MACHO_DYNAMIC_NO_PIC_P. 10690 (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P. 10691 106922006-03-01 Andrew Pinski <pinskia@physics.uc.edu> 10693 10694 PR target/26389 10695 * config/darwin-protos.h (darwin_asm_output_anchor): 10696 Declare. 10697 * config/darwin-sections.def (cstring_section): 10698 Add SECTION_MERGE to the flags. 10699 (literal4_section): Likewise. 10700 (literal8_section): Likewise. 10701 (objc_selector_refs_section): Likewise. 10702 (objc_cls_refs_section): Likewise. 10703 * config/darwin.c (darwin_asm_output_anchor): New 10704 function. 10705 * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define. 10706 107072006-03-01 Daniel Berlin <dberlin@dberlin.org> 10708 10709 Fix PR tree-optimization/26443 10710 * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage 10711 to todo and PROP_tmt_usage to properties_destroyed. 10712 * tree-ssa-ccp.c (pass_ccp): Ditto. 10713 (pass_store_ccp): Ditto. 10714 * tree-ssa-dom.c (pass_dominator): Ditto. 10715 107162006-03-01 Diego Novillo <dnovillo@redhat.com> 10717 10718 * tree-ssa-operands.c: Cleanup whitespace. 10719 (get_asm_expr_operands): Move before first invocation. 10720 (get_indirect_ref_operands): Likewise. 10721 (get_tmr_operands): Likewise. 10722 (get_call_expr_operands): Likewise. 10723 (append_def): Likewise. 10724 (append_use): Likewise. 10725 (append_v_may_def): Likewise. 10726 (append_v_must_def): Likewise. 10727 (add_call_clobber_ops): Likewise. 10728 (add_call_read_ops): Likewise. 10729 (add_stmt_operand): Likewise. 10730 (add_virtual_operand): Likewise. 10731 (build_ssa_operands): Likewise. 10732 107332006-03-01 Andrew Pinski <pinskia@physics.uc.edu> 10734 10735 PR middle-end/26022 10736 Revert: 10737 PR middle-end/24437 10738 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF 10739 with a call expr to ... 10740 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here. 10741 107422006-03-01 Diego Novillo <dnovillo@redhat.com> 10743 10744 * tree-vrp.c (extract_range_from_assert): Remove special 10745 handling for types with super-types. 10746 107472006-03-01 Ben Elliston <bje@au.ibm.com> 10748 10749 * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux* 10750 and powerpc64-*-linux* configurations. 10751 * config/t-dfprules: New file. 10752 10753 * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS. 10754 Compile dfp-bit.c from the source directory using -DWIDTH and 10755 $DFP_CFLAGS to control the compilation of that file, rather than 10756 generating width-specific versions in the build directory. 10757 * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS. 10758 (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc]. 10759 107602006-02-28 Zack Weinberg <zackw@panix.com> 10761 10762 * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7 10763 continues to work. 10764 107652006-02-28 Eric Christopher <echristo@apple.com> 10766 10767 * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define. 10768 Set up IN_LIBGCC definition of TARGET_64BIT. 10769 * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define. 10770 107712006-02-28 Roger Sayle <roger@eyesopen.com> 10772 10773 PR middle-end/14752 10774 * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR, 10775 BIT_XOR_EXPR, BIT_AND_EXPR>: Delete. Let fold optimize these 10776 cases via the construction of "expr != 0". 10777 107782006-02-28 Steven Bosscher <stevenb.gcc@gmail.com> 10779 10780 * alias.c (alias_invariant, alias_invariant_size): Remove. 10781 (record_base_value): Remove. 10782 (memrefs_conflict_p): Don't look at alias_invariant. 10783 (end_alias_analysis): Don't free it. 10784 * alias.h (record_base_value): Remove prototype. 10785 107862006-02-28 Paolo Bonzini <bonzini@gnu.org> 10787 Adam Nemet <anemet@caviumnetworks.com> 10788 10789 * rtl.h (truncated_to_mode): Declare it. 10790 (struct rtl_hooks): Add reg_truncated_to_mode hook. 10791 * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro. 10792 (RTL_HOOKS_INITIALIZER): Include it. 10793 * rtlhooks.c (reg_truncated_to_mode_general): New function. 10794 * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to 10795 reg_truncated_to_mode. 10796 * rtlanal.c (truncated_to_mode): Define it. 10797 * simplify-rtx.c (simplify_unary_operation_1): Use it. 10798 107992006-02-28 Jeff Law <law@redhat.com> 10800 10801 * tree-chrec.c (chrec_convert_aggressive): Do not eliminate 10802 conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover 10803 the range allowed by TYPE_PRECISION. 10804 10805 * tree.h (strct phi_arg_d): Remove unused NONZERO field. 10806 108072006-02-28 Dorit Nuzman <dorit@il.ibm.com> 10808 10809 PR tree-optimization/26419 10810 * doc/invoke.texi (ftree-vectorizer-verbose): Add information on 10811 values of n. 10812 108132006-02-27 Zack Weinberg <zackw@panix.com> 10814 10815 * doc/md.texi: Fix typo in previous change. 10816 108172006-02-27 Kenneth Zadeck <zadeck@naturalbridge.com> 10818 10819 * df.c: Remove. 10820 108212006-02-27 Zack Weinberg <zackw@panix.com> 10822 10823 * rtl.def (define_constraint, define_register_constraint) 10824 (define_memory_constraint, define_address_constraint): New MD forms. 10825 * gensupport.c (process_rtx): Put define_constraint etc on the 10826 predicate queue. 10827 * genpreds.c (process_define_predicate): Adjust comment. Validate 10828 the name, and call validate_exp to validate the expression. 10829 (mark_mode_tests, write_extract_subexp): Can assume correct input. 10830 (write_predicate_expr): Likewise. NAME argument no longer necessary; 10831 all callers changed. 10832 (validate_exp, needs_variable, struct constraint_data) 10833 (constraints_by_letter_table, first_constraint, last_constraint_ptr) 10834 (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints) 10835 (const_dbl_constraints, constraint_max_namelen) 10836 (have_register_constraints, have_memory_constraints) 10837 (have_address_constraints, have_address_constraints) 10838 (have_extra_constraints, have_const_int_constraints) 10839 (have_const_dbl_constraints, mangle, add_constraint) 10840 (process_define_constraint, process_define_register_constraint) 10841 (write_enum_constraint_num, write_lookup_constraint) 10842 (write_insn_constraint_len, write_regclass_for_constraint) 10843 (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint) 10844 (write_insn_extra_memory_constraint) 10845 (write_insn_extra_address_constraint) 10846 (write_satisfies_constraint_fns): New. 10847 (write_tm_preds_h): If we have new-style constraint definitions, 10848 prototype the functions generated from them, and define the 10849 old constraint interface (still used by generic code) in terms of 10850 those functions. 10851 (write_insn_preds_c): If we have new-style constraint definitions, 10852 generate all relevant functions from those definitions. 10853 (main): Handle define_constraint etc. 10854 * genoutput.c (struct constraint_data, indep_constraints) 10855 (mdep_constraint_letters, constraints_by_letter_table, note_constraint) 10856 (mdep_constraint_len): New data structures and functions, defined 10857 #ifdef USE_MD_CONSTRAINTS. 10858 (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS. 10859 (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined, 10860 use new logic to validate operand constraints against constraint 10861 definitions. 10862 (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is 10863 defined. 10864 * defaults.h: If none of the old-style constraint macros are 10865 defined, define USE_MD_CONSTRAINTS; do not provide defaults for any 10866 old-style macros; and poison REG_CLASS_FROM_LETTER, 10867 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and 10868 EXTRA_CONSTRAINT. 10869 * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately. 10870 * doc/md.texi: Document new constraint-definition mechanism and the 10871 C interface it provides. Remove references to old mechanism 10872 elsewhere in the document. 10873 (Machine Constraints): Use pathnames relative to gcc directory, 10874 i.e. config/ARCH/FILE. Change i386 section to refer to 10875 config/i386/predicates.md; update that section to match docstrings. 10876 * doc/tm.texi: Move all documentation of the old constraint- 10877 definition macros to their own section, clearly mark as obsolete. 10878 10879 * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t) 10880 (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint 10881 definitions. 10882 * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P) 10883 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete. 10884 * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from 10885 constraint strings. 10886 (splits and peepholes): Use satisfies_constraint_*. 10887 * config/i386/i386.c (memory_address_length) 10888 (ix86_attr_length_immediate_default): Use satisfies_constraint_*. 10889 108902006-02-27 Daniel Berlin <dberlin@dberlin.org> 10891 10892 * lambda-code.c (can_convert_to_perfect_nest): Allow any type of 10893 scalar operation to be put back into the loop. 10894 108952006-02-27 Jakub Jelinek <jakub@redhat.com> 10896 10897 PR other/26208 10898 * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field. 10899 (extract_cie_info): Handle S flag in augmentation string. 10900 (execute_cfa_program): If context->signal_frame, execute also 10901 fs->pc == context->ra instructions. 10902 (uw_frame_state_for): If context->signal_frame, don't subtract one 10903 from context->ra to find FDE. 10904 (uw_update_context_1): Set context->signal_frame to 10905 fs->signal_frame. 10906 (_Unwind_GetIPInfo): New function. 10907 * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field. 10908 * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead 10909 of _Unwind_GetIP. 10910 * unwind-sjlj.c (_Unwind_GetIPInfo): New function. 10911 * unwind-generic.h (_Unwind_GetIPInfo): New prototype. 10912 * unwind-compat.c (_Unwind_GetIPInfo): New function. 10913 * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0. 10914 * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function. 10915 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define. 10916 * config/i386/linux-unwind.h (x86_fallback_frame_state, 10917 x86_64_fallback_frame_state): Set fs->signal_frame. 10918 * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise. 10919 (MD_FROB_UPDATE_CONTEXT): Define unconditionally. 10920 (frob_update_context): Likewise. Workaround missing S flag in 10921 Linux 2.6.12 - 2.6.16 kernel vDSOs. 10922 * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise. 10923 Remove the psw_addr + 1 hack. 10924 109252006-02-27 Daniel Berlin <dberlin@dberlin.org> 10926 10927 * tree-ssa-structalias.c (get_constraint_for): Move code to deal 10928 with aggregates here. 10929 (find_func_aliases): Remove code for &<aggregate> from here. 10930 109312006-02-26 Roger Sayle <roger@eyesopen.com> 10932 10933 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as 10934 (X & C) ne/eq 0, where C is a single bit, i.e. a power of two. 10935 Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0" 10936 as (X & C) ne/eq 0. 10937 109382006-02-26 Roger Sayle <roger@eyesopen.com> 10939 10940 PR middle-end/19983 10941 * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes. 10942 109432006-02-26 Zdenek Dvorak <dvorakz@suse.cz> 10944 10945 * opts.c (decode_options): Do not handle flag_strength_reduce. 10946 (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt 10947 and OPT_fstrength_reduce. 10948 * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test 10949 flag_prefetch_loop_arrays for being nonzero. 10950 * common.opt (floop-optimize, frerun-loop-opt): Resurrected as 10951 no-ops. 10952 (fprefetch-loop-arrays-rtl): Removed. 10953 (flag_prefetch_loop_arrays): Do not specify the value. 10954 10955 * doc/passes.texi: Update documentation of loop optimizer 10956 passes. 10957 * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl, 10958 -frerun-loop-opt): Remove. 10959 109602006-02-26 Richard Guenther <rguenther@suse.de> 10961 10962 PR tree-optimization/26421 10963 * tree-ssa-alias.c (find_used_portions): Don't treat parameters 10964 in function calls that are ADDR_EXPRs as using the whole structure. 10965 109662006-02-26 Steven Bosscher <stevenb.gcc@gmail.com> 10967 10968 * common.opt (-floop-optimize, -frerun-loop-opt): Remove. 10969 * tree-pass.h (pass_loop_optimize): Remove. 10970 * passes.c (pass_loop_optimize): Never run it. 10971 * toplev.c (backend_init): Don't call init_loop. 10972 * opts.c (flag_loop_optimize_set): Remove. 10973 (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt. 10974 (common_handle_option) <OPT_floop_optimize>: Remove. Don't disable 10975 the old RTL loop optimizer when profiling enabled. 10976 * predict.c (tree_estimate_probability): Always strip builtin_expect. 10977 * cfgcleanup.c (try_forward_edges): Don't avoid killing loop 10978 pre-headers for the sake of the old RTL loop optimizer. 10979 * Makefile.in: Remove all references to loop.o. 10980 10981 * doc/invoke.texi: Remove all references to -floop-optimize 10982 and -frerun-loop-opt. 10983 109842006-02-26 Zack Weinberg <zackw@panix.com> 10985 10986 * doc/md.texi (Machine Constraints): Refer to all files with paths 10987 relative to gcc directory (i.e. config/CPU/file). Add missing 10988 @table @code ... @end table to M32C subsection. 10989 109902006-02-26 Roger Sayle <roger@eyesopen.com> 10991 10992 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as 10993 (X & 1) == 0. 10994 <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0. 10995 109962006-02-26 Roger Sayle <roger@eyesopen.com> 10997 James A. Morrison <phython@gcc.gnu.org> 10998 10999 PR middle-end/21137 11000 * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0, 11001 when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the 11002 new constant C2<<C1, or as (X<0) or (X,false) depending upon the 11003 signedness of the shift operation. 11004 110052006-02-26 Dorit Nuzman <dorit@il.ibm.com> 11006 11007 PR tree-optimization/26359 11008 * tree-ssa-alias.c (new_type_alias): Set fields for new tag. 11009 110102006-02-25 Roger Sayle <roger@eyesopen.com> 11011 11012 * simplify-rtx.c (simplify_relational_operation_1): Simplify 11013 (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y 11014 as X == 0, and some symmetry related transformations. 11015 Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line. 11016 110172006-02-25 Roger Sayle <roger@eyesopen.com> 11018 11019 PR middle-end/23673 11020 * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y 11021 and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some 11022 symmetry related transformations. Fold (X^C1) == C2 as 11023 X == (C1^C2). 11024 110252006-02-25 Juergen Weigert <jw@suse.de> 11026 Richard Guenther <rguenther@suse.de> 11027 11028 * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF. 11029 110302006-02-24 Adam Nemet <anemet@caviumnetworks.com> 11031 11032 * combine.c (gen_lowpart_or_truncate): Call 11033 simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE. 11034 110352006-02-24 Diego Novillo <dnovillo@redhat.com> 11036 11037 * doc/invoke.texi: Move -fopenmp description to "Options for 11038 Code Generation". 11039 Remove reference to -lgomp. 11040 110412006-02-24 David Edelsohn <edelsohn@gnu.org> 11042 11043 * doc/install.texi: Require GNU tar version 1.14. 11044 110452006-02-24 Geoffrey Keating <geoffk@apple.com> 11046 11047 * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS. 11048 * doc/invoke.texi (C++ Dialect Options): Document 11049 -fno-use-cxa-get-exception-ptr. 11050 * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1. 11051 * configure: Regenerate. 11052 * c.opt (fuse-cxa-get-exception-ptr): New. 11053 * c-opts.c (c_common_handle_option): Handle 11054 OPT_fuse_cxa_get_exception_ptr. 11055 * c-common.c (flag_use_cxa_atexit): Update documentation. 11056 (flag_use_cxa_get_exception_ptr): New. 11057 * c-common.h (flag_use_cxa_get_exception_ptr): New. 11058 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve 11059 documentation. 11060 (C_COMMON_OVERRIDE_OPTIONS): New. 11061 110622006-02-24 Roger Sayle <roger@eyesopen.com> 11063 11064 PR middle-end/24952 11065 * combine.c (try_combine): Explicitly check whether GET_CODE is 11066 a SET or a CLOBBER, instead on checking that it isn't a USE. 11067 110682006-02-24 Roger Sayle <roger@eyesopen.com> 11069 11070 * fold-const.c (fold_comparison): New subroutine of fold_binary 11071 containing transformations common to both the equality and 11072 ordering relational operators, factored out of fold_binary. 11073 (fold_binary): Separate out the equality operators (EQ_EXPR 11074 and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR, 11075 LE_EXPR and GE_EXPR), calling fold_comparison to perform the 11076 transformations common to both. 11077 (fold_div_compare): Fix latent bugs in the previously unreachable 11078 LT_EXPR and GE_EXPR cases. 11079 110802006-02-24 David Edelsohn <edelsohn@gnu.org> 11081 11082 * config/rs6000/rs6000.c (rs6000_init_builtins): Change 11083 decl libname for clog to __clog on AIX. 11084 11085 * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define. 11086 110872006-02-24 Alan Modra <amodra@bigpond.net.au> 11088 11089 PR target/26453 11090 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't 11091 output traceback table for thunks. Localise rs6000_stack_info call. 11092 110932006-02-23 Roger Sayle <roger@eyesopen.com> 11094 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 11095 11096 * gthr-posix.h (__gthrw): Fix typo in comment. 11097 110982006-02-23 Geoffrey Keating <geoffk@apple.com> 11099 11100 * doc/cpp.texi (Character sets): Document that we do support 11101 input files to be in any character set. 11102 111032006-02-23 Jeff Law <law@redhat.com> 11104 11105 * tree.h (PHI_ARG_NONZERO): Remove. 11106 * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO. 11107 (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old 11108 node to the new node. 11109 11110 PR tree-optimization/26425 11111 * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL 11112 min/max, then assume its varying. 11113 111142006-02-23 Zdenek Dvorak <dvorakz@suse.cz> 11115 11116 PR rtl-optimization/26316 11117 * rtlanal.c (enum may_trap_p_flags): New. 11118 (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore 11119 MEM_NOTRAP_P if flags & MTP_AFTER_MOVE. 11120 (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1. 11121 (may_trap_after_code_motion_p): New function. 11122 * loop-invariant.c (find_identical_invariants): Fix dump formating. 11123 (find_invariant_insn): Use may_trap_after_code_motion_p. 11124 * rtl.h (may_trap_after_code_motion_p): Declare. 11125 111262006-02-23 Zdenek Dvorak <dvorakz@suse.cz> 11127 11128 * emit-rtl.c (immed_double_const): Cleanup. 11129 111302006-02-23 Daniel Berlin <dberlin@dberlin.org> 11131 11132 Fix PR tree-optimization/26376 11133 * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree, 11134 remove assert. 11135 111362006-02-23 Jakub Jelinek <jakub@redhat.com> 11137 11138 PR middle-end/26412 11139 * gimplify.c (omp_add_variable): Guard variable size decl test with 11140 DECL_SIZE (decl) check. 11141 111422006-02-23 Richard Guenther <rguenther@suse.de> 11143 11144 PR middle-end/26439 11145 * tree-ssa-structalias.c (find_func_aliases): Handle complex types 11146 like aggregate types. 11147 111482006-02-23 Jakub Jelinek <jakub@redhat.com> 11149 11150 * configure.ac: Add --with{,out}-long-double-128 configure option. 11151 (TARGET_DEFAULT_LONG_DOUBLE_128): New test. 11152 * configure: Rebuilt. 11153 * config.in: Rebuilt. 11154 * doc/install.texi (Options specification): Document 11155 --with-long-double-128. 11156 11157 * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128] 11158 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. 11159 * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128] 11160 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. 11161 111622006-02-23 Aldy Hernandez <aldyh@redhat.com> 11163 11164 * config/s390/s390.c (override_options): Handle 11165 TARGET_DEFAULT_LONG_DOUBLE_128. 11166 11167 * config/alpha/alpha.c (override_options): Handle 11168 TARGET_DEFAULT_LONG_DOUBLE_128. 11169 11170 * config/sparc/sparc.c (sparc_override_options): Handle 11171 TARGET_DEFAULT_LONG_DOUBLE_128. 11172 111732006-02-22 Daniel Jacobowitz <dan@codesourcery.com> 11174 11175 * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR). 11176 (real-install-headers-tar, real-install-headers-cpio) 11177 (real-install-headers-cp): New targets. 11178 111792006-02-22 Richard Sandiford <richard@codesourcery.com> 11180 11181 * tree.h (variable_section): Delete. 11182 * varasm.c (variable_section): Delete. 11183 111842006-02-22 Paolo Bonzini <bonzini@gnu.org> 11185 11186 * install.texi: Add notes on install.texi2html. 11187 (Building in parallel): Do not use footnotes. 11188 111892006-02-21 Aldy Hernandez <aldyh@redhat.com> 11190 11191 PR libgomp/26234 11192 * doc/install.texi (Configuration): Document --disable-libgomp. 11193 111942006-02-21 Geoffrey Keating <geoffk@apple.com> 11195 11196 * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New. 11197 111982006-02-21 Alexandre Oliva <aoliva@redhat.com> 11199 11200 * config/i386/sse.md (vec_extractv2df_1_sse): New. 11201 (vec_extractv2df_0_sse): New. 11202 112032006-02-21 Alexandre Oliva <aoliva@redhat.com> 11204 11205 * defaults.h (CFA_FRAME_BASE_OFFSET): Define. 11206 * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override. 11207 * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document. 11208 * dwarf2out.c (build_cfa_loc): New offset parameter. Add it 11209 to the result of the expression. 11210 (def_cfa_1): Adjust. 11211 (frame_pointer_cfa_offset): Rename to... 11212 (frame_pointer_fb_offset): ... this. Adjust all uses. 11213 (convert_cfa_to_loc_list): Rename to... 11214 (convert_cfa_to_fb_loc_list): ... this. New offset parameter. 11215 Pass it on to build_cfa_loc. 11216 (compute_frame_pointer_to_cfa_displacement): Rename to... 11217 (compute_frame_pointer_to_fb_displacement): ... this. New 11218 offset parameter. Use it in computation. 11219 (gen_subprogram_die): Compute cfa_fb_offset with the new 11220 macro, and use it to compute the fb loc list and the 11221 displacement. 11222 112232006-02-21 Bernd Schmidt <bernd.schmidt@analog.com> 11224 11225 * config/bfin/predicates.md (cc_operand): Delete predicate. All uses 11226 replaced with register_operand. 11227 * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any 11228 non-DREG is expensive. 11229 * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed. 11230 * config/bfin/bfin.md (movbi): Fix constraints and template for moves 11231 involving memory. 11232 112332006-02-21 Joseph S. Myers <joseph@codesourcery.com> 11234 11235 * doc/install.texi2html: Use set -e. 11236 112372006-02-21 Richard Sandiford <richard@codesourcery.com> 11238 11239 * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) 11240 (ASM_OUTPUT_SHARED_LOCAL): Delete. 11241 * doc/invoke.texi (-fshared-data): Delete. 11242 * common.opt (fshared-data): Delete. 11243 * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling. 11244 (assemble_static_space): Remove #if 0 code. 11245 * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) 11246 (ASM_OUTPUT_SHARED_LOCAL): Poison. 11247 * config/cris/cris.h: Remove FIXME. 11248 112492006-02-21 Paolo Bonzini <bonzini@gnu.org> 11250 11251 * doc/sourcebuild.texi (Front End Directory): No more double-colon 11252 hooks. 11253 112542006-02-21 Jakub Jelinek <jakub@redhat.com> 11255 11256 PR middle-end/26379 11257 * combine.c (simplify_shift_const_1): Disable nested shifts 11258 optimization for vector shifts. 11259 112602006-02-20 Roger Sayle <roger@eyesopen.com> 11261 11262 PR tree-optimization/26361 11263 * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR 11264 of unsigned integer types. 11265 112662006-02-20 Sebastian Pop <pop@cri.ensmp.fr> 11267 11268 * tree-chrec.c (eq_evolutions_p): New. 11269 * tree-chrec.h (eq_evolutions_p): Declared. 11270 * tree-data-ref.c: Fix formatting. 11271 (datadep_stats, dependence_stats): New. 11272 (gcd): Moved... 11273 (print_direction_vector): New. 11274 (dump_data_dependence_relation): Use print_direction_vector. 11275 (object_analysis, create_data_ref): Handle COMPONENT_REF. 11276 (compute_subscript_distance): Static. 11277 (initialize_data_dependence_relation): Static. Get the number 11278 of loops surrounding the references from the callers, and initialize 11279 DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and 11280 base_object_differ_p analyzers. 11281 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, 11282 compute_overlap_steps_for_affine_1_2, 11283 analyze_subscript_affine_affine): Count the classified dependences. 11284 Print a message when a test failed. 11285 (can_use_analyze_subscript_affine_affine): New. 11286 (analyze_siv_subscript): Compute the data dependences on symbolic 11287 scevs that verify can_use_analyze_subscript_affine_affine. 11288 (chrec_steps_divide_constant_p): Returns true, false, or unknown. 11289 (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p. 11290 Handle symbolic scevs. 11291 (analyze_overlapping_iterations): Let symbolic affine scevs to be 11292 analyzed. 11293 (subscript_dependence_tester): Moved... 11294 (build_classic_dist_vector, build_classic_dir_vector): Don't use 11295 lambda_vector_clear on newly allocated vectors. Get nb_loops from 11296 DDR_SIZE_VECT instead of getting it in parameter. 11297 (subscript_dependence_tester): ... here. Take as a parameter 11298 loop_nest_depth. Call build_classic_dist_vector and 11299 build_classic_dir_vector. 11300 (compute_affine_dependence): Update subscript_dependence_tester 11301 parameters. Update datadep_stats counters. Call 11302 compute_subscript_distance. 11303 (compute_self_dependence): Save the dist and dir vectors. Call 11304 compute_subscript_distance. 11305 (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved... 11306 (compute_all_dependences): Reorder parameters as they were before 11307 conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call 11308 compute_subscript_distance. Update the use of 11309 compute_affine_dependence and initialize_data_dependence_relation. 11310 (find_data_references_in_loop): Handle COMPONENT_REF. 11311 (compute_data_dependences_for_loop): Initialize dependence_stats. 11312 Don't call build_classic_dist_vector and build_classic_dir_vector. 11313 Update the parameters of initialize_data_dependence_relation and 11314 compute_all_dependences. Print the statistics from datadep_stats. 11315 (analyze_all_data_dependences): Static. Not used until the pass for 11316 checking the data dependences is contributed. 11317 * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p), 11318 DEF_VEC_ALLOC_P(ddr_p,heap)): ... here. 11319 (initialize_data_dependence_relation, compute_affine_dependence, 11320 analyze_all_data_dependences, compute_subscript_distance): Removed. 11321 (print_direction_vector): New. 11322 * lambda.h (gcd): ... here. 11323 (lambda_vector_gcd): Moved here from gcd_vector. 11324 * lambda-code.c (gcd, gcd_vector): Removed. 11325 (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting. 11326 * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H. 11327 113282006-02-20 Diego Novillo <dnovillo@redhat.com> 11329 11330 * ipa-type-escape.c: Tidy some comments and white space. 11331 * tree-ssa-operands.c: Likewise. 11332 113332006-02-20 Andrew Pinski <pinskia@physics.uc.edu> 11334 11335 PR tree-opt/25879 11336 * tree-pretty-print.c (debug_tree_chain): Walk the chains. 11337 (dump_decl_name): Do not walk the decl tree chains. 11338 * tree-pass.h (TDF_CHAIN): Remove. 11339 113402006-02-20 Rafael �vila de Esp�ndola <rafael.espindola@gmail.com> 11341 11342 * Makefile.in (C): Remove 11343 (PROTO): Remove 11344 (.PHONY): Remove C and PROTO 11345 113462006-02-20 Roger Sayle <roger@eyesopen.com> 11347 11348 PR middle-end/26236 11349 * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now 11350 deprecated CHAR_TYPE tree code. 11351 113522006-02-20 Paolo Bonzini <bonzini@gnu.org> 11353 11354 * configure.ac (target_list): Add install-info, dvi, html. 11355 * configure: Regenerate. 11356 11357 * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in, 11358 java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in, 11359 treelang/Make-lang.in: Do not use double-colon rules. 11360 113612006-02-20 Daniel Berlin <dberlin@dberlin.org> 11362 11363 * tree.h (struct tree_memory_tag): Add is_used_alone member. 11364 (TMT_USED_ALONE): New macro. 11365 * tree-pass.h (PROP_tmt_usage): New property. 11366 (TODO_update_tmt_usage): New todo. 11367 * tree-ssa-alias.c (updating_used_alone): New variable. 11368 (recalculate_used_alone): New function. 11369 (compute_may_aliases): Set updating_used_alone, call 11370 recalculate_used_alone. 11371 * tree-sra.c (pass_sra): Note that this pass destroys 11372 PROP_tmt_usage, and add TODO_update_tmt_usage. 11373 * tree-ssa-forwprop.c (pass_forwprop): Ditto. 11374 * tree-flow.h (updating_used_alone): Prototype. 11375 (recalculate_used_alone): Ditto. 11376 * passes.c (execute_todo): Add code to set updating_used_alone, 11377 and call recalculate. 11378 * tree-ssa-operands.c (add_virtual_operand): Only append bare def 11379 for clobber if used alone, and add assert to verify used_alone 11380 status. 11381 113822006-02-20 Angel Nunez Mencias <anunez@de.ibm.com> 11383 11384 * config/s390/s390.c (legitimize_pic_address): Assertions checking 11385 for non tls symbols added. 11386 (legitimize_address): Do nothing for PLUS expressions if one of the 11387 addends is a tls symbol reference. 11388 113892006-02-20 Paolo Bonzini <bonzini@gnu.org> 11390 11391 PR bootstrap/25476 11392 11393 * Makefile.in (LDFLAGS): Define from autoconf substitution. 11394 11395 * Makefile.in (BOOTSTRAPPING): New. 11396 (quickstrap): New definition if BOOTSTRAPPING=yes. 11397 11398 * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages. 11399 * configure.ac: Substitute all_selected_languages with the languages 11400 that were configured. For all the other variables except 11401 lang_specs_files, include all the languages in the tree. 11402 * configure: Regenerate. 11403 11404 * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory, 11405 if there is one. Run the commands to run fixincludes in the same 11406 subshell. 11407 11408 * doc/makefile.texi: Document new makefile targets from toplevel bootstrap. 11409 * doc/install.texi: Document exact conventions for searching target tools. 11410 Document --with-build-time-tools. Document toplevel bootstrap. Document 11411 something more about building an Ada cross-compiler. Don't list GNU Make 11412 requirements which affect all platforms. 11413 114142006-02-19 Roger Sayle <roger@eyesopen.com> 11415 11416 PR middle-end/19543 11417 * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are 11418 only equivalent if the have both the same mode and precision. 11419 114202006-02-20 Ben Elliston <bje@au.ibm.com> 11421 11422 * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE. 11423 114242006-02-19 Roger Sayle <roger@eyesopen.com> 11425 Steven Bosscher <stevenb.gcc@gmail.com> 11426 11427 * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through 11428 constant pool references to identify stack mode constants. 11429 * rtlanal.c (constant_pool_constant_p): New predicate to check 11430 whether operand is a floating point constant in the pool. 11431 * rtl.h (constant_pool_constant_p): Prototype here. 11432 * loop.c (scan_loop): Avoid hoisting constants from the constant 11433 pool on STACK_REGS targets. 11434 (load_mems): Likewise. 11435 * loop-invariant.c (get_inv_cost): Make hoisting constant pool 11436 loads into x87 registers expensive in terms of register pressure. 11437 114382006-02-19 Roger Sayle <roger@eyesopen.com> 11439 11440 * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to 11441 __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined. 11442 114432006-02-19 David Edelsohn <edelsohn@gnu.org> 11444 11445 * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define. 11446 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define. 11447 114482006-02-19 Daniel Berlin <dberlin@dberlin.org> 11449 11450 * doc/invoke.texi: Document -fipa-pta. 11451 * common.opt: Add ipa-pta option. 11452 * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed. 11453 (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code. 11454 (do_ds_constraint): Ditto. 11455 (get_constraint_for): Only add to referenced_vars if 11456 referenced_vars exists. 11457 (insert_into_field_list): Rewrite to do this unsorted. 11458 (insert_into_field_list_sorted): Rename old insert_into_field_list 11459 to this. 11460 (create_function_info_for): Use insert_into_field_list_sorted. 11461 (create_variable_info_for): Rewrite so it uses unsorted version, 11462 since the field list is sorted. 11463 (intra_create_variable_infos): Only add to referenced_vars if 11464 referenced_vars exists. 11465 (ipa_pta_execute): Init heapvars, and delete when done. 11466 * passes.c (init_optimization_passes): Add call to pass_ipa_pta. 11467 114682006-02-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 11469 11470 * doc/install.texi: Add missing `@samp'. 11471 114722006-02-18 Andrew Pinski <pinskia@physics.uc.edu> 11473 11474 * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): 11475 Use the arguments. 11476 114772006-02-18 Mark Wielaard <mark@klomp.org> 11478 11479 * doc/contrib.texi (Contributors): Add classpath/libgcj hackers 11480 who added new 4.1 features, bug fixes and integration support. 11481 114822006-02-18 David Edelsohn <edelsohn@gnu.org> 11483 11484 PR target/26350 11485 * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized 11486 MEM for ABI_V4 pic. 11487 114882006-02-18 Richard Sandiford <richard@codesourcery.com> 11489 11490 * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE. 11491 * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx. 11492 (copy_insn_1): Likewise. Don't copy each field individually. 11493 Reindent. 11494 * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead 11495 of RTX_SIZE. 11496 * reload1.c (eliminate_regs): Use shallow_copy_rtx. 11497 * rtl.c (rtx_size): Rename variable to... 11498 (rtx_code_size): ...this. 11499 (rtx_size): New function. 11500 (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE. 11501 (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually. 11502 Reindent. 11503 (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE. 11504 * rtl.h (rtx_code_size): New variable. 11505 (rtx_size): Change from a variable to a function. 11506 (RTX_SIZE): Rename to... 11507 (RTX_CODE_SIZE): ...this. 11508 11509 PR target/9703 11510 PR tree-optimization/17106 11511 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document. 11512 (Anchored Addresses): New section. 11513 * doc/invoke.texi (-fsection-anchors): Document. 11514 * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise. 11515 (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise. 11516 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise. 11517 * hooks.c (hook_bool_mode_rtx_false): New function. 11518 * hooks.h (hook_bool_mode_rtx_false): Declare. 11519 * gengtype.c (create_optional_field): New function. 11520 (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when 11521 SYMBOL_REF_IN_BLOCK_P is true. 11522 * target.h (output_anchor, use_blocks_for_constant_p): New hooks. 11523 (min_anchor_offset, max_anchor_offset): Likewise. 11524 (use_anchors_for_symbol_p): New hook. 11525 * toplev.c (compile_file): Call output_object_blocks. 11526 (target_supports_section_anchors_p): New function. 11527 (process_options): Check that -fsection-anchors is only used on 11528 targets that support it and when -funit-at-a-time is in effect. 11529 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL 11530 if the decl doesn't have one. 11531 * dwarf2out.c: Remove instantiations of VEC(rtx,gc). 11532 * expr.c (emit_move_multi_word, emit_move_insn): Pass the result 11533 of force_const_mem through use_anchored_address. 11534 (expand_expr_constant): New function. 11535 (expand_expr_addr_expr_1): Call it. Use the same modifier when 11536 calling expand_expr for INDIRECT_REF. 11537 (expand_expr_real_1): Pass DECL_RTL through use_anchored_address 11538 for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant. 11539 * expr.h (use_anchored_address): Declare. 11540 * loop-unroll.c: Don't declare rtx vectors here. 11541 * explow.c: Include output.h. 11542 (validize_mem): Call use_anchored_address. 11543 (use_anchored_address): New function. 11544 * common.opt (-fsection-anchors): New switch. 11545 * varasm.c (object_block_htab, anchor_labelno): New variables. 11546 (hash_section, object_block_entry_eq, object_block_entry_hash) 11547 (use_object_blocks_p, get_block_for_section, create_block_symbol) 11548 (use_blocks_for_decl_p, change_symbol_section): New functions. 11549 (get_variable_section): New function, split out from assemble_variable. 11550 (make_decl_rtl): Create a block symbol if use_object_blocks_p and 11551 use_blocks_for_decl_p say so. Use change_symbol_section if the 11552 symbol has already been created. 11553 (assemble_variable_contents): New function, split out from... 11554 (assemble_variable): ...here. Don't output any code for 11555 block symbols; just pass them to place_block_symbol. 11556 Use get_variable_section and assemble_variable_contents. 11557 (get_constant_alignment, get_constant_section, get_constant_size): New 11558 functions, split from output_constant_def_contents. 11559 (build_constant_desc): Create a block symbol if use_object_blocks_p 11560 says so. Or into SYMBOL_REF_FLAGS. 11561 (assemble_constant_contents): New function, split from... 11562 (output_constant_def_contents): ...here. Don't output any code 11563 for block symbols; just pass them to place_section_symbol. 11564 Use get_constant_section and get_constant_alignment. 11565 (force_const_mem): Create a block symbol if use_object_blocks_p and 11566 use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS. 11567 (output_constant_pool_1): Add an explicit alignment argument. 11568 Don't switch sections here. 11569 (output_constant_pool): Adjust call to output_constant_pool_1. 11570 Switch sections here instead. Don't output anything for block symbols; 11571 just pass them to place_block_symbol. 11572 (init_varasm_once): Initialize object_block_htab. 11573 (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK. 11574 (default_asm_output_anchor, default_use_aenchors_for_symbol_p) 11575 (place_block_symbol, get_section_anchor, output_object_block) 11576 (output_object_block_htab, output_object_blocks): New functions. 11577 * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro. 11578 (TARGET_ASM_OUT): Include it. 11579 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro. 11580 (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros. 11581 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro. 11582 (TARGET_INITIALIZER): Include them. 11583 * rtl.c (rtl_check_failed_block_symbol): New function. 11584 * rtl.h: Include vec.h. Declare heap and gc rtx vectors. 11585 (block_symbol, object_block): New structures. 11586 (rtx_def): Add a block_symbol field to the union. 11587 (BLOCK_SYMBOL_CHECK): New macro. 11588 (rtl_check_failed_block_symbol): Declare. 11589 (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags. 11590 (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates. 11591 (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2. 11592 (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors. 11593 * output.h (output_section_symbols): Declare. 11594 (object_block): Name structure. 11595 (place_section_symbol, get_section_anchor, default_asm_output_anchor) 11596 (default_use_anchors_for_symbol_p): Declare. 11597 * Makefile.in (RTL_BASE_H): Add vec.h. 11598 (explow.o): Depend on output.h. 11599 * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default. 11600 (TARGET_MAX_ANCHOR_OFFSET): Likewise. 11601 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. 11602 (rs6000_use_blocks_for_constant_p): New function. 11603 116042006-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 11605 11606 * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0. 11607 116082006-02-18 Andrew Pinski <pinskia@physics.uc.edu> 11609 11610 PR tree-opt/25680 11611 * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and 11612 IMAGPART_EXPR. 11613 116142006-02-18 Diego Novillo <dnovillo@redhat.com> 11615 11616 * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to 11617 is_aliased. 11618 Update all users. 11619 116202006-02-18 Jakub Jelinek <jakub@redhat.com> 11621 11622 PR middle-end/26334 11623 * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER 11624 instead of DECL_REGISTER. 11625 116262006-02-18 Olivier Hainque <hainque@adacore.com> 11627 11628 PR ada/13408 11629 * pa.h (WIDEST_HARDWARE_FP_SIZE): Define. 11630 116312006-02-18 Joseph S. Myers <joseph@codesourcery.com> 11632 11633 PR target/24837 11634 * config.gcc: Define UCLIBC_DEFAULT to 0 or 1. 11635 * opth-gen.awk: Handle Var and InverseMask together. 11636 * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc). 11637 * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT. 11638 (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC. 11639 (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc 11640 used together. 11641 (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, 11642 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. 11643 * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER, 11644 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, 11645 LINUX_DYNAMIC_LINKER): Define. 11646 (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER. 11647 * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to 11648 TARGET_GLIBC. 11649 * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11650 (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option. 11651 * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11652 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11653 (TARGET_C99_FUNCTIONS): Don't define. 11654 * config/i386/linux.h (DYNAMIC_LINKER): Rename to 11655 GLIBC_DYNAMIC_LINKER. 11656 (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER. 11657 * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32, 11658 GLIBC_DYNAMIC_LINKER64): Define. 11659 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and 11660 LINUX_DYNAMIC_LINKER64. 11661 * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11662 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11663 * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define. 11664 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11665 * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11666 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11667 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32, 11668 GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32, 11669 UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define. 11670 (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64 11671 and LINUX_DYNAMIC_LINKER32. 11672 * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11673 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11674 * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define. 11675 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11676 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to 11677 TARGET_GLIBC. 11678 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise. 11679 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, 11680 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, 11681 CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, 11682 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. 11683 (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32. 11684 (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64. 11685 * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER, 11686 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, 11687 LINUX_DYNAMIC_LINKER): Define. 11688 (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE. 11689 * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32, 11690 GLIBC_DYNAMIC_LINKER64): Define. 11691 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and 11692 LINUX_DYNAMIC_LINKER64. 11693 * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11694 (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11695 * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER, 11696 UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, 11697 LINUX_DYNAMIC_LINKER): Define. 11698 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11699 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. 11700 * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32, 11701 GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, 11702 UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, 11703 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. 11704 (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32. 11705 (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64. 11706 (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. 11707 * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11708 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11709 * doc/invoke.texi (-muclibc): Remove caveat about supported 11710 targets. 11711 117122006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com> 11713 11714 * doc/cpp.texi (__TIMESTAMP__): Document. 11715 117162006-02-17 Roger Sayle <roger@eyesopen.com> 11717 11718 PR middle-end/25600 11719 * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when 11720 C is one less than the width of X (and related transformations). 11721 * simplify-rtx.c (simplify_unary_operation_1): Transform 11722 (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C) 11723 depending on STORE_FLAG_VALUE, were C is one less then the 11724 width of X. 11725 117262006-02-17 Daniel Berlin <dberlin@dberlin.org> 11727 11728 Fix PR tree-optimization/26341 11729 * tree-ssa-operands.c (add_virtual_operand): Remove assert 11730 about NAME_MEMORY_TAG's. 11731 117322006-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 11733 11734 PR target/26255 11735 * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit 11736 with hardware float support, and software float support. Add fcpy 11737 alternative to hardware patterns. Add alternatives to copy between 11738 general and floating-point registers to the 32-bit pattern. 11739 * pa.c (pa_secondary_reload): Don't abort if reload tries to find a 11740 secondary reload to load a QI or HI mode constant into a floating 11741 point register. 11742 * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode. 11743 * pa64-regs.h (VALID_FP_MODE_P): Likewise. 11744 117452006-02-17 Andrew Pinski <pinskia@physics.uc.edu> 11746 11747 PR target/26272 11748 * config/rs6000/darwin.md (load_macho_picbase_si): Add 11749 pc to the pattern. 11750 (load_macho_picbase_di): Likewise. 11751 117522006-02-16 Jeff Law <law@redhat.com> 11753 11754 * tree-vrp.c (set_value_range_to_nonnegative): New function. 11755 (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise. 11756 (ssa_name_nonzero_p): Likewise. 11757 (get_value_range): Return NULL if VRP is not running. 11758 (extract_range_from_expr): Fallback to tree_expr_XXX_p if 11759 VRP routines do not discover a range. 11760 (vrp_finalize): Clear VR_VALUE to indicate VRP is not running. 11761 * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype. 11762 * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP. 11763 (tree_expr_nonnegative_p): Similarly. 11764 * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove. 11765 (restore_nonzero_vars_to_original_value): Remove. 11766 (unsafe_associative_fp_binop): Remove. 11767 (tree_ssa_dominator_optimize): Remove initialization and 11768 finalization of nonzero_vars and nonzero_vars_stack. 11769 (dom_opt_initialize_block): No longer push marker on 11770 nonzero_vars_stack. 11771 (dom_opt_finalize_block): No longer call 11772 restore_nonzero_vars_to_original_value. 11773 (record_equivalences_from_phis): No longer look for 11774 nonzero PHI arguments. 11775 (cprop_into_successor_phis): No longer propagate nonzero 11776 property into PHI arguments. Lose unused argument. Caller 11777 updated. 11778 (record_equivalences_from_stmt): No longer record nonzero 11779 values for SSA_NAMEs. 11780 (lookup_avail_expr): No longer use nonzero_vars. 11781 11782 * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly 11783 for sizetype when sizetype is unsigned. 11784 117852006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com> 11786 11787 PR rtl-optimization/25603 11788 * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note. 11789 (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case. 11790 * reload1.c (choose_reload_regs): Added call of regno_clobbered_p 11791 with new meaning of SETS. 11792 117932006-02-16 Joseph S. Myers <joseph@codesourcery.com> 11794 11795 PR target/20353 11796 PR target/24578 11797 PR target/24837 11798 * config/linux.opt: New file. 11799 * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, 11800 LINUX_DYNAMIC_LINKER): Define. 11801 (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC. 11802 * config.gcc (*-*-linux*): Define extra_options. 11803 (*-*-*uclibc*): Define UCLIBC_DEFAULT. 11804 (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi. 11805 * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to 11806 GLIBC_DYNAMIC_LINKER. 11807 * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise. 11808 (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11809 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define. 11810 (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. 11811 * doc/invoke.texi (GNU/Linux Options): New section. 11812 118132006-02-16 Eric Botcazou <ebotcazou@libertysurf.fr> 11814 11815 * config/sparc/sparc.md (setjmp): Rewrite. 11816 (setjmp_32): Delete. 11817 (setjmp_64): Likewise. 11818 118192006-02-16 Daniel Berlin <dberlin@dberlin.org> 11820 11821 * tree-ssa-operands.c (access_can_touch_variable): Fix typo in 11822 previous change. 11823 118242006-02-16 Zdenek Dvorak <dvorakz@suse.cz> 11825 11826 * loop-invariant.c (invariant_for_use, check_dependencies): Fail for 11827 read-write uses. 11828 118292006-02-16 Zdenek Dvorak <dvorakz@suse.cz> 11830 11831 PR rtl-optimization/26296 11832 * Makefile.in (loop-invariant.c): Add except.h dependency. 11833 * loop-invariant.c: Include except.h. 11834 (find_invariant_insn): Ignore insns satisfying can_throw_internal. 11835 118362005-02-16 Paul Brook <paul@codesourcery.com> 11837 11838 * reload1.c (emit_reload_insns): Invalidate dead input registers used 11839 for reloads. 11840 118412006-02-16 Bernd Schmidt <bernd.schmidt@analog.com> 11842 11843 PR rtl-optimization/25636 11844 * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test 11845 when deciding whether an insn is an initializing insn. 11846 118472006-02-15 Daniel Berlin <dberlin@dberlin.org> 11848 11849 * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling. 11850 (tree_code_size): Ditto. 11851 * tree.h (struct tree_memory_tag): Remove parent_var. 11852 (struct tree_struct_field_tag): New. 11853 (SFT_OFFSET): New. 11854 (SFT_SIZE): New. 11855 (union tree_node): Add sft member. 11856 * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY 11857 specially here. 11858 (create_sft): Add size and offset argument, set SFT_OFFSET and 11859 SFT_SIZE. 11860 (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE. 11861 * treestruct.def: Add TS_STRUCT_FIELD_TAG. 11862 * tree-flow-inline.h (get_subvar_at): Update for 11863 SFT_OFFSET/SFT_SIZE. 11864 (var_can_have_subvars): Ditto. 11865 (overlap_subvar): Ditto. 11866 * print-tree.c (print_node): Print out interesting things for 11867 SFT's. 11868 * tree-flow.h (struct subvar): Remove offset and size members. 11869 * tree-ssa-operands.c (get_expr_operands): Update for 11870 get_indirect_ref_operands changes. 11871 (get_indirect_ref_operands): Call add_virtual_operand instead of 11872 add_stmt_operand. Only recurse on base var if requested. 11873 (access_can_touch_variable): New function. 11874 (add_stmt_operand): Split virtual operand handling into ... 11875 (add_virtual_operand): Here. Add offset, size, and for_clobber 11876 arguments. Prune alias sets. 11877 (add_call_clobber_ops): Call add_virtual_operand. 11878 118792006-02-15 Jakub Jelinek <jakub@redhat.com> 11880 11881 PR middle-end/26300 11882 * combine.c (make_extraction): Bail out if ORIG_POS is negative. 11883 11884 * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather 11885 than TREE_CODE as index into omp_clause_num_ops array. 11886 118872006-02-15 Uttam Pawar <uttamp@us.ibm.com> 11888 11889 PR rtl-optimization/26184 11890 * modulo-sched.c (generate_reg_moves): Free bitmap vector 11891 uses_of_defs. 11892 * modulo-sched.c (sms_schedule): Free g_arr pointer. 11893 * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers 11894 must_precede, must_follow and tobe_scheduled. 11895 11896 PR other/26147 11897 * opts.c (common_handle_option): Free new_option pointer. 11898 * df-core.c (df_analyze): Free postorder pointer. 11899 119002006-02-15 Rafael �vila de Esp�ndola <rafael.espindola@gmail.com> 11901 11902 * Makefile.in: Fix the examples about the use of stamps 11903 119042006-02-15 Michael Matz <matz@suse.de> 11905 11906 PR middle-end/22275 11907 11908 * stor-layout.c (layout_decl): Zero-width bitfields aren't 11909 influenced by maximum_field_alignment or DECL_PACKED. 11910 (update_alignment_for_field): Ditto. 11911 (place_field): Ditto. 11912 * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document 11913 this behaviour. 11914 119152006-02-15 Paolo Bonzini <bonzini@gnu.org> 11916 11917 * cfg.c (dump_flow_info): Get dump flags as an additional parameter. 11918 (debug_flow_info): Pass it. 11919 * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info. 11920 * bb-reorder.c (reorder_basic_blocks): Likewise. 11921 * cfgcleanup.c (rest_of_handle_jump2): Likewise. 11922 * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise. 11923 * flow.c (life_analysis, recompute_reg_usage): Likewise. 11924 * gcse.c (gcse_main, bypass_jumps): Likewise. 11925 * ifcvt.c (rest_of_handle_if_conversion): Likewise. 11926 * local-alloc.c (rest_of_handle_local_alloc): Likewise. 11927 * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise. 11928 * profile.c (compute_branch_probabilities, branch_prob): Likewise. 11929 * rtl.h (dump_flow_info): Adjust prototype. 11930 * tracer.c (rest_of_handle_tracer, tracer): Likewise. 11931 * var-tracking.c (variable_tracking_main): Likewise. 11932 * passes.c (execute_todo): Obey TDF_BLOCKS for RTL. 11933 * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks 11934 options. 11935 119362006-02-15 Marcin Dalecki <martin@dalecki.de> 11937 11938 * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression 11939 construction. 11940 119412006-02-14 Zdenek Dvorak <dvorakz@suse.cz> 11942 11943 PR tree-optimization/26209 11944 * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg. 11945 * tree-cfgcleanup.c (cleanup_control_flow): Remove dead 11946 eh edges. 11947 * tree-cfg.c (replace_uses_by): Do not alter cfg. 11948 119492006-02-14 Roger Sayle <roger@eyesopen.com> 11950 11951 PR middle-end/23670 11952 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into 11953 (X,Y) and the corresponding symmetry related transformations. 11954 (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into 11955 (X,Y) and its symmetry related transformations. 11956 119572006-02-14 Roger Sayle <roger@eyesopen.com> 11958 11959 * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU 11960 and GEU. 11961 119622006-02-14 Adam Nemet <anemet@caviumnetworks.com> 11963 11964 * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE. 11965 119662006-02-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 11967 11968 PR bootstrap/26053 11969 * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers 11970 support COMDAT group. 11971 * configure: Regenerate. 11972 119732006-02-14 Roger Sayle <roger@eyesopen.com> 11974 11975 PR middle-end/26279 11976 PR middle-end/26280 11977 PR middle-end/26283 11978 * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE. 11979 119802006-02-14 Daniel Berlin <dberlin@dberlin.org> 11981 11982 Fix PR tree-optimization/26260 11983 11984 * doc/invoke.texi (max-fields-for-field-sensitive): Document 11985 param. 11986 * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New. 11987 * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto. 11988 * tree-ssa-structalias.c (create_variable_info_for): Use 11989 MAX_FIELDS_FOR_FIELD_SENSITIVE. 11990 119912006-02-14 Zdenek Dvorak <dvorakz@suse.cz> 11992 11993 * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl): 11994 Document. 11995 * tree-ssa-loop-niter.c (number_of_iterations_ne, 11996 number_of_iterations_lt, number_of_iterations_cond): Remember the shape 11997 of the ending condition. 11998 * tree-ssa-loop-manip.c: Include params.h. 11999 (build_if_stmt, can_unroll_loop_p, determine_exit_conditions, 12000 tree_unroll_loop): New functions. 12001 * tree-pass.h (pass_loop_prefetch): Declare. 12002 * loop.c (rest_of_handle_loop_optimize): Test for 12003 -fprefetch-loop-arrays-rtl. 12004 * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h. 12005 * timevar.def (TV_TREE_PREFETCH): New timevar. 12006 * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch, 12007 pass_loop_prefetch): New. 12008 * tree-cfgcleanup.c: Include tree-scalar-evolution.h. 12009 (cleanup_tree_cfg_loop): Call scev_reset. 12010 * common.opt (fprefetch-loop-arrays-rtl): Add. 12011 * tree-ssa-loop-prefetch.c: New file. 12012 * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field. 12013 (new_temp_expr_table): Initialize expr_vars. 12014 (free_temp_expr_table): Cleanup expr_vars. 12015 (check_replaceable, find_replaceable_in_bb): Prevent accumulating 12016 expressions from being merged into one. 12017 * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h. 12018 (struct tree_niter_desc): Add control, bound and cmp fields. 12019 (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop): 12020 Declare. 12021 * Makefile.in (tree-ssa-loop-prefetch.o): Add. 12022 (tree-cfgcleanup.o): Add SCEV_H dependency. 12023 (tree-ssa-loop-manip.o): Add PARAMS_H dependency. 12024 * passes.c (init_optimization_passes): Add pass_loop_prefetch. 12025 120262006-02-14 Richard Guenther <rguenther@suse.de> 12027 12028 PR tree-optimization/26258 12029 * tree-ssa-structalias.c (find_func_aliases): Handle aggregates 12030 in PHI argument processing. 12031 120322006-02-13 Adam Nemet <anemet@caviumnetworks.com> 12033 12034 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return 12035 new expression in the requested machine mode. 12036 120372006-02-13 Roger Sayle <roger@eyesopen.com> 12038 12039 * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx 12040 directly, instead let do_compare_rtx_and_jump handle this for us. 12041 * expr.c (expand_expr_real_1): Likewise. 12042 * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move 12043 before do_jump_by_parts_greater. 12044 (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx. 12045 * expr.h (do_jump_by_parts_greater_rtx): Delete prototype. 12046 120472006-02-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 12048 12049 * pa/quadlib.c: Use defines instead of enum qfcmp_magic. 12050 120512006-02-13 Zdenek Dvorak <dvorakz@suse.cz> 12052 12053 PR rtl-optimization/26235 12054 * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats. 12055 (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown 12056 format. 12057 120582006-02-13 Jeff Law <law@redhat.com> 12059 12060 * tree-vrp.c (extract_range_from_binary_expr): Remove handling of 12061 TRUTH_XOR_EPR. 12062 120632006-02-13 Jakub Jelinek <jakub@redhat.com> 12064 12065 PR middle-end/26092 12066 * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl 12067 twice if decl is a builtin. When trying again, call get_callee_fndecl 12068 first to verify it is still a builtin. 12069 120702006-02-13 Geoffrey Keating <geoffk@apple.com> 12071 12072 * dwarf2out.c (base_type_die): Don't add AT_name here. 12073 (subrange_type_die): Don't add AT_name here. 12074 (modified_type_die): Rearrange code flow. Do add AT_name here. 12075 120762006-02-13 Zdenek Dvorak <dvorakz@suse.cz> 12077 12078 PR rtl-optimization/26247 12079 PR rtl-optimization/26248 12080 * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode. 12081 120822006-02-13 Richard Sandiford <richard@codesourcery.com> 12083 12084 * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113. 12085 * config/fixtfdi.c: Likewise. 12086 * config/fixunstfdi.c: Likewise. 12087 * config/floatditf.c: Likewise. 12088 120892006-02-13 Roger Sayle <roger@eyesopen.com> 12090 12091 PR middle-end/24427 12092 * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2 12093 into (X,C2) if C1 is a subset of the bits of C2. Transform 12094 (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as 12095 (X&(C1&~C2))|C2. 12096 <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2). 12097 120982006-02-13 Josh Conner <jconner@apple.com> 12099 12100 PR target/25376 12101 * varasm.c (function_section): Check for section name before 12102 calling select_section on targets that define 12103 USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use 12104 unlikely_text_section instead of hot_function_section if 12105 first_function_block_is_cold. 12106 121072006-02-13 J"orn Rennecke <joern.rennecke@st.com> 12108 12109 PR middle-end/25335 12110 * reload1.c (gen_reload): Also use find_replacement in UNARY_P case. 12111 121122006-02-12 Zdenek Dvorak <dvorakz@suse.cz> 12113 12114 PR rtl-optimization/26222 12115 * function.c (assign_stack_temp_for_type): Do not reuse stack slots 12116 after tree->rtl expansion. 12117 * loop-invariant.c (move_invariant_reg): Use force_operand on rhs 12118 before passing it to emit_move_insn. 12119 121202006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 12121 12122 * doc/invoke.texi (-Write-strings): Document that it is enabled by 12123 default. 12124 * c.opt (-Wwrite-strings): Declare variable warn_write_strings. 12125 Clarify documentation. 12126 * c-common.h (warn_write_strings): Remove. 12127 * c-common.c (warn_write_strings): Likewise. 12128 * c-opts.c (c_common_init_options): Enable -Wwrite-strings by 12129 default for C++. 12130 121312006-02-12 Roger Sayle <roger@eyesopen.com> 12132 12133 PR middle-end/25724 12134 * dojump.c (do_jump): Call do_compare_rtx_and_jump. 12135 (do_jump_parts_zero_rtx): New function renamed from 12136 do_jump_parts_equality_rtx. Made static. Add a mode argument. 12137 (do_jump_parts_equality_rtx): New function split out from 12138 do_jump_parts_equality. Old implementation renamed as above. 12139 Call do_jump_parts_zero_rtx if either operand is zero. 12140 (do_jump_parts_equality): Call do_jump_parts_equality_rtx to 12141 do all of the heavy lifting. 12142 (do_compare_rtx_and_jump): Handle multi-word comparisons by 12143 calling either do_jump_by_parts_greater_rtx or 12144 do_jump_by_parts_equality_rtx. 12145 * expr.h (do_jump_by_parts_equality_rtx): Remove prototype. 12146 * expmed.c (do_cmp_and_jump): Now multi-word optimization has 12147 moved to do_compare_rtx_and_jump, call it directly. 12148 * stmt.c (do_jump_if_equal): Remove static prototype. Add a 12149 mode argument. Call do_compare_rtx_and_jump. 12150 (emit_case_nodes): Update calls to do_jump_if_equal. 12151 121522006-02-12 Zdenek Dvorak <dvorakz@suse.cz> 12153 12154 PR rtl-optimization/26225 12155 * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands. 12156 121572006-02-12 Zdenek Dvorak <dvorakz@suse.cz> 12158 12159 PR rtl-optimization/26232 12160 * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0. 12161 121622006-02-11 Jason Merrill <jason@redhat.com> 12163 12164 PR tree-opt/24365 12165 * tree-inline.c (declare_return_variable): Just don't use the 12166 modify target if it's a gimple complex reg and the return slot 12167 isn't. 12168 121692006-02-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 12170 12171 * doc/contrib.texi: Update my entry. 12172 121732006-02-10 Geoffrey Keating <geoffk@apple.com> 12174 12175 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define. 12176 121772006-02-10 Diego Novillo <dnovillo@redhat.com> 12178 12179 * tree-inline.c (estimate_num_insns_1): Make OpenMP directives 12180 expensive. 12181 121822006-02-10 Zdenek Dvorak <dvorakz@suse.cz> 12183 12184 * doc/invoke.texi (-floop-optimize2): Removed. 12185 * toplev.c (process_options): Remove handling of flag_loop_optimize2. 12186 * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2. 12187 Test flag_branch_on_count_reg only if HAVE_doloop_end. 12188 * common.opt (floop-optimize2): Removed. 12189 (fmove-loop-invariants): Enabled by default. 12190 121912006-02-10 Sebastian Pop <pop@cri.ensmp.fr> 12192 12193 * tree-if-conv.c (combine_blocks): Free the result of 12194 get_loop_exit_edges. 12195 121962006-02-10 Jeff Law <law@redhat.com> 12197 12198 * fold-const.c (tree_expr_nonzero_p): Fix thinko. 12199 12200 PR tree-optimization/26213 12201 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not 12202 loop trying to follow SSA_NAME_VALUE chains. 12203 122042006-02-10 Richard Guenther <rguenther@suse.de> 12205 12206 * tree-dfa.c (get_ref_base_and_extent): When computing maxsize 12207 deal with structures that end in implicitly variable sized arrays. 12208 122092006-02-09 Zdenek Dvorak <dvorakz@suse.cz> 12210 12211 PR rtl-optimization/24762 12212 * df-scan.c (df_bb_refs_record): Record correct registers defined on 12213 eh edges. 12214 122152006-02-09 Zdenek Dvorak <dvorakz@suse.cz> 12216 12217 * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed. 12218 (struct ivopts_data): Add regs_used field. 12219 (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops. 12220 (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used 12221 instead of loop_data->regs_used; 12222 (free_loop_data): Do not free aux fields for loops. 12223 (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init 12224 and tree_ssa_iv_optimize_finalize. 12225 122262006-02-09 Kaz Kojima <kkojima@gcc.gnu.org> 12227 12228 * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE. 12229 122302006-02-09 J"orn Rennecke <joern.rennecke@st.com> 12231 12232 PR target/26141 12233 * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when 12234 computing the effective result type. 12235 122362006-02-09 J"orn Rennecke <joern.rennecke@st.com> 12237 12238 PR inline-asm/16194 12239 * tree.h (decl_overlaps_hard_reg_set_p) Don't declare. 12240 (tree_overlaps_hard_reg_set): Declare. 12241 * stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return 12242 type and signature to match function type expected by walk_tree. 12243 (tree_overlaps_hard_reg_set): New function. 12244 (decl_conflicts_with_clobbers_p): Rename to: 12245 (tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument. 12246 Use tree_overlaps_hard_reg_set. Changed caller. 12247 * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace 12248 decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set. 12249 * cris.c (cris_md_asm_clobbers): Likewise. 12250 122512006-02-09 Bernd Schmidt <bernd.schmidt@analog.com> 12252 12253 * reload1.c (emit_input_reload_insns): Delete code that tries to 12254 inherit using find_equiv_reg. 12255 122562006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net> 12257 12258 * c-common.h (flag_const_strings): Don't declare. 12259 * c-common.c (flag_const_strings): Remove. 12260 * c.opt (fconst_strings): Remove. 12261 * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>. 12262 <OPT_Wwrite_strings>: Don't set flag_const_strings. 12263 (c_common_init_options): Don't set flag_const_strings. 12264 * doc/invoke.texi (-fno-const-strings): Remove documentation. 12265 122662006-02-09 Richard Earnshaw <richard.earnshaw@arm.com> 12267 12268 * arm.md (tlobits_cbranch): New pattern. 12269 * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if 12270 testing a single bit. 12271 122722006-02-09 Andrew Pinski <pinskia@physics.uc.edu> 12273 12274 PR tree-opt/26179 12275 * tree-ssa-pre.c (create_component_ref_by_pieces): 12276 Handle RETURN_DECL like VAR_DECL. 12277 122782006-02-09 Andrew Pinski <pinskia@physics.uc.edu> 12279 12280 PR middle-end/26134 12281 * fold-const.c (fold_indirect_ref_1): Fold 12282 "*(foo *)&complexfoo" to "__real__ complexfoo" 12283 and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo". 12284 122852006-02-09 Andrew Pinski <pinskia@physics.uc.edu> 12286 12287 * tree-flow-inline.h (var_can_have_subvars): 12288 Volatile variables should not have subvariables. 12289 122902006-02-09 Diego Novillo <dnovillo@redhat.com> 12291 12292 PR 26180 12293 * tree-vrp.c (vrp_int_const_binop): Detect overflow when 12294 multiplying unsigned values. 12295 Tidy comments. 12296 122972006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr> 12298 12299 * config/sparc/sparc.c (tls_call_delay): Fix oversight. 12300 123012006-02-08 Jason Merrill <jason@redhat.com> 12302 12303 PR c++/25979 12304 * tree.def: Elaborate on difference from MODIFY_EXPR. 12305 * doc/c-tree.texi (INIT_EXPR): Likewise. 12306 * gimplify.c (internal_get_tmp_var): Use INIT_EXPR. 12307 (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise. 12308 (gimplify_target_expr): Likewise. 12309 (gimplify_cond_expr): Remove target handling. 12310 (gimplify_modify_expr): Don't clobber INIT_EXPR code here. 12311 (gimplify_expr): Clobber it here. 12312 (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here. 12313 Do return slot optimization if we have an INIT_EXPR. 12314 12315 PR tree-opt/24365 12316 * tree-inline.c (declare_return_variable): Also clear 12317 DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case. 12318 12319 PR c++/16405 12320 * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling. 12321 12322 PR middle-end/22439 12323 * gimplify.c (gimplify_one_sizepos): Fix typo. 12324 123252006-02-08 Jeff Law <law@redhat.com> 12326 12327 PR tree-optimization/21417 12328 * tree-ssa-threadedge.c (thread_across_edge): Reject threading 12329 across a backedge if the control statement at the end of the 12330 block is data dependent on other statements in the same block. 12331 (record_temporary_equivalences_from_stmts): Remove over-conservative 12332 test for threading across backedges. 12333 12334 * tree-ssa-dce.c (remove_dead_statement): When removing a dead 12335 control statement, handle all three special cases in the same 12336 manner as they all have the same desired solution. No longer 12337 special case edge flag updating when the post dominator is 12338 the exit block. 12339 123402006-02-08 Roger Sayle <roger@eyesopen.com> 12341 12342 * tree.def (CHAR_TYPE): Remove. 12343 * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE. 12344 * dwarf2out.c (base_type_die, is_base_type): Likewise. 12345 (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays. 12346 (gen_string_type_die): Delete unreachable function. 12347 12348 * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE. 12349 * tree.c (build_int_cst_wide, type_contains_placeholder_1, 12350 type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise. 12351 * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise. 12352 * builtins.c (type_to_class): Likewise. 12353 * fold-const.c (fold_convert, build_range_check, 12354 merge_ranges): Likewise. 12355 * expr.c (count_type_elements): Likewise. 12356 * c-pretty-print.c (pp_c_type_specifier): Likewise. 12357 * stor-layout.c (layout_type): Likewise. 12358 * ipa-type-escape.c (type_to_consider): Likewise. 12359 * gimplify.c (omp_firstprivatize_type_sizes, 12360 gimplify_type_sizes): Likewise. 12361 * explow.c (promote_mode): Likewise. 12362 * tree-sra.c (is_sra_scalar_type): Likewise. 12363 * varasm.c (output_constant): Likewise. 12364 * tree-inline.c (remap_type_1): Likewise. 12365 * convert.c (convert_to_pointer, convert_to_real, 12366 convert_to_integer, convert_to_complex): Likewise. 12367 123682006-02-08 Daniel Berlin <dberlin@dberlin.org> 12369 12370 * df-scan.c (df_def_record_1): A set destination may 12371 be a parallel regardless of mode. 12372 123732006-02-08 Roger Sayle <roger@eyesopen.com> 12374 12375 PR target/22209 12376 * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc. 12377 * config/mips/_tilib.c: Remove. 12378 * config/fixtfdi.c: New libgcc source file. 12379 * config/fixunstfdi.c: New source file. 12380 * config/floatditf.c: New source file. 12381 * config/floatunditf.c: New souce file. 12382 * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source 12383 files above instead of config/mips/_tilib.c. 12384 * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. 12385 123862006-02-08 Jeff Law <law@redhat.com> 12387 12388 PR tree-optimization/26169 12389 * tree-vrp.c (execute_vrp): Perform any queued SSA updates before 12390 threading jumps. 12391 123922006-02-08 Zdenek Dvorak <dvorakz@suse.cz> 12393 12394 * df.h (DF_REG_SIZE): Return the length of the initialized 12395 part of the array. 12396 123972006-02-08 Nathan Sidwell <nathan@codesourcery.com> 12398 12399 * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3, 12400 __muldf3): Return a correctly signed zero. 12401 124022006-02-08 Paolo Bonzini <bonzini@gnu.org> 12403 12404 * passes.c (register_one_dump_file): Accept the current properties 12405 instead of pass number. Adjust call to dump_register. Remove 12406 duplicated code. 12407 (register_dump_files): Now a wrapper around... 12408 (register_dump_files_1): ... this one. Do not modify the pass 12409 structure. 12410 (next_pass_1): Cosmetic fix. 12411 (execute_todo): Keep second parameter only. Use curr_properties 12412 instead of fetching it from the pass structure. Check and set 12413 last_verified. 12414 (execute_one_pass): Handle TODO_set_props. Use curr_properties 12415 instead of fetching it from the pass structure. Fix calls to 12416 execute_todo. Update curr_properties and initialize .vcg RTL dump 12417 after running the pass. Reset last_verified. 12418 * tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump 12419 at the beginning. 12420 (FIRST_AUTO_NUMBERED_DUMP): New. 12421 (dump_register): Remove "num" parameter, assign it within the 12422 function. 12423 (get_dump_file_name): Modify template for dumps. 12424 * tree-dump.h (dump_register): Adjust prototype. 12425 * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning. 12426 (PROP_trees): Add PROP_gimple_lomp. 12427 (TODO_set_props): New. 12428 * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf. 12429 * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh. 12430 * cfgexpand.c (pass_expand): Destroy PROP_trees. 12431 124322006-02-08 Jakub Jelinek <jakub@redhat.com> 12433 12434 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. 12435 (sparc64-*-linux*): Likewise. 12436 * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed. 12437 * config/sparc/t-linux: New file. 12438 * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi, 12439 __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128. 12440 (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if 12441 -m32 -mlong-double-128. 12442 12443 * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file. 12444 * config/alpha/t-linux: New file. 12445 * config/alpha/libgcc-alpha-ldbl.ver: New file. 12446 12447 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define 12448 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128. 12449 (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here. 12450 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define 12451 __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32. 12452 (CPP_ARCH32_SPEC): Remove. 12453 124542006-02-07 Uttam Pawar <uttamp@us.ibm.com> 12455 12456 PR tree-optimization/26145 12457 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free 12458 bbs pointer. 12459 124602006-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 12461 12462 PR target/26109 12463 * pa.c (attr_length_indirect_call): Don't return length 8 for distances 12464 >= 240000 when generating code for SOM runtime. 12465 (output_indirect_call): Don't use "b,l" instruction for indirect calls 12466 to $$dyncall when generating code for SOM runtime.. 12467 124682006-02-07 Dirk Mueller <dmueller@suse.com> 12469 12470 PR c++/18150 12471 * doc/invoke.texi (-Wsequence-point): Update documentation 12472 that -Wsequence-point is implemented for C++ as well. 12473 124742006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr> 12475 12476 * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread. 12477 * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise. 12478 (LIB_SPEC): Likewise. 12479 * doc/invoke.texi (SPARC options): Document -pthread. 12480 124812006-02-07 Geoffrey Keating <geoffk@apple.com> 12482 12483 * config/i386/i386.c (ix86_delegitimize_address): Support Darwin 12484 PIC addresses. 12485 124862006-02-07 Roger Sayle <roger@eyesopen.com> 12487 12488 * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE. 12489 Correct comment describing BOOLEAN_TYPE. 12490 124912006-02-07 Dirk Mueller <dmueller@suse.com> 12492 12493 * c.opt: C++ frontend supports -Wdiv-by-zero. 12494 * c-opts.c (c_common_handle_option): Remove dead case. 12495 124962006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr> 12497 12498 * configure.ac (TLS assembler check): Do not enable TLS by 12499 default on SPARC/Solaris before version 10. 12500 * configure: Regenerate. 12501 125022006-02-07 David Edelsohn <edelsohn@gnu.org> 12503 12504 * doc/invoke.texi (xl-compat): Document conversion and support 12505 routine names. 12506 125072006-02-07 Jeff Law <law@redhat.com> 12508 12509 * tree-vrp.c (find_conditional_asserts): Update comments. 12510 (simplify_stmt_for_jump_threading): New. 12511 (identify_jump_threads, finalize_jump_threads): New. 12512 (vrp_finalize): Call identify_jump_threads. 12513 (execute_vrp): Call finalize_jump_threads. 12514 * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field. 12515 (vrp_element, vrp_data, vrp_element_p): Remove. 12516 (vrp_hash_elt, vrp_variables_stack): Remove. 12517 (vrp_hash, vrp_eq, record_range): Remove. 12518 (simplify_cond_and_lookup_avail_expr): Remove. 12519 (extract_range_from_cond): Remove. 12520 (thread_across_edge): Relocated into tree-ssa-threadedge.c. 12521 (simplify_stmt_for_jump_threading): New. 12522 (dom_thread_across_edge): New wrapper. 12523 (tree_ssa_dominator_optimize): No longer initialize or 12524 finalize any of the VRP datastructures. Remove iteration 12525 step and simplify as a result of removal of iteration step. 12526 (pass_dominator): Perform a cfg cleanup after DOM. 12527 (dom_opt_finalize_block): Use the new common routines 12528 for threading jumps. Simplify stack management slightly. 12529 No longer need to unwind VRP state. 12530 (record_equivalences_from_incoming_edge): No longer record 12531 VRP information. 12532 (eliminate_redundant_computations): No longer call 12533 simplify_cond_and_lookup_avail_expr. 12534 * tree-flow.h (potentially_threadable_block): Prototype. 12535 (thread_across_edge): Likewise. 12536 * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o 12537 (tree-ssa-threadedge.o): Add dependencies. 12538 * tree-ssa-threadedge.c: New file. 12539 * passes.c (init_optimization_passes): Merge PHIs before 12540 calling VRP. Run VRP again late in the SSA optimization pipeline. 12541 125422006-02-07 Eric Botcazou <ebotcazou@libertysurf.fr> 12543 12544 * df-core.c (df_set_blocks): Do not dereference function pointers. 12545 (df_finish1): Likewise. 12546 (df_hybrid_search_forward): Likewise. 12547 (df_hybrid_search_backward): Likewise. 12548 (df_iterative_dataflow): Likewise. 12549 (df_analyze_problem): Likewise. 12550 (df_compact_blocks): Likewise. 12551 (df_dump): Likewise. 12552 * df-scan.c (df_rescan_blocks): Likewise. 12553 (df_record_entry_block_defs): Likewise. 12554 12555 * genconditions.c (write_conditions): Guard the definition of 12556 'insn_conditions' with the check on GCC version. 12557 (write_writer): Guard the traversal 'insn_conditions' with 12558 the check on GCC version. 12559 125602006-02-07 Richard Guenther <rguenther@suse.de> 12561 12562 PR c++/26140 12563 Revert 12564 2006-01-30 Richard Guenther <rguenther@suse.de> 12565 PR c++/23372 12566 * gimplify.c (gimplify_target_expr): Handle easy cases 12567 without creating a temporary. 12568 125692006-02-07 Pete Steinmetz <steinmtz@us.ibm.com> 12570 12571 * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate 12572 use of float in probability computations. Use edge probabilities 12573 in place of statically computed probabilities. 12574 (min_spec_prob): New static variable. 12575 (schedule_insns): Initialize it. 12576 (GET_SRC_PROB): Removed. 12577 * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob. 12578 125792006-02-07 Alexandre Oliva <aoliva@redhat.com> 12580 12581 PR debug/24444 12582 * config/ia64/unwind-ia64.c: Revert last change. 12583 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed. 12584 (INCOMING_FRAME_SP_OFFSET): Define. 12585 125862006-02-06 Roger Sayle <roger@eyesopen.com> 12587 12588 * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE. 12589 125902006-02-07 Ben Elliston <bje@au.ibm.com> 12591 12592 * config/i386/i386.c (ix86_scalar_mode_supported_p): New. 12593 (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook. 12594 (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit. 12595 (ix86_return_in_memory): Handle TDmode. 12596 (ix86_libcall_value): Handle SDmode, DDmode, TDmode. 12597 (ix86_value_regno): Return non-TDmode decimal float modes in %eax. 12598 125992006-02-06 Richard Sandiford <richard@codesourcery.com> 12600 12601 * reorg.c (dbr_schedule): Use dump_file instead of file. 12602 126032006-02-06 Steve Ellcey <sje@cup.hp.com> 12604 12605 PR target/25917 12606 * config/ia64/predicates.md (extr_len_operand): New predicate. 12607 * config/ia64/ia64.md (extv): Tighten constraints. 12608 (extzv): Ditto. 12609 (*tbit_and_2): Ditto. 12610 (*tbit_and_3): Ditto. 12611 (*tbit_or_2): Ditto. 12612 (*tbit_or_3): Ditto. 12613 (*bit_zero): Ditto. 12614 (*bit_one): Ditto. 12615 126162006-02-06 Andrew Pinski <pinskia@physics.uc.edu> 12617 12618 PR target/23359 12619 * config/i386/i386.md (trap): Use ASM_SHORT instead of .word. 12620 126212006-02-06 Zdenek Dvorak <dvorakz@suse.cz> 12622 12623 * tree-vrp.c (execute_vrp): Do not pass dump argument to. 12624 loop_optimizer_init and loop_optimizer_finalize 12625 * tree-ssa-sink.c (execute_sink_code): Ditto. 12626 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. 12627 * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init, 12628 tree_ssa_loop_done): Ditto. 12629 * tree-ssa-pre.c (init_pre, fini_pre): Ditto. 12630 * sched-ebb.c: Include output.h. 12631 (schedule_ebbs): Do not use dump argument. 12632 * value-prof.h (struct profile_hooks): Remove profile_dump_file. 12633 * loop.c (loop_dump_stream): Removed. 12634 (loop_optimize, rest_of_handle_loop_optimize): Do not use dump 12635 argument. 12636 (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump, 12637 emit_prefetch_instructions, loop_bivs_find, loop_bivs_check, 12638 final_biv_value, loop_biv_eliminable_p, loop_givs_rescan, 12639 loop_iterations, strength_reduce, record_biv, record_giv, 12640 final_giv_value, check_final_value, check_ext_dependent_givs, 12641 combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems, 12642 try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use 12643 dump_file instead of loop_dump_stream. 12644 * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call 12645 argument dump_file. 12646 * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use 12647 dump argument. 12648 * flow.c (life_analysis, rest_of_handle_life): Ditto. 12649 * haifa-sched.c: Include output.h 12650 (schedule_insns, sched_init): Do not use dump argument. 12651 * mode-switching.c (optimize_mode_switching): Ditto. 12652 * modulo-sched.c (stats_file): Removed. 12653 (print_node_sched_params): Do not call argument dump_file. 12654 (sms_schedule_by_order, loop_canon_p, sms_schedule, 12655 rest_of_handle_sms): Do not use dump argument. Use dump_file instead 12656 of stats_file. 12657 * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not 12658 use dump argument. 12659 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize, 12660 rtl_loop_init, rtl_loop_done): Ditto. 12661 * global.c (global_alloc, rest_of_handle_global_alloc): Ditto. 12662 * predict.c (combine_predictions_for_bb, tree_estimate_probability): 12663 Ditto. 12664 * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto. 12665 * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto. 12666 * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize, 12667 rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto. 12668 * emit-rtl.c (renumber_insns): Ditto. 12669 * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr, 12670 expand_gimple_basic_block, tree_expand_cfg): Ditto. 12671 * regclass.c (regclass): Ditto. 12672 * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts, 12673 remove_ssa_form, rewrite_out_of_ssa): Ditto. 12674 * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1, 12675 convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs): 12676 Ditto. 12677 * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto. 12678 * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file 12679 to regclass. 12680 * gcse.c (gcse_file, debug_stderr): Removed. 12681 (gcse_main, bypass_jumps, rest_of_handle_jump_bypass, 12682 rest_of_handle_gcse): Do not use dump argument. 12683 (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets, 12684 one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb, 12685 pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass, 12686 compute_code_hoist_vbeinout, compute_code_hoist_data, 12687 one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores, 12688 compute_store_table, build_store_vectors, insert_insn_start_bb, 12689 insert_store, remove_reachable_equiv_notes, replace_store_insn, 12690 store_motion): Use dump_file instead of gcse_file. 12691 * ipa-type-escape.c (type_escape_execute): Remove debugging comments. 12692 * profile.c (profile_dump_file): Removed. 12693 (branch_prob): Use dump_file instead of profile_dump_file. 12694 * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument 12695 dump_file. 12696 * tree-ssa-copy.c (dump_copy_of): Ditto. 12697 * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass 12698 dump file to life_analysis. 12699 * bt-load.c (branch_target_load_optimize): Ditto. 12700 * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to 12701 renumber_insns. 12702 * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs, 12703 regclass, dbr_schedule): Declaration changed. 12704 * sched-int.h (sched_init): Declaration changed. 12705 * tree-profile.c (tree_profile_dump_file): Removed. 12706 (tree_profile_hooks): Removed profile_dump_file hook. 12707 * rtl-profile (rtl_profile_dump_file): Removed. 12708 (rtl_profile_hooks): emoved profile_dump_file hook. 12709 * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration 12710 changed. 12711 * c-gimplify.c (c_genericize): Do not call local variable dump_file. 12712 * tree-cfg.c (build_tree_cfg): Ditto. 12713 * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency. 12714 * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm): 12715 Declaration changed. 12716 * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to 12717 life_analysis and schedule_insns. 12718 * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to 12719 life_analysis. 12720 * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to 12721 dbr_schedule. 12722 * config/mips/mips.c (mips_reorg): Ditto. 12723 * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to 12724 schedule_ebbs. 12725 127262006-02-06 Aldy Hernandez <aldyh@redhat.com> 12727 12728 * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. 12729 (s390_mangle_fundamental_type): New. 12730 * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): 12731 Define. 12732 12733 * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. 12734 (alpha_mangle_fundamental_type): New. 12735 * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): 12736 Define. 12737 12738 * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): 12739 Define. 12740 * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): 12741 Define. 12742 * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. 12743 (sparc_mangle_fundamental_type): New. 12744 127452006-02-06 Jakub Jelinek <jakub@redhat.com> 12746 12747 * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file. 12748 (s390x-*-linux*): Likewise. 12749 * config/s390/t-linux64 (SHLIB_MAPFILES): Removed. 12750 * config/s390/t-linux: New file. 12751 127522006-02-02 Bernd Schmidt <bernd.schmidt@analog.com> 12753 12754 * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, 12755 sync_and<mode>, sync_xor<mode>): Operand 0 is in-out. 12756 127572006-02-06 Daniel Berlin <dberlin@dberlin.org> 12758 12759 * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads. 12760 (ANTIC_SAFE_LOADS): New macro. 12761 (find_or_generate_expression): Add prototype. 12762 (set_contains_value): Allow null set for sake of not always having 12763 to allocate ANTIC_SAFE_LOADS. 12764 (phi_translate): Move placement of AGGREGATE_TYPE_P check. 12765 Allow COMPONENT_REF too. 12766 (valid_in_set): Allow COMPONENT_REF. 12767 Check ANTIC_SAFE_LOADS too. 12768 (compute_antic_aux): Print out ANTIC_SAFE_LOADS. 12769 (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and 12770 rename. 12771 (can_PRE_operation): Add COMPONENT_REF. 12772 (create_component_ref_by_pieces): New function. 12773 (create_expression_by_pieces): Use create_component_ref_by_pieces. 12774 (insert_aux): Move AGGREGATE_TYPE_P check here. 12775 (compute_avail): Set bb local stmt uids. 12776 (pass_pre): Use TODO_update_ssa_only_virtuals. 12777 127782006-02-06 Ben Elliston <bje@au.ibm.com> 12779 12780 * configure.ac: Unconditionally disable decimal float by default. 12781 * configure: Regenerate. 12782 127832006-02-06 Ben Elliston <bje@au.ibm.com> 12784 12785 * read-rtl.c (read_name): Terminate reading on EOF. 12786 127872006-02-06 Ben Elliston <bje@au.ibm.com> 12788 12789 * dfp.c (decimal_real_arithmetic): Change second argument type 12790 from int to enum tree_code. Do not always return true, but now 12791 return result of any call to decimal_do helper functions. 12792 * dfp.h (decimal_real_arithmetic): Update prototype. 12793 127942006-02-05 Eric Botcazou <ebotcazou@libertysurf.fr> 12795 12796 * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID. 12797 127982006-02-05 Andrew Pinski <pinskia@physics.uc.edu> 12799 12800 PR tree-opt/25251 12801 * tree-cfg.c (cleanup_dead_labels): Also don't remove 12802 forced labels. 12803 128042006-02-04 Zdenek Dvorak <dvorakz@suse.cz> 12805 12806 * tree-vrp.c (cfg_loops): Removed. 12807 (adjust_range_with_scev, vrp_visit_assignment, execute_vrp): 12808 Use current_loops instead of cfg_loops. Pass flags to 12809 loop_optimizer_init. 12810 * cfgloopmanip.c (fix_loop_structure): Update only available 12811 information. 12812 * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to 12813 loop_optimizer_init. 12814 * modulo-sched.c (build_loops_structure): Removed. 12815 (sms_schedule): Use loop_optimizer_init. 12816 * loop-init.c (loop_optimizer_init): Use flags to determine 12817 which properties of loops to prepare. 12818 (rtl_loop_init): Pass flags to loop_optimizer_init. 12819 * tree-ssa-sink.c (execute_sink_code): Ditto. 12820 * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto. 12821 * tree-ssa-pre.c (init_pre): Ditto. 12822 * cfgloop.h (LOOPS_NORMAL): New. 12823 (loop_optimizer_init): Declaration changed. 12824 128252006-02-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 12826 12827 * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files. 12828 * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of 12829 pa/t-pa. 12830 * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of 12831 pa/t-pa. 12832 * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of 12833 pa/x-ada. 12834 * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules. 12835 * pa/t-pa64: Delete quadlib.c rule. 12836 * pa/x-ada: Revert last change. 12837 * pa/t-pa: Revert last change. Delete quadlib.c rule. 12838 128392006-02-04 Zdenek Dvorak <dvorakz@suse.cz> 12840 12841 PR rtl-optimization/26087 12842 * rtlanal.c (canonicalize_condition): Do not cross basic block 12843 boundaries. 12844 128452006-02-04 Alexandre Oliva <aoliva@redhat.com> 12846 12847 PR debug/24444 12848 * config/ia64/ia64.c: Include debug.h. 12849 (MAX_ARTIFICIAL_LABEL_BYTES): New. 12850 (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New. 12851 (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0. 12852 (process_epilogue, process_set, process_for_unwind_directive): 12853 Output unwind info only if requested. Add CFA info if requested. 12854 Add new arguments as needed. Adjust callers. 12855 * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override 12856 incorrect default. 12857 (DWARF2_FRAME_INFO): Define to zero. 12858 * config/ia64/unwind-ia64.c: Remove code that compensated for 12859 the CFA offset error fixed above. 12860 * config/ia64/t-ia64 (ia64.o): Depend on debug.h. 12861 * dwarf2out.c (DWARF2_FRAME_INFO): Define default. 12862 (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for 12863 -funwind-tables and -fexceptions to enable frame info. 12864 (dwarf2out_frame_init): Define initial CFA even if 12865 DWARF2_UNWIND_INFO is disabled. Call initial_return_save if 12866 DWARF2_UNWIND_INFO is nonzero, not just defined. 12867 (dwarf2out_frame_finish): Output non-EH call frame info only 12868 if DWARF2_FRAME_INFO is nonzero. 12869 (convert_cfa_to_loc_list, 12870 compute_frame_pointer_to_cfa_displacement): Define even if 12871 unwind info is not supported. 12872 (gen_subprogram_die): Use the above unconditionally. Remove 12873 legacy alternate code. 12874 * toplev.c (compile_file): Compile in call to 12875 dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined. 12876 (lang_dependent_init): Ditto for dwarf2out_frame_init. 12877 128782006-02-04 David Edelsohn <edelsohn@gnu.org> 12879 Jakub Jelinek <jakub@redhat.com> 12880 12881 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle 12882 IBM extended float format long double as "g" on powerpc*-linux. 12883 128842006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 12885 12886 PR target/25926 12887 * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10. 12888 * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10. 12889 128902006-02-03 Jason Merrill <jason@redhat.com> 12891 12892 PR c++/25979 12893 * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now. 12894 12895 PR middle-end/25977 12896 * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO 12897 on the return slot if it's an NRV. 12898 128992006-02-03 Zdenek Dvorak <dvorakz@suse.cz> 12900 12901 * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER. 12902 (dump_use, add_derived_ivs_candidates, determine_use_iv_cost, 12903 rewrite_use): Do not handle USE_OUTER. 12904 (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer, 12905 add_iv_outer_candidates, may_replace_final_value, 12906 determine_use_iv_cost_outer, rewrite_use_outer): Removed. 12907 (find_interesting_uses_op): Functionality of 12908 find_interesting_uses_outer_or_nonlin moved here. 12909 (find_interesting_uses_outside): Use find_interesting_uses_op. 12910 129112006-02-03 Alan Modra <amodra@bigpond.net.au> 12912 12913 PR target/25960 12914 * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result. 12915 129162006-02-03 Andreas Krebbel <krebbel1@de.ibm.com> 12917 Ulrich Weigand <uweigand@de.ibm.com> 12918 12919 PR target/25864 12920 * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf", 12921 "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations. 12922 * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions. 12923 * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr 12924 and dxr fields. 12925 (z900_cost, z990_cost, z9_109_cost): Values for the new fields added. 12926 (s390_rtx_costs): Use the new fields to calculate rtx costs. 12927 (s390_secondary_input_reload_class, s390_secondary_output_reload_class): 12928 Define secondary reloads for TFmode moves. 12929 (constant_modes): Add TFmode. 12930 (NR_C_MODES): Set to 8. 12931 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__ 12932 builtin define. 12933 (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64. 12934 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define. 12935 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, 12936 CANNOT_CHANGE_MODE_CLASS): Consider TFmode. 12937 * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf, 12938 fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values. 12939 (FPR mode macro): Add TFmode. 12940 (DSF mode macro): New. 12941 (<de>, <dee> mode attributes): Removed. 12942 (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New. 12943 ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs", 12944 "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee", 12945 "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3", 12946 "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm", 12947 "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly", 12948 "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>", 12949 "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc", 12950 "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm", 12951 "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2", 12952 "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly", 12953 "*negabs<mode>2", "sqrt<mode>2"): 12954 Changed <de> to <xde>. R constraint replaced by <Rf>. 12955 ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by 12956 <Rf>. 12957 ("fix_trunc<FPR:mode>di2"): 'FPR:' removed. 12958 ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF. 12959 ("*movtf_64", "*movtf_31"): New insn definitions followed by 5 12960 splitters. 12961 ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2", 12962 "extenddftf2", "extendsftf2"): New expanders. 12963 ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", 12964 "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm", 12965 "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns. 12966 * config/s390/s390.opt (mlong-double-128, mlong-double-64): 12967 New options. 12968 * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined. 12969 * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2, 12970 __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi, 12971 __floatditf): Add a GCC_4.1.0 symbol version tag. 12972 * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document 12973 the new options. 12974 129752006-02-02 Andrew Pinski <pinskia@physics.uc.edu> 12976 12977 PR target/25377 12978 * config/i386/i386.c (ix86_function_ok_for_sibcall): 12979 Use targetm.binds_local_p instead of TREE_PUBLIC. 12980 129812006-02-02 Roger Sayle <roger@eyesopen.com> 12982 12983 * tree.h (TYPE_STRING_FLAG): Document that this field may be used 12984 on INTEGER_TYPEs to indicate that it denotes a character type. 12985 * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on 12986 signed_char_type_node, unsigned_char_type_node and char_type_node. 12987 * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to 12988 INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit 12989 a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed. 12990 129912006-02-02 Zdenek Dvorak <dvorakz@suse.cz> 12992 Daniel Berlin <dberlin@dberlin.org> 12993 12994 * tree-tailcall.c (arg_needs_copy_p): New function. 12995 (eliminate_tail_call): Use arg_needs_copy_p. 12996 (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis. 12997 (add_virtual_phis): New function. 12998 129992006-02-02 Jakub Jelinek <jakub@redhat.com> 13000 13001 * config/sparc/sparc.c (sparc_output_scratch_registers): Use 13002 #ignore instead of #scratch for %g7 .register directive. 13003 130042006-02-02 Andreas Tobler <a.tobler@schweiz.ch> 13005 13006 * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate 13007 object files. 13008 130092006-02-02 Bernd Schmidt <bernd.schmidt@analog.com> 13010 13011 * flow.c (calculate_global_regs_live): Assert that there aren't any 13012 EDGE_FAKE edges. 13013 130142006-02-02 Paolo Bonzini <bonzini@gnu.org> 13015 13016 * tree-flow-inline.h (bsi_after_labels): Rewrite, return 13017 what its name says. 13018 * lambda-code.c (perfect_nestify): Use bsi_insert_before on 13019 bsi_after_labels iterator. 13020 * tree-if-conv.c (find_phi_replacement_condition, 13021 replace_phi_with_cond_modify_expr): Likewise. 13022 * tree-scalar-evolution.c (scev_const_prop): Likewise. 13023 * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise. 13024 130252006-02-02 Diego Novillo <dnovillo@redhat.com> 13026 13027 * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes. 13028 130292006-02-02 Diego Novillo <dnovillo@redhat.com> 13030 13031 PR 25990 13032 * tree-cfg.c (move_block_to_fn): Clear out the basic block 13033 array after growing it. 13034 130352006-02-01 Steve Ellcey <sje@cup.hp.com> 13036 13037 PR middle-end/24901 13038 * fold-const.c (fold_checksum_tree): Change type of buf. 13039 130402006-02-01 Bernd Schmidt <bernd.schmidt@analog.com> 13041 13042 * reload.c (push_secondary_reload): Initialize t_icode. 13043 130442006-02-01 Jakub Jelinek <jakub@redhat.com> 13045 13046 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For 13047 -msoft-float -mlong-double-128 only issue a warning, but don't 13048 swich to DFmode long double. 13049 130502006-02-01 Hans-Peter Nilsson <hp@axis.com> 13051 13052 * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1 13053 has a constant equivalent, iterate over equivalents for arg0, 13054 calling simplify_relational_operation and if there's a result 13055 cheaper than X, apply fold_rtx and return the result. 13056 130572006-02-01 Jan Hubicka <jh@suse.cz> 13058 13059 * opts.c (no_unit_at_a_time_default): New global variable. 13060 (decode_options): Use it. 13061 * opts.h (no_unit_at_a_time_default): Declare. 13062 130632006-02-01 Paul Brook <paul@codesourcery.com> 13064 13065 * function.c (assign_parm_setup_reg): Use function argument promotion 13066 rules. 13067 * expr.c (expand_expr_real_1): Use function argument promotion rules 13068 for PARM_DECLs. 13069 130702006-02-01 Steve Ellcey <sje@cup.hp.com> 13071 13072 * gcc.c (process_command): Change j to 'unsigned int'. 13073 130742006-01-31 Andrew Pinski <pinskia@physics.uc.edu> 13075 13076 PR middle-end/26001 13077 * expr.c (expand_expr_real_1) <case ARRAY_REF>: 13078 Use the corrected index for the character 13079 out of the string constant. 13080 130812006-01-31 Andrew Pinski <pinskia@physics.uc.edu> 13082 13083 * mode-switching.c (optimize_mode_switching): Fix size 13084 allocated for bb_info[n_entities]. 13085 130862006-01-31 Andrew Pinski <pinskia@physics.uc.edu> 13087 13088 * gcc.c (main): Correct type that is allocated for 13089 explicit_link_files. 13090 130912006-01-31 Jakub Jelinek <jakub@redhat.com> 13092 13093 * config/s390/s390.c (init_alignment_context): Set 13094 ALIAS_SET_MEMORY_BARRIER on the MEM. 13095 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise. 13096 130972006-01-31 Uttam Pawar <uttamp@us.ibm.com> 13098 13099 PR middle-end/25933 13100 * loop-unroll.c (unroll_loop_runtime_iterations): Free 13101 dom_bbs pointer. 13102 * tree-ssa-live.c (type_var_init): Allocate bitmap after 13103 call to tpa_init. 13104 131052006-01-31 Marcin Dalecki <martin@dalecki.de> 13106 13107 * tree-vrp.c: Use XNEW/XCNEW allocation wrappers. 13108 * regrename.c: Ditto. 13109 * tree-ssa-loop-im.c: Ditto. 13110 * tree-dump.c: Ditto. 13111 * tree-complex.c: Ditto. 13112 * genrecog.c: Ditto. 13113 * tree-ssa-threadupdate.c: Ditto. 13114 * tracer.c: Ditto. 13115 * java/class.c: Ditto. 13116 * java/jcf-parse.c: Ditto. 13117 * java/resource.c: Ditto. 13118 * java/except.c: Ditto. 13119 * java/jvspec.c: Ditto. 13120 * java/jcf-write.c: Ditto. 13121 * java/jcf-path.c: Ditto. 13122 * java/gjavah.c: Ditto. 13123 * java/zextract.c: Ditto. 13124 * java/jcf-io.c: Ditto. 13125 * java/jcf.h: Ditto. 13126 * java/buffer.c: Ditto. 13127 * java/lang.c: Ditto. 13128 * java/parse-scan.y: Ditto. 13129 * java/lex.c: Ditto. 13130 * java/lex.h: Ditto. 13131 * cfgloopmanip.c: Ditto. 13132 * postreload-gcse.c: Ditto. 13133 * tree-ssa-loop-manip.c: Ditto. 13134 * postreload.c: Ditto. 13135 * tree-ssa-loop-ch.c: Ditto. 13136 * loop.c: Ditto. 13137 * ipa-cp.c: Ditto. 13138 * cppspec.c: Ditto. 13139 * diagnostic.c: Ditto. 13140 * final.c: Ditto. 13141 * genoutput.c: Ditto. 13142 * gcc.c: Ditto. 13143 * cfghooks.c: Ditto. 13144 * cfgloopanal.c: Ditto. 13145 * objc/objc-act.c: Ditto. 13146 * gcov.c: Ditto. 13147 * genextract.c: Ditto. 13148 * genautomata.c: Ditto. 13149 * pretty-print.c: Ditto. 13150 * genemit.c: Ditto. 13151 * cgraphunit.c: Ditto. 13152 * flow.c: Ditto. 13153 * df-scan.c: Ditto. 13154 * haifa-sched.c: Ditto. 13155 * dominance.c: Ditto. 13156 * dbxout.c: Ditto. 13157 * tree-ssa-loop-ivopts.c: Ditto. 13158 * df-core.c: Ditto. 13159 * mode-switching.c: Ditto. 13160 * modulo-sched.c: Ditto. 13161 * graph.c: Ditto. 13162 * ipa-pure-const.c: Ditto. 13163 * cse.c: Ditto. 13164 * fix-header.c: Ditto. 13165 * web.c: Ditto. 13166 * tree-stdarg.c: Ditto. 13167 * ipa-utils.c: Ditto. 13168 * loop-init.c: Ditto. 13169 * ipa-inline.c: Ditto. 13170 * cfganal.c: Ditto. 13171 * global.c: Ditto. 13172 * alloc-pool.c: Ditto. 13173 * dwarf2out.c: Ditto. 13174 * opts.c: Ditto. 13175 * genattrtab.c: Ditto. 13176 * tree-ssa-loop-ivcanon.c: Ditto. 13177 * predict.c: Ditto. 13178 * timevar.c: Ditto. 13179 * lcm.c: Ditto. 13180 * fortran/gfortranspec.c: Ditto. 13181 * regmove.c: Ditto. 13182 * local-alloc.c: Ditto. 13183 * langhooks.c: Ditto. 13184 * function.c: Ditto. 13185 * tree-vectorizer.c: Ditto. 13186 * gcse.c: Ditto. 13187 * ipa-type-escape.c: Ditto. 13188 * alias.c: Ditto. 13189 * tree-if-conv.c: Ditto. 13190 * profile.c: Ditto. 13191 * ipa.c: Ditto. 13192 * tree-data-ref.c: Ditto. 13193 * loop-unroll.c: Ditto. 13194 * treelang/treetree.c: Ditto. 13195 * calls.c: Ditto. 13196 * bt-load.c: Ditto. 13197 * ggc-common.c: Ditto. 13198 * except.c: Ditto. 13199 * coverage.c: Ditto. 13200 * cselib.c: Ditto. 13201 * tree-cfgcleanup.c: Ditto. 13202 * tree-ssa-pre.c: Ditto. 13203 * cfgcleanup.c: Ditto. 13204 * loop-invariant.c: Ditto. 13205 * loop-iv.c: Ditto. 13206 * ipa-prop.c: Ditto. 13207 * print-tree.c: Ditto. 13208 * conflict.c: Ditto. 13209 * ggc-page.c: Ditto. 13210 * sched-deps.c: Ditto. 13211 * regclass.c: Ditto. 13212 * tree-object-size.c: Ditto. 13213 * combine.c: Ditto. 13214 * bb-reorder.c: Ditto. 13215 * resource.c: Ditto. 13216 * var-tracking.c: Ditto. 13217 * cfgloop.c: Ditto. 13218 * df-problems.c: Ditto. 13219 * reg-stack.c: Ditto. 13220 * tlink.c: Ditto. 13221 * gccspec.c: Ditto. 13222 * sched-rgn.c: Ditto. 13223 * tree-ssa-structalias.c: Ditto. 13224 * tree-ssa-reassoc.c: Ditto. 13225 * config/darwin-c.c: Ditto. 13226 * config/darwin.c: Ditto. 13227 * config/arm/arm.c: Ditto. 13228 * cfgrtl.c: Ditto. 13229 * collect2.c: Ditto. 13230 * reload1.c: Ditto. 13231 132322006-01-31 Nicolas Pitre <nico@cam.org> 13233 13234 * arm.md (smaxsi3): Make aware of smax_m1. 13235 (smax_m1): New. 13236 132372006-01-31 Nathan Sidwell <nathan@codesourcery.com> 13238 13239 * config/m68k/lb1sf68.asm: Use moveq to load small constants. 13240 132412006-01-31 Richard Guenther <rguenther@suse.de> 13242 13243 * doc/invoke.texi (-msselibm): Document. 13244 * target.h (expand_library_builtin): New target hook. 13245 * builtins.c (expand_builtin): Use expand_library_builtin. 13246 (default_expand_library_builtin): New function. 13247 * gcc.c (LINK_GCC_MATH_SPEC): Define. 13248 (LINK_COMMAND_SPEC): Handle %(link_gcc_math). 13249 (link_gcc_math_spec): Declare. 13250 (static_specs): Add link_gcc_math_spec. 13251 * expr.h (default_expand_library_builtin): Declare. 13252 * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define. 13253 (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN. 13254 * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC. 13255 * config/i386/i386.opt (msselibm): New target option. 13256 * config/i386/i386.c (ix86_builtin_function_variants): New array. 13257 (ix86_init_sse_abi_builtins): New function. 13258 (ix86_expand_library_builtin): Likewise. 13259 (TARGET_EXPAND_LIBRARY_BUILTIN): Define. 13260 (override_options): Handle error conditions wrt -msselibm. 13261 (ix86_builtins): Add function codes for SSE2 ABI builtins. 13262 (ix86_init_builtins): Call ix86_init_sse_abi_builtins. 13263 * doc/extend.texi (__builtin_sse2_*): Document new target specific 13264 builtins. 13265 132662006-01-31 Richard Guenther <rguenther@suse.de> 13267 Paolo Bonzini <bonzini@gnu.org> 13268 13269 * doc/install.texi (--disable-libgcc-math): Document. 13270 132712006-01-30 Marcin Dalecki <martin@dalecki.de> 13272 13273 * expr.h (expand_normal): new inline function. 13274 * builtins.c: use it, use EXPAND_NORMAL explicitely. 13275 * dojump.c: use it. 13276 * dwarf2out.c: use it. 13277 * expr.c: use it. 13278 * calls.c: use it. 13279 * expmed.c: use it. 13280 * except.c: use it. 13281 * config/sparc/sparc.c: use it. 13282 * config/i386/i386.c: use it. 13283 * config/rs6000/rs6000.c: use it. 13284 * config/arm/arm.c: use it. 13285 * config/mips/mips.c: use it. 13286 * stmt.c: use it, use EXPAND_NORMAL explicitely. 13287 132882006-01-30 Roger Sayle <roger@eyesopen.com> 13289 13290 * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast 13291 argv to the appropriate type. 13292 132932006-01-30 Zdenek Dvorak <dvorakz@suse.cz> 13294 13295 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove 13296 unreachable code. 13297 132982006-01-30 Ulrich Weigand <uweigand@de.ibm.com> 13299 13300 PR target/26018 13301 * config/s390/s390.c (struct machine_function): New flag 13302 decomposed_literal_pool_addresses_ok_p. 13303 (s390_reorg): Set it before final stage of literal pool transforms. 13304 (s390_decompose_address): Only accept displacements of the form 13305 (minus (label_ref ...) (label_ref ...)) if that flag is set. 13306 133072006-01-30 Carlos O'Donell <carlos@codesourcery.com> 13308 13309 * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias 13310 the comparison routine return. 13311 133122006-01-30 Michael Matz <matz@suse.de> 13313 13314 * global.c (find_reg): Only evict for global regs. 13315 Take n_refs into account and dump more info. 13316 133172006-01-30 J"orn Rennecke <joern.rennecke@st.com> 13318 13319 PR target/14798: 13320 * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable. 13321 (pragma_trap, pragma_nosave_low_regs): Likewise. 13322 (current_function_anonymous_args): Likewise. 13323 (sh_deferred_function_attributes): New variable. 13324 (sh_deferred_function_attributes_tail): Likewise. 13325 (print_operand): For '@', look up trap_exit attribute. 13326 (calc_live_regs): Look up trapa_handler attribute. For trapa 13327 handlers, save/restore fpscr, but don't do any other 13328 interrupt-specific saves. 13329 Don't save r0..r7 if the nosave_low_regs attribute is in effect. 13330 Fix check for partially saved registers to check for SHmedia. 13331 (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute. 13332 (sh_output_function_epilogue): Don't clear any of the removed 13333 variables. 13334 (sh_insert_attributes): Don't check pragma_interrupt. 13335 Insert deferred attributes. Check that interrupt attribute is 13336 present for other attributes that require its presence. 13337 (sh_attribute_table): Add new attributes trapa_handler and 13338 nosave_low_regs. 13339 (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): 13340 Don't check for pragma_interrupt. Don't store argument. 13341 * sh.h (pragma_interrupt, sp_switch): Don't declare. 13342 (sh_deferred_function_attributes): Declare. 13343 (sh_deferred_function_attributes_tail): Likewise. 13344 * sh.md (sp_switch_1): Add operand. Change generator caller. 13345 (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove. 13346 (*return_i): Don't use when trap_exit attribute is in effect. 13347 (*return_trapa): New insn pattern. 13348 * sh-c.c: New file. 13349 * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza, 13350 setting c_target_objs and cxx_target_objs. 13351 * t-sh: Add rule for sh-c.o. 13352 133532006-01-30 Richard Guenther <rguenther@suse.de> 13354 13355 PR c++/23372 13356 * gimplify.c (gimplify_target_expr): Handle easy cases 13357 without creating a temporary. 13358 133592006-01-30 Nathan Sidwell <nathan@codesourcery.com> 13360 13361 * vec.h (safe_grow): Remove duplicated line. 13362 133632006-01-29 Diego Novillo <dnovillo@redhat.com> 13364 13365 PR 25874 13366 * omp-low.c (execute_expand_omp): Move CFG cleanup code ... 13367 (expand_omp): ... here. 13368 (expand_omp_parallel): Only remove barriers for combined 13369 parallel+workshare constructs. 13370 133712006-01-29 Eric Botcazou <ebotcazou@adacore.com> 13372 13373 Revert 13374 13375 2005-11-09 Eric Botcazou <ebotcazou@adacore.com> 13376 * tree.c (build_qualified_type): Chain the new type to the original 13377 type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is 13378 a POINTER_TYPE or a REFERENCE_TYPE respectively. 13379 (build_pointer_type_for_mode): Only return unqualified types. 13380 (build_reference_type_for_mode): Likewise. 13381 133822006-01-29 Gabriel Dos Reis <gdr@integgrable-solutions.net> 13383 13384 * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported. 13385 * Makefile.in (CXX_COMPAT_WARN): Define. 13386 * configure: Regenerate. 13387 133882006-01-29 Dorit Nuzman <dorit@il.ibm.com> 13389 13390 PR tree-opt/25911 13391 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert 13392 to an if check. 13393 133942006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 13395 13396 * toplev.c: Fix thinko. 13397 133982006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 13399 Marcin Dalecki <martin@dalecki.de> 13400 13401 * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus. 13402 (push_srcloc): Use XNEW. 13403 (init_asm_output, default_get_pch_validity): Use XNEWVEC. 13404 134052006-01-29 Kenneth Zadeck <zadeck@naturalbridge.com> 13406 13407 * df-core.c (df_set_blocks): Deleted all variable. 13408 134092006-01-28 Ian Lance Taylor <ian@airs.com> 13410 13411 * cgraphunit.c (cgraph_assemble_pending_functions): Call 13412 cgraph_output_pending_asms. 13413 134142006-01-28 Zack Weinberg <zackw@panix.com> 13415 13416 * c.opt: Add -W(no-)overlength-strings. 13417 * doc/invoke.texi: Document it. 13418 * c-opts.c (c_common_handle_option): -pedantic implies 13419 -Woverlength-strings, if not explicitly disabled already. 13420 (c_common_post_options): -Woverlength-strings defaults to off, and 13421 is always off for C++. 13422 * c-common.c (fix_string_type): Issue warning about strings longer 13423 than is portable only if warn_overlength_strings. Rearrange code 13424 a little for clarity. 13425 * configure.in: Check for -Wno-overlength-strings as well before 13426 enabling -pedantic in stage 1. 13427 * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings. 13428 (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete. 13429 13430 * genconditions.c (write_header, write_one_condition) 13431 (write_conditions, write_writer): Consolidate very long strings 13432 that were broken up to fit in C89 portable limit. Don't use 13433 printf when fputs will do. 13434 134352006-01-28 Adam Nemet <anemet@caviumnetworks.com> 13436 13437 * combine.c (simplify_comparison <AND>): Check 13438 TRULY_NOOP_TRUNCATION before start using a subreg. 13439 13440 * config/mips/mips.md (*branch_zero<mode>, 13441 *branch_zero<mode>_inverted, *branch_equality<mode>, 13442 *branch_equality<mode>_inverted, *branch_equality<mode>_mips16): 13443 Remove mode check from comparisons. 13444 134452006-01-28 Kenneth Zadeck <zadeck@naturalbridge.com> 13446 13447 * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted. 13448 134492006-01-28 Kazu Hirata <kazu@codesourcery.com> 13450 13451 * expmed.c (const_mult_add_overflow_p): Remove. 13452 * expr.h: Remove the prototype for const_mult_add_overflow_p. 13453 13454 * recog.c (validate_replace_rtx_subexp): Remove. 13455 * recog.h: Remove the prototype for 13456 validate_replace_rtx_subexp. 13457 13458 * integrate.h: Remove the prototype for 13459 copy_decl_for_inlining. 13460 * rtl.h: Remove the prototype for mark_constant_function. 13461 * tree-vectorizer.h: Remove the prototype for 13462 vect_strip_conversion. 13463 13464 * modulo-sched.c (create_partial_schedule, 13465 free_partial_schedule, reset_partial_schedule): Make them 13466 static. 13467 13468 * hooks.c (hook_bool_rtx_int_false): Remove. 13469 * hooks.h: Remove the prototype for hook_bool_rtx_int_false. 13470 134712006-01-28 David Edelsohn <edelsohn@gnu.org> 13472 13473 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float 13474 and -mlong-double-128 are incompatible. 13475 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 13476 * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c. 13477 (TARGET_LIBGCC2_CFLAGS): Define. 13478 * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same. 13479 (TARGET_LIBGCC2_CFLAGS): Same. 13480 * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX. 13481 134822006-01-28 Kazu Hirata <kazu@codesourcery.com> 13483 13484 PR c/19606. 13485 * c-typeck.c (build_binary_op): Perform implicit casts of 13486 operands before shortening them. 13487 13488 * cfgloopmanip.c (split_loop_bb): Remove. 13489 * cfgloop.h: Remove the prototype for split_loop_bb. 13490 13491 * cfgloop.c (flow_loop_outside_edge_p): Remove. 13492 * cfgloop.h: Remove the prototype for 13493 flow_loop_outside_edge_p. 13494 13495 * emit-rtl.c (init_virtual_regs): Make it static. 13496 * function.h: Remove the prototype for init_virtual_regs. 13497 13498 * recog.c (peephole2_optimize): Make it static. 13499 * recog.h: Remove the prototype for peephole2_optimize. 13500 135012006-01-27 H.J. Lu <hongjiu.lu@intel.com> 13502 13503 * df-scan.c (df_record_entry_block_defs): Check if 13504 INCOMING_RETURN_ADDR_RTX is defined. 13505 135062006-01-27 Daniel Berlin <dberlin@dberlin.org> 13507 Kenneth Zadeck <zadeck@naturalbridge.com> 13508 13509 PR rtl-optimization/24762 13510 * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY. 13511 * targhooks.c (hook_void_bitmap): New hook prototype. 13512 * targhoohs.h (hook_void_bitmap): Ditto. 13513 * bitmap.h (bitmap_head_def): Moved to coretypes.h. 13514 * coretypes.h (bitmap_head_def): Moved from bitmap.h. 13515 * target.h (live_on_entry): New function pointer. 13516 * df-scan.c (df_all_hard_regs): Removed. 13517 (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs. 13518 (df_scan_free_internal): Added df->entry_block_defs. 13519 (df_scan_alloc): Ditto. 13520 (df_scan_dump): Ditto. 13521 (df_uses_record): Plumbed flag field properly thru calls. 13522 Record EH_RETURN_DATA_REGNO in eh blocks unconditionally. 13523 This part fixes PR24762. 13524 (df_bb_refs_record): Added code to make the frame and arg 13525 pointers live in EH blocks. 13526 (df_refs_record): Added call to df_record_entry_block_defs. 13527 (df_record_entry_block_defs): New function. 13528 * df-core.c: Added comments to describe new artifical defs. 13529 * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags. 13530 (entry_block_defs): New field in struct df. 13531 (df_all_hard_regs): Deleted. 13532 * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY. 13533 * df-problems.c (df_ru_bb_local_compute_process_def): 13534 Added code to handle artifical defs in the entry to a function. 13535 (df_ru_bb_local_compute): Ditto. 13536 (df_rd_bb_local_compute_process_def): Ditto. 13537 (df_rd_bb_local_compute): Ditto. 13538 (df_lr_bb_local_compute): Ditto. 13539 (df_ur_bb_local_compute): Ditto. 13540 (df_urec_bb_local_compute): Ditto. 13541 (df_chain_create_bb): Ditto. 13542 (df_ur_local_finalize): Removed entry. 13543 (df_urec_init): Ditto. 13544 (df_urec_local_finalize): Ditto. 13545 (df_ri_bb_compute): Added detection of last use of pseudos. 13546 * Makefile.in (df-scan.o): Updated dependencies. 13547 * config/mips/mips-protos.h (mips_set_live_on_entry): Added. 13548 * config/mips/mips.c (mips_set_live_on_entry): Added. 13549 * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value 13550 for target hook. 13551 * dce.c (marked_insn_p): Added code to handle artifical defs. 13552 135532006-01-27 H.J. Lu <hongjiu.lu@intel.com> 13554 13555 * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel 13556 intrinsic. 13557 (_mm_cvtsi128_si64): Likewise. 13558 (_mm_cvtsd_si64): Likewise. 13559 (_mm_cvttsd_si64): Likewise. 13560 (_mm_cvtsi64_sd): Likewise. 13561 (_mm_cvtsi64_si128): Likewise. 13562 * config/i386/mmintrin.h (_m_from_int64): Likewise. 13563 (_mm_cvtsi64_m64): Likewise. 13564 (_m_to_int64): Likewise. 13565 (_mm_cvtm64_si64): Likewise. 13566 * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise. 13567 (_mm_cvttss_si64): Likewise. 13568 (_mm_cvtsi64_ss): Likewise. 13569 (_mm_cvtss_f32): Likewise. 13570 135712006-01-27 Carlos O'Donell <carlos@codesourcery.com> 13572 13573 * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion 13574 for pragma redefine_extname. 13575 135762006-01-27 Jakub Jelinek <jakub@redhat.com> 13577 13578 PR target/25864 13579 * libgcc-std.ver: Add GCC_4.1.0 symbol version. 13580 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append 13581 -mno-minimal-toc to previous content. 13582 (bispecs): Remove goal. 13583 * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h. 13584 * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4 13585 compatibility aliases on powerpc-*-*gnu*. 13586 * config/rs6000/libgcc-ppc-glibc.ver: New file. 13587 * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append 13588 libgcc-ppc-glibc.ver on powerpc*-*-*gnu*. 13589 (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs. 13590 (ldblspecs): New goal. 13591 * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed. 13592 * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and 13593 _df_to_tf. 13594 * config/fp-bit.h (TMODES): Don't define if none of TFLOAT, 13595 L_sf_to_tf or L_df_to_tf is defined. 13596 135972006-01-27 David Edelsohn <edelsohn@gnu.org> 13598 Alan Modra <amodra@bigpond.net.au> 13599 13600 PR target/25864 13601 * config/rs6000/linux.h (POWERPC_LINUX): Define. 13602 * config/rs6000/linux64.h (POWERPC_LINUX): Define. 13603 * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC. 13604 * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero. 13605 * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero. 13606 * config/rs6000/rs6000.c (rs6000_ieeequad): New variable. 13607 (rs6000_override_options): Initialize rs6000_ieeequad. 13608 Initialize TFmode format to ibm_extended_format if not 13609 TARGET_IEEEQUAD. 13610 (rs6000_handle_option): Accept -mabi= ibmlongdouble and 13611 ieeelongdouble. 13612 (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts. 13613 (rs6000_return_in_memory): Only return IEEEQUAD in memory. 13614 (function_arg_advance): IBM long double passed in two FPRs, not 13615 split. 13616 (function_arg): IBM long double passed in FPRs. 13617 (rs6000_pass_by_reference): Only IEEEQUAD passed by reference. 13618 (rs6000_gimplify_va_arg): IBM long double passed in two FPRs. 13619 Only multireg GPR aligned. 13620 (rs6000_init_libfuncs): Enable IBM long double functions if not 13621 IEEEQUAD. 13622 (rs6000_generate_compare): Use IBM long double compare if not 13623 TARGET_IEEEQUAD. 13624 * config/rs6000/rs6000.h (rs6000_ieeequad): Declare. 13625 (TARGET_IEEEQUAD): Define. 13626 (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if 13627 not TARGET_IEEEQUAD. 13628 * config/rs6000/rs6000.md: Enable TFmode patterns if 13629 !TARGET_IEEEQUAD. 13630 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c. 13631 * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float 13632 and -mlong-double-128 are incompatible. 13633 * doc/invoke.texi (-mabi): Collect options together. Add 13634 ibmlongdouble and ieeelongdouble. 13635 136362006-01-27 Richard Sandiford <richard@codesourcery.com> 13637 13638 * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new 13639 opaque type. 13640 * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL. 13641 * varasm.c (make_decl_rtl, build_constant_desc): Likewise. 13642 (force_const_mem): Use SET_SYMBOL_REF_CONSTANT. 13643 * rtl.h (rtunion_def): Remove rt_ptr. 13644 (X0PTR): Delete. 13645 (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR. 13646 (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros. 13647 * config/i386/winnt.c (i386_pe_mark_dllexport) 13648 (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL. 13649 136502006-01-27 Gabor Loki <loki@gcc.gnu.org> 13651 13652 * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo. 13653 136542006-01-26 Alexandre Oliva <aoliva@redhat.com> 13655 13656 PR other/24829 13657 PR target/24831 13658 * gthr-dce.h: Do not gthrw-ify pthread_once_init, 13659 pthread_key_delete. From John David Anglin. gthrw-ify 13660 pthread_getunique_np only if it it's not a macro. Delete 13661 UNUSED macro. 13662 (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate, 13663 __gthread_objc_condition_wait, __gthread_objc_condition_broadcast, 13664 __gthread_objc_condition_signal, __gthread_key_delete): Add 13665 "__attribute__ ((__unused__))" to unused arguments. 13666 (__gthread_recursive_mutex_init_function): Add missing return. 13667 * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h, 13668 gthr-posix95.h: Use macro-based approach for name redirection 13669 on targets missing weakref. 13670 136712006-01-26 Zack Weinberg <zackw@panix.com> 13672 13673 * genconditions.c (write_header): In generated code, #ifdef out 13674 all includes and fake declarations, except includes of bconfig.h 13675 and system.h, unless GCC_VERSION >= 3001. Do not include 13676 gensupport.h in any case. 13677 (write_conditions): Generate a definition of struct c_test. Add 13678 a comment to the generated #endif. 13679 (write_one_condition): Escape backslashes in string too. 13680 (write_writer): Generated code must escape backslashes and quote 13681 marks (but not newlines) in the strings it writes. 13682 * Makefile.in (build/gencondmd.o): Update dependencies. 13683 136842006-01-26 Steve Ellcey <sje@cup.hp.com> 13685 13686 PR target/25961 13687 * Makefile.in (insn-automata.o): Add header file dependencies. 13688 * genautomata.c: Add includes. 13689 136902006-01-26 Steve Ellcey <sje@cup.hp.com> 13691 13692 PR target/25961 13693 * Makefile.in (insn-automata.o): Add -Wno-error flag. 13694 136952006-01-26 Paolo Bonzini <bonzini@gnu.org> 13696 13697 * configure.ac: Expect target tools paths to be passed from the toplevel 13698 and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of 13699 AS_SET_VAR_IF. 13700 * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove. 13701 137022006-01-26 Alexandre Oliva <aoliva@redhat.com> 13703 13704 PR c/25892 13705 * c.opt (Wpointer-sign): Init to -1. 13706 * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and 13707 OPT_pedantic, to 0 otherwise. 13708 * doc/invoke.texi: Update. 13709 137102006-01-26 Paolo Bonzini <bonzini@gnu.org> 13711 13712 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit 13713 constants provided by 80387 instructions in the destination mode. 13714 137152006-01-26 Richard Guenther <rguenther@suse.de> 13716 Andrew Pinski <pinskia@physics.uc.edu> 13717 13718 PR tree-opt/21470 13719 partial PR tree-opt/17064 13720 * tree-ssa-structalias.c (intra_create_variable_infos): 13721 Create heap variables for incoming parameters if 13722 flag_argument_noalias > 1. 13723 (find_what_p_points_to): Look through default defs of 13724 parameter decls. 13725 137262006-01-26 Jeff Law <law@redhat.com> 13727 13728 PR ada/25900 13729 * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE 13730 with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained 13731 within the VR_RANGE, use the VR_RANGE as the result, not the 13732 VR_ANTI_RANGE. 13733 (adjust_range_with_scev): Reject ranges from SCEV which are out of 13734 bounds for the type. 13735 137362006-01-26 Daniel Berlin <dberlin@dberlin.org> 13737 13738 * tree-ssa-alias.c (maybe_create_global_var): Change 13739 subvar walking to an assertion that we don't have subvar'd variables. 13740 137412006-01-26 Andrew Pinski <pinskia@physics.uc.edu> 13742 13743 PR C/25861 13744 * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>: 13745 Use a new variable, inner. PARM_DECLs are always non-weak. 13746 137472006-01-26 Shantonu Sen <ssen@opendarwin.org> 13748 13749 * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for 13750 --disable-checking. 13751 137522006-01-26 Adam Nemet <anemet@caviumnetworks.com> 13753 13754 * config/mips/mips.md (*clear_upper32): New combiner pattern. 13755 137562006-01-26 Richard Earnshaw <richard.earnshaw@arm.com> 13757 13758 * arm.md (smaxsi3, sminsi3): Convert to define_expand. 13759 (smax_insn, smin_insn, smax_0, smin_0): New. 13760 137612006-01-26 Hans-Peter Nilsson <hp@axis.com> 13762 13763 PR target/25947 13764 * config/cris/cris.c (cris_order_for_addsi3): New function. 13765 * config/cris/cris-protos.h: Prototype it. 13766 * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry") 13767 (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]") 13768 (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry") 13769 (split for "op.S1 [rx=rx+i],ry (swapped)") 13770 (split for "op(s|u).S1 [rx=rx+i],ry") 13771 (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"): 13772 Apply cris_order_for_addsi3 when generating addsi3 insns. 13773 137742006-01-25 Diego Novillo <dnovillo@redhat.com> 13775 13776 * tree.h (TREE_RANGE_CHECK): Fix range predicate. 13777 (TREE_BLOCK): Add call to EXPR_CHECK. 13778 137792006-01-25 Diego Novillo <dnovillo@redhat.com> 13780 13781 PR 25886 13782 * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE. 13783 * tree-pretty-print.c (dump_omp_clause): Extract from ... 13784 (dump_omp_clauses): ... here. 13785 (dump_generic_node): Handle OMP_CLAUSE. 13786 * tree.c (omp_clause_num_ops): New. 13787 (omp_clause_code_name): New. 13788 (tree_code_size): Handle OMP_CLAUSE. 13789 (tree_size): Likewise. 13790 (make_node): Document handling of OMP_CLAUSE. 13791 (tree_node_structure): Handle OMP_CLAUSE. 13792 (omp_clause_check_failed): New. 13793 (omp_clause_range_check_failed): New. 13794 (omp_clause_operand_check_failed): New. 13795 (build_omp_clause): New. 13796 (walk_tree): Adjust handling of OMP_CLAUSE_* nodes. 13797 * tree.h (enum omp_clause_code): Declare. 13798 (OMP_CLAUSE_SUBCODE_CHECK): Define. 13799 (OMP_CLAUSE_RANGE_CHECK): Define. 13800 (OMP_CLAUSE_ELT_CHECK): Define. 13801 (omp_clause_check_failed): Declare. 13802 (omp_clause_operand_check_failed): Declare. 13803 (omp_clause_range_check_failed): Declare. 13804 (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK. 13805 (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK. 13806 (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK. 13807 (OMP_CLAUSE_LASTPRIVATE): Likewise. 13808 (OMP_CLAUSE_IF_EXPR): Likewise. 13809 (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise. 13810 (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise. 13811 (OMP_CLAUSE_REDUCTION_CODE): Likewise. 13812 (OMP_CLAUSE_REDUCTION_INIT): Likewise. 13813 (OMP_CLAUSE_REDUCTION_MERGE): Likewise. 13814 (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise. 13815 Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY. 13816 (OMP_CLAUSE_SCHEDULE_KIND): Likewise. 13817 (OMP_CLAUSE_DEFAULT_KIND): Likewise. 13818 (OMP_CLAUSE_CODE): Define. 13819 (OMP_CLAUSE_SET_CODE): Define. 13820 (OMP_CLAUSE_CODE): Define. 13821 (OMP_CLAUSE_OPERAND): Define. 13822 (struct tree_omp_clause): Declare. 13823 (union tree_node): Add field 'omp_clause'. 13824 * treestruct.def (TS_OMP_CLAUSE): Define. 13825 * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED 13826 OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, 13827 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN, 13828 OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF, 13829 OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE, 13830 OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove. 13831 (OMP_CLAUSE): Define. 13832 * print-tree.c (print_node): Handle OMP_CLAUSE. 13833 * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes. 13834 * c-typeck.c: Likewise. 13835 * gimplify.c: Likewise. 13836 * c-omp.c: Likewise. 13837 * tree-nested.c: Likewise. 13838 * tree-inline.c: Likewise. 13839 * c-parser.c: Likewise. 13840 * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on 13841 clauses. 13842 138432006-01-25 Roger Sayle <roger@eyesopen.com> 13844 13845 PR rtl-optimization/25703 13846 * combine.c (try_combine): Handle zero_extract and strict_low_part 13847 of non-lowpart SUBREGs for constant reg_subword_p set optimization. 13848 138492006-01-25 Peter Bergner <bergner@vnet.ibm.com> 13850 13851 * global.c: Fix comment typos. 13852 138532006-01-25 Andrew Pinski <pinskia@physics.uc.edu> 13854 13855 PR target/25758 13856 * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>: 13857 Use output_addr_const instead of assemble_name. 13858 138592006-01-25 Paolo Bonzini <bonzini@gnu.org> 13860 13861 * Makefile.in (sched-vis.o): Update dependencies. 13862 * haifa-sched.c (sched_finish): Clear current_sched_info. 13863 * cfg.c (dump_bb_info): New, split from dump_flow_info. 13864 (dump_flow_info): Call it. 13865 * passes.c (execute_todo): Call print_rtl_slim_with_bb to make 13866 a slim RTL dump. 13867 * basic-block.h (dump_bb_info): Declare. 13868 * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all 13869 option, and apply options only for dump files whose TDF_RTL, 13870 TDF_TREE, or TDF_IPA bits match. 13871 * rtl.h: Declare new functions exported from sched-vis.c. 13872 * sched-vis.c: Enable also if scheduling is not used. 13873 (print_value): Print the mode of registers if not inside scheduling. 13874 (print_insn): Make it work outside the scheduler. Beautify the output 13875 a bit. 13876 (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New. 13877 138782006-01-25 Richard Sandiford <richard@codesourcery.com> 13879 13880 * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document. 13881 * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of 13882 a SYMBOL_REF as either a tree or a constant_descriptor_rtx, 13883 depending on the value of CONSTANT_POOL_ADDRESS_P. 13884 * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than 13885 SYMBOL_REF_DECL. 13886 * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA 13887 rather than SYMBOL_REF_DECL. 13888 (rtx_constant_pool): Remove const_rtx_sym_htab. 13889 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete. 13890 (init_varasm_status): Don't initialize const_rtx_sym_htab. 13891 (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry. 13892 Remove handling of const_rtx_sym_htab. 13893 (find_pool_constant): Delete. 13894 (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT 13895 rather than find_pool_constant. 13896 (get_pool_constant_for_function): Delete. 13897 (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than 13898 find_pool_constant. 13899 * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields. 13900 (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros. 13901 (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P. 13902 (SYMBOL_REF_CONSTANT): New macro. 13903 (get_pool_constant_for_function): Delete. 13904 * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA 13905 rather than SYMBOL_REF_DECL. 13906 (i386_pe_mark_dllimport): Likewise. 13907 * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA 13908 rather than SYMBOL_REF_DECL. 13909 * config/darwin.c (machopic_indirect_data_reference): Likewise. 13910 (machopic_indirect_call_target): Likewise. 13911 139122006-01-25 Eric Botcazou <ebotcazou@adacore.com> 13913 13914 * flow.c (delete_noop_moves): Add missing EOL to dump message. 13915 139162006-01-25 Richard Sandiford <richard@codesourcery.com> 13917 13918 * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace. 13919 139202006-01-25 Kaz Kojima <kkojima@gcc.gnu.org> 13921 13922 * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE. 13923 139242006-01-24 David Daney <ddaney@avtrex.com> 13925 13926 PR java/25816 13927 * configure.ac (enable_tls): New enable option. 13928 (HAVE_AS_TLS): Don't do assembler check if enable_tls set. 13929 * configure: Regenerate. 13930 * doc/install.texi (--enable-tls): Document new option. 13931 (--disable-tls): Ditto. 13932 139332006-01-24 Richard Henderson <rth@redehat.com> 13934 13935 * alias.h (ALIAS_SET_MEMORY_BARRIER): New. 13936 * alias.c (true_dependence): Respect it. 13937 (canon_true_dependence, write_dependence_p): Likewise. 13938 * builtins.c (get_builtin_sync_mem): Set it. 13939 139402006-01-25 Zdenek Dvorak <dvorakz@suse.cz> 13941 13942 * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more 13943 efficient way. 13944 139452006-01-24 DJ Delorie <dj@redhat.com> 13946 13947 * expmed.c (store_bit_field): Don't arbitrarily deny using insv 13948 for storing constants in single-bit bitfields. 13949 139502006-01-25 Ben Elliston <bje@au.ibm.com> 13951 13952 * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long. 13953 139542006-01-24 Andrew Pinski <pinskia@physics.uc.edu> 13955 13956 PR tree-opt/25860 13957 * tree-ssa-pre.c (phi_translate): Return NULL 13958 for AGGREGATE_TYPE's. 13959 139602006-01-24 Zack Weinberg <zackw@panix.com> 13961 13962 * genautomata.c (process_state_for_insn_equiv_partition): 13963 Use xcalloc for insn_arcs_array. 13964 * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates. 13965 (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P. 13966 139672006-01-24 Richard Henderson <rth@redhat.com> 13968 13969 * genextract.c (VEC_safe_set_locstr): Take VEC by reference; 13970 update all callers. 13971 139722006-01-23 Paolo Bonzini <bonzini@gnu.org> 13973 13974 PR rtl-optimization/25890 13975 PR rtl-optimization/25905 13976 * combine.c (expand_compound_operation, expand_field_assignment): 13977 Fail if the bitfield's final position is out of bounds. 13978 139792006-01-24 Ian Lance Taylor <ian@airs.com> 13980 13981 PR middle-end/25930 13982 * cgraphunit.c (cgraph_output_in_order): Don't clear 13983 cgraph_asm_nodes until after asm strings have been output. 13984 139852006-01-23 Adam Nemet <anemet@caviumnetworks.com> 13986 13987 * fix-header.c (read_scan_file): Add new parameter imultilib when 13988 calling register_include_chains. 13989 139902006-01-23 Diego Novillo <dnovillo@redhat.com> 13991 13992 * omp-low.c: Update documentation. 13993 139942006-01-23 Andrew Pinski <pinskia@physics.uc.edu> 13995 Daniel Berlin <dberlin@dberlin.org> 13996 13997 PR tree-opt/25315 13998 PR tree-opt/25857 13999 * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal 14000 return from the function. 14001 140022006-01-22 Zack Weinberg <zackw@panix.com> 14003 14004 * rtl.def (match_code): Add second argument. 14005 * genpreds.c (write_extract_subexp): New function. 14006 (write_match_code): Add path argument. Use write_extract_subexp. 14007 (write_predicate_expr): Pass path to write_match_code. 14008 (mark_mode_tests): MATCH_CODE applied to a subexpression does 14009 not perform a mode test. 14010 * genrecog.c (compute_predicate_codes): MATCH_CODE applied to 14011 a subexpression does not constrain the top-level code set. 14012 * read-rtl.c (read_rtx_variadic): New function. 14013 (read_rtx_1): Use it; allow AND and IOR to be variadic. 14014 * doc/md.texi: Document new notation. 14015 * config/i386/predicates.md (cmpsi_operand_1): Fold into ... 14016 (cmpsi_operand): ... here, using new notation. 14017 140182006-01-22 Zack Weinberg <zackw@panix.com> 14019 14020 * varray.c: Remove GENERATOR_FILE #ifdefs. 14021 140222006-01-22 Zack Weinberg <zackw@panix.com> 14023 14024 * genautomata.c (output_reserved_units_table): Emit nothing if 14025 description->query_units_num is zero. Remove extra blank line. 14026 (output_cpu_unit_reservation_p): Short circuit 14027 if description->query_units_num is zero. 14028 140292006-01-22 Zack Weinberg <zackw@panix.com> 14030 14031 * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE 14032 and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls 14033 nor any of the random handful of variables that used to be necessary 14034 when this program was linked with rtlanal.o. Prune set of forward 14035 function declarations. 14036 (struct attr_desc): Remove static_p field. 14037 (hash_obstack, temp_obstack, attr_hash_table, attr_printf) 14038 (check_attr_test, make_internal_attr, make_numeric_value): Make static. 14039 (attr_string): Do not read the character one past the length of 14040 the string. 14041 (write_attr_get, find_attr, make_internal_attr): Don't touch static_p. 14042 (struct insn_reserv, all_insn_reservs, last_insn_reserv_p) 14043 (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses) 14044 (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses) 14045 (make_automaton_attrs): New. 14046 (main): Do not call into genautomata. Call local gen_bypass 14047 and gen_insn_reserv as appropriate. Call make_automaton_attrs. 14048 Remove special case for insn_alts. 14049 * genautomata.c: Include gensupport.h; not genattrtab.h nor 14050 varray.h (leftover from previous change). Prune set of forward 14051 function declarations. Remove state_alts fields from all 14052 structures. Remove state_alts_table from struct automaton. 14053 Make everything except main static. Do not maintain num_dfa_decls. 14054 Do not maintain state_alts fields of various structures. 14055 (process_decls): Don't validate condexp for dm_insn_reserv decls. 14056 (add_arc): Remove state_alts argument. All callers updated. 14057 (output_reserved_units_table): Emit #ifdef here... 14058 (output_tables): ...not here. Don't generate state_alts tables. 14059 (expand_automata): Don't generate attributes. 14060 (write_automata): Don't generate state_alts functions. 14061 (main): New function. 14062 (it_is_empty_reserv_sets, output_state_alts_full_vect_name) 14063 (output_state_alts_comb_vect_name, output_state_alts_check_vect_name) 14064 (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME) 14065 (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME) 14066 (BYPASS_P_FUNC_NAME, output_state_alts_table) 14067 (output_automata_list_state_alts_code, output_internal_state_alts_func) 14068 (output_state_alts_func, make_insn_alts_attr, make_bypass_attr) 14069 (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr): 14070 Delete. 14071 * genattr.c: Declare internal_dfa_insn_code in insn-attr.h. 14072 * genattrtab.h: Delete file. 14073 * Makefile.in (OBJS-common): Add insn-automata.o. 14074 (insn-automata.o): New rule. 14075 (simple_generated_c): Add insn-automata.c. 14076 (build/genattrtab.o, build/genautomata.o): Update dependencies. 14077 (genprogmd): Add automata. 14078 (build/genattrtab): Needs no extra objects nor libraries. 14079 (build/genautomata): Needs build/vec.o and -lm. 14080 140812006-01-22 Zack Weinberg <zackw@panix.com> 14082 14083 * genautomata.c (process_state_longest_path, max_dfa_issue_rate) 14084 (output_dfa_max_issue_rate, locked_states_num): Delete. 14085 (struct automaton): Add locked_states field. 14086 (output_dead_lock_vect): Save number of locked states in 14087 automaton->locked_states. If it is zero, don't print anything. 14088 (output_max_insn_queue_index_def): Define max_insn_queue_index const. 14089 (output_internal_dead_lock_func): Only test the dead_lock_vect 14090 for automata that have locked states. 14091 (output_statistics): Always print the number of locked states for 14092 each automaton. Calculate total number of locked states here. 14093 (write_automata): Don't call output_dfa_max_issue_rate. 14094 * genattrtab.c: Define length_unit_log as a const variable. 14095 * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare 14096 max_insn_queue_index const. 14097 * final.c (length_unit_log): Declare const. 14098 * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE. 14099 141002006-01-22 Zack Weinberg <zackw@panix.com> 14101 14102 * genautomata.c: Include vec.h, not varray.h. 14103 Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the 14104 VLA_HWINT_ macros. Change vla_hwint_t to a typedef for 14105 VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to 14106 VEC_* macros operating on appropriately typed vectors, or to 14107 malloced arrays when the size is known in advance. Const-ify 14108 many char* variables and function arguments. No functional changes. 14109 * Makefile.in (build/varray.o): Delete rule. 14110 (build/genattrtab): Depend on build/vec.o instead of build/varray.o. 14111 (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H). 14112 141132006-01-22 Zack Weinberg <zackw@panix.com> 14114 14115 * gensupport.c: Define get_insn_name and record_insn_name here. 14116 (read_md_rtx): Call record_insn_name as appropriate. 14117 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c 14118 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c 14119 * genpreds.c, genrecog.c: Don't define get_insn_name nor 14120 record_insn_name. 14121 * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL. 14122 (BUILD_VARRAY): Delete. 14123 (genprognormal): Rename genprogmd. Fold in all programs from 14124 genprognoprint; also attrtab. 14125 (build/genattrtab): Just mention genautomata.o and varray.o. 14126 Reorganize a bit, add comments to make the categories clearer. 14127 141282006-01-22 Zack Weinberg <zackw@panix.com> 14129 14130 * genconditions.c (condition_table, add_condition): Delete. 14131 (write_conditions): Don't emit n_insn_conditions nor 14132 insn_elision_unavailable. Issue the gcc version #ifdef here, 14133 inside the table, with no #else clause ... 14134 (write_header): ...not here. 14135 (write_writer): New function. 14136 (main): Don't initialize condition_table. Use add_c_test. 14137 Call write_writer. 14138 * gensupport.c (init_md_reader_args_cb): Handle multiple input 14139 files on the command line. 14140 (maybe_eval_c_test): Don't check insn_elision_unavailable. 14141 Return -1 if there is no entry in the table, don't abort. 14142 (add_c_test, traverse_c_tests): New functions. 14143 * gensupport.h (insn_elision_unavailable, insn_conditions) 14144 (n_insn_conditions): Delete declarations. 14145 (add_c_test, traverse_c_tests): Declare. 14146 * read-rtl.c: Include gensupport.h. 14147 (read_conditions): New function. 14148 (read_rtx): If read_rtx_1 returns 0, treat as EOF. 14149 (read_rtx_1): If we get EOF when we were looking for an initial 14150 open paren, return 0. Call read_conditions when appropriate. 14151 * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to 14152 dummy-conditions.o. Eliminate references to insn-conditions.o, 14153 or change them to build/gencondmd.o, as appropriate. Remove 14154 insn-constants.h from $(simple_generated_h) and insn-conditions.c 14155 from $(simple_generated_c). For all files remaining in those 14156 two lists, add insn-conditions.md to the generator command line. 14157 Give insn-constants.h/s-constants their own rules. Add rules 14158 for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd. 14159 (build/read-rtl.o): Depend on gensupport.h. 14160 (genprognormal): Include preds. 14161 (genprogearly): Rename genprognoprint; only difference is now that 14162 they don't link with $(BUILD_PRINT). 14163 * dummy-conditions.c: Delete. 14164 141652006-01-22 Zack Weinberg <zackw@panix.com> 14166 14167 * genextract.c: Don't include insn-config.h. Do include vec.h. 14168 Declare vectors of int, char, and locstr. 14169 (locstr): New typedef. 14170 (struct extraction): Make all array fields into bare pointers. 14171 (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name. 14172 (insn_code_number): Delete. 14173 (accum_extract): New struct. 14174 (VEC_safe_set_locstr, VEC_char_to_string): New functions. 14175 (gen_insn): Take insn_code_number as an argument. Use an 14176 accum_extract structure instead of loading data directly into 14177 a struct extraction, and having to know how big it might get. 14178 (walk_rtx): Operate entirely on an accum_extract structure. 14179 (print_path): Avoid unnecessary use of printf. 14180 (print_header): New function, split out of main. Distinguish 14181 more carefully between an unrecognizable insn and an insn that 14182 has the code number of a define_expand. 14183 (main): Pass insn_code_number to gen_insn. Call print_header 14184 only after parsing. Avoid unnecessary use of printf. 14185 * Makefile.in (build/vec.o): New rule. 14186 (build/genextract): Depend on build/vec.o. 14187 (build/genextract.o): Don't depend on insn-config.h. 14188 141892006-01-22 Zack Weinberg <zackw@panix.com> 14190 14191 * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or 14192 $(RUN_GEN). Use pattern rules to factor out as much boilerplate as 14193 practical. Eliminate per-generator-program link rules. 14194 141952006-01-23 Andrew Pinski <pinskia@physics.uc.edu> 14196 14197 PR middle-end/24437 14198 * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF 14199 with a call expr to ... 14200 * fold-const.c (fold_ternary) <case CALL_EXPR>: Here. 14201 142022006-01-23 Richard Guenther <rguenther@suse.de> 14203 14204 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment 14205 before make_edge with conditional EDGE_TRUE_VALUE. 14206 142072006-01-23 Steven Bosscher <stevenb.gcc@gmail.com> 14208 Jan Hubicka <jh@suse.cz> 14209 Richard Guenther <rguenther@suse.de> 14210 14211 PR rtl-optimization/25654 14212 * cfgexpand.c (aggregate_contains_union_type): New function. 14213 (add_alias_set_conflicts): Call it. Make sure to add conflicts 14214 for structure variables that contain a union type. 14215 142162006-01-23 Richard Sandiford <richard@codesourcery.com> 14217 14218 * gengtype.c (new_structure): Return the structure. 14219 (create_option): Add an extra "next" argument. 14220 (create_field): New function. 14221 (adjust_field_rtx_def): Use create_option and create_field. 14222 Remove a now-unnecessary call to find_structure. 14223 (adjust_field_tree_def): Likewise. 14224 (note_yacc_type): Remove an unnecessary call to find_structure. 14225 * gengtype.h (new_structure): Return the structure. 14226 (create_option): Add an extra argument. 14227 * gengtype-yacc.y (type): Remove unnecessary calls to find_structure. 14228 (option): Adjust calls to create_option. 14229 142302006-01-22 David Edelsohn <edelsohn@gnu.org> 14231 14232 * config/rs6000/aix.h (STACK_BOUNDARY): Define. 14233 142342006-01-22 Paul Brook <paul@codesourcery.com> 14235 Peter Barada <peter@the-baradas.com> 14236 14237 * config/m68k/m68k.md: Add Coldfire FPU support. 14238 Define FP mode macro and associated attributes. 14239 Use it for float mode patterns. 14240 * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value. 14241 (LIBCALL_VALUE): Use m68k_libcall_value. 14242 * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype. 14243 (m68k_function_value): Ditto. 14244 (emit_move_sequence): Ditto. 14245 * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value. 14246 * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e. 14247 * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e. 14248 (MULTILIB_EXCEPTIONS): Ditto. 14249 * config/m68k/m68k.opt: Add mcfv4e. 14250 * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e. 14251 (m68k_compute_frame_layout): Include space for ColdFire FPU regs. 14252 (m68k_output_function_prologue): Save ColdFire FPU registers. 14253 (m68k_output_function_epilogue): Restore ColdFire FPU registers. 14254 (force_mode, fp_reg_operand, emit_move_sequence): New functions. 14255 (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in 14256 ColdFire FPU registers. 14257 (m68k_libcall_value, m68k_function_value): New functions. 14258 * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value. 14259 (LIBCALL_VALUE): Use m68k_libcall_value. 14260 * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__. 14261 (MASK_COLDFIRE): Add MASK_CFV4E. 14262 (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New. 14263 (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT. 14264 (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto. 14265 (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define. 14266 (GO_IF_LEGITIMATE_ADDRESS): Use it. 14267 (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses. 14268 * doc/invoke.tex: Document -mcfv4e on m68k. 14269 142702006-01-22 Ranjit Mathew <rmathew@gcc.gnu.org> 14271 14272 * doc/contribute.texi: Change CVS to SVN and update the corresponding 14273 URL. 14274 142752006-01-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 14276 14277 PR c++/16190 14278 * c-opts.c (c_common_handle_option): Don't include 14279 -Wnon-virtual-dtor in -Wall; enable if -Weffc++. 14280 * doc/invoke.texi (C++ Dialect Options): Document that 14281 -Wnon-virtual-dtor is no longer included in -Wall. 14282 142832006-01-21 Joseph S. Myers <joseph@codesourcery.com> 14284 14285 * gcov.c (print_version), gcov-dump.c (print_version), 14286 mips-tdump.c (main), mips-tfile.c (main): Update copyright notice 14287 dates. 14288 142892006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com> 14290 14291 * df-scan.c (problem_SCAN): Added NULL reset function. 14292 (df_scan_reset_blocks): Added code to call reset block function 14293 (df_bb_refs_delete) Fixed comment. 14294 (df_insn_refs_delete): Made tolerant of deleting non existent info 14295 for dataflow problems that need to be reset. 14296 * df-core.c (df_set_blocks): Ditto. 14297 * df.h (struct df_problem): Added reset_fun. 14298 * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR, 14299 problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field. 14300 (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New 14301 functions to clear out all references to def-use or use-def chains. 14302 143032006-01-21 Ben Elliston <bje@au.ibm.com> 14304 14305 * varasm.c (assemble_real): Initialise data array. 14306 143072006-01-20 Paul Brook <paul@codesourcery.com> 14308 14309 Merge from csl-arm-branch. 14310 2005-09-21 Kazu Hirata <kazu@codesourcery.com> 14311 * config/arm/arm.md (movdi): Force operands[1] to a register 14312 if we have a non-register source. 14313 (*arm_movdi, *movdf_soft_insn): Require that one of the 14314 operands be a register. 14315 * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise. 14316 * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise. 14317 143182006-01-20 DJ Delorie <dj@redhat.com> 14319 14320 * varasm.c (initializer_constant_valid_p): Allow pointers 14321 initialized from integer constants of lesser precision. 14322 (output_constant): Allow non-int-sized pointer modes to be 14323 initialized from integer constants. 14324 143252006-01-20 Joseph S. Myers <joseph@codesourcery.com> 14326 14327 PR libstdc++/25524 14328 * cppdefault.h (struct default_include): Add multilib flag. 14329 * cppdefault.c (cpp_include_defaults): Set it. 14330 * c.opt (-imultilib): New option. 14331 * c-opts.c (imultilib): New. 14332 (c_common_handle_option): Handle -imultilib. 14333 (c_common_post_options): Likewise. 14334 * c-incpath.c (add_standard_paths, register_include_chains): 14335 Likewise. 14336 * c-incpath.h (register_include_chains): Add extra parameter. 14337 * gcc.c (do_spec_1): Generate -imultilib option. 14338 (The Specs Language): Update %I description. 14339 (process_command): Update copyright notice. 14340 * doc/cppopts.texi (-imultilib): Document. 14341 * doc/invoke.texi (-imultilib): Include in option summary. 14342 (%I): Update specs documentation. 14343 143442006-01-20 Zdenek Dvorak <dvorakz@suse.cz> 14345 14346 * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way. 14347 143482006-01-20 Richard Sandiford <richard@codesourcery.com> 14349 14350 * stmt.c (case_bit_test_cmp): Stabilize the sort using code 14351 label numbers. 14352 143532006-01-20 Richard Guenther <rguenther@suse.de> 14354 Steven Bosscher <stevenb.gcc@gmail.com> 14355 14356 PR rtl-optimization/24626 14357 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set 14358 EDGE_TRUE_VALUE if in RTL mode. 14359 14360 Revert 14361 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com> 14362 * cfgrtl.c (rtl_verify_flow_info_1): Fix. 14363 143642006-01-20 Dirk Mueller <dmueller@suse.com> 14365 14366 PR c++/5520 14367 * c-parser.c (c_parser_if_body): Use build_empty_stmt() 14368 instead of a special NOP marker. 14369 * c-typeck.c (c_finish_if_stmt): Remove obsoleted special 14370 NOP marker handling. 14371 * c-common.h (empty_body_warning): Add forward declaration. 14372 * c-common.c (empty_body_warning): Add (from c_finish_if_stmt). 14373 Now uses IS_EMPTY_STMT() instead of special NOP markers. 14374 143752006-01-20 Paul Brook <paul@codesourcery.com> 14376 14377 * Makefile.in (lang_checks): Keep going if mkdir fails. 14378 143792006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com> 14380 14381 * df-scan.c (df_scan_free_bb_info): Added basic block parameter to 14382 be able to clean out basic block when not necessary. 14383 (df_scan_free): Fixed to properly delete information if df is 14384 unused before calling df_finish. 14385 (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink, 14386 df_insn_create_insn_record, df_bb_refs_record): Fixed formatting 14387 or comment typos. 14388 (df_bb_refs_delete): New function. 14389 (df_refs_delete): Moved per block code to df_bb_refs_delete. 14390 * df-core.c (df_set_blocks): Added code to properly clean out 14391 unused blocks if they are not part of the blocks to consider. 14392 Added additional null check. 14393 (df_compact_blocks): Added basic block parameter to free_bb_fun to 14394 be able to clean out basic block when not necessary 14395 * df.h (df_free_bb_function): Ditto. 14396 (df_bb_refs_delete): New function. 14397 * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info, 14398 df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added 14399 basic block parameter to be able to clean out basic block when not 14400 necessary. 14401 (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test. 14402 (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free): 14403 Fixed to properly delete information if df is unused before 14404 calling df_finish. 14405 144062006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com> 14407 14408 PR rtl-optimization/25799 14409 * df-problems.c (df_ru_confluence_n, df_rd_confluence_n): 14410 Corrected confluence operator to remove bits from op2 before oring 14411 with op1 rather than removing bits from op1. 14412 (df_ru_transfer_function): Corrected test on wrong bitmap which 14413 caused infinite loop. Both of these problems were introduced in 14414 the dataflow rewrite. 14415 144162006-01-19 DJ Delorie <dj@redhat.com> 14417 14418 * reload1.c (find_reload_regs): Note the details of reload 14419 failures in the dump file. 14420 (spill_failure): Likewise. 14421 144222006-01-20 Zdenek Dvorak <dvorakz@suse.cz> 14423 14424 * loop-iv.c: Include df.h and hashtab.h. 14425 (enum iv_grd_result): New enum. 14426 (DF_REF_IV, DF_REF_IV_SET): New macros. 14427 (struct biv_entry): New. 14428 (df, bivs): New global variables. 14429 (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no, 14430 assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p): 14431 Removed. 14432 (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr, 14433 iv_analyze_result, iv_analyze_def, biv_hash, biv_eq, 14434 analyzed_for_bivness_p, record_biv): New functions. 14435 (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p, 14436 get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op, 14437 iv_analyze, biv_p, iv_analysis_done): Work with df representation of 14438 UD chains. 14439 (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set 14440 analysed. 14441 (iv_number_of_iterations): Use new interface to iv analysis. 14442 * loop-unroll.c: Do not include varray.h. 14443 (analyze_iv_to_split_insn): Use new interface to iv 14444 analysis. 14445 * loop-unswitch.c (may_unswitch_on): Ditto. 14446 * df.c (df_bitmaps_free): Only work for bbs for that structures are 14447 allocated. 14448 (df_bb_modify): Realloc tables to the new index. 14449 (df_find_use): New function. 14450 * df.h (df_find_use): Declare. 14451 * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be 14452 outmode. 14453 * cfgloop.h (struct rtx_iv): Remove analysed field. 14454 (iv_get_reaching_def): Removed. 14455 (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare. 14456 * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency. 14457 (loop-iv.o): Add df.h and hashtab.h dependency. 14458 * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation. 14459 144602006-01-20 Alan Modra <amodra@bigpond.net.au> 14461 14462 PR target/25668 14463 * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended 14464 Double TFmode. 14465 (__floatundisf, __floatundidf): Likewise. 14466 * libgcc2.h (IS_IBM_EXTENDED): Define. 14467 144682006-01-19 DJ Delorie <dj@redhat.com> 14469 14470 * config/m32c/m32c.h (REG_ALLOC_ORDER): Define. 14471 144722006-01-19 Paul Brook <paul@codesourcery.com> 14473 14474 * config/arm/arm.c (arm_compute_func_type): Treat all functions 14475 as nothrow when unwinding tables are disabled. 14476 144772006-01-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 14478 14479 PR testsuite/25171 14480 * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type 14481 of bit-field" when in system header. 14482 144832006-01-19 DJ Delorie <dj@redhat.com> 14484 14485 * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with 14486 the 16 bit shift limit of the m16c. 14487 144882006-01-19 Andrew Pinski <pinskia@physics.uc.edu> 14489 14490 PR target/22099 14491 * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label. 14492 * config/i386/i386.c (output_set_got): Output the label if we have one 14493 for the TARGET_DEEP_BRANCH_PREDICTION case. 14494 144952006-01-19 Jan Hubicka <jh@suse.cz> 14496 H.J. Lu <hongjiu.lu@intel.com> 14497 Evandro Menezes <evandro.menezes@amd.com> 14498 14499 * invoke.texi (generic): Document 14500 (i686) Update. 14501 * config.gcc: Make x86_64-* and i686-* default to generic tunning. 14502 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC, 14503 TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros. 14504 (x86_use_incdec, x86_pad_returns): New variables 14505 (TARGET_CPU_DEFAULT_generic): New constant 14506 (TARGET_CPU_DEFAULT_NAMES): Add generic. 14507 (enum processor_type): Add generic32 and generic64. 14508 * i386.md (cpu attribute): Add generic32/generic64 14509 (movhi splitter): Behave sanely when both partial_reg_dependency and 14510 partial_reg_stall are set. 14511 (K8 splitters): Enable for generic as well. 14512 * predicates.md (incdec_operand): Use TARGET_INCDEC 14513 (aligned_operand): Avoid memory mismatch stalls. 14514 * athlon.md: Enable for generic64, new patterns for 128bit moves. 14515 * ppro.md: Enable for generic32 14516 * i386.c (generic64_cost, generic32_cost): New. 14517 (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros. 14518 (x86_use_leave): Enable for generic64. (x86_use_sahf, 14519 x86_ext_80387_constants): Enable for generic32. (x86_push_memory, 14520 x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop, 14521 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, 14522 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, 14523 x86_partial_reg_dependency, x86_memory_mismatch_stall, 14524 x86_accumulate_outgoing_args, x86_prologue_using_move, 14525 x86_epilogue_using_move, x86_arch_always_fancy_math_387, 14526 x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule): 14527 Enable for generic. 14528 (x86_use_incdec, x86_pad_returns): New. 14529 (override_options): Add generic32 and generic64, translate "generic" 14530 to generic32/generic64 and "i686" to "generic32", refuse 14531 "generic32"/"generic64" as arch target. 14532 (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon. 14533 (ix86_reorg): Honor PAD_RETURNS. 14534 145352006-01-19 Diego Novillo <dnovillo@redhat.com> 14536 14537 * tree-pretty-print.c (dump_generic_node): Handle 14538 OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR. 14539 * cgraph.c (cgraph_expand_queue): Rename from 14540 cgraph_analyze_queue. Update all users. 14541 * cgraphunit.c (cgraph_assemble_pending_functions): Process 14542 cgraph_expand_queue. 14543 (cgraph_expand_all_functions): Likewise. 14544 (cgraph_finalize_pending_functions): Remove. Update callers. 14545 14546 * tree.h (OMP_DIRECTIVE_P): Define. 14547 (OMP_PARALLEL_FN): Define. 14548 (OMP_PARALLEL_DATA_ARG): Define. 14549 (OMP_SECTIONS_SECTIONS): Define. 14550 * tree-pass.h (pass_expand_omp): Declare. 14551 * omp-low.c (struct omp_region): Declare. 14552 (struct omp_context): Remove fields 'parallel_type', 14553 'parallel_start_ix' and 'parallel_start_additional_args'. 14554 Update all users. 14555 (struct omp_for_data): Rename from struct expand_omp_for_data. 14556 (omp_regions): New static variable. 14557 (root_omp_region): New static variable. 14558 (find_omp_clause): Make static. 14559 (is_in_combined_parallel_ctx): Remove. 14560 (is_combined_parallel): New. 14561 (extract_omp_for_data): Move earlier in the file. 14562 (workshare_safe_to_combine_p): New. 14563 (get_ws_args_for): New. 14564 (determine_parallel_type): Move earlier in the file. 14565 (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the 14566 child function. 14567 (omp_copy_decl): Likewise. 14568 (create_omp_child_function): Likewise. 14569 (lookup_omp_region): New. 14570 (dump_omp_region): New. 14571 (debug_omp_region): New. 14572 (debug_all_omp_regions): New. 14573 (new_omp_region): New. 14574 (scan_omp_parallel): If parallel_nesting_level > 1, the 14575 directive is nested within another parallel directive. 14576 Set OMP_PARALLEL_FN. 14577 (scan_omp_for): Do not try to handle combined parallel+for 14578 cases. 14579 Remove FIXME comment. 14580 (scan_omp_nested): Remove. 14581 (scan_omp_1): Do not call scan_omp_nested when 14582 parallel_nesting_level is > 1. 14583 Do not change the DECL_CONTEXT of local variables found. 14584 (lookup_decl_in_outer_ctx): New. 14585 (lower_rec_input_clauses): Rename from expand_rec_input_clauses. 14586 (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses. 14587 (lower_reduction_clauses): Rename from expand_reduction_clauses. 14588 (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses. 14589 If CTX is nested, lookup VAR in the outer context when 14590 building copy assignment. 14591 (lower_send_clauses): Rename from expand_send_clauses. 14592 If CTX is nested, lookup VAR in the outer context when 14593 building copy assignments. 14594 (lower_send_shared_vars): Rename from expand_send_shared_vars. 14595 If CTX is nested, lookup VAR in the outer context when 14596 building copy assignments. 14597 (expand_parallel_call): Rename from build_parallel_call. 14598 Handle combined parallel+workshare cases. 14599 Re-implement to emit code into the CFG. 14600 (list2chain): New. 14601 (expand_omp_parallel): Re-implement to emit code into the CFG. 14602 Call move_sese_region_to_fn to outline the sub-graph 14603 containing the parallel region. 14604 (expand_omp_for_1): Remove. 14605 (expand_omp_for_generic): Re-implement to emit code into the 14606 CFG. 14607 (expand_omp_for_static_nochunk): Likewise. 14608 (expand_omp_for_static_chunk): Likewise. 14609 (expand_omp_for): Likewise. 14610 (expand_omp_sections): Likewise. 14611 (remove_exit_barriers): New. 14612 (expand_omp_synch): New. 14613 (expand_omp): New. 14614 (build_omp_regions_1): New. 14615 (build_omp_regions): New. 14616 (execute_expand_omp): New. 14617 (gate_expand_omp): New. 14618 (pass_expand_omp): Define. 14619 (lower_omp_sections): Rename from expand_omp_sections. 14620 Set OMP_SECTIONS_SECTIONS. 14621 (lower_omp_single_simple): Rename from expand_omp_single_simple. 14622 (lower_omp_single_copy): Rename from expand_omp_single_copy. 14623 (lower_omp_single): Rename from expand_omp_simple. 14624 (lower_omp_master): Rename from expand_omp_master. 14625 (lower_omp_ordered): Rename from expand_omp_ordered. 14626 (lower_omp_critical): Rename from expand_omp_critical. 14627 (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate. 14628 (lower_omp_for): Re-implement. 14629 (lower_omp_parallel): Re-implement. 14630 (lower_regimplify): Rename from expand_regimplify. 14631 (lower_omp_1): Rename from expand_omp_1. 14632 If there are syntax errors in the program, replace every 14633 OpenMP directive with NOP. 14634 Call lower_omp_* instead of expand_omp_*. 14635 (lower_omp): Rename from expand_omp. 14636 14637 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR. 14638 * tree-gimple.h (enum omp_parallel_type): Remove. 14639 (gimple_boolify): Declare extern. 14640 (find_omp_clause, determine_parallel_type): Remove. 14641 14642 * gimple-low.c (lower_omp_directive): New. 14643 (lower_stmt): Call it. 14644 (record_vars_into): Move from ... 14645 (record_vars): ... here. 14646 Call record_vars_into with current_function_decl. 14647 14648 * gimplify.c (struct gimplify_ctx): Remove fields 14649 combined_pre_p and combined_ctxp. Update users. 14650 (get_formal_tmp_var): Add documentation. 14651 (gimple_boolify): Make extern. 14652 (gimplify_expr_in_ctx): Remove. Update callers. 14653 (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY 14654 will always be a BIND_EXPR. 14655 (gimplify_expr): Handle OMP_RETURN_EXPR. 14656 * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS. 14657 (OMP_PARALLEL): Add 3 operands. 14658 (OMP_SECTIONS): Add 1 operand. 14659 (OMP_RETURN_EXPR): Define. 14660 14661 * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives. 14662 (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*. 14663 * tree-iterator.c (alloc_stmt_list): Assert that we are not 14664 creating a circular free list. 14665 (free_stmt_list): Assert that we are not freeing stmt_list_cache. 14666 14667 * tree-flow.h (move_sese_region_to_fn): Declare. 14668 (record_vars_into): Declare. 14669 * tree-cfg.c (make_omp_sections_edges): New. 14670 (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE, 14671 OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR, 14672 OMP_SECTIONS and OMP_SECTION. 14673 (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P. 14674 (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl. 14675 (verify_stmt): Do not handle OMP_DIRECTIVE_P. 14676 (gather_blocks_in_sese_region): New. 14677 (struct move_stmt_d): Declare. 14678 (move_stmt_r): New. 14679 (move_block_to_fn): New. 14680 (move_sese_region_to_fn): New. 14681 14682 * passes.c (init_optimization_passes): Schedule 14683 pass_expand_omp after pass_init_datastructures. 14684 14685 * tree-ssa-operands.c (get_expr_operands): Handle 14686 OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR, 14687 OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL. 14688 146892006-01-19 Jeff Law <law@redhat.com> 14690 14691 * tree-vrp.c (extract_range_from_assert): Refine the result range 14692 if the variable referenced by the ASSERT_EXPR has a range and 14693 either the tentative result range or the previous range is a 14694 VR_ANTI_RANGE. 14695 146962006-01-19 Richard Sandiford <richard@codesourcery.com> 14697 14698 * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses. 14699 147002006-01-19 Jan Hubicka <jh@suse.cz> 14701 14702 * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error. 14703 147042006-01-19 Paolo Bonzini <bonzini@gnu.org> 14705 14706 * combine.c (try_combine): Do not worry about MEMs wrapped by USEs. 14707 (expand_compound_operation, expand_field_assignment): Fail if the 14708 bit lengths of an extract operation are out of range. 14709 (make_extraction): Compute wanted_inner_mode based on the position 14710 and length of the extraction. Make it extraction_mode for non-constant 14711 positions, and do not modify offset in that case. When generating a 14712 new MEM, use a mode that can hold the extraction while keeping correct 14713 alignment. Remove code that supported MEMs wrapped by USEs. 14714 (simplify_shift_const_1, force_to_mode) <case USE>: Remove. 14715 147162006-01-19 Andreas Krebbel <krebbel1@de.ibm.com> 14717 14718 * config/s390/s390.md ("Y", "y"): New mode attribute. 14719 ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc", 14720 "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly", 14721 "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64", 14722 "*addsi3_imm_cc", "*addsi3_carry1_cc", 14723 "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly", 14724 "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", 14725 "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc", 14726 "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64", 14727 "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc", 14728 "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2", 14729 "addsi3", "subsi3"): Insn patterns removed. 14730 ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly", 14731 "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc", 14732 "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc", 14733 "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly", 14734 "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly", 14735 "*sub<mode>3_cconly2"): New insn patterns. 14736 ("addsi3", "subsi3"): New expanders. 14737 147382006-01-19 Dorit Nuzman <dorit@il.ibm.com> 14739 14740 * Makefile.in (tree-vect-patterns.o): Add rule for new file. 14741 * tree-vect-analyze.c (vect_determine_vectorization_factor): Use 14742 existing STMT_VINFO_VECTYPE if available. 14743 (vect_mark_relevant): Add special handling for stmts that are 14744 marked as STMT_VINFO_IN_PATTERN_P. 14745 (vect_analyze_loop): Call vect_pattern_recog. 14746 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. 14747 * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in 14748 stmt_info. 14749 (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros. 14750 (vect_recog_func_ptr): New function-pointer type. 14751 * tree-vect-patterns.c: New file. 14752 (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern): 14753 (vect_recog_dot_prod_pattern, vect_pattern_recog): 14754 (vect_pattern_recog_1): New functions. 14755 (vect_pattern_recog_funcs): New array of function pointers. 14756 14757 * tree-vectorizer.h (ternary_op): New enum value. 14758 * tree-vect-transform.c (vect_create_epilog_for_reduction): Added 14759 declaration. Revised documentation. Removed redundant dump prints. 14760 Removed redundant argument. Added support for reduction patterns. 14761 (vectorizable_reduction): Added support for reduction patterns. 14762 (vect_transform_stmt): Added support for patterns. 14763 14764 * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR. 14765 * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize. 14766 * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR. 14767 (expand_widen_pattern_expr): New function. 14768 (init_optabs): Initialize new optabs udot_prod_optab, 14769 sdot_prod_optab. 14770 * optabs.h (OTI_sdot_prod, OTI_udot_prod): New. 14771 (sdot_prod_optab, udot_prod_optab): Define new optabs. 14772 (expand_widen_pattern_expr): New function declaration. 14773 * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New 14774 tree-codes. 14775 * tree-inline.c (estimate_num_insns_1): Added cases for new 14776 tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. 14777 * tree-pretty-print.c (dump_generic_node): Likewise. 14778 (op_prio): Likewise. 14779 (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. 14780 * tree-ssa-operands.c (get_expr_operands): Added case for 14781 DOT_PROD_EXPR. 14782 * tree-vect-patterns.c (widened_name_p): New function. 14783 (vect_recog_dot_prod_pattern): Added function implementation. 14784 * tree-vect-transform.c (get_initial_def_for_reduction): Added 14785 cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR. 14786 * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New. 14787 * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New. 14788 14789 * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR. 14790 * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize. 14791 * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR. 14792 (init_optabs): Initialize new optabs widen_ssum_optab, 14793 widen_usum_optab. 14794 * optabs.h (OTI_widen_ssum, OTI_widen_usum): New. 14795 (widen_ssum_optab, widen_usum_optab): Define new optabs. 14796 * tree-vect-generic.c: (expand_vector_operations_1): Check type of 14797 use instead of type of def. 14798 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added 14799 function implementation. 14800 * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi, 14801 widen_ssumv8hi): New. 14802 14803 * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New 14804 patterns. 14805 148062006-01-19 Richard Sandiford <richard@codesourcery.com> 14807 14808 PR c/25805 14809 * c-decl.c (add_flexible_array_elts_to_size): New function. 14810 (finish_decl): Use it. 14811 148122006-01-18 Andrew Pinski <pinskia@physics.uc.edu> 14813 14814 * diagnostic.h: Include options.h. 14815 * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the 14816 dependancies for diagnostic.h. 14817 * Makefile.in (DIAGNOSTIC_H): Add options.h. 14818 148192006-01-16 Daniel Berlin <dberlin@dberlin.org> 14820 14821 * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove. 14822 (ssa_ro_call_cache_valid): Ditto. 14823 * tree-ssa-alias.c (sort_tags_by_id): New function. 14824 (init_transitive_clobber_worklist): Ditto. 14825 (add_to_worklist): Ditto. 14826 (mark_aliases_call_clobbered): Ditto. 14827 (compute_tag_properties): Ditto. 14828 (set_initial_properties): Ditto. 14829 (compute_call_clobbered): Ditto. 14830 (compute_may_aliases): Call compute_call_clobbered and grouping. 14831 (compute_flow_sensitive_aliasing): Remove clobbering related code. 14832 (compute_flow_insensitive_aliasing): Grouping now happens in our 14833 caller. 14834 (setup_pointers_and_addressables): Remove clobbering related code. 14835 (add_may_alias): Ditto. 14836 (replace_may_alias): Ditto. 14837 (get_nmt_for): Ditto. 14838 (create_global_var): 14839 (is_escape_site): Return an escape_type enumeration. 14840 * tree-flow-inline.h (is_call_clobbered): Global var does not 14841 imply call clobbered. 14842 (mark_call_clobbered): Take a reason for marking this. Remove 14843 marking of globalness, and cache invalidation. 14844 (clear_call_clobbered): Remove cache invalidation code. 14845 * tree-dfa.c (dump_variable): If details is on, dump the reason 14846 for escaping. 14847 * tree-outof-ssa.c (create_temp): Copy escape mask from original 14848 variable. 14849 * tree-flow.h (struct ptr_info_def): Add escape mask member. 14850 (struct var_ann_d): Ditto. 14851 (enum escape_type): New. 14852 (mark_call_clobbered): Adjust prototype. 14853 * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars 14854 are never call clobbered. 14855 Record reasons for escaping. 14856 * tree-ssa-structalias.h (is_escape_site): Update prototype. 14857 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove. 14858 (ssa_ro_call_cache_valid): Ditto. 14859 (clobbered_v_may_defs): Ditto. 14860 (clobbered_vuses): Ditto. 14861 (ro_call_vuses): Ditto. 14862 (clobber_stats): New. 14863 (init_ssa_operands): Zero out clobber stats. 14864 (fini_ssa_operands): Print out clobber stats. 14865 (get_call_expr_operands): Pass callee fndecl to 14866 add_call_read_ops). 14867 (add_call_clobber_ops): Remove use of cache. 14868 Add use of PURE_CONST information. 14869 (add_call_read_ops): Remove use of cache. 14870 Add use of static not_read information. 14871 148722006-01-18 Alexandre Oliva <aoliva@redhat.com> 14873 14874 Introduce TLS descriptors for i386 and x86_64. 14875 * config/i386/i386.h (TARGET_GNU2_TLS): New macro. 14876 (TARGET_ANY_GNU_TLS): New macro. 14877 (enum tls_dialect): Added TLS_DIALECT_GNU2. 14878 (struct machine_function): Add tls_descriptor_call_expanded_p. 14879 (ix86_tls_descriptor_calls_expande_in_cfun): New macro. 14880 (ix86_current_function_calls_tls_descriptor): Likewise. 14881 * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment. 14882 (override_options): Introduce gnu2 tls dialect. 14883 (ix86_frame_pointer_required): Functions containing TLSCALLs are 14884 not leaves. 14885 (ix86_select_alt_pic_regnum, ix86_compute_frame_layout): 14886 Likewise. 14887 (legitimize_tls_address): Adjust logic for GNU2 TLS. 14888 (ix86_init_machine_status): Initialize new field. 14889 (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS. 14890 (ix86_tls_module_base): New. 14891 * config/i386/i386-protos.h (ix86_tls_module_base): Declare it. 14892 * config/i386/i386.md (UNSPEC_TLSDESC): New constant. 14893 (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS. 14894 (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise. 14895 (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns. 14896 (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise. 14897 (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise. 14898 (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise. 14899 * config/i386/predicates.md (tls_modbase_operand): New. 14900 (tp_or_register_operand): New. 14901 149022006-01-18 Daniel Berlin <dberlin@dberlin.org> 14903 14904 * ipa-reference.c (check_operand): Allow FUNCTION_DECL. 14905 (look_for_address_of): Ditto. 14906 (ipa_init): Walk the function decls. 14907 (static_execute): Don't set readonly on FUNCTION_DECL's. 14908 149092006-01-18 Roger Sayle <roger@eyesopen.com> 14910 14911 * config/i386/i386.md (shift spliter): Fix a a typo in the splitter 14912 for shifts where the source and destination registers are different. 14913 149142006-01-18 Paul Brook <paul@codesourcery.com> 14915 14916 Merge from csl-arm-branch. 14917 2005-03-14 Julian Brown <julian@codesourcery.com> 14918 * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS. 14919 (aeabi_llsl): Likewise. 14920 (ashrdi3): Likewise. 14921 (aeabi_lasr): Likewise. 14922 (lshrdi3): Likewise. 14923 (aeabi_llsr): Likewise. 14924 2005-03-10 Julian Brown <julian@codesourcery.com> 14925 * config.gcc: Disable shared libgcc for SymbianOS. 14926 * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c. 14927 149282006-01-18 DJ Delorie <dj@redhat.com> 14929 14930 * c-pragma.c (handle_pragma_diagnostic): New. 14931 (init_pragma): Register it. 14932 * doc/extend.texi: Document it. 14933 14934 * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED. 14935 * diagnostic.h (diagnostic_classify_diagnostic): Declare. 14936 (diagnostic_context): Add classify_diagnostic[]. 14937 * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings 14938 as errors if they're overridden to DK_WARNING. 14939 (diagnostic_initialize): Initialize classify_diagnostic[]. 14940 (diagnostic_set_kind_override): New. 14941 (diagnostic_report_diagnostic): Check for kind changes. 14942 * opts.c (common_handle_option): Take lang_mask. Update callers. 14943 Handle OPT_Werror_. 14944 * common.opt (Werror=): New. 14945 * doc/invoke.texi: Document -Werror=* 14946 149472006-01-18 Jeff Law <law@redhat.com> 14948 14949 * tree-vrp.c (test_for_singularity): Correct test for new 14950 min limit. Use operand_equal_p rather than pointer equality 14951 for testing if new min/max values are equal. 14952 14953 * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications 14954 using range information until after propagation and folding. 14955 149562006-01-18 Richard Henderson <rth@redhat.com> 14957 Aldy Hernandez <aldyh@redhat.com> 14958 Jakub Jelinek <jakub@redhat.com> 14959 Diego Novillo <dnovillo@redhat.com> 14960 14961 * omp-low.c: New file. 14962 * c-omp.c: New file. 14963 149642006-01-18 Richard Henderson <rth@redhat.com> 14965 Jakub Jelinek <jakub@redhat.com> 14966 Diego Novillo <dnovillo@redhat.com> 14967 14968 * doc/invoke.texi: Document -fopenmp. 14969 * tree-dump.h (debug_function): Declare. 14970 * hooks.c (hook_bool_tree_bool_false): New function. 14971 (hook_tree_tree_null): Remove. 14972 (hook_tree_tree_tree_null): New. 14973 * hooks.h: Update to match. 14974 * tree-pretty-print.c (debug_tree_chain): New. 14975 (print_generic_expr): Handle TDF_CHAIN. 14976 (dump_generic_node): Handle BLOCK. 14977 Do not abort with incomplete SWITCH_EXPRs. 14978 Do not dump body of an OpenMP directive if TDF_SLIM is given. 14979 <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't 14980 print space after directive name. 14981 <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY. 14982 Handle OMP_MASTER and OMP_ORDERED. 14983 Handle printing of OMP_BODY just in one place, goto 14984 dump_omp_body in the rest of OMP_* nodes that have 14985 OMP_BODY. 14986 Don't handle clause nodes here. Update omp statements to 14987 use dump_omp_clauses. 14988 Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION, 14989 OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC, 14990 OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF, 14991 GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED, 14992 GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE, 14993 GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE. 14994 Adjust output for GOMP_PARALLEL. 14995 (dump_omp_clauses): New. 14996 (print_declaration): Dump DECL_VALUE_EXPR. 14997 (op_symbol_1): Split out of op_symbol. 14998 (dumping_stmts): Remove. Update all users. 14999 * cgraph.c (cgraph_analyze_queue): New. 15000 (cgraph_add_new_function): New. 15001 * cgraph.h (cgraph_analyze_queue): Declare. 15002 (cgraph_add_new_function): Declare. 15003 (cgraph_lower_function): Remove. 15004 * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_* 15005 nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS 15006 and TYPE_P nodes in its default clause. 15007 (empty_body_p): New. 15008 (tree_range_check_failed): New. 15009 (build5_stat): New. 15010 * tree.h (OMP_CLAUSE_REDUCTION_INIT, 15011 OMP_CLAUSE_REDUCTION_MERGE, 15012 OMP_CLAUSE_REDUCTION_PLACEHOLDER, 15013 OMP_CLAUSE_PRIVATE_DEBUG, 15014 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY, 15015 OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY, 15016 OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND, 15017 OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL, 15018 OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR, 15019 OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR, 15020 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT, 15021 OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT, 15022 OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC, 15023 OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST, 15024 OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE 15025 OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY, 15026 OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY, 15027 OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New. 15028 (TREE_RANGE_CHECK): New. 15029 (empty_body_p): Declare. 15030 (enum omp_clause_default_kind): New. 15031 (build_string_literal): Declare. 15032 (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New. 15033 (build5_stat, build5): Declare. 15034 * tree-pass.h (TDF_CHAIN): Define. 15035 * tree-pass.h (PROP_gimple_lomp): Define. 15036 (pass_lower_omp): Declare. 15037 * diagnostic.h (debug_tree_chain): Declare. 15038 * builtins.c (get_builtin_sync_mode): Use 0 as last argument to 15039 mode_for_size. 15040 (expand_builtin): Handle sync BUILT_IN_*_16 builtins. 15041 * builtins.c (build_string_literal): Make extern. 15042 * gcc.c (include_spec_function): New. 15043 (static_spec_functions): Add it. 15044 (main): Move load of libgomp.spec ... 15045 (LINK_COMMAND_SPEC): ... here. 15046 (link_gomp_spec): New. 15047 (static_specs): Include it. 15048 (LINK_COMMAND_SPEC): Add link_gomp. 15049 (GOMP_SELF_SPECS): New. 15050 (driver_self_specs): Include it. 15051 (switch_matches): Don't mark inline. 15052 (main): Load libgomp.spec. 15053 * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER, 15054 OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION, 15055 and OMP_SINGLE, OMP_FOR and OMP_PARALLEL. 15056 * tree-gimple.h (enum omp_parallel): Declare. 15057 (determine_parallel_type): Declare. 15058 (omp_firstprivatize_variable): Declare. 15059 (omp_reduction_init): Declare. 15060 (diagnose_omp_structured_block_errors): Declare. 15061 (struct walk_stmt_info): Add want_return_expr. 15062 (struct walk_stmt_info): Add want_bind_expr, want_locations. 15063 (find_omp_clause): Declare. 15064 (insert_field_into_struct): Declare. 15065 (struct walk_stmt_info): Move from tree-nested.c 15066 (walk_stmts): Declare. 15067 * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP 15068 to 200505. 15069 * cgraphunit.c (cgraph_lower_function): Make static. 15070 (cgraph_finalize_pending_functions): New. 15071 (cgraph_finalize_function): Call it. 15072 (cgraph_finalize_compilation_unit): Likewise. 15073 * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16, 15074 BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. 15075 (BT_FN_UINT_UINT): New. 15076 (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7, 15077 DEF_FUNCTION_TYPE_VAR_4): Document. 15078 (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT, 15079 BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR, 15080 BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT, 15081 BT_FN_VOID_OMPFN_PTR_UINT_UINT, 15082 BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, 15083 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, 15084 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, 15085 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New. 15086 * builtins.def: Update DEF_BUILTIN comment to include COND argument. 15087 Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins 15088 into separate files. 15089 (DEF_GOMP_BUILTIN): New. 15090 (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER, 15091 BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END, 15092 BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END, 15093 BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START, 15094 BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START, 15095 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START, 15096 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START, 15097 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START, 15098 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START, 15099 BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, 15100 BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, 15101 BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT, 15102 BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT, 15103 BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT, 15104 BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT, 15105 BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START, 15106 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START, 15107 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START, 15108 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START, 15109 BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT, 15110 BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END, 15111 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END, 15112 BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT, 15113 BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END, 15114 BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START, 15115 BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New. 15116 * sync-builtins.def: New file, moved from builtins.def. 15117 * omp-builtins.def: New file, moved from builtins.def. 15118 * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine. 15119 * gimple-low.c (lower_function_body): Clear data. 15120 (lower_stmt): Do not handle COMPOUND_EXPR. 15121 Remove call to print_node_brief. 15122 * c-tree.h (c_finish_omp_clauses): New prototype. 15123 (C_DECL_THREADPRIVATE_P): Define. 15124 (lookup_name_no_remap, c_omp_remap_private): Remove 15125 (c_begin_omp_parallel, c_finish_omp_parallel): Update. 15126 (check_for_loop_decls): Update decl. 15127 (lookup_name_no_remap, c_omp_remap_private): Declare. 15128 (build_indirect_ref, build_modify_expr, pushdecl, 15129 pushdecl_top_level): Move to c-common.h. 15130 * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp 15131 before the switch, but just in the 2 places that need it. 15132 * c-decl.c (diagnose_mismatched_decls): Do not check for 15133 mismatched thread-local attributes when OLDDECL is marked 15134 threadprivate and NEWDECL has no thread-local attributes. 15135 (merge_decls): Merge C_DECL_THREADPRIVATE_P. 15136 (c_gimple_diagnostics_recursively): Rename from 15137 c_warn_unused_result_recursively. Invoke 15138 diagnose_omp_structured_block_errors. 15139 (check_for_loop_decls): Return a singular decl found. 15140 * langhooks.c (lhd_omp_predetermined_sharing): Return 15141 OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls. 15142 (lhd_omp_firstprivatize_type_sizes): New. 15143 (lhd_omp_assignment): New. 15144 (lhd_omp_predetermined_sharing): New. 15145 * langhooks.h (struct gimplify_omp_ctx): Forward declare. 15146 (struct lang_hooks_for_types): Add 15147 omp_firstprivatize_type_sizes, omp_privatize_by_reference, 15148 omp_predetermined_sharing, omp_disregard_value_expr, 15149 omp_private_debug_clause, omp_clause_default_ctor, 15150 omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor. 15151 (c_finish_omp_clauses): New. 15152 (c_finish_bc_stmt): Diagnose break within omp for. 15153 (c_begin_omp_parallel, c_finish_omp_parallel): New. 15154 (build_unary_op): Return error_mark after reporting 15155 a readonly_error. 15156 (build_modify_expr): Likewise. 15157 * gimplify.c: Include optabs.h and pointer-set.h. 15158 (enum gimplify_omp_var_data): Declare. 15159 (struct gimplify_omp_ctx): Declare. 15160 (struct gimplify_ctx): Add fields prev_context, combined_pre_p 15161 and combined_ctxp. 15162 (gimplify_ctxp, gimplify_omp_ctxp): New local variables. 15163 (push_gimplify_context, pop_gimplify_context): Allow nesting. 15164 (splay_tree_compare_decl_uid): New. 15165 (new_omp_context): New. 15166 (delete_omp_context): New. 15167 (gimple_add_tmp_var): Call omp_add_variable. 15168 (gimplify_bind_expr): Likewise. 15169 (gimplify_var_or_parm_decl): If omp_notice_variable returned 15170 true, disregard DECL_VALUE_EXPR on the decl if any. 15171 (gimplify_expr_in_ctx): New. 15172 (omp_firstprivatize_variable, omp_firstprivatize_type_sizes 15173 omp_add_variable, omp_notice_variable, omp_is_private 15174 gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1 15175 gimplify_adjust_omp_clauses, gimplify_omp_parallel 15176 gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p 15177 gimplify_omp_atomic_fetch_op, goa_stabilize_expr 15178 gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex 15179 gimplify_omp_atomic): New. 15180 (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS, 15181 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED, 15182 OMP_CRITICAL and OMP_ATOMIC. 15183 (gimplify_body): Verify gimplify_ctxp is empty after gimplification. 15184 * c-pragma.h (enum pragma_kind): Add 15185 PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER, 15186 PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR, 15187 PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED, 15188 PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR, 15189 PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION, 15190 PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE, 15191 PRAGMA_OMP_THREADPRIVATE. 15192 * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS, 15193 OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED, 15194 OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE, 15195 OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE, 15196 OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION, 15197 OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE, 15198 OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, 15199 OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT, 15200 OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define. 15201 * print-tree.c (print_node): Dump DECL_VALUE_EXPR. 15202 * tree-ssa-dce.c (find_control_dependence): Do not assume that 15203 ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR). 15204 * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for 15205 OpenMP directives. 15206 (struct nesting_info): Add field_map, 15207 suppress_expansion, debug_var_chain. 15208 (create_nesting_tree): Initialize them. 15209 (lookup_field_for_decl): Use field_map. 15210 (get_nonlocal_debug_decl, get_local_debug_decl): New. 15211 (convert_local_omp_clauses): New. 15212 (finalize_nesting_tree_1): Add debug_var_chain to toplevel block. 15213 (walk_body): Split out of walk_function. 15214 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New. 15215 (convert_nonlocal_reference): Handle omp statements. 15216 (convert_local_reference): Likewise. 15217 (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1. 15218 (unnest_nesting_tree): New. 15219 (lower_nested_functions): Call it. 15220 (insert_field_into_struct): Make extern. 15221 (struct walk_stmt_info): Move to tree-gimple.h. 15222 (walk_stmts): Make extern. 15223 * omp-builtins.def: New file. 15224 * tree-iterator.c (expr_only): Clarify comment. 15225 * c-common.h (pushdecl_top_level, pushdecl, 15226 build_modify_expr, build_indirect_ref, 15227 c_finish_omp_master, c_finish_omp_critical, 15228 c_finish_omp_ordered, c_finish_omp_barrier, 15229 c_finish_omp_atomic, c_finish_omp_flush, 15230 c_finish_omp_for, c_split_parallel_clauses, 15231 omp_clause_default_kind, c_omp_sharing_predetermined, 15232 c_omp_remap_decl): Declare. 15233 * Makefile.in (BUILTINS_DEF): Add omp-builtins.def. 15234 (OBJS-common): Add omp-low.o. 15235 (c-omp.o, omp-low.o): Add. 15236 (gimplify.o): Add dependency on $(OPTABS_H). 15237 (GTFILES): Add omp-low.c. 15238 (gt-stringpool.h): Add. 15239 * tree-cfg.c (set_bb_for_stmt): Do not update the 15240 block-to-labels map if we are currently expanding to RTL. 15241 (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P 15242 checks. 15243 Handle IDENTIFIER_NODE. 15244 (tree_verify_flow_info): Do not ICE when emitting error 15245 messages about invalid labels. 15246 (dump_function_to_file): Reset CFUN before emitting the body 15247 of the function. 15248 (debug_function): New. 15249 * passes.c (init_optimization_passes): Schedule 15250 pass_lower_omp. 15251 * langhooks-def.h (lhd_omp_predetermined_sharing, 15252 lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes): 15253 Declare. 15254 (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define. 15255 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it. 15256 (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE, 15257 LANG_HOOKS_OMP_PREDETERMINED_SHARING, 15258 LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, 15259 LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE, 15260 LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR, 15261 LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, 15262 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, 15263 LANG_HOOKS_OMP_CLAUSE_DTOR): Define. 15264 (LANG_HOOK_DECLS): Use them. 15265 152662006-01-18 Dmitry Kurochkin <dmitry.kurochkin@gmail.com> 15267 Richard Henderson <rth@redhat.com> 15268 Jakub Jelinek <jakub@redhat.com> 15269 Diego Novillo <dnovillo@redhat.com> 15270 15271 * c-parser.c (pragma_omp_clause): Define. 15272 (c_parser_declaration_or_fndef): Document OpenMP syntax. 15273 (c_parser_compound_statement): Likewise. 15274 (c_parser_statement): Likewise. 15275 (c_parser_pragma): Handle omp pragmas. 15276 (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK, 15277 OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define. 15278 (c_parser_omp_clause_name, check_no_duplicate_clause, 15279 c_parser_omp_variable_list, 15280 c_parser_omp_var_list_parens, c_parser_omp_clause_copyin, 15281 c_parser_omp_clause_copyprivate, 15282 c_parser_omp_clause_default, 15283 c_parser_omp_clause_firstprivate, c_parser_omp_clause_if, 15284 c_parser_omp_clause_lastprivate, 15285 c_parser_omp_clause_nowait, 15286 c_parser_omp_clause_num_threads, 15287 c_parser_omp_clause_ordered, c_parser_omp_clause_private, 15288 c_parser_omp_clause_reduction, 15289 c_parser_omp_clause_schedule, c_parser_omp_clause_shared, 15290 c_parser_omp_all_clauses, c_parser_omp_structured_block, 15291 c_parser_omp_atomic, c_parser_omp_barrier, 15292 c_parser_omp_critical, c_parser_omp_flush, 15293 c_parser_omp_for_loop, c_parser_omp_for, 15294 c_parser_omp_master, c_parser_omp_ordered, 15295 c_parser_omp_sections_scope, c_parser_omp_sections, 15296 c_parser_omp_parallel, c_parser_omp_single, 15297 c_parser_omp_construct, c_parser_omp_threadprivate): New. 15298 * c-pragma.c (init_pragma): Do omp pragma registration here. 15299 * c.opt (fopenmp): New flag. 15300 153012006-01-18 Eric Christopher <echristo@apple.com> 15302 15303 * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif. 15304 * config/darwin.h (GOMP_SELF_SPECS): Define. 15305 153062006-01-18 Kazu Hirata <kazu@codesourcery.com> 15307 15308 * rtl.h: Remove the prototype for reg_alloc. 15309 153102006-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 15311 15312 PR target/25731 15313 * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*, 15314 hppa[12]*-*-hpux11*): Override default shared libgcc version for both 15315 sjlj and dwarf2 exception handling. 15316 * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable. 15317 Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION. 15318 * pa/pa.c (function_value): Treat complex and vector types as 15319 aggregates. 15320 (function_arg): Likewise. Only pass scalar floats in the floating 15321 point argument registers. 15322 * pa/t-slibgcc-dwarf-ver: New file. 15323 * pa/t-slibgcc-sjlj-ver: New file. 15324 * pa/t-slibgcc-elf-ver: Delete file. 15325 153262006-01-19 Alan Modra <amodra@bigpond.net.au> 15327 15328 * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct 15329 unlikely_test_section_p test. 15330 153312006-01-18 Kazu Hirata <kazu@codesourcery.com> 15332 15333 * mode-switching.c (optimize_mode_switching): Make it static. 15334 * basic-block.h: Remove the prototype for 15335 optimize_mode_switching. 15336 15337 * modulo-sched.c (sms_schedule): Make it static. 15338 * rtl.h: Remove the prototype for sms_schedule. 15339 15340 * postreload-gcse.c (gcse_after_reload_main): Make it static. 15341 * rtl.h: Remove the prototype for gcse_after_reload_main. 15342 15343 * reg-stack.c (reg_to_stack): Make it static. 15344 * rtl.h: Remove the prototype for reg_to_stack. 15345 15346 * regrename.c (regrename_optimize, copyprop_hardreg_forward): 15347 Make them static. 15348 * rtl.h: Remove the prototypes for regrename_optimize and 15349 copyprop_hardreg_forward. 15350 153512006-01-18 Eric Botcazou <ebotcazou@adacore.com> 15352 15353 * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into 15354 alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments. 15355 Test against the appropriate null constant for the mode. 15356 If 'fixup_overlap' is true, swap the operands if they overlap. 15357 (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair. 15358 * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into 15359 alpha_split_tmode_pair and adjust for above change. 15360 * config/alpha/alpha.md (movtf_internal): Adjust call to 15361 alpha_split_tfmode_pair and rely on it to swap the operands. 15362 (movti_internal): New insn and post-reload splitter. 15363 (movti): New expander. 15364 153652006-01-18 Philippe De Muyter <phdm@macqel.be> 15366 15367 * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory 15368 operands. 15369 153702006-01-18 Kazu Hirata <kazu@codesourcery.com> 15371 15372 * rtlanal.c (global_reg_mentioned_p_1, 15373 global_reg_mentioned_p): Remove. 15374 * rtl.h: Remove the prototype for global_reg_mentioned_p. 15375 15376 * flow.c (initialize_uninitialized_subregs): Make it static. 15377 * rtl.h: Remove the prototype for 15378 initialize_uninitialized_subregs. 15379 15380 * function.c (instantiate_virtual_regs): Make it static. 15381 * function.h: Remove the prototype for 15382 instantiate_virtual_regs. 15383 15384 * regmove.c (regmove_optimize, combine_stack_adjustments): 15385 Make them static. 15386 * rtl.h: Remove the prototypes for regmove_optimize and 15387 combine_stack_adjustments. 15388 153892006-01-17 Roger Sayle <roger@eyesopen.com> 15390 15391 * config/i386/i386.c (COSTS_N_BYTES): New macro. 15392 (size_cost): Encode costs in bytes so that a reg-reg addition is 15393 equivalent to COSTS_N_INSNS(1). 15394 (override_options): Use the size_cost.branch_cost as the default 15395 ix86_branch_cost when optimizing for size. 15396 153972006-01-18 Ben Elliston <bje@au.ibm.com> 15398 15399 * Makefile.in (D32PBIT_FUNCS): New. 15400 (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise. 15401 (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS, 15402 D64PBIT_FUNCS and D128PBIT_FUNCS. 15403 (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT). 15404 * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or 15405 D128PBIT are set. 15406 (decnumber_dep): Define. 15407 * doc/libgcc.texi (Decimal float library routines): New node. 15408 * config/dfp-bit.h, config/dfp-bit.c: New files. 15409 154102006-01-18 Ben Elliston <bje@au.ibm.com> 15411 15412 * expr.c (emit_move_change_mode): Always adjust addresses, not 15413 just during reload. Copy replacements only during reload. 15414 (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking 15415 emit_move_via_integer. 15416 154172006-01-17 Shantonu Sen <ssen@opendarwin.org> 15418 15419 * Makefile.in (check-%, check-consistency): Use $${srcdir} 15420 instead of $(srcdir) and ${srcdir}. 15421 154222006-01-17 Richard Earnshaw <rearnsha@arm.com> 15423 15424 PR target/592 15425 PR middle-end/11135 15426 * arm.h (struct machine_function): Add pic_reg. 15427 * arm.c (arm_pic_register): Make unsigned. 15428 (arm_override_options): Only set arm_pic_register if 15429 TARGET_SINGLE_PIC_BASE. 15430 (use_return_insn): Only test for a pic register if it is fixed. 15431 (arm_compute_save_reg0_reg12_mask): Likewise. 15432 (thumb_compute_save_reg_mask): Likewise. 15433 (legitimate_pic_operand): Factor out some known invariants. 15434 (legitimize_pic_address): If we don't have a fixed pic register, 15435 then set up a pseudo in the function entry sequence. Handle the 15436 pic base being in a pseudo. 15437 (arm_load_pic_register): Handle the pic register being in a pseudo. 15438 (arm_expand_prologue): Only set up the pic register if it is fixed. 15439 (thumb_expand_prologue): Likewise. 15440 * arm.md (pic_load_addr_based): Handle the pic base being a pseudo. 15441 (pic_load_addr_based_insn): Likewise. 15442 (builtin_setjmp_receiver): Don't restore the pic base if it isn't 15443 fixed. 15444 154452006-01-18 Ben Elliston <bje@au.ibm.com> 15446 15447 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject 15448 decimal float modes for all floating point registers. 15449 15450 * config/rs6000/predicates.md (reg_or_mem_operand): Pair up 15451 match_code "mem" with match_test "macho_lo_sum_memory_operand". 15452 154532006-01-17 Jakub Jelinek <jakub@redhat.com> 15454 15455 PR c/25682 15456 * c-typeck.c (build_unary_op): Fold offsetof-like expressions 15457 even when the pointer is not NULL. 15458 154592006-01-16 Ian Lance Taylor <ian@airs.com> 15460 15461 * common.opt (ftoplevel-reorder): New option. 15462 * cgraph.c (cgraph_asm_nodes): New global variable. 15463 (cgraph_asm_last_node): New static variable. 15464 (cgraph_order): New global variable. 15465 (cgraph_create_node): Set new order field. 15466 (cgraph_varpool_node): Likewise. 15467 (decide_is_variable_needed): Return true if not 15468 flag_toplevel_reorder. 15469 (cgraph_add_asm_node): New function. 15470 * cgraph.h (struct cgraph_node): Add order field. 15471 (struct cgraph_varpool_node): Add order field. 15472 (struct cgraph_asm_node): Define. 15473 (cgraph_asm_nodes, cgraph_order): Declare. 15474 (cgraph_add_asm_node): Declare. 15475 * cgraphunit.c (cgraph_varpool_assemble_decl): New static 15476 function. 15477 (cgraph_varpool_assemble_pending_decls): Call it. 15478 (cgraph_output_pending_asms): New static function. 15479 (cgraph_finalize_compilation_unit): Call it. 15480 (struct cgraph_order_sort): Define. 15481 (cgraph_output_in_order): New static function. 15482 (cgraph_optimize): Call cgraph_output_pending_asms. Add code for 15483 !flag_toplevel_reorder case. 15484 * c-parser.c: Include "cgraph.h". 15485 (c_parser_asm_definition): Call cgraph_add_asm_node rather than 15486 assemble_asm. 15487 * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather 15488 than -fno-unit-at-a-time. 15489 * doc/invoke.texi (Option Summary): Mention 15490 -fno-toplevel-reorder. 15491 (Optimize Options): Document -fno-toplevel-reorder. Mention it in 15492 -funit-at-a-time documentation. 15493 154942006-01-17 Hans-Peter Nilsson <hp@axis.com> 15495 Kazu Hirata <kazu@codesourcery.com> 15496 15497 * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h. 15498 154992006-01-17 Kazu Hirata <kazu@codesourcery.com> 15500 15501 * Makefile.in (FUNCTION_H): New. Use it instead of 15502 function.h throughout the file. 15503 * function.h: Include tree.h. 15504 155052006-01-17 Ben Elliston <bje@au.ibm.com> 15506 15507 * recog.c: Separate some functions with whitespace. 15508 155092006-01-16 Richard Henderson <rth@redhat.com> 15510 15511 Merge from gomp branch: 15512 * Makefile.in (TREE_INLINE_H): New. Use it as needed. 15513 * tree-inline.h (struct copy_body_data): Move from tree-inline.c 15514 and rename from struct inline_data. Rename callee* to dst*; 15515 caller* to src*; add copy_decl hook, transform_call_graph_edges, 15516 transform_new_cfg, transform_return_to_modify, and 15517 transform_lang_insert_block flags; remove cloning_p, versioning_p, 15518 update_clones_p. 15519 (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare. 15520 (copy_decl_for_dup): Remove. 15521 * tree-inline.c (struct inline_data): Move to header. 15522 (insert_decl_map): Export. 15523 (remap_decl): Update for member name changes. Use copy_decl hook. 15524 Allow for replacement to be a non-decl. Remove dead code. 15525 (remap_type_1): Check for existing mapping. 15526 (remap_type): Export. 15527 (remap_decls): Update for member name changes. 15528 (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise. 15529 (copy_body, setup_one_parameter, declare_return_variable): Likewise. 15530 (expand_call_inline, optimize_inline_calls, clone_body): Likewise. 15531 (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise. 15532 (tree_function_versioning, build_duplicate_type): Likewise. 15533 (copy_body_r): Likewise. Export. 15534 (copy_decl_for_dup): Split into ... 15535 (copy_decl_for_dup_finish, copy_decl_to_var, 15536 copy_decl_no_change, copy_decl_maybe_to_var): ... these. 15537 (replace_ref_tree, inlining_p): Remove. 15538 155392006-01-16 Kazu Hirata <kazu@codesourcery.com> 15540 15541 * ifcvt.c (if_convert): Make it static. 15542 * rtl.h: Remove the prototype for if_convert. 15543 15544 * local-alloc.c (local_alloc): Make it static. 15545 * rtl.h: Remove the prototype for local_alloc. 15546 15547 * loop.c (loop_optimize): Make it static. 15548 * cfgloop.h: Remove the prototype for loop_optimize. 15549 * rtl.h: Likewise. 15550 155512006-01-16 DJ Delorie <dj@redhat.com> 15552 15553 * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of 15554 mems. 15555 155562006-01-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 15557 15558 * pa.md: Disparage copies between general and floating-point registers 15559 in 32-bit move patterns. 15560 155612006-01-16 H.J. Lu <hongjiu.lu@intel.com> 15562 15563 PR testsuite/25741 15564 * Makefile.in (check-%): Depend on site.exp instead of 15565 $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language 15566 directories. 15567 155682006-01-16 Kazu Hirata <kazu@codesourcery.com> 15569 15570 * global.c (global_alloc): Make it static. 15571 * rtl.h: Remove the prototype for global_alloc. 15572 155732006-01-16 Richard Guenther <rguenther@suse.de> 15574 15575 * tree-ssa-alias.c (struct used_part): Add write_only field. 15576 (get_or_create_used_part_for): Initialize it to true. 15577 (create_overlap_variables_for): Don't create structure variables 15578 for structures that only are written to. 15579 (find_used_portions): Handle MODIFY_EXPR to track whether a 15580 structure is only written to. 15581 155822006-01-16 Kazu Hirata <kazu@codesourcery.com> 15583 15584 * bb-reorder.c (partition_hot_cold_basic_blocks): Make it 15585 static. 15586 * basic-block.h: Remove the prototype for 15587 partition_hot_cold_basic_blocks. 15588 155892006-01-16 Rafael �vila de Esp���ndola <rafael.espindola@gmail.com> 15590 15591 * cppspec.c (lang_specific_spec_functions): Remove. 15592 * gcc.c (lookup_spec_function): Use static_spec_functions directly. 15593 * gcc.h (lang_specific_spec_functions): Remove. 15594 * gccspec.c (lang_specific_spec_functions): Remove. 15595 155962006-01-16 Paolo Bonzini <bonzini@gnu.org> 15597 15598 * combine.c (record_value_for_reg): Invalidate registers 15599 if INSN is null. 15600 (record_dead_and_set_regs_1): Likewise, by passing them to 15601 record_value_for_reg. 15602 (record_dead_and_set_regs): Invalidate stores made by a 15603 call. We do not combine across a call, but we still 15604 relied on equivalences. 15605 156062006-01-16 Eric Botcazou <ebotcazou@adacore.com> 15607 15608 * tree-vrp.c (extract_range_from_binary_expr): Cope with 15609 vrp_int_const_binop returning non-constant nodes. 15610 156112006-01-16 Paul Brook <paul@codesourcery.com> 15612 15613 * config/m68k/m68k.c (output_move_const_into_data_reg): 15614 Output correct mnemonic for mvz and mvs. 15615 156162006-01-16 Gabor Loki <loki@gcc.gnu.org> 15617 15618 * rtl-factoring.c: Add sequence abstraction algorithm. 15619 * cfgcleanup.c (outgoing_edges_match): Extra checks. 15620 (try_crossjump_to_edge): Avoid deleting preserve label when redirecting 15621 ABNORMAL edges. 15622 (block_has_preserve_label): New function. 15623 * common.opt: Register new pass. 15624 * Makefile.in: Ditto. 15625 * passes.c: Ditto. 15626 * timevar.def: Ditto. 15627 * tree-pass.h: Ditto. 15628 * emit-rtl.c (make_jump_insn_raw): Remove forward decl. 15629 * rtl.h (make_jump_insn_raw): Add forward decl. 15630 * doc/invoke.texi: Add documentation for -frtl-abstract-sequences. 15631 156322006-01-16 Eric Botcazou <ebotcazou@adacore.com> 15633 Roger Sayle <roger@eyesopen.com> 15634 15635 * fold-const.c (fold_minmax): New static function. 15636 (fold_binary) <MIN_EXPR>: Call it. 15637 <MAX_EXPR>: Likewise. 15638 * stor-layout.c (place_field): Use DECL_SIZE consistently 15639 in the computation of the new record size. 15640 156412006-01-16 Kazu Hirata <kazu@codesourcery.com> 15642 15643 * cse.c (cse_condition_code_reg): Make it static. 15644 * rtl.h: Remove the prototype for cse_condition_code_reg. 15645 15646 * combine.c (combine_instructions): Make it static. 15647 * rtl.h: Remove the prototype for combine_instructions. 15648 156492006-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 15650 15651 PR target/25168 15652 * tree.c (get_file_function_name_long): Concatenate the first global 15653 object name with a string derived from the input filename of the object 15654 for type "F". 15655 156562006-01-16 Ben Elliston <bje@au.ibm.com> 15657 15658 * config/i386/winnt-stubs.c: Update FSF address. 15659 * config/xtensa/ieee754-df.S: Ditto. 15660 * config/xtensa/ieee754-sf.S: Ditto. 15661 156622006-01-14 Ian Lance Taylor <ian@airs.com> 15663 15664 * ifcvt.c (noce_init_if_info): New static function, broken out of 15665 noce_process_if_block. 15666 (noce_process_if_block): Call noce_init_if_info. 15667 (check_cond_move_block): New static function. 15668 (cond_move_process_if_block): New static function. 15669 (process_if_block): Call cond_move_process_if_block. 15670 156712006-01-15 Kazu Hirata <kazu@codesourcery.com> 15672 15673 * cselib.c (hash_table): Rename to cselib_hash_table. 15674 (cselib_clear_table, discard_useless_values, 15675 remove_useless_values, cselib_lookup_mem, cselib_lookup, 15676 cselib_init, cselib_finish): Adjust uses of hash_table. 15677 156782006-01-14 Kazu Hirata <kazu@codesourcery.com> 15679 15680 PR tree-optimization/25485 15681 * tree-vrp.c (extract_range_from_binary_expr): Handle cases 15682 where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR 15683 is known to be false and true, respectively. 15684 156852006-01-14 Richard Guenther <rguenther@suse.de> 15686 15687 PR tree-optimization/22548 15688 PR tree-optimization/22555 15689 PR tree-optimization/22501 15690 * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H). 15691 * params.def (salias-max-array-elements): New parameter. 15692 * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define. 15693 * doc/invoke.texi (salias-max-array-elements): Document. 15694 * tree-flow-inline.h (var_can_have_subvars): We also handle 15695 arrays now. 15696 * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like 15697 COMPONENT_REF. 15698 * tree-ssa-structalias.c (params.h): Include. 15699 (push_fields_onto_fieldstack): Handle ARRAY_TYPE. 15700 (find_func_aliases): Handle multiple constraints from ARRAY_REF. 15701 (get_constraint_for): For ADDR_EXPR operating on something 15702 containing an ARRAY_REF, add all subvars to the solution. 15703 (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types. 15704 * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF 15705 for creating MUST_DEFs. 15706 (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars. 15707 157082006-01-14 Zdenek Dvorak <dvorakz@suse.cz> 15709 15710 * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several 15711 functions. 15712 (number_of_iterations_ne, number_of_iterations_lt_to_ne, 15713 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt, 15714 number_of_iterations_le): New functions. 15715 (number_of_iterations_special): Removed. 15716 (number_of_iterations_exit): Do not use number_of_iterations_special. 15717 * tree.c (unsigned_type_for): Always return integer type. 15718 157192006-01-14 Steven Bosscher <stevenb.gcc@gmail.com> 15720 Richard Guenther <rguenther@suse.de> 15721 15722 PR rtl-optimization/24257 15723 * gcse.c (find_moveable_store): Only consider a store movable 15724 when the SET_SRC of the insn can be assigned to a register. 15725 157262006-01-14 Ian Lance Taylor <ian@airs.com> 15727 15728 * tree.c (tree_not_class_check_failed): New function. 15729 * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed. 15730 (tree_not_class_check_failed): Declare. 15731 157322006-01-13 Ian Lance Taylor <ian@airs.com> 15733 15734 * reload1.c (do_output_reload): Add assertion rejecting a 15735 CALL_INSN. 15736 157372006-01-13 Adam Nemet <anemet@caviumnetworks.com> 15738 15739 * combine.c (struct reg_stat): Add new fields truncation_label and 15740 truncated_to_mode. 15741 (record_value_for_reg): Reset truncated_to_mode. 15742 (record_truncated_value): New function. 15743 (check_promoted_subreg): Call it. Rename to check_conversions. 15744 (combine_instructions): Rename check_promoted_subreg to 15745 check_conversions. 15746 (reg_truncated_to_mode): New function. 15747 (make_extraction): Use it. Check TRULY_NOOP_TRUNCATION. 15748 (gen_lowpart_or_truncate): New function. 15749 (force_to_mode): Use it instead of gen_lowpart. 15750 157512006-01-13 Diego Novillo <dnovillo@redhat.com> 15752 15753 * tree-ssa-alias.c (add_type_alias): Fix typo. Test whether 15754 VAR is a tag, not its type tag. 15755 157562006-01-13 Alexandre Oliva <aoliva@redhat.com> 15757 15758 * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder 15759 alternatives to match style of other entries. 15760 (*vec_extractv2di_1_sse): Likewise. Fix mode attr. 15761 157622006-01-13 Daniel Berlin <dberlin@dberlin.org> 15763 15764 PR tree-optimization/25771 15765 * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal 15766 SSA_NAMES. 15767 157682006-01-13 Andrew Pinski <pinskia@physics.uc.edu> 15769 15770 PR tree-opt/24365 15771 * tree-inline.c (declare_return_variable): If the return variable 15772 was marked as a non gimple complex, set the return slot variable 15773 to be a non gimple comple variable. 15774 157752006-01-13 Richard Guenther <rguenther@suse.de> 15776 15777 * builtins.c (expand_builtin_sincos): New function. 15778 (expand_builtin_mathfn_3): Remove dead code, sin and cos 15779 do not set errno. 15780 (expand_builtin): Expand sincos using expand_builtin_sincos. 15781 157822006-01-12 DJ Delorie <dj@redhat.com> 15783 15784 * config/m32c/shift.md: Rewrite: Allow arbitrary operands for 15785 shift counts, separate SI shifts for m32c vs m16c, pass shift type 15786 so that constant shifts can be split. 15787 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6. 15788 (m32c_valid_pointer_mode): Make static. 15789 (shift_gen_func_for): New. 15790 (m32c_prepare_shift): Use it. Split large const shifts into 15791 multiple shifts. 15792 * config/m32c/predicates.md (shiftcount_operand): Allow more 15793 general operands. 15794 (longshiftcount_operand): New. 15795 * doc/md.texi (Machine Constraints): Document In6. 15796 157972006-01-13 Ben Elliston <bje@au.ibm.com> 15798 15799 * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32, 15800 REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128 15801 documentation. 15802 158032006-01-12 Daniel Berlin <dberlin@dberlin.org> 15804 15805 * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR 15806 to try to avoid clobbering pieces of structures when we know 15807 something about the whole structure. 15808 * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR 15809 158102006-01-13 Ben Elliston <bje@au.ibm.com> 15811 15812 * doc/rtl.texi (Insns): Remove statement that libcalls cannot 15813 return in memory, as this is no limitation is no longer present. 15814 158152006-01-12 DJ Delorie <dj@redhat.com> 15816 15817 * config/m32c/addsub.md (addhi3): Add two more alternatives, for 15818 mova with fb, and for fb+0 -> An. 15819 15820 * config/m32c/mov.md (peephole2): Fix enabling logic. 15821 15822 * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END, 15823 DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP, 15824 DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP, 15825 FINI_ARRAY_SECTION_ASM_OP): Define. 15826 15827 * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary 15828 variable. 15829 (m32c_legitimize_reload_address): New logic to reload FB to An. 15830 (m32c_output_reg_push): Add newline. 15831 (m32c_output_reg_pop): Likewise. 15832 158332006-01-12 Ulrich Weigand <uweigand@de.ibm.com> 15834 15835 * struct-equiv.c (find_dying_inputs): Fix off-by-one bug. 15836 158372006-01-11 Andrew Pinski <pinskia@physics.uc.edu> 15838 15839 * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define. 15840 158412006-01-11 Kazu Hirata <kazu@codesourcery.com> 15842 15843 * config/sh/predicates.md (sh_rep_vec): Add parallel to 15844 match_code. 15845 158462006-01-11 Ben Elliston <bje@au.ibm.com> 15847 15848 * rtlanal.c (find_reg_note): Assert insn is not null. 15849 158502006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com> 15851 15852 * df-scan.c (df_hard_reg_init): Move declaration of i outside 15853 ifdef. 15854 158552006-01-11 Jeff Law <law@redhat.com> 15856 15857 * tree-ssa-threadupdate.c (threaded_edges): New VEC to 15858 hold edge pairs. 15859 (mark_threaded_blocks, register_jump_thread): New functions. 15860 (thread_through_all_blocks): Remove unwanted argument. No 15861 longer rely on e->aux to communicate thread target info. 15862 Call mark_threaded_blocks. Release the threaded_blocks 15863 bitmap and threaded_edges vector when complete. 15864 * tree-ssa-dom.c (struct edge_info): Remove redirection_target field. 15865 (threaded_blocks): Remove. 15866 (tree_ssa_dominator_optimize): Remove initialization and 15867 finalization of threaded_blocks. Simplify call to 15868 thread_through_all_blocks. 15869 (thread_across_edge): Call register_jump_thread rather than 15870 storing thread information into e->aux. 15871 (free_all_edge_infos): Simplify now that e->aux is no longer 15872 used to communicate with thread_through_all_blocks. 15873 * tree-flow.h (thread_through_all_blocks): Update prototype. 15874 (register_jump_thread): Prototype. 15875 158762006-01-11 Kazu Hirata <kazu@codesourcery.com> 15877 15878 * df-core.c (df_compact_blocks, df_bb_replace): Use 15879 SET_BASIC_BLOCK instead of BASIC_BLOCK. 15880 158812006-01-11 Richard Guenther <rguenther@suse.de> 15882 15883 PR tree-optimization/25734 15884 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not 15885 stop propagation after successful propagation to the LHS. 15886 158872006-01-11 Kazu Hirata <kazu@codesourcery.com> 15888 15889 * basic-block.h (control_flow_graph): Change the type of 15890 x_basic_block_info to VEC(basic_block,gc) *. 15891 (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of 15892 basic_block_info. 15893 (SET_BASIC_BLOCK): New. 15894 * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK 15895 instead of BASIC_BLOCK when assigning to BASIC_BLOCK. 15896 * cfgbuild.c (find_basic_blocks): Likewise. 15897 * cfglayout.c (fixup_reorder_chain): Likewise. 15898 * cfgrtl.c (create_basic_block_structure, 15899 rtl_create_basic_block): Likewise. 15900 * ifcvt.c (find_if_case_1): Likewise. 15901 * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb): 15902 Likewise. 15903 159042006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com> 15905 15906 * Makefile.in: Removed rotted odf.c entry. 15907 159082006-01-11 Hans-Peter Nilsson <hp@axis.com> 15909 15910 PR target/25706 15911 * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side") 15912 ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side", 15913 ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E 15914 output pattern modifier, not %e. 15915 * config/cris/cris.c (cris_op_str): Update comment about pattern 15916 modifier. 15917 (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound 15918 before falling through into... 15919 <case 'E'>: Redefined from old 'e' case. 15920 159212006-01-11 Jan Hubicka <jh@suse.cz> 15922 15923 PR target/25042 15924 * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128 15925 159262006-01-11 Jan Hubicka <jh@suse.cz> 15927 15928 * i386.h (TARGET_DECOMPOSE_LEA): Kill. 15929 * i386.c (x86_decompose_lea): Kill. 15930 (ix86_rtx_costs): Kill. 15931 159322006-01-11 Jan Hubicka <jh@suse.cz> 15933 15934 * cgraph.c (cgraph_insert_node_to_hashtable): New function. 15935 * cgraph.h (cgraph_node): Add inline_decl. 15936 (cgraph_insert_node_to_hashtable): Declare. 15937 (save_inline_function_body): Declare. 15938 * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline 15939 clones. 15940 (cgraph_preserve_function_body_p): Do not presrve when dump is enabled. 15941 (cgraph_function_versioning): Update call of tree_function_versioning. 15942 (save_inline_function_body): New function. 15943 * function.h (struct function): Kill saved_eh, saved_cfg, saved_args, 15944 saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list. 15945 * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones. 15946 (cgraph_default_inline_p): Likewise. 15947 (cgraph_decide_inlining_incrementally): Likewise. 15948 * tree-inline.c (inline_data): Kill saving_p add update_clones_p. 15949 (copy_bb): Kill saving; do updating of clones. 15950 (copy_cfg_body): Kill saving. 15951 (initialize_inlined-parameters): Likewise. 15952 (expand_call_inline): Likewise. 15953 (save_body): Kill. 15954 (tree_function_versioning): New parameter "update_clones". 15955 (inlining_p): Kill saving. 15956 * tree-inline.h (tree_function_versioning): Update prototype. 15957 * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of 15958 saving. 15959 159602006-01-11 Ian Lance Taylor <ian@airs.com> 15961 15962 * combine.c (struct undo): Remove is_int. Enumify types of undos. 15963 Allow undoing set of machine mode. 15964 (do_SUBST): Use enums instead of is_int. 15965 (do_SUBST_MODE): New function. 15966 (SUBST_MODE): New macro. 15967 (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new 15968 reg and trying to replace reg_regno_rtx with a new register. 15969 (undo_all): Use new enums, handle undoing a PUT_MODE change. 15970 (simplify_set): Use SUBST_MODE. 15971 (distribute_notes): Remove code that tried to update reg notes 15972 for regno_reg_rtx changes. 15973 159742006-01-11 Paolo Bonzini <bonzini@gnu.org> 15975 15976 PR tree-optimization/23109 15977 PR tree-optimization/23948 15978 PR tree-optimization/24123 15979 15980 * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies. 15981 * tree-cfg.c (single_noncomplex_succ): New. 15982 * tree-flow.h (single_noncomplex_succ): Declare it. 15983 * tree-ssa-math-opts.c (enum place_reciprocal): Remove. 15984 * tree-ssa-math-opts.c (enum place_reciprocal): Remove. 15985 (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit, 15986 insert_bb, register_division_in, insert_reciprocals, 15987 replace_reciprocal, free_bb): New. 15988 (execute_cse_reciprocals_1): Rewritten. 15989 (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1. 15990 Do not commit any edge insertion. Always compute dominators and 15991 create the allocation pool. 15992 * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New. 15993 * target.h (struct gcc_target): Add min_divistions_for_recip_mul. 15994 * targhooks.c (default_min_divistions_for_recip_mul): New. 15995 * targhooks.h (default_min_divistions_for_recip_mul): New prototype. 15996 * passes.c (init_optimization_passes): Run recip after tree loop 15997 optimizations. 15998 * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL. 15999 160002006-01-11 Danny Berlin <dberlin@dberlin.org> 16001 Kenneth Zadeck <zadeck@naturalbridge.com> 16002 16003 * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN, 16004 DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN, 16005 DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS, 16006 DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO, 16007 DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT, 16008 DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN, 16009 DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO, 16010 DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO, 16011 DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN, 16012 DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG, 16013 DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P, 16014 DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P, 16015 DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET, 16016 DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET, 16017 DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF, 16018 DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET, 16019 DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, 16020 DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS, 16021 DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL, 16022 DF_SCAN_POST_ALLOC): New macros. 16023 (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function, 16024 df_free_bb_function, df_local_compute_function, df_init_function, 16025 df_dataflow_function, df_confluence_function_0, 16026 df_confluence_function_n, df_transfer_function, 16027 df_finalizer_function, df_free_function, df_dump_problem_function, 16028 df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link, 16029 df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info, 16030 df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info, 16031 df_urec_bb_info, ) New types. 16032 (df_invalidated_by_call, df_all_hard_regs, df_state) New public 16033 variables. 16034 (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze, 16035 df_analyze_simple_change_some_blocks, 16036 df_analyze_simple_change_one_block, df_compact_blocks, 16037 df_bb_replace, df_bb_regno_last_use_find, 16038 df_bb_regno_first_def_find, df_bb_regno_last_def_find, 16039 df_insn_regno_def_p, df_find_def, df_find_use, 16040 df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump, 16041 df_regs_chain_dump, df_insn_debug, df_insn_debug_regno, 16042 df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno, 16043 debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref, 16044 debug_df_chain, df_get_dependent_problem, df_chain_create, 16045 df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out, 16046 df_grow_bb_info, df_chain_dump, df_print_bb_index, 16047 df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem, 16048 df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info, 16049 df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem, 16050 df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem, 16051 df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem, 16052 df_rescan_blocks, df_ref_create, df_get_artificial_defs, 16053 df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink, 16054 df_ref_remove, df_insn_refs_delete, df_refs_delete, 16055 df_reorganize_refs, df_set_state, df_hard_reg_init, 16056 df_read_modify_subreg_p) New public functions. 16057 * df-core.c: The core dataflow solver and glue routines for rtl 16058 dataflow. 16059 (df_init, df_add_problem, df_set_blocks, df_finish, 16060 df_hybrid_search_forward, df_hybrid_search_backward, 16061 df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem, 16062 df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace, 16063 df_bb_regno_last_use_find, df_bb_regno_first_def_find, 16064 df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def, 16065 df_reg_defined, df_find_use, df_reg_used, df_dump, 16066 df_refs_chain_dump, df_regs_chain_dump, df_insn_debug, 16067 df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn, 16068 debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno, 16069 debug_df_useno, reset_df_after_reload): New functions. 16070 * df-scan.c: The scanning fuctions, once in df.c, completely 16071 rewritten so that they now fully model the functionality of 16072 register usage at the backend. 16073 (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info, 16074 df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump, 16075 df_scan_add_problem, df_grow_reg_info, df_grow_ref_info, 16076 df_grow_insn_info, df_rescan_blocks, df_ref_create, 16077 df_get_artificial_defs, df_get_artificial_uses, 16078 df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink, 16079 df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete, 16080 df_refs_delete, df_reorganize_refs, df_set_state, 16081 df_ref_create_structure, df_ref_record, df_read_modify_subreg_p, 16082 df_def_record_1, df_defs_record, df_uses_record, 16083 df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record, 16084 df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg, 16085 df_record_exit_block_uses, df_hard_reg_init): New functions. 16086 16087 * df-problems.c: Seven concrete dataflow problems that use the 16088 scanning in df-scan.c and are solved by the engine in df-core.c. 16089 (df_get_dependent_problem, df_chain_create, df_chain_unlink, 16090 df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info, 16091 df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen, 16092 df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info, 16093 df_ru_free_bb_info, df_ru_alloc, 16094 df_ru_bb_local_compute_process_def, 16095 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute, 16096 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n, 16097 df_ru_transfer_function, df_ru_free, df_ru_dump, 16098 df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info, 16099 df_rd_free_bb_info, df_rd_alloc, 16100 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute, 16101 df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n, 16102 df_rd_transfer_function, df_rd_free, df_rd_dump, 16103 df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info, 16104 df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute, 16105 df_lr_local_compute, df_lr_init, df_lr_confluence_0, 16106 df_lr_confluence_n, df_lr_transfer_function, df_lr_free, 16107 df_lr_dump, df_lr_add_problem, df_ur_get_bb_info, 16108 df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc, 16109 df_ur_bb_local_compute, df_ur_local_compute, df_ur_init, 16110 df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function, 16111 df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info, 16112 df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc, 16113 df_urec_mark_reg_change, df_urec_check_earlyclobber, 16114 df_urec_mark_reg_use_for_earlyclobber, 16115 df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute, 16116 df_urec_local_compute, df_urec_init, df_urec_local_finalize, 16117 df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 16118 df_urec_dump, df_urec_add_problem, df_chain_alloc, 16119 df_chain_create_bb_process_use, df_chain_create_bb, 16120 df_chain_finalize, df_chain_free, df_chains_dump, 16121 df_chain_add_problem, df_ri_alloc, df_ri_bb_compute, 16122 df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem, 16123 df_reg_lifetime): New functions. 16124 * df.c: Deleted file. 16125 * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code 16126 consistent with new df api. 16127 * modulo-sched.c (sms_schedule, rest_of_handle_sms, 16128 rest_of_handle_sms): Ditto. 16129 * web.c (unionfind_union, union_defs, entry_register, web_main): 16130 Ditto. 16131 * loop_invariant.c (invariant_for_use, hash_invariant_expr_1, 16132 invariant_expr_equal_p, find_defs, check_dependencies, 16133 find_invariant_insn, find_invariants_to_move, move_invariant_reg, 16134 free_inv_motion_data, move_loop_invariants): Ditto. 16135 * Makefile.in (df.c, df-scan.c df-problems.c df-core.c): 16136 Update dependencies. 16137 (odf.c): Added defective entry that was deleted later in day. 16138 * sched-deps.c (sched_analyze_1): Ditto. 16139 161402006-01-11 Zdenek Dvorak <dvorakz@suse.cz> 16141 16142 * tree-ssa-operands.c (get_expr_operands): Record addressable 16143 variables directly. Do not call add_stmt_operands for CONST_DECLs 16144 and ARRAY_DECLs. 16145 (get_indirect_ref_operands): Remove handling of *(&a + offset) case. 16146 (add_stmt_operands): Handle only objects satisfying SSA_VAR_P. 16147 161482006-01-11 Ben Elliston <bje@au.ibm.com> 16149 16150 * config/i386/i386.c (ix86_return_in_memory): Fix comment: this 16151 function returns true in the positive case. 16152 161532006-01-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 16154 16155 PR target/20754 16156 * config/pa/pa.md: Create separate 32 and 64-bit move patterns 16157 for SI, DI, SF and DF modes. Add alternatives to copy between 16158 general and floating point registers to the 32-bit patterns. 16159 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine. 16160 * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define. 16161 (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when 16162 generating 64-bit code. 16163 * config/pa/pa.c (output_move_double): Handle copies between general 16164 and floating registers. 16165 161662006-01-10 Stuart Hastings <stuart@apple.com> 16167 16168 * config/i386/i386.md (set_got): Update. 16169 (set_got_labelled): New. (UNSPEC_LD_MPIC): New. 16170 (builtin_setjmp_receiver): Mach-O support. 16171 * config/i386/darwin.h (TARGET_ASM_FILE_END) Define. 16172 (GOT_SYMBOL_NAME): Define. 16173 (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New. 16174 (TARGET_DEEP_BRANCH_PREDICTION): Remove. 16175 * config/i386/i386.c (override_options): Revise for Darwin. 16176 (USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O 16177 support. (darwin_x86_file_end): New. (output_set_got): Add label 16178 parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise. 16179 * config/i386/i386-protos.h (output_set_got): Likewise. 16180 * config/darwin.c (machopic_legitimize_pic_address): Update 16181 regs_ever_live[]. 16182 161832006-01-10 Kaz Kojima <kkojima@gcc.gnu.org> 16184 16185 * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE 16186 when MODE isn't BLKmode. 16187 161882006-01-10 Eric Botcazou <ebotcazou@libertysurf.fr> 16189 16190 PR rtl-optimization/25367 16191 * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro. 16192 161932006-01-10 Hans-Peter Nilsson <hp@axis.com> 16194 16195 PR target/25718 16196 * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes 16197 for a negative bound. 16198 161992006-01-10 Richard Guenther <rguenther@suse.de> 16200 16201 * tree-ssa-structalias.c (get_constraint_for_component_ref): 16202 Never override with anything constraint. 16203 162042006-01-10 Jan Beulich <jbeulich@novell.com> 16205 16206 * config/i386/i386.c (ix86_data_alignment): Don't force alignment to 16207 256 bits when optimize_size. 16208 162092006-01-10 Jan Beulich <jbeulich@novell.com> 16210 16211 * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include 16212 MASK_ALIGN_DOUBLE. 16213 * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option. 16214 * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr 16215 arguments. 16216 162172006-01-10 Ben Elliston <bje@au.ibm.com> 16218 16219 * config/rs6000/predicates.md (easy_fp_constant): Discount decimal 16220 float modes. 16221 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New. 16222 (TARGET_SCALAR_MODE_SUPPORTED_P): Define. 16223 (USE_FP_FOR_ARG): Reject decimal float modes. 16224 (function_arg_advance): Likewise. 16225 (output_toc): Handle emitting TDmode, DDmode and SDmode constants. 16226 (rs6000_handle_altivec_attribute): Do not permit decimal floating 16227 point types in AltiVec vectors. 16228 (rs6000_function_value): Use GP_ARG_RETURN for decimal floats. 16229 (rs6000_libcall_value): Likewise. 16230 162312006-01-09 Bob Wilson <bob.wilson@acm.org> 16232 16233 * config/xtensa/ieee754-df.S: New file. 16234 * config/xtensa/ieee754-sf.S: New file. 16235 * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c. 16236 (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions. 16237 * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S. 16238 162392006-01-09 Kazu Hirata <kazu@codesourcery.com> 16240 16241 * config/sh/predicates.md (binary_float_operator, 16242 binary_logical_operator, commutative_float_operator, 16243 equality_comparison_operator, greater_comparison_operator, 16244 less_comparison_operator, logical_operator, 16245 noncommutative_float_operator, shift_operator, 16246 symbol_ref_operand, unary_float_operator): Remove redundant 16247 conditionals. 16248 162492006-01-09 Jeff Law <law@redhat.com> 16250 16251 * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove 16252 code to propagate the RHS of a cast into COND_EXPR_COND. Remove 16253 now unused arguments. Callers updated. 16254 (eliminate_redundant_computations): Remove now unused arguments, 16255 callers updated. 16256 (local_fold): Remove, no longer used. 16257 (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c 16258 and moved to... 16259 * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here. 16260 (simplify_cond): New function. 16261 (forward_propagate_into_cond): Call simplify_cond. 16262 162632006-01-09 Alexandre Oliva <aoliva@redhat.com> 16264 16265 * config/i386/sse.md (*vec_extractv2di_1_sse2): New. 16266 (*vec_extractv2di_1_sse): New. 16267 162682006-01-09 Ben Elliston <bje@au.ibm.com> 16269 16270 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix. 16271 162722006-01-08 Richard Guenther <rguenther@suse.de> 16273 16274 * tree-ssa-structalias.c (get_constraint_for): Remove 16275 anyoffset argument. 16276 (get_constraint_for_component_ref): Likewise. 16277 (do_deref): Likewise. 16278 (get_constraint_for): Likewise. 16279 (do_structure_copy): Likewise. 16280 (handle_ptr_arith): Likewise. 16281 (find_func_aliases): Likewise. Remove unused need_anyoffset 16282 variable. 16283 162842006-01-08 J"orn Rennecke <joern.rennecke@st.com> 16285 Kaz Kojima <kkojima@gcc.gnu.org> 16286 16287 * config/sh/sh.h (CONST_OK_FOR_K16): Define. 16288 (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case. 16289 (EXTRA_CONSTRAINT_C16): Remove. 16290 (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define. 16291 (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add 16292 EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases. 16293 * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic 16294 constants of SHmedia. Handle nested constant expressions of 16295 SHmedia correctly. 16296 (andcosts): Fix the costs for SHmedia constants. 16297 (sh_rtx_costs): Take account of outer_code for SHmedia constants. 16298 * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16. 16299 (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise. 16300 (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise. 16301 (movv4hi_i, movv2si_i): Likewise. 16302 (movsi_const): Adjust the second operand of ior so to match with 16303 the Csu constraint. 16304 (movdi_const, movdi_const_32bit): Likewise. 16305 (movdi_const_16bit+1): Don't sign-extend LOW. 16306 (movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate 16307 step. 16308 (*double_shori): Fix the split condition. Use GEN_INT instead 16309 of get_int_mode calls. Mask lower 16-bit of the argument of 16310 the last GEN_INT. 16311 (sym2GOTPLT): Remove. 16312 (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and 16313 gen_rtx_UNSPEC. 16314 * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css 16315 instead of EXTRA_CONSTRAINT_C16. 16316 163172006-01-07 Ian Lance Taylor <ian@airs.com> 16318 David Edelsohn <edelsohn@gnu.org> 16319 16320 PR rtl-optimization/25662 16321 * optabs.c (simplify_expand_binop): Use simplify_binary_operation 16322 for constant operands instead of simplify_gen_binary. 16323 * simplify-rtx.c (simplify_gen_binary): Swap commutative operands 16324 after trying simplify_binary_operation 16325 163262006-01-06 Daniel Berlin <dberlin@dberlin.org> 16327 16328 * tree.c (iterative_hash_expr): Hash decls based on UID. 16329 163302006-01-06 Eric Christopher <echristo@apple.com> 16331 16332 * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document. 16333 (TARGET_UNWIND_EMIT): Fix spelling. 16334 * target.h (gcc_target): Add except_table_label. 16335 * except.c (output_function_exception_table): Use. 16336 * varasm.c (default_emit_except_table_label): New. 16337 * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default 16338 define. 16339 (asm_out): Add here. 16340 * output.h (default_emit_except_table_label): Prototype. 16341 * config/darwin-protos.h (darwin_emit_except_table_label): Ditto. 16342 * config/darwin.c (darwin_emit_except_table_label): Define. 16343 * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto. 16344 163452006-01-06 Zdenek Dvorak <dvorakz@suse.cz> 16346 16347 PR tree-optimization/18527 16348 * tree-ssa-loop-niter.c (number_of_iterations_cond, 16349 number_of_iterations_special, number_of_iterations_exit): 16350 Move base and step of an iv to a single structure. Add 16351 no_overflow flag, and use it in # of iterations analysis. 16352 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add 16353 folded_casts argument. 16354 (simple_iv): Pass base and step in a structure. Set no_overflow 16355 flag. 16356 (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop. 16357 Evaluate expensiveness of computing # of iterations instead of 16358 the final expression. 16359 * tree-scalar-evolution.h (affine_iv): New structure. 16360 (simple_iv): Declaration changed. 16361 * tree-chrec.c (chrec_apply): Handle chrecs containing symbols. 16362 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev, 16363 find_givs_in_stmt): Changed due to simple_iv change. 16364 163652006-01-06 Jeff Law <law@redhat.com> 16366 16367 PR ada/24994 16368 * tree-cfg.c (bsi_replace): Rename final argument from 16369 PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last 16370 change (stmt -> orig_stmt). 16371 * tree-eh.c (verify_eh_throw_stmt_node): New function. 16372 (bsi_remove): Add new argument. Remove EH information 16373 if requested. 16374 (verify_eh_throw_table_statements): New function. 16375 (bsi_remove): Add new argument REMOVE_EH_INFO. All callers 16376 updated. 16377 * tree-optimize.c (execute_free_cfg_annotations): Verify 16378 the EH throw statement table after removing annotations. 16379 * except.h (verify_eh_throw_table_statements): Prototype. 16380 * tree-flow.h (bsi_remove): Update prototype. 16381 * tree-vrp.c (remove_range_assertions): Add new argument to 16382 bsi_remove call. 16383 * tree-ssa-loop-im.c (move_computations_stmt): Likewise. 16384 * tree-complex.c (expand_complex_div_wide): Likewise. 16385 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise 16386 * tree-tailcall.c (eliminate_tailcall): Likewise. 16387 * tree-ssa-dse.c (dse_optimize_stmt): Likewise. 16388 * tree-ssa-loop-ivopts.c (remove_statement): Likewise. 16389 * tree-nrv.c (tree_nrv): Likewise. 16390 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise. 16391 * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. 16392 (combine_blocks): Likewise. 16393 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise. 16394 * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise. 16395 (cleanup_control_flow): Likewise. 16396 (remove_forwarder_block): Likewise. 16397 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. 16398 * tree-sra.c (sra_replace): Likewise. 16399 * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise. 16400 (forward_propagate_single_use_vars): Likewise. 16401 * tree-ssa-dce.c (remove_dead_stmt): Likewise. 16402 * tree-inline.c (expand_call_inline): Likewise. 16403 * tree-vect-transform.c (vect_transform_loop): Likewise. 16404 * tree-outof-ssa.c (rewrite_trees): Likewise. 16405 * tree-cfg.c (make_goto_expr_edges): Likewise. 16406 (cleanup_dead_labels): Likewise. 16407 (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise. 16408 (bsi_move_before, bsi_move_after): Likewise. 16409 (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise 16410 (tree_redirect_edge_and_branch, tree_split_block): Likewise. 16411 164122006-01-06 Andrew Pinski <pinskia@physics.uc.edu> 16413 16414 PR tree-opt/25528 16415 * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR 16416 and IMAGPART_EXPR. 16417 * tree-flow-inline.h (var_can_have_subvars): Handle complex types 16418 on non gimple variables. Also add checks at the top for decls and 16419 mtags. 16420 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle 16421 complex types. 16422 * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR 16423 and IMAGPART_EXPR for creating MUST_DEFs. 16424 (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG, 16425 and NAME_MEMORY_TAG separately from the DECLs. 16426 164272006-01-06 Richard Guenther <rguenther@suse.de> 16428 16429 * tree-dfa.c (mark_new_vars_to_rename): Create stmt 16430 annotation, if necessary. 16431 * tree-ssa-pre.c (create_expression_by_pieces): Remove 16432 redundant calls to update_stmt. 16433 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): 16434 Likewise. 16435 164362006-01-05 Richard Henderson <rth@redhat.com> 16437 16438 * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA. 16439 164402006-01-05 Carlos O'Donell <carlos@codesourcery.com> 16441 16442 * c-typeck.c: Update copyright date. 16443 164442006-01-05 Carlos O'Donell <carlos@codesourcery.com> 16445 16446 * c-typeck.c (build_c_cast): Always warn when casting 16447 from a pointer to an integer of different size, even if 16448 the node was constant. 16449 164502006-01-05 Richard Guenther <rguenther@suse.de> 16451 16452 PR tree-optimization/22555 16453 * tree-ssa-alias.c (create_overlap_variables_for): Do not give up, 16454 if one structure field is an array. 16455 * tree-ssa-operands.c (get_expr_operands): Continue scanning 16456 operands even if we found a subvar, but ignore VOPs in this 16457 case. 16458 * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt 16459 for renaming. 16460 * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa. 16461 164622006-01-05 Richard Earnshaw <rearnsha@arm.com> 16463 16464 PR middle-end/24998 16465 * arm/t-netbsd (LIB2FUNCS_EXTRA): Define. 16466 164672006-01-05 Richard Guenther <rguenther@suse.de> 16468 Diego Novillo <dnovillo@redhat.com> 16469 16470 * tree-pass.h (TODO_remove_unused_locals): Define. 16471 * gimple-low.c (expand_var_p, remove_useless_vars, 16472 pass_remove_useless_vars): Remove. Update all users. 16473 * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names. 16474 (remove_unused_locals): New function. 16475 * tree-flow.h (remove_unused_locals): Declare. 16476 * passes.c (execute_todo): Call remove_unused_locals if 16477 TODO_remove_unused_locals is set. 16478 * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals. 16479 * tree-ssa-dce.c (pass_dce): Likewise. 16480 * tree-outof-ssa.c (pass_del_ssa): Likewise. 16481 164822006-01-05 Richard Guenther <rguenther@suse.de> 16483 16484 * tree-flow.h (struct fieldoff): Decompose field to 16485 type, size and decl. 16486 * tree-ssa-alias.c (create_sft): Take type as parameter. 16487 (create_overlap_variables_for): Store type, size and decl 16488 in the fieldoff structure. 16489 * tree-ssa-structalias.c (fieldoff_compare): Adjust users 16490 of struct fieldoff. 16491 (push_fields_onto_fieldstack): Likewise. 16492 (create_variable_info_for): Likewise. Use offset for the 16493 SFT name if the decl is not available. 16494 164952006-01-04 Paul Brook <paul@codesourcery.com> 16496 16497 * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr. 16498 164992006-01-04 Daniel Berlin <dberlin@dberlin.org> 16500 16501 * lambda-code.c (can_put_in_inner_loop): Relax 16502 restrictions. 16503 (can_put_after_inner_loop): New function. 16504 (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well. 16505 (perfect_nestify): Change to make copies and modify uses. 16506 165072006-01-04 Richard Henderson <rth@redhat.com> 16508 16509 Merge from gomp branch: 16510 * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id 16511 via integer constant. 16512 (pragma_lex): Remove. 16513 * c-pch.c (c_common_pch_pragma): Accept the name as an argument, 16514 rather than parsing it. 16515 * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname, 16516 handle_pragma_extern_prefix): Add %< %> quotes. 16517 (registered_pragmas): New. 16518 (c_register_pragma_1): New. 16519 (c_register_pragma): Use it. 16520 (c_register_pragma_with_expansion): Likewise. 16521 (c_invoke_pragma_handler): New. 16522 (init_pragma): Use cpp_register_deferred_pragma directly for 16523 pch_preprocess. 16524 * c-pragma.h (enum pragma_kind): New. 16525 (pragma_handler): New. 16526 (c_invoke_pragma_handler): Declare. 16527 * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and 16528 CPP_PRAGMA_EOL. 16529 * c-common.h (c_common_pch_pragma): Update decl. 16530 * Makefile.in (c-parser.o): Update dependencies. 16531 (GTFILES): Add c-pragma.h. 16532 * c-parser.c (struct c_token): Add pragma_kind. 16533 (struct c_parser): Add in_pragma. 16534 (c_lex_one_token): Always initialize keyword and pragma_kind. 16535 Extract data for CPP_PRAGMA. 16536 (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL. 16537 (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors. 16538 Don't allow CPP_PRAGMA_EOL if in_pragma. 16539 (c_parser_consume_pragma): New. 16540 (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL. 16541 (c_parser_skip_to_end_of_parameter): Likewise. 16542 (c_parser_skip_to_end_of_block_or_statement): Likewise. 16543 (c_parser_skip_to_pragma_eol): New. 16544 (c_parser_external_declaration): Handle CPP_PRAGMA. 16545 (c_parser_compound_statement_nostart): Likewise. 16546 (c_parser_statement_after_labels): Likewise. 16547 (c_parser_pragma): New. 16548 (pragma_lex): Likewise. 16549 (c_parser_pragma_pch_preprocess): New. 16550 (c_parser_new): Merge into ... 16551 (c_parse_file): ... here. Call c_parser_pragma_pch_preprocess. 16552 165532006-01-04 Jeff Law <law@redhat.com> 16554 16555 PR ada/24994 16556 * tree-cfg.c (bsi_replace): Remove the original statement 16557 from the EH throw statement table. 16558 165592006-01-04 Jakub Jelinek <jakub@redhat.com> 16560 16561 * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus, 16562 make the prototype extern "C" and add throw (). 16563 16564 PR target/25554 16565 * config/i386/i386.md (testqi_ext_3): Ensure len is positive 16566 and pos non-negative and pos + len <= 32. 16567 (testqi_ext_3_rex64): Ensure len is positive and pos non-negative, 16568 drop pos + len < HOST_BITS_PER_WIDE_INT test. 16569 (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT. 16570 16571 PR c/25559 16572 * c-common.c (handle_vector_size_attribute): Reject zero vector size 16573 as well as sizes not multiple of component size. 16574 16575 PR debug/25562 16576 * function.c (instantiate_expr): New function. 16577 (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P, 16578 walk its DECL_VALUE_EXPR with instantiate_expr. 16579 16580 * dwarf2out.c (loc_descriptor_from_tree_1): Don't add 16581 DW_OP_deref{,_size} if address isn't going to be added. 16582 165832006-01-04 Ben Elliston <bje@au.ibm.com> 16584 16585 * config/fp-bit.h: Use top-of-file comment from libgcc2.c. 16586 * config/fp-bit.c: Likewise. 16587 165882006-01-03 Daniel Berlin <dberlin@dberlin.org> 16589 16590 * dominance.c: Add comment about why we use DFS numbering 16591 of dominance tree. 16592 165932006-01-03 Jakub Jelinek <jakub@redhat.com> 16594 Richard Henderson <rth@redhat.com> 16595 16596 Merge from gomp-branch: 16597 * varasm.c (assemble_variable): Handle thread-local COMMON data. 16598 * defaults.h (ASM_OUTPUT_TLS_COMMON): Define. 16599 166002006-01-03 Paolo Bonzini <bonzini@gnu.org> 16601 16602 PR rtl-optimization/25578 16603 * combine.c (combine_simplify_rtx, force_to_mode): Don't 16604 pass a parameter to simplify_shift_const if changing ASHIFTRT 16605 to LSHIFTRT. 16606 166072006-01-03 Adrian Straetling <straetling@de.ibm.com> 16608 16609 * builtins.c (get_builtin_sync_mem): New function. 16610 (expand_builtin_sync_operation, expand_builtin_compare_and_swap, 16611 expand_builtin_lock_test_and_set, expand_builtin_lock_release): 16612 Call get_builtin_sync_mem to generate mem rtx. 16613 166142006-01-03 Richard Guenther <rguenther@suse.de> 16615 16616 PR c/25183 16617 * stmt.c (add_case_node): Make sure to clear overflow flags 16618 from ranges. 16619 166202006-01-03 Jakub Jelinek <jakub@redhat.com> 16621 16622 Merge from gomp-branch. 16623 * config/sparc/sync.md: New file. 16624 * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP, 16625 UNSPECV_LDSTUB): New constants. 16626 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function. 16627 * config/sparc/predicates.md (memory_reg_operand): New predicate. 16628 * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New 16629 prototype. 16630 166312006-01-03 Roger Sayle <roger@eyesopen.com> 16632 16633 * combine.c (reg_subword_p): New predicate to test whether the 16634 destination of a set refers to a subword/piece of a register. 16635 (try_combine): Generalize the code to merge the setting of a 16636 pseudo to a constant followed by a set of a subword of that 16637 register to a constant. 16638 166392006-01-03 Kazu Hirata <kazu@codesourcery.com> 16640 16641 * basic-block.h (control_flow_graph): Change the type of 16642 x_label_to_block_map to VEC(basic_block,gc) *. 16643 * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn, 16644 set_bb_for_stmt): Adjust the uses of x_label_to_block_map. 16645 16646 * tree-ssa-propagate.c (cfg_blocks): Change the type to 16647 VEC(basic_block,heap) *. 16648 (cfg_blocks_add, cfg_blocks_get, ssa_prop_init, 16649 ssa_prop_fini): Adjust the uses of cfg_blocks. 16650 166512006-01-03 Steven Bosscher <stevenb.gcc@gmail.com> 16652 16653 * fold-const.c (operand_equal_p): Accept a NULL operand 0 for 16654 COMPONENT_REFs. 16655 * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for 16656 hashing trees instead of a pointer hash. 16657 (mem_attrs_htab_eq): Do a deep compare instead of a pointer 16658 compare for MEM_EXPR. 16659 16660 PR rtl-optimization/25130 16661 * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET 16662 when comparing MEMs for GCSE 16663 166642006-01-03 Ben Elliston <bje@au.ibm.com> 16665 16666 * targhooks.h (default_decimal_float_supported_p): Declare. 16667 * targhooks.c (default_decimal_float_supported_p): Define. 16668 * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to 16669 `default_decimal_float_supported_p'. 16670 * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update. 16671 166722006-01-02 Adam Nemet <anemet@caviumnetworks.com> 16673 16674 * combine.c (apply_distributive_law <SUBREG>): Check 16675 TRULY_NOOP_TRUNCATION. 16676 166772006-01-02 Geoffrey Keating <geoffk@apple.com> 16678 16679 * dwarf2out.c (have_switched_text_section): Delete. 16680 (have_multiple_function_sections): New. 16681 (have_location_lists): Make 'bool'. 16682 (add_AT_loc_list): Use 'true' not '1'. 16683 (dwarf2out_switch_text_section): Set have_multiple_function_sections. 16684 (output_loc_list): Use have_multiple_function_sections. 16685 (output_ranges): Likewise. 16686 (dwarf2out_begin_function): Set have_multiple_function_sections if 16687 necessary. 16688 (dwarf2out_source_line): Don't fake separate_line_info_table_in_use. 16689 Check function_section rather than DECL_SECTION_NAME. 16690 (dwarf2out_finish): Use have_multiple_function_sections. 16691 Don't clear have_location_lists. 16692 166932006-01-02 Eric Botcazou <ebotcazou@adacore.com> 16694 Jan Hubicka <jh@suse.cz> 16695 16696 * cfglayout.c (fixup_reorder_chain): Remove kludge for the 16697 case of conditional jump jumping to the next instruction. 16698 * cfgrtl.c (force_nonfallthru_and_redirect): Accept all 16699 cases of conditional jump jumping to the next instruction. 16700 167012006-01-02 Jan Hubicka <jh@suse.cz> 16702 16703 * i386.c (*_cost): Add COSTS_N_INSNS. 16704 (ix86_rtx_costs): Do not use COSTS_N_INSNS. 16705 167062006-01-02 Paolo Bonzini <bonzini@gnu.org> 16707 16708 PR target/25259 16709 * Makefile.in (DECNUMINC): Include libdecnumber's build directory. 16710 167112006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 16712 16713 * config/arm/arm.c (all_fpus): Fix comment typo. 16714 * config/darwin.c: Likewise. 16715 * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise. 16716 * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise. 16717 * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise. 16718 167192006-01-01 David Edelsohn <edelsohn@gnu.org> 16720 16721 * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New. 16722 (rs6000_split_compare_and_swapqhi): New. 16723 * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New. 16724 (sync_compare_and_swapqhi_internal): New. 16725 * config/rs6000/rs6000-protos.h: Declare. 16726 16727