ChangeLog.gcc43 revision 260074
1263648Sbapt2007-08-08 Andrew Haley <aph@redhat.com> (r128087) 2262395Sbapt 3263648Sbapt * config/arm/libunwind.S (UNWIND_WRAPPER _Unwind_Backtrace): New. 4263648Sbapt * config/arm/unwind-arm.h (__gnu_Unwind_Backtrace): New. 5263648Sbapt * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): New. 6263648Sbapt 7263648Sbapt2007-07-12 Geoffrey Keating <geoffk@apple.com> (r126588) 8263648Sbapt 9263648Sbapt * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a 10263648Sbapt FUNCTION_DECL. 11263648Sbapt * tree.c (build_decl_stat): Move code from here... 12263648Sbapt (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN. 13263648Sbapt (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment 14263648Sbapt about using DECL_ALIGN of LABEL_DECL and CONST_DECL. 15263648Sbapt * tree.h (DECL_USER_ALIGN): Fix misplaced comment. 16263648Sbapt * varasm.c (assemble_start_function): Use DECL_ALIGN instead of 17263648Sbapt FUNCTION_BOUNDARY. 18263648Sbapt 19263648Sbapt2007-07-09 Geoffrey Keating <geoffk@apple.com> (r126529) 20263648Sbapt 21263648Sbapt PR 32617 22263648Sbapt * c-common.c (c_alignof_expr): Look at DECL_ALIGN of 23263648Sbapt FUNCTION_DECLs. 24263648Sbapt (handle_aligned_attribute): Allow use on FUNCTION_DECLs. 25263648Sbapt * varasm.c (assemble_start_function): Honor DECL_ALIGN 26263648Sbapt for FUNCTION_DECLs. Don't use align_functions_log if 27263648Sbapt DECL_USER_ALIGN. 28263648Sbapt * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN 29263648Sbapt even for FUNCTION_DECLs. 30263648Sbapt * c-decl.c (merge_decls): Propagate DECL_ALIGN even for 31263648Sbapt FUNCTION_DECLs. 32263648Sbapt * tree.h (DECL_ALIGN): Update for new location of 'align'. 33263648Sbapt (DECL_FUNCTION_CODE): Update for new location and name of 34263648Sbapt 'function_code'. 35263648Sbapt (DECL_OFFSET_ALIGN): Update for new location of 'off_align'. 36263648Sbapt (struct tree_decl_common): Move 'align' and 'off_align' out 37263648Sbapt of union, ensure they're still on a 32-bit boundary. Remove 38263648Sbapt other fields in union 'u1'. 39263648Sbapt (struct tree_function_decl): Add field 'function_code' replacing 40263648Sbapt 'u1.f' in tree_decl_common. 41263648Sbapt * tree.c (build_decl_stat): Set initial value of DECL_ALIGN. 42263648Sbapt * doc/extend.texi (Function Attributes): Add 'aligned' attribute. 43262395Sbapt (Variable Attributes): Cross-reference 'aligned' attribute 44262395Sbapt to Function Attributes. 45263648Sbapt * flags.h (force_align_functions_log): Delete. 46262395Sbapt * toplev.c (force_align_functions_log): Delete. 47262395Sbapt 48262395Sbapt2007-06-28 Geoffrey Keating <geoffk@apple.com> (r126088) 49262395Sbapt 50263648Sbapt * doc/invoke.texi (C++ Dialect Options): Document 51262395Sbapt fvisibility-ms-compat. 52262395Sbapt * c.opt (fvisibility-ms-compat): New. 53263648Sbapt 54262395Sbapt2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de> (r125346) 55268831Sbapt 56268831Sbapt PR preprocessor/23479 57263648Sbapt * doc/extend.texi: Document the 0b-prefixed binary integer 58263648Sbapt constant extension. 59262395Sbapt 60263648Sbapt2007-05-31 Eric Christopher <echristo@apple.com> (r125246) 61262395Sbapt 62262395Sbapt * expr.c (convert_move): Assert that we don't have a BLKmode 63268831Sbapt operand. 64262395Sbapt (store_expr): Handle BLKmode moves by calling emit_block_move. 65262395Sbapt 66263648Sbapt2007-05-31 Daniel Berlin <dberlin@dberlin.org> (r125239) 67262395Sbapt 68263648Sbapt * c-typeck.c (build_indirect_ref): Include type in error message. 69263648Sbapt (build_binary_op): Pass types to binary_op_error. 70263648Sbapt * c-common.c (binary_op_error): Take two type arguments, print out 71262395Sbapt types with error. 72263648Sbapt * c-common.h (binary_op_error): Update prototype. 73262395Sbapt 74262395Sbapt2007-05-27 Eric Christopher <echristo@apple.com> (r125116) 75262395Sbapt 76262395Sbapt * config/rs6000/rs6000.c (rs6000_emit_prologue): Update 77262395Sbapt sp_offset depending on stack size. Save r12 depending 78262395Sbapt on registers we're saving later. 79262395Sbapt (rs6000_emit_epilogue): Update sp_offset depending only 80262395Sbapt on stack size. 81262395Sbapt 82262395Sbapt2007-05-24 Richard Sandiford <rsandifo@nildram.co.uk> (r125037) 83262395Sbapt 84262395Sbapt * postreload-gcse.c (reg_changed_after_insn_p): New function. 85262395Sbapt (oprs_unchanged_p): Use it to check all registers in a REG. 86262395Sbapt (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE. 87262395Sbapt (reg_set_between_after_reload_p): Delete. 88263648Sbapt (reg_used_between_after_reload_p): Likewise. 89262395Sbapt (reg_set_or_used_since_bb_start): Likewise. 90262395Sbapt (eliminate_partially_redundant_load): Use reg_changed_after_insn_p 91262395Sbapt and reg_used_between_p instead of reg_set_or_used_since_bb_start. 92262395Sbapt Use reg_set_between_p instead of reg_set_between_after_reload_p. 93262395Sbapt * rtlanal.c (reg_set_p): Check whether REG overlaps 94262395Sbapt regs_invalidated_by_call, rather than just checking the 95262395Sbapt membership of REGNO (REG). 96262395Sbapt 97262395Sbapt2007-05-18 Geoffrey Keating <geoffk@apple.com> (r124839) 98262395Sbapt 99262395Sbapt * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'. 100262395Sbapt (output_die): Use 'unsigned long' with %x. 101262395Sbapt * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and 102262395Sbapt HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT. 103262395Sbapt * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx. 104262395Sbapt 105262395Sbapt2007-05-16 Eric Christopher <echristo@apple.com> (r124763) 106262395Sbapt 107262395Sbapt * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register 108262395Sbapt saving after stack push. Set sp_offset whenever we push. 109262395Sbapt (rs6000_emit_epilogue): Move altivec register restore before stack push. 110262395Sbapt 111262395Sbapt2007-05-03 Ian Lance Taylor <iant@google.com> (r124381) 112262395Sbapt 113262395Sbapt * config/rs6000/rs6000.c (rs6000_override_options): Don't set 114262395Sbapt MASK_PPC_GFXOPT for 8540 or 8548. 115262395Sbapt 116262395Sbapt2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> (r124341) 117262395Sbapt 118262395Sbapt * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of 119262395Sbapt 'AMD Family 10 core'. 120262395Sbapt 121262395Sbapt2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> (r124339) 122262395Sbapt 123262395Sbapt * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3 124262395Sbapt and athlon64-sse3 as improved versions of k8, opteron and athlon64 125262395Sbapt with SSE3 instruction set support. 126262395Sbapt * doc/invoke.texi: Likewise. 127262395Sbapt 128262395Sbapt2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> (r124330) 129262395Sbapt 130262395Sbapt * config/i386/i386.c (override_options): Tuning 32-byte loop 131262395Sbapt alignment for amdfam10 architecture. Increasing the max loop 132262395Sbapt alignment to 24 bytes. 133262395Sbapt 134262395Sbapt2007-04-16 Lawrence Crowl <crowl@google.com> (r123909) 135262395Sbapt 136263648Sbapt * doc/invoke.texi (Debugging Options): Add documentation for the 137263648Sbapt -femit-struct-debug options -femit-struct-debug-baseonly, 138263648Sbapt -femit-struct-debug-reduced, and 139263648Sbapt -femit-struct-debug-detailed[=...]. 140263648Sbapt 141263648Sbapt * c-opts.c (c_common_handle_option): Add 142263648Sbapt OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced, 143263648Sbapt and OPT_femit_struct_debug_detailed_. 144262395Sbapt * c.opt: Add specifications for 145262395Sbapt -femit-struct-debug-baseonly, -femit-struct-debug-reduced, 146262395Sbapt and -femit-struct-debug-detailed[=...]. 147262395Sbapt * opts.c (set_struct_debug_option): Parse the 148262395Sbapt -femit-struct-debug-... options. 149262395Sbapt * opts.c (matches_main_base, main_input_basename, 150262395Sbapt main_input_baselength, base_of_path, matches_main_base): Add 151268831Sbapt variables and functions to compare header base name to compilation 152262395Sbapt unit base name. 153262395Sbapt * opts.c (should_emit_struct_debug): Add to determine to emit a 154262395Sbapt structure based on the option. 155262395Sbapt (dump_struct_debug) Also disabled function to debug this 156262395Sbapt function. 157262395Sbapt * opts.c (handle_options): Save the base name of the 158262395Sbapt compilation unit. 159262395Sbapt 160262395Sbapt * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define. 161262395Sbapt (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add. 162262395Sbapt This hook indicates if a type is generic. Set it by default 163262395Sbapt to "never generic". 164262395Sbapt * langhooks.h (struct lang_hooks_for_types): Add a new hook 165262395Sbapt to determine if a struct type is generic or not. 166262395Sbapt * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook. 167262395Sbapt * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook. 168262395Sbapt * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook 169262395Sbapt with live C++ hook. 170262395Sbapt 171262395Sbapt * flags.h (enum debug_info_usage): Add an enumeration to describe 172262395Sbapt a program's use of a structure type. 173262395Sbapt * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter 174262395Sbapt to indicate the program's usage of the type. Filter structs based 175262395Sbapt on the -femit-struct-debug-... specification. 176262395Sbapt (gen_type_die): Split into two routines, gen_type_die and 177262395Sbapt gen_type_die_with_usage. gen_type_die is now a wrapper 178262395Sbapt that assumes direct usage. 179262395Sbapt (gen_type_die_with_usage): Replace calls to gen_type_die 180262395Sbapt with gen_type_die_with_usage adding the program usage of 181262395Sbapt the referenced type. 182262395Sbapt (dwarf2out_imported_module_or_decl): Suppress struct debug 183262395Sbapt information using should_emit_struct_debug when appropriate. 184262395Sbapt 185262395Sbapt2007-04-16 Ian Lance Taylor <iant@google.com> (r123906) 186262395Sbapt 187262395Sbapt * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer 188262395Sbapt predecessors at head rather than tail. 189262395Sbapt 190262395Sbapt 191262395Sbapt2007-04-12 Richard Guenther <rguenther@suse.de> (r123736) 192262395Sbapt 193262395Sbapt PR tree-optimization/24689 194262395Sbapt PR tree-optimization/31307 195262395Sbapt * fold-const.c (operand_equal_p): Compare INTEGER_CST array 196262395Sbapt indices by value. 197262395Sbapt * gimplify.c (canonicalize_addr_expr): To be consistent with 198262395Sbapt gimplify_compound_lval only set operands two and three of 199262395Sbapt ARRAY_REFs if they are not gimple_min_invariant. This makes 200262395Sbapt it never at this place. 201262395Sbapt * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. 202262395Sbapt 203262395Sbapt2007-04-07 H.J. Lu <hongjiu.lu@intel.com> (r123639) 204262395Sbapt 205262395Sbapt * config/i386/i386.c (ix86_handle_option): Handle SSSE3. 206262395Sbapt 207262395Sbapt2007-03-28 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> (r123313) 208262395Sbapt 209262395Sbapt * config.gcc: Accept barcelona as a variant of amdfam10. 210262395Sbapt * config/i386/i386.c (override_options): Likewise. 211262395Sbapt * doc/invoke.texi: Likewise. 212262395Sbapt 213262395Sbapt2007-03-12 Seongbae Park <seongbae.park@gmail.com> (r122851) 214262395Sbapt 215262395Sbapt * c-decl.c (warn_variable_length_array): New function. 216262395Sbapt Refactored from grokdeclarator to handle warn_vla 217262395Sbapt and handle unnamed array case. 218262395Sbapt (grokdeclarator): Refactored VLA warning case. 219262395Sbapt * c.opt (Wvla): New flag. 220262395Sbapt 221262395Sbapt2007-03-11 Ian Lance Taylor <iant@google.com> (r122831 - partial) 222262395Sbapt 223262395Sbapt * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and 224262395Sbapt the *_DIV_EXPR codes correctly with overflow infinities. 225262395Sbapt 226262395Sbapt2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> (r121763) 227262395Sbapt 228268831Sbapt * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10. 229262395Sbapt (bit_SSE4a): New. 230262395Sbapt 231262395Sbapt2007-02-08 Harsha Jagasia <harsha.jagasia@amd.com> (r121726) 232262395Sbapt 233262395Sbapt * config/i386/xmmintrin.h: Make inclusion of emmintrin.h 234262395Sbapt conditional to __SSE2__. 235262395Sbapt (Entries below should have been added to first ChangeLog 236262395Sbapt entry for amdfam10 dated 2007-02-05) 237262395Sbapt * config/i386/emmintrin.h: Generate #error if __SSE2__ is not 238262395Sbapt defined. 239262395Sbapt * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not 240262395Sbapt defined. 241262395Sbapt * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not 242262395Sbapt defined. 243262395Sbapt 244262395Sbapt2007-02-07 Jakub Jelinek <jakub@redhat.com> (r121687) 245262395Sbapt 246262395Sbapt * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2. 247262395Sbapt 248262395Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 249262395Sbapt 250262395Sbapt * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8, 251262395Sbapt athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov, 252262395Sbapt athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul, 253262395Sbapt athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn, 254268831Sbapt athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8, 255262395Sbapt athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load, 256262395Sbapt athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8, 257262395Sbapt athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10. 258262395Sbapt 259262395Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 260262395Sbapt 261262395Sbapt * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse, 262262395Sbapt cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387, 263262395Sbapt swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse, 264262395Sbapt fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse, 265262395Sbapt x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed, 266262395Sbapt floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse, 267262395Sbapt floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1, 268262395Sbapt mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn, 269262395Sbapt umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn, 270262395Sbapt umuldi3_highpart_rex64, umulsi3_highpart_insn, 271262395Sbapt umulsi3_highpart_zext, smuldi3_highpart_rex64, 272262395Sbapt smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld, 273262395Sbapt x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse, 274262395Sbapt sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387, 275262395Sbapt sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387, 276262395Sbapt sqrtextenddfxf2_i387): Added amdfam10_decode. 277262395Sbapt 278262395Sbapt * config/i386/athlon.md (athlon_idirect_amdfam10, 279262395Sbapt athlon_ivector_amdfam10, athlon_idirect_load_amdfam10, 280262395Sbapt athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10, 281262395Sbapt athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10, 282262395Sbapt athlon_ivector_store_amdfam10): New define_insn_reservation. 283262395Sbapt (athlon_idirect_loadmov, athlon_idirect_movstore): Added 284262395Sbapt amdfam10. 285264789Sbapt 286262395Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 287262395Sbapt 288262395Sbapt * config/i386/athlon.md (athlon_call_amdfam10, 289262395Sbapt athlon_pop_amdfam10, athlon_lea_amdfam10): New 290262395Sbapt define_insn_reservation. 291262395Sbapt (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8, 292262395Sbapt athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI, 293264789Sbapt athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10. 294262395Sbapt 295262395Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 296262395Sbapt 297262395Sbapt * config/i386/athlon.md (athlon_sseld_amdfam10, 298262395Sbapt athlon_mmxld_amdfam10, athlon_ssest_amdfam10, 299262395Sbapt athlon_mmxssest_short_amdfam10): New define_insn_reservation. 300262395Sbapt 301268831Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 302262395Sbapt 303262395Sbapt * config/i386/athlon.md (athlon_sseins_amdfam10): New 304262395Sbapt define_insn_reservation. 305262395Sbapt * config/i386/i386.md (sseins): Added sseins to define_attr type 306268831Sbapt and define_attr unit. 307262395Sbapt * config/i386/sse.md: Set type attribute to sseins for insertq 308262395Sbapt and insertqi. 309262395Sbapt 310262395Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 311262395Sbapt 312262395Sbapt * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10, 313262395Sbapt ssecmpvector_load_amdfam10, ssecmpvector_amdfam10, 314268831Sbapt ssecomi_load_amdfam10, ssecomi_amdfam10, 315262395Sbapt sseaddvector_load_amdfam10, sseaddvector_amdfam10): New 316262395Sbapt define_insn_reservation. 317262975Sbapt (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10. 318262975Sbapt 319262975Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 320262975Sbapt 321268831Sbapt * config/i386/athlon.md (cvtss2sd_load_amdfam10, 322262975Sbapt cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10, 323262975Sbapt cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10, 324262975Sbapt cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10, 325262975Sbapt cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10, 326262975Sbapt cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New 327262975Sbapt define_insn_reservation. 328262975Sbapt 329262975Sbapt * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si, 330262975Sbapt cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq, 331262975Sbapt cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq, 332262975Sbapt cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd, 333262975Sbapt cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute. 334262975Sbapt 335262975Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 336262975Sbapt 337262975Sbapt * config/i386/athlon.md (athlon_ssedivvector_amdfam10, 338262975Sbapt athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10, 339262975Sbapt athlon_ssemulvector_load_amdfam10): New define_insn_reservation. 340262975Sbapt (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul, 341262975Sbapt athlon_ssemul_load_k8): Added amdfam10. 342262975Sbapt 343262975Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 344262975Sbapt 345262975Sbapt * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro. 346262975Sbapt (x86_sse_unaligned_move_optimal): New variable. 347262975Sbapt 348262975Sbapt * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for 349262975Sbapt m_AMDFAM10. 350262975Sbapt (ix86_expand_vector_move_misalign): Add code to generate movupd/movups 351262975Sbapt for unaligned vector SSE double/single precision loads for AMDFAM10. 352262975Sbapt 353268831Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 354268831Sbapt 355262975Sbapt * config/i386/i386.h (TARGET_AMDFAM10): New macro. 356262975Sbapt (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10. 357262975Sbapt Define TARGET_CPU_DEFAULT_amdfam10. 358262975Sbapt (TARGET_CPU_DEFAULT_NAMES): Add amdfam10. 359262975Sbapt (processor_type): Add PROCESSOR_AMDFAM10. 360262975Sbapt 361262975Sbapt * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match 362262975Sbapt processor_type in config/i386/i386.h. 363262975Sbapt Enable imul peepholes for TARGET_AMDFAM10. 364268831Sbapt 365262975Sbapt * config.gcc: Add support for --with-cpu option for amdfam10. 366262975Sbapt 367262975Sbapt * config/i386/i386.c (amdfam10_cost): New variable. 368262975Sbapt (m_AMDFAM10): New macro. 369262975Sbapt (m_ATHLON_K8_AMDFAM10): New macro. 370262975Sbapt (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, 371263648Sbapt x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop, 372263648Sbapt x86_promote_QImode, x86_integer_DFmode_moves, 373263648Sbapt x86_partial_reg_dependency, x86_memory_mismatch_stall, 374262975Sbapt x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387, 375262975Sbapt x86_sse_partial_reg_dependency, x86_sse_typeless_stores, 376262975Sbapt x86_use_ffreep, x86_use_incdec, x86_four_jump_limit, 377262975Sbapt x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns): 378263648Sbapt Enable/disable for amdfam10. 379262975Sbapt (override_options): Add amdfam10_cost to processor_target_table. 380279549Sbapt Set up PROCESSOR_AMDFAM10 for amdfam10 entry in 381279549Sbapt processor_alias_table. 382262975Sbapt (ix86_issue_rate): Add PROCESSOR_AMDFAM10. 383279549Sbapt (ix86_adjust_cost): Add code for amdfam10. 384262975Sbapt 385262975Sbapt2007-02-05 Harsha Jagasia <harsha.jagasia@amd.com> (r121625) 386264789Sbapt 387262975Sbapt * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm) 388262975Sbapt instruction set feature flag. Add new (-mpopcnt) flag for popcnt 389262975Sbapt instruction. Add new SSE4A (-msse4a) instruction set feature flag. 390268831Sbapt * config/i386/i386.h: Add builtin definition for SSE4A. 391262975Sbapt * config/i386/i386.md: Add support for ABM instructions 392262975Sbapt (popcnt and lzcnt). 393262975Sbapt * config/i386/sse.md: Add support for SSE4A instructions 394264789Sbapt (movntss, movntsd, extrq, insertq). 395262975Sbapt * config/i386/i386.c: Add support for ABM and SSE4A builtins. 396262975Sbapt Add -march=amdfam10 flag. 397262975Sbapt * config/i386/ammintrin.h: Add support for SSE4A intrinsics. 398262975Sbapt * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt 399262975Sbapt and amdfam10. 400262975Sbapt * doc/extend.texi: Add documentation for SSE4A builtins. 401262975Sbapt 402262975Sbapt2007-01-24 Jakub Jelinek <jakub@redhat.com> (r121140) 403262975Sbapt 404262975Sbapt * config/i386/i386.h (x86_cmpxchg16b): Remove const. 405263648Sbapt (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b. 406263648Sbapt * config/i386/i386.c (x86_cmpxchg16b): Remove const. 407279549Sbapt (override_options): Add PTA_CX16 flag. Set x86_cmpxchg16b 408279549Sbapt for CPUs that have PTA_CX16 set. 409279549Sbapt 410279549Sbapt2007-01-17 Eric Christopher <echristo@apple.com> (r120846) 411279549Sbapt 412279549Sbapt * config.gcc: Support core2 processor. 413279549Sbapt 414279549Sbapt2007-01-11 Joseph Myers <joseph@codesourcery.com> (r120688) 415279549Sbapt 416279549Sbapt * c-common.c (vector_types_convertible_p): Treat opaque types as 417279549Sbapt always convertible if they have the same size, but not otherwise. 418279549Sbapt 419279549Sbapt2007-01-08 Geoffrey Keating <geoffk@apple.com> (r120611) 420279549Sbapt 421279549Sbapt * target.h (struct gcc_target): New field library_rtti_comdat. 422279549Sbapt * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New. 423279549Sbapt (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT. 424279549Sbapt * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT. 425279549Sbapt * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. 426279549Sbapt 427279549Sbapt2007-01-08 Mark Shinwell <shinwell@codesourcery.com> (r120572) 428279549Sbapt 429279549Sbapt * c.opt: Add -flax-vector-conversions. 430279549Sbapt * c-typeck.c (convert_for_assignment): Pass flag to 431279549Sbapt vector_types_convertible_p to allow emission of note. 432279549Sbapt (digest_init): Likewise. 433279549Sbapt * c-opts.c: Handle -flax-vector-conversions. 434279549Sbapt * c-common.c (flag_lax_vector_conversions): New. 435279549Sbapt (vector_types_convertible_p): Unless -flax-vector conversions 436279549Sbapt has been passed, disallow conversions between vectors with 437279549Sbapt differing numbers of subparts and/or element types. If such 438279549Sbapt a conversion is disallowed, possibly emit a note on the first 439279549Sbapt occasion only to inform the user of -flax-vector-conversions. 440279549Sbapt The new last argument specifies this. 441279549Sbapt * c-common.h (flag_lax_vector_conversions): New. 442279549Sbapt (vector_types_convertible_p): Add extra argument. 443279549Sbapt * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use 444279549Sbapt char_type_node for V*QI type vectors. 445279549Sbapt * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): 446279549Sbapt Update to satisfy new typechecking rules. 447279549Sbapt * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both 448279549Sbapt C and C++ variants. 449279549Sbapt * doc/invoke.texi (C Dialect Options): Document 450279549Sbapt -flax-vector-conversions. 451279549Sbapt 452279549Sbapt2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org> (r120505) 453279549Sbapt 454279549Sbapt PR c/19978 455279549Sbapt * tree.h (TREE_OVERFLOW_P): New. 456279549Sbapt * c-typeck.c (parser_build_unary_op): Warn only if result 457279549Sbapt overflowed and operands did not. 458279549Sbapt (parser_build_binary_op): Likewise. 459279549Sbapt (convert_for_assignment): Remove redundant overflow_warning. 460279549Sbapt * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW. 461263648Sbapt 462263648Sbapt2006-12-13 Ian Lance Taylor <iant@google.com> (r119855) 463263648Sbapt 464263648Sbapt PR c++/19564 465263648Sbapt PR c++/19756 466263648Sbapt * c-typeck.c (parser_build_binary_op): Move parentheses warnings 467264789Sbapt to warn_about_parentheses in c-common.c. 468264789Sbapt * c-common.c (warn_about_parentheses): New function. 469263648Sbapt * c-common.h (warn_about_parentheses): Declare. 470263648Sbapt * doc/invoke.texi (Warning Options): Update -Wparentheses 471268831Sbapt description. 472263648Sbapt 473263648Sbapt2006-12-12 Geoffrey Keating <geoffk@apple.com> (r119820) 474263648Sbapt 475263648Sbapt * mips-tdump.c: Replace CROSS_COMPILE with 476263648Sbapt CROSS_DIRECTORY_STRUCTURE. 477268831Sbapt * mips-tfile.c: Likewise. 478263648Sbapt * gcc.c: Likewise. 479263648Sbapt * configure.ac: Likewise. 480263648Sbapt * cppdefault.c: Likewise. 481263648Sbapt * Makefile.in: Likewise. 482263648Sbapt * config/alpha/osf.h: Likewise. 483263648Sbapt * config/i386/cygwin.h: Likewise. 484263648Sbapt * config/i386/beos-elf.h: Likewise. 485263648Sbapt * config/i386/nto.h: Likewise. 486263648Sbapt * config/svr4.h: Likewise. 487263648Sbapt * config/rs6000/aix.h: Likewise. 488263648Sbapt * config/rs6000/sysv4.h: Likewise. 489263648Sbapt * collect2.c: Likewise. 490263648Sbapt * configure: Regenerate. 491263648Sbapt 492263648Sbapt * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP 493263648Sbapt actually takes an unsigned HOST_WIDE_INT for its second parameter. 494263648Sbapt 495268831Sbapt2006-12-02 H.J. Lu <hongjiu.lu@intel.com> (r119454 - partial) 496 497 PR target/30040 498 * config/i386/driver-i386.c (bit_SSSE3): New. 499 5002006-11-27 Uros Bizjak <ubizjak@gmail.com> (r119260) 501 502 * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2 503 and m_GENERIC64. 504 5052006-11-18 Vladimir Makarov <vmakarov@redhat.com> (r118973) 506 507 * doc/invoke.texi (core2): Add item. 508 509 * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New 510 macros. 511 (TARGET_CPU_CPP_BUILTINS): Add code for core2. 512 (TARGET_CPU_DEFAULT_generic): Change value. 513 (TARGET_CPU_DEFAULT_NAMES): Add core2. 514 (processor_type): Add new constant PROCESSOR_CORE2. 515 516 * config/i386/i386.md (cpu): Add core2. 517 518 * config/i386/i386.c (core2_cost): New initialized variable. 519 (m_CORE2): New macro. 520 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, 521 x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop, 522 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, 523 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, 524 x86_partial_reg_dependency, x86_memory_mismatch_stall, 525 x86_accumulate_outgoing_args, x86_prologue_using_move, 526 x86_epilogue_using_move, x86_arch_always_fancy_math_387, 527 x86_sse_partial_reg_dependency, x86_rep_movl_optimal, 528 x86_use_incdec, x86_four_jump_limit, x86_schedule, 529 x86_pad_returns): Add m_CORE2. 530 (override_options): Add entries for Core2. 531 (ix86_issue_rate): Add case for Core2. 532 5332006-11-07 Eric Christopher <echristo@apple.com> (r118576) 534 535 * libgcc2.c (__bswapdi2): Rename from bswapDI2. 536 (__bswapsi2): Ditto. 537 * libgcc2.h: Remove transformation of bswap routines. 538 * config/i386/i386.md (bswapsi2): New. 539 (bswapdi2): Ditto. 540 5412006-10-31 Geoffrey Keating <geoffk@apple.com> (r118360) 542 543 * coverage.c (coverage_checksum_string): Update comment. 544 * dwarf2out.c (switch_to_eh_frame_section): Update for removal 545 of get_file_function_name. 546 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename 547 of get_file_function_name_long. 548 * tree.c (get_file_function_name): Rename from 549 get_file_function_name_long; improve comment; handle 'I' and 'D' 550 specially when the target has ctor/dtor support; remove special 551 handling for 'F'. 552 (get_file_function_name): Remove. 553 * tree.h (get_file_function_name): Rename from 554 get_file_function_name_long. 555 (get_file_function_name): Remove prototype. 556 5572006-10-31 Geoffrey Keating <geoffk@apple.com> (r118356) 558 559 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on 560 inline static functions in c99 mode. 561 562 PR 16622 563 * doc/extend.texi (Inline): Update. 564 * c-tree.h (struct language_function): Remove field 'extern_inline'. 565 * c-decl.c (current_extern_inline): Delete. 566 (pop_scope): Adjust test for an undefined nested function. 567 Add warning about undeclared inline function. 568 (diagnose_mismatched_decls): Update comments. Disallow overriding 569 of inline functions in a translation unit in C99. Allow inline 570 declarations in C99 at any time. 571 (merge_decls): Boolize variables. Handle C99 'extern inline' 572 semantics. 573 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle 574 C99 inline semantics. 575 (start_function): Don't clear current_extern_inline. Don't set 576 DECL_EXTERNAL. 577 (c_push_function_context): Don't push current_extern_inline. 578 (c_pop_function_context): Don't restore current_extern_inline. 579 580 PR 11377 581 * c-typeck.c (build_external_ref): Warn about static variables 582 used in extern inline functions. 583 * c-decl.c (start_decl): Warn about static variables declared 584 in extern inline functions. 585 5862006-10-27 Vladimir Makarov <vmakarov@redhat.com> (r118090) 587 588 * config/i386/i386.h (TARGET_GEODE): 589 (TARGET_CPU_CPP_BUILTINS): Add code for geode. 590 (TARGET_CPU_DEFAULT_geode): New macro. 591 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2, 592 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon, 593 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8, 594 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott, 595 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase 596 the macro values. 597 (TARGET_CPU_DEFAULT_NAMES): Add geode. 598 (processor_type): Add PROCESSOR_GEODE. 599 600 * config/i386/i386.md: Include geode.md. 601 (cpu): Add geode. 602 603 * config/i386/i386.c (geode_cost): New initialized global 604 variable. 605 (m_GEODE, m_K6_GEODE): New macros. 606 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf, 607 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4, 608 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants, 609 x86_schedule): Use m_K6_GEODE instead of m_K6. 610 (x86_movx, x86_cmove): Set up m_GEODE. 611 (x86_integer_DFmode_moves): Clear m_GEODE. 612 (processor_target_table): Add entry for geode. 613 (processor_alias_table): Ditto. 614 615 * config/i386/geode.md: New file. 616 617 * doc/invoke.texi: Add entry about geode processor. 618 6192006-10-24 Richard Guenther <rguenther@suse.de> (r118001) 620 621 PR middle-end/28796 622 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES 623 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS 624 for deciding optimizations in consistency with fold-const.c 625 (fold_builtin_unordered_cmp): Likewise. 626 6272006-10-22 H.J. Lu <hongjiu.lu@intel.com> (r117958) 628 629 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. 630 (x86_64-*-*): Likewise. 631 632 * config/i386/i386.c (pta_flags): Add PTA_SSSE3. 633 (override_options): Check SSSE3. 634 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD, 635 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD, 636 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW, 637 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB, 638 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND, 639 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW, 640 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128, 641 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128, 642 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128, 643 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128, 644 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128, 645 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128, 646 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128, 647 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and 648 IX86_BUILTIN_PABSD128. 649 (bdesc_2arg): Add SSSE3. 650 (bdesc_1arg): Likewise. 651 (ix86_init_mmx_sse_builtins): Support SSSE3. 652 (ix86_expand_builtin): Likewise. 653 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise. 654 655 * config/i386/i386.md (UNSPEC_PSHUFB): New. 656 (UNSPEC_PSIGN): Likewise. 657 (UNSPEC_PALIGNR): Likewise. 658 Include mmx.md before sse.md. 659 660 * config/i386/i386.opt: Add -mssse3. 661 662 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3. 663 (ssse3_phaddwv4hi3): Likewise. 664 (ssse3_phadddv4si3): Likewise. 665 (ssse3_phadddv2si3): Likewise. 666 (ssse3_phaddswv8hi3): Likewise. 667 (ssse3_phaddswv4hi3): Likewise. 668 (ssse3_phsubwv8hi3): Likewise. 669 (ssse3_phsubwv4hi3): Likewise. 670 (ssse3_phsubdv4si3): Likewise. 671 (ssse3_phsubdv2si3): Likewise. 672 (ssse3_phsubswv8hi3): Likewise. 673 (ssse3_phsubswv4hi3): Likewise. 674 (ssse3_pmaddubswv8hi3): Likewise. 675 (ssse3_pmaddubswv4hi3): Likewise. 676 (ssse3_pmulhrswv8hi3): Likewise. 677 (ssse3_pmulhrswv4hi3): Likewise. 678 (ssse3_pshufbv16qi3): Likewise. 679 (ssse3_pshufbv8qi3): Likewise. 680 (ssse3_psign<mode>3): Likewise. 681 (ssse3_psign<mode>3): Likewise. 682 (ssse3_palignrti): Likewise. 683 (ssse3_palignrdi): Likewise. 684 (abs<mode>2): Likewise. 685 (abs<mode>2): Likewise. 686 687 * config/i386/tmmintrin.h: New file. 688 689 * doc/extend.texi: Document SSSE3 built-in functions. 690 691 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches. 692 6932006-10-22 H.J. Lu <hongjiu.lu@intel.com> (r117959) 694 695 * config/i386/tmmintrin.h: Remove the duplicated content. 696 6972006-10-21 Richard Guenther <rguenther@suse.de> (r117932) 698 699 PR tree-optimization/3511 700 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that 701 got new invariant arguments during PHI translation. 702 7032006-10-21 Richard Guenther <rguenther@suse.de> (r117929) 704 705 * builtins.c (fold_builtin_classify): Fix typo. 706 7072006-09-07 Eric Christopher <echristo@apple.com> (r118361) 708 Falk Hueffner <falk@debian.org> 709 710 * doc/extend.texi (__builtin_bswap32): Document. 711 (__builtin_bswap64): Ditto. 712 * doc/libgcc.texi (bswapsi2): Document. 713 (bswapdi2): Ditto. 714 * doc/rtl.texi (bswap): Document. 715 * optabs.c (expand_unop): Don't widen a bswap. 716 (init_optabs): Init bswap. Set libfuncs explicitly 717 for bswapsi2 and bswapdi2. 718 * optabs.h (OTI_bswap): New. 719 (bswap_optab): Ditto. 720 * genopinit.c (optabs): Handle bswap_optab. 721 * tree.h (tree_index): Add TI_UINT32_TYPE and 722 TI_UINT64_TYPE. 723 (uint32_type_node): New. 724 (uint64_type_node): Ditto. 725 * tree.c (build_common_tree_nodes_2): Initialize 726 uint32_type_node and uint64_type_node. 727 * builtins.c (expand_builtin_bswap): New. 728 (expand_builtin): Call. 729 (fold_builtin_bswap): New. 730 (fold_builtin_1): Call. 731 * fold-const.c (tree_expr_nonnegative_p): Return true 732 for bswap. 733 * builtin-types.def (BT_UINT32): New. 734 (BT_UINT64): Ditto. 735 (BT_FN_UINT32_UINT32): Ditto. 736 (BT_FN_UINT64_UINT64): Ditto. 737 * builtins.def (BUILT_IN_BSWAP32): New. 738 (BUILT_IN_BSWAP64): Ditto. 739 * rtl.def (BSWAP): New. 740 * genattrtab.c (check_attr_value): New. 741 * libgcc2.c (__bswapSI2): New. 742 (__bswapDI2): Ditto. 743 * libgcc2.h (__bswapSI2): Declare. 744 (__bswapDI2): Ditto. 745 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2. 746 * simplify-rtx.c (simplify_const_unary_operation): Return 747 0 for BSWAP. 748 * libgcc-std.ver (__bwapsi2): Add. 749 (__bswapdi2): Ditto. 750 * reload1.c (eliminate_regs_1): Add bswap. 751 (elimination_effects): Ditto. 752 * config/i386/i386.h (x86_bswap): New. 753 (TARGET_BSWAP): Use. 754 * config/i386/i386.c (x86_bswap): Set. 755