aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2008-07-31prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or ↵Vincent Celier1-0/+40
Linker'Default_Switches are declared. 2008-07-31 Vincent Celier <celier@adacore.com> * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or Linker'Default_Switches are declared. Warn if they are declared. From-SVN: r138385
2008-07-31arit64.c: New file implementing __gnat_mulv64 signed integer multiplication ↵Geert Bosch6-5/+253
with overflow... 2008-07-31 Geert Bosch <bosch@adacore.com> * arit64.c: New file implementing __gnat_mulv64 signed integer multiplication with overflow checking * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi * gcc-interface/gigi.h: (standard_types): Add ADT_mulv64_decl (mulv64_decl): Define subprogram declaration for __gnat_mulv64 * gcc-interface/utils.c: (init_gigi_decls): Add initialization of mulv64_decl * gcc-interface/trans.c: (build_unary_op_trapv): New function (build_binary_op_trapv): New function (gnat_to_gnu): Use the above functions instead of build_{unary,binary}_op * gcc-interface/Makefile.in (LIBGNAT_SRCS): Add arit64.c (LIBGNAT_OBJS): Add arit64.o From-SVN: r138384
2008-07-31exp_attr.adb (Find_Stream_Subprogram): Check the base type instead of the ↵Hristian Kirtchev2-13/+9
type when... 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com> * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead of the type when looking for stream subprograms for type String, Wide_String and Wide_Wide_String. * s-ststop.adb: Change the initialization expression of constant Use_Block_IO. From-SVN: r138383
2008-07-31s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off)...Arnaud Charlet1-4/+6
* s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off), so that we can compile this file successfully with -gnatc. From-SVN: r138382
2008-07-31s-regexp.ads: Minor comment fixVincent Celier1-2/+2
2008-07-31 Vincent Celier <celier@adacore.com> * s-regexp.ads: Minor comment fix From-SVN: r138381
2008-07-31s-finimp.ads: Minor reformatting.Pascal Obry1-3/+3
2008-07-31 Pascal Obry <obry@adacore.com> * s-finimp.ads: Minor reformatting. From-SVN: r138380
2008-07-31g-pehage.adb: Minor reformattingThomas Quinot1-6/+5
2008-07-31 Thomas Quinot <quinot@adacore.com> * g-pehage.adb: Minor reformatting From-SVN: r138379
2008-07-31gnat_ugn.texi: Change the description of the Overly_Nested_Control_Structures...Sergey Rybin1-9/+3
2008-07-31 Sergey Rybin <rybin@adacore.com> * gnat_ugn.texi: Change the description of the Overly_Nested_Control_Structures: now the rule always requires a positive parameter for '+R' option From-SVN: r138378
2008-07-31sem_ch12.adb: Minor reformattingRobert Dewar1-4/+2
2008-07-31 Robert Dewar <dewar@adacore.com> * sem_ch12.adb: Minor reformatting From-SVN: r138377
2008-07-31passes.c (init_optimization_passes): Always call pass_early_warn_uninitialized.Richard Guenther32-27/+816
2008-07-31 Richard Guenther <rguenther@suse.de> * passes.c (init_optimization_passes): Always call pass_early_warn_uninitialized. * opts.c (decode_options): Do not warn about -Wuninitialized at -O0. * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0. * doc/passes.texi (Warn for uninitialized variables): Adjust. * gcc.dg/uninit-1-O0.c: New testcase. * gcc.dg/uninit-2-O0.c: Likewise. * gcc.dg/uninit-3-O0.c: Likewise. * gcc.dg/uninit-4-O0.c: Likewise. * gcc.dg/uninit-5-O0.c: Likewise. * gcc.dg/uninit-6-O0.c: Likewise. * gcc.dg/uninit-8-O0.c: Likewise. * gcc.dg/uninit-9-O0.c: Likewise. * gcc.dg/uninit-A-O0.c: Likewise. * gcc.dg/uninit-B-O0.c: Likewise. * gcc.dg/uninit-C-O0.c: Likewise. * gcc.dg/uninit-D-O0.c: Likewise. * gcc.dg/uninit-E-O0.c: Likewise. * gcc.dg/uninit-F-O0.c: Likewise. * gcc.dg/uninit-G-O0.c: Likewise. * gcc.dg/uninit-H-O0.c: Likewise. * gcc.dg/uninit-I-O0.c: Likewise. * gcc.dg/uninit-10-O0.c: Likewise. * gcc.dg/uninit-11-O0.c: Likewise. * gcc.dg/uninit-12-O0.c: Likewise. * gcc.dg/uninit-13-O0.c: Likewise. * gcc.dg/uninit-14-O0.c: Likewise. * gcc.dg/uninit-15-O0.c: Likewise. * gcc.dg/Wall.c: Avoid uninitialized warning. * gcc.dg/Wno-all.c: Likewise. * gcc.dg/pr3074-1.c: Likewise. From-SVN: r138376
2008-07-31* mlib-utl.ads: Fix typo.Arnaud Charlet1-1/+1
From-SVN: r138375
2008-07-31* gnat.dg/specs/genericppc.ads: New testArnaud Charlet2-0/+11
From-SVN: r138374
2008-07-31ResyncArnaud Charlet1-0/+25
From-SVN: r138373
2008-07-31sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis...Ed Schonberg2-16/+80
2008-07-31 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis, transfer pre/postconditions from generic copy to original tree, so that they will appear in each instance. (Process_PPCs): Do not transform postconditions into a procedure in a generic context, to prevent double expansion of check pragmas. * sem_attr.adb: In an instance, the prefix of the 'result attribute can be the renaming of the current instance, so check validity of the name accordingly. From-SVN: r138372
2008-07-31s-os_lib.adb: Minor comment fixVincent Celier1-3/+3
2008-07-31 Vincent Celier <celier@adacore.com> * s-os_lib.adb: Minor comment fix From-SVN: r138371
2008-07-31einfo.adb (Spec_PPC): Now defined for generic subprogramsRobert Dewar3-25/+24
2008-07-31 Robert Dewar <dewar@adacore.com> * einfo.adb (Spec_PPC): Now defined for generic subprograms * einfo.ads (Spec_PPC): Now defined for generic subprograms * sem_prag.adb (Check_Precondition_Postcondition): Handle generic subprogram case From-SVN: r138370
2008-07-31ResyncArnaud Charlet1-0/+26
From-SVN: r138367
2008-07-31gnat_ugn.texi: Update -gnatN documentation.Robert Dewar2-2/+24
2008-07-31 Robert Dewar <dewar@adacore.com> * gnat_ugn.texi: Update -gnatN documentation. * gnat_rm.texi: Add note about pre/postcondition pragmas not checked in conjunction with front-end inlining. From-SVN: r138366
2008-07-31prj.adb, [...]: Remove declarations that were for gprmake onlyVincent Celier4-1507/+33
2008-07-31 Vincent Celier <celier@adacore.com> * prj.adb, clean.adb, prj-nmsc.adb, prj.ads: Remove declarations that were for gprmake only From-SVN: r138365
2008-07-31sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved from ↵Ed Schonberg2-29/+86
context. 2008-07-31 Ed Schonberg <schonberg@adacore.com> sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved from context. This attribute must be usable in Ada95 mode. The attribute can appear in the body of a function marked Inline_Always, but in this case the postocondition is not enforced. sem_prag.adb (Check_Precondition_Postcondition): within the expansion of an inlined call pre- and postconditions are legal From-SVN: r138364
2008-07-31mlib-utl.ads: Minor reformattingRobert Dewar1-6/+5
2008-07-31 Robert Dewar <dewar@adacore.com> * mlib-utl.ads: Minor reformatting From-SVN: r138363
2008-07-31re PR c/36970 (GCC should display a warning when trying to free a static array)Jakub Jelinek5-1/+89
PR c/36970 * builtins.c (maybe_emit_free_warning): New function. (expand_builtin): Process BUILT_IN_FREE even at -O0. Call maybe_emit_free_warning for BUILT_IN_FREE. * gcc.dg/free-1.c: New test. * gcc.dg/free-2.c: New test. From-SVN: r138362
2008-07-31re PR debug/36278 (ICE with typedef void in namespace and using the defined ↵Jakub Jelinek4-46/+60
type in another when compiling with "-g") PR debug/36278 * dwarf2out.c (get_context_die): New function. (force_decl_die, force_type_die): Use it. (dwarf2out_imported_module_or_decl): Likewise. If base_type_die returns NULL, force generation of DW_TAG_typedef and put that into DW_AT_import. * g++.dg/debug/namespace2.C: New test. From-SVN: r138361
2008-07-31re PR preprocessor/36649 (-H option doesn't work as expected)Jakub Jelinek7-1/+31
PR preprocessor/36649 * c-pch.c (c_common_read_pch): Save and restore line_table->trace_includes across PCH restore. * gcc.dg/pch/cpp-3.c: New test. * gcc.dg/pch/cpp-3.hs: New file. * gcc.dg/pch/cpp-3a.h: New file. * gcc.dg/pch/cpp-3b.h: New file. From-SVN: r138360
2008-07-31ResyncArnaud Charlet1-0/+8
From-SVN: r138358
2008-07-31* mlib-utl.ads, prj-makr.ads: Add comments.Arnaud Charlet2-1/+10
From-SVN: r138357
2008-07-31g-pehage.adb, [...]: Minor reformattingRobert Dewar2-20/+20
2008-07-31 Robert Dewar <dewar@adacore.com> * g-pehage.adb, g-pehage.ads: Minor reformatting From-SVN: r138356
2008-07-31re PR c++/11309 (Testsuite failures in g++.dg/expr/anew1.C (and anew2.C ↵Jason Merrill9-46/+117
anew3.C anew4.c)) PR c++/11309 * tree.c (build_aggr_init_expr): Split out... (build_cplus_new): ...from here. (stabilize_init): Don't mess with AGGR_INIT_EXPR either. * init.c (build_new_1): new T() means value-initialization, not default-initialization. (build_vec_init): Likewise. (build_value_init_1): Use build_aggr_init_expr. From-SVN: r138355
2008-07-30Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-winext.o.Aaron W. LaFramboise2-1/+6
2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com> * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]: Add s-winext.o. From-SVN: r138353
2008-07-31Daily bump.GCC Administrator1-1/+1
From-SVN: r138351
2008-07-30re PR ada/36554 (verify_flow_info ICE can not throw but has EH edges)Eric Botcazou12-18/+138
PR ada/36554 * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE. ada/ * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi. * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>: Set precision to 1 for subtype of BOOLEAN_TYPE. (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE. (make_type_from_size): Deal with BOOLEAN_TYPE. * gcc-interface/misc.c (gnat_print_type): Likewise. * gcc-interface/trans.c (gigi): Take new standard_boolean parameter. Set boolean_type_node as its translation in the table, as well as boolean_false_node for False and boolean_true_node for True. * gcc-interface/utils.c (gnat_init_decl_processing): Create custom 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM. (create_param_decl): Deal with BOOLEAN_TYPE. (build_vms_descriptor): Likewise. (build_vms_descriptor64): Likewise. (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE. From-SVN: r138348
2008-07-30re PR bootstrap/36974 (Gcc failed to bootstrap)Rafael Avila de Espindola2-0/+8
2008-07-30 Rafael Avila de Espindola <espindola@google.com> PR 36974 * final.c (call_from_call_insn): Handle COND_EXEC From-SVN: r138347
2008-07-30builtins.c (std_gimplify_va_arg_expr): Replace PREFERRED_STACK_BOUNDARY with ↵H.J. Lu3-8/+14
MAX_SUPPORTED_STACK_ALIGNMENT. 2008-07-30 H.J. Lu <hongjiu.lu@intel.com> * builtins.c (std_gimplify_va_arg_expr): Replace PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT. * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. From-SVN: r138340
2008-07-30func-vararg-alternate-d128-2.c: New.H.J. Lu78-12/+2828
2008-07-30 H.J. Lu <hongjiu.lu@intel.com> Joey Ye <joey.ye@intel.com> * gcc.dg/dfp/func-vararg-alternate-d128-2.c: New. * gcc.dg/dfp/func-vararg-mixed-2.c: Likewise. * gcc.dg/torture/stackalign/alloca-1.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-1.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-2.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-3.c: Likewise. * gcc.dg/torture/stackalign/builtin-apply-4.c: Likewise. * gcc.dg/torture/stackalign/builtin-return-1.c: Likewise. * gcc.dg/torture/stackalign/check.h: Likewise. * gcc.dg/torture/stackalign/comp-goto-1.c: Likewise. * gcc.dg/torture/stackalign/fastcall-1.c: Likewise. * gcc.dg/torture/stackalign/global-1.c: Likewise. * gcc.dg/torture/stackalign/inline-1.c: Likewise. * gcc.dg/torture/stackalign/inline-2.c: Likewise. * gcc.dg/torture/stackalign/nested-1.c: Likewise. * gcc.dg/torture/stackalign/nested-2.c: Likewise. * gcc.dg/torture/stackalign/nested-3.c: Likewise. * gcc.dg/torture/stackalign/nested-4.c: Likewise. * gcc.dg/torture/stackalign/nested-5.c: Likewise. * gcc.dg/torture/stackalign/nested-6.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-1.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-2.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-3.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-4.c: Likewise. * gcc.dg/torture/stackalign/non-local-goto-5.c: Likewise. * gcc.dg/torture/stackalign/pr16660-1.c: Likewise. * gcc.dg/torture/stackalign/pr16660-2.c: Likewise. * gcc.dg/torture/stackalign/pr16660-3.c: Likewise. * gcc.dg/torture/stackalign/regparm-1.c: Likewise. * gcc.dg/torture/stackalign/ret-struct-1.c: Likewise. * gcc.dg/torture/stackalign/setjmp-1.c: Likewise. * gcc.dg/torture/stackalign/setjmp-2.c: Likewise. * gcc.dg/torture/stackalign/setjmp-3.c: Likewise. * gcc.dg/torture/stackalign/setjmp-4.c: Likewise. * gcc.dg/torture/stackalign/sibcall-1.c: Likewise. * gcc.dg/torture/stackalign/stackalign.exp: Likewise. * gcc.dg/torture/stackalign/struct-1.c: Likewise. * gcc.dg/torture/stackalign/vararg-1.c: Likewise. * gcc.dg/torture/stackalign/vararg-2.c: Likewise. * gcc.target/i386/align-main-1.c: Likewise. * gcc.target/i386/align-main-2.c: Likewise. * gcc.target/i386/pr32000-2.c: Likewise. * gcc.target/i386/stackalign/asm-1.c: Likewise. * gcc.target/i386/stackalign/return-1.c: Likewise. * gcc.target/i386/stackalign/return-2.c: Likewise. * gcc.target/i386/stackalign/return-3.c: Likewise. * gcc.target/i386/stackalign/return-4.c: Likewise. * gcc.target/i386/stackalign/return-5.c: Likewise. * gcc.target/i386/stackalign/return-6.c: Likewise. * gcc.target/i386/stackalign/stackalign.exp: Likewise. * g++.dg/torture/stackalign/check.h: Likewise. * g++.dg/torture/stackalign/eh-alloca-1.C: Likewise. * g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise. * g++.dg/torture/stackalign/eh-global-1.C: Likewise. * g++.dg/torture/stackalign/eh-inline-1.C: Likewise. * g++.dg/torture/stackalign/eh-inline-2.C: Likewise. * g++.dg/torture/stackalign/eh-vararg-1.C: Likewise. * g++.dg/torture/stackalign/eh-vararg-2.C: Likewise. * g++.dg/torture/stackalign/stackalign.exp: Likewise. * g++.dg/torture/stackalign/stdcall-1.C: Likewise. * g++.dg/torture/stackalign/test-unwind.h: Likewise. * g++.dg/torture/stackalign/throw-1.C: Likewise. * g++.dg/torture/stackalign/throw-2.C: Likewise. * g++.dg/torture/stackalign/throw-3.C: Likewise. * g++.dg/torture/stackalign/throw-4.C: Likewise. * g++.dg/torture/stackalign/unwind-0.C: Likewise. * g++.dg/torture/stackalign/unwind-1.C: Likewise. * g++.dg/torture/stackalign/unwind-2.C: Likewise. * g++.dg/torture/stackalign/unwind-3.C: Likewise. * g++.dg/torture/stackalign/unwind-4.C: Likewise. * g++.dg/torture/stackalign/unwind-5.C: Likewise. * g++.dg/torture/stackalign/unwind-6.C: Likewise. * gcc.target/i386/20060512-1.c: Add -mpreferred-stack-boundary=4. (main): Move "popl" after check. * gcc.target/i386/20060512-3.c: Likewise. * gcc.target/i386/20060512-2.c: Add -mpreferred-stack-boundary=4. Remove dg-error. * gcc.target/i386/20060512-4.c: Add -mpreferred-stack-boundary=4. Remove dg-warning. * lib/target-supports.exp (check_effective_target_unaligned_stack): Always return 0. (check_effective_target_automatic_stack_alignment): New. Co-Authored-By: Joey Ye <joey.ye@intel.com> From-SVN: r138336
2008-07-30[multiple changes]H.J. Lu25-205/+1239
2008-07-30 Joey Ye <joey.ye@intel.com> H.J. Lu <hongjiu.lu@intel.com> * builtins.c (expand_builtin_setjmp_receiver): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. (expand_builtin_apply_args_1): Likewise. (expand_builtin_longjmp): Need DRAP for stack alignment. (expand_builtin_apply): Likewise. * caller-save.c (setup_save_areas): Call assign_stack_local_1 instead of assign_stack_local to allow alignment reduction. * calls.c (emit_call_1): Need DRAP for stack alignment if return pops. (expand_call): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. * stmt.c (expand_nl_goto_receiver): Likewise. * cfgexpand.c (get_decl_align_unit): Estimate stack variable alignment and store to stack_alignment_estimated and max_used_stack_slot_alignment. (expand_one_var): Likewise. (expand_stack_alignment): New function. (tree_expand_cfg): Initialize max_used_stack_slot_alignment and stack_alignment_estimated fields in rtl_data. Call expand_stack_alignment at end. * defaults.h (INCOMING_STACK_BOUNDARY): New. (MAX_STACK_ALIGNMENT): Likewise. (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise. (SUPPORTS_STACK_ALIGNMENT): Likewise. * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for stack alignment when generating virtual registers. * function.c (assign_stack_local): Renamed to ... (assign_stack_local_1): This. Add a parameter to indicate if it is OK to reduce alignment. (assign_stack_local): Use it. (instantiate_new_reg): Instantiate virtual incoming args rtx to vDRAP if stack realignment and DRAP is needed. (assign_parms): Collect parameter/return type alignment and contribute to stack_alignment_estimated. (locate_and_pad_parm): Likewise. (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. * function.h (rtl_data): Add new field drap_reg, max_used_stack_slot_alignment, stack_alignment_estimated, stack_realign_needed, need_drap, stack_realign_processed and stack_realign_finalized. (stack_realign_fp): New macro. (stack_realign_drap): Likewise. * global.c (compute_regsets): Frame pointer is needed when stack is realigned. Can eliminate frame pointer when stack is realigned and dynamic realigned argument pointer isn't used. * reload1.c (update_eliminables): Frame pointer is needed when stack is realigned. (init_elim_table): Can eliminate frame pointer when stack is realigned and dynamic realigned argument pointer isn't used. * rtl.h (assign_stack_local_1): Declare new funtion. * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New. (TARGET_GET_DRAP_RTX): Likewise. (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and TARGET_GET_DRAP_RTX. * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx. * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace STACK_BOUNDARY with MAX_STACK_ALIGNMENT. 2008-07-30 Xuepeng Guo <xuepeng.guo@intel.com> H.J. Lu <hongjiu.lu@intel.com> * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg, vdrap_reg, stack_realign and drap_reg_saved. (add_cfi): Don't allow redefining CFA when DRAP is used. (reg_save): Handle stack alignment. (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack alignment. Don't generate DWARF information for (set fp sp) when DRAP is used. (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg to INVALID_REGNUM. (int_loc_descriptor): Move prototype forward. Also define if DWARF2_UNWIND_INFO is true. (output_cfa_loc): Handle DW_CFA_expression. (build_cfa_aligned_loc): New. (based_loc_descr): Update assert for stack realign. For local variables, use sp+offset when stack is aligned without drap and fp+offset when stack is aligned with drap. For arguments, use cfa+offset when drap is used to align stack. 2008-07-30 Joey Ye <joey.ye@intel.com> H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_force_align_arg_pointer_string): Break long line. (ix86_gen_andsp): New. (ix86_user_incoming_stack_boundary): Likewise. (ix86_default_incoming_stack_boundary): Likewise. (ix86_incoming_stack_boundary): Likewise. (ix86_can_eliminate): Likewise. (find_drap_reg): Likewise. (ix86_update_stack_boundary): Likewise. (ix86_get_drap_rtx): Likewise. (ix86_finalize_stack_realign_flags): Likewise. (TARGET_UPDATE_STACK_BOUNDARY): Likewise. (TARGET_GET_DRAP_RTX): Likewise. (override_options): Overide option value for new options. (ix86_function_ok_for_sibcall): Remove check for force_align_arg_pointer. (ix86_handle_cconv_attribute): Likewise. (ix86_function_regparm): Likewise. (setup_incoming_varargs_64): Don't set stack_alignment_needed here. (ix86_va_start): Replace virtual_incoming_args_rtx with crtl->args.internal_arg_pointer. (ix86_select_alt_pic_regnum): Check DRAP register. (ix86_save_reg): Replace force_align_arg_pointer with drap_reg. (ix86_compute_frame_layout): Compute frame layout wrt stack realignment. (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx. (ix86_expand_prologue): Decide if stack realignment is needed and generate prologue code accordingly. (ix86_expand_epilogue): Generate epilogue code wrt stack realignment is really needed or not. * config/i386/i386.h (MAIN_STACK_BOUNDARY): New. (ABI_STACK_BOUNDARY): Likewise. (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise. (STACK_REALIGN_DEFAULT): Likewise. (INCOMING_STACK_BOUNDARY): Likewise. (MAX_STACK_ALIGNMENT): Likewise. (ix86_incoming_stack_boundary): Likewise. (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed. (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG. (CAN_ELIMINATE): Defined with ix86_can_eliminate. (machine_function): Remove force_align_arg_pointer. * config/i386/i386.md (BX_REG): New. (R13_REG): Likewise. * config/i386/i386.opt (mforce_drap): New. (mincoming-stack-boundary): Likewise. (mstackrealign): Add Init(-1). * config/i386/i386-protos.h (ix86_can_eliminate): New 2008-07-30 H.J. Lu <hongjiu.lu@intel.com> * doc/extend.texi: Update force_align_arg_pointer. * doc/invoke.texi: Document -mincoming-stack-boundary. Update -mstackrealign. * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro. (INCOMING_STACK_BOUNDARY): Likewise. (TARGET_UPDATE_STACK_BOUNDARY): New target hook. (TARGET_GET_DRAP_RTX): Likewise. From-SVN: r138335
2008-07-30re PR rtl-optimization/36929 (internal compiler error: Segmentation fault)Andreas Schwab2-224/+228
PR rtl-optimization/36929 * dse.c (replace_inc_dec): Use emit_insn_before instead of add_insn_before and fix argument order. (replace_inc_dec_mem): Handle NULL rtx. From-SVN: r138333
2008-07-30Resync.Arnaud Charlet1-0/+21
From-SVN: r138332
2008-07-30g-pehage.adb: Remove a limitation on the length of the words handled by the ↵Laurent Pautet2-88/+176
minimal perfect... 2008-07-30 Laurent Pautet <pautet@adacore.com> * g-pehage.adb: Remove a limitation on the length of the words handled by the minimal perfect hash function generator. * g-pehage.ads: Detail the use of subprograms Insert, Initialize, Compute and Finalize. Fix some typos. From-SVN: r138331
2008-07-30sem_ch8.adb: Minor reformattingRobert Dewar1-1/+2
2008-07-30 Robert Dewar <dewar@adacore.com> * sem_ch8.adb: Minor reformatting From-SVN: r138330
2008-07-30exp_util.ads (Find_Prim_Op): Document that Program_Error is raised if no ↵Robert Dewar2-1/+11
primitive operation is found. 2008-07-30 Robert Dewar <dewar@adacore.com> * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised if no primitive operation is found. * exp_util.adb: (Find_Prim_Op): Add comments for previous change From-SVN: r138329
2008-07-30exp_ch9.adb: Minor reformattingRobert Dewar1-16/+16
2008-07-30 Robert Dewar <dewar@adacore.com> * exp_ch9.adb: Minor reformatting From-SVN: r138328
2008-07-30arm.c (arm_compute_static_chain_stack_bytes): New function.Andrew Jenner2-62/+79
* config/arm/arm.c (arm_compute_static_chain_stack_bytes): New function. (arm_compute_initial_elimination_offset): Use it. (arm_compute_save_reg_mask): Include static chain save slot when calculating alignment. (arm_get_frame_offsets): Ditto. (thumb1_compute_save_reg_mask): Ensure we have a low register saved that we can use to decrement the stack when the stack decrement could be too big for an immediate value in a single insn. (thumb1_expand_prologue): Avoid using r12 for stack decrement. From-SVN: r138327
2008-07-30Resync.Arnaud Charlet1-0/+82
From-SVN: r138325
2008-07-30einfo.adb: Flag245 is now used.Hristian Kirtchev7-593/+849
2008-07-30 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb: Flag245 is now used. (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion check to include functions. (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to include functions. (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive to the list of displayed flags. * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and Wrapped_Entity. These two flags are now present in functions. New flag Is_Private_Primitive. (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms. * exp_ch9.adb: (Build_Wrapper_Bodies): New subprogram. (Build_Wrapper_Body): The spec and body have been moved to in Build_Wrapper_ Bodies. Code cleanup. (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup. Wrappers are now generated for primitives declared between the private and full view of a concurrent type that implements an interface. (Build_Wrapper_Specs): New subprogram. (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body creation mechanism with a call to Build_Wrapper_Bodies. (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the wrapper spec creation mechanism with a call to Build_Wrapper_Specs. (Expand_N_Task_Body): Replace the wrapper body creation mechanism with a call to Build_Wrapper_Bodies. (Expand_N_Task_Type_Declaration): Replace the wrapper spec creation mechanism with a call to Build_Wrapper_Specs. (Is_Private_Primitive_Subprogram): New subprogram. (Overriding_Possible): Code cleanup. (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup. * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9. * sem_ch3.adb: Add with and use clause for Exp_Ch9. (Process_Full_View): Build wrapper specs for all primitives that belong to a private view completed by a concurrent type implementing an interface. * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram is a primitive of a concurrent type with a private view that implements an interface, try to find the proper spec. (Analyze_Subprogram_Declaration): Mark a subprogram as a private primitive if the type of its first parameter is a non-generic tagged private type. (Analyze_Subprogram_Specification): Code reformatting. (Disambiguate_Spec): New routine. (Find_Corresponding_Spec): Add a flag to controll the output of errors. (Is_Private_Concurrent_Primitive): New routine. * sem_ch6.ads: (Find_Corresponding_Spec): Add a formal to control the output of errors. From-SVN: r138324
2008-07-30uintp.adb (UI_GCD): Fix potential overflowRobert Dewar1-1/+1
2008-07-30 Robert Dewar <dewar@adacore.com> * uintp.adb (UI_GCD): Fix potential overflow From-SVN: r138323
2008-07-30sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute as a ↵Ed Schonberg2-21/+46
actual in an instance... 2008-07-30 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute as a actual in an instance, check for a missing attribute to prevent program_error on an illegal program. * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program error if primitive is not found, so that exception can be handled elsewhere on illegal programs. From-SVN: r138322
2008-07-30rtsfind.adb (Check_RPC): Check version consistency even when not generating ↵Thomas Quinot1-38/+33
RCI stubs. 2008-07-30 Thomas Quinot <quinot@adacore.com> * rtsfind.adb (Check_RPC): Check version consistency even when not generating RCI stubs. Provide more detailed error message in case of mismatch. From-SVN: r138321
2008-07-30gnatlink.adb: Minor reformattingRobert Dewar1-0/+2
2008-07-30 Robert Dewar <dewar@adacore.com> * gnatlink.adb: Minor reformatting From-SVN: r138320
2008-07-30re PR tree-optimization/36967 (segfault in is_gimple_real_type with ↵Richard Guenther4-2/+39
-fpredictive-commoning -ffast-math) 2008-07-30 Richard Guenther <rguenther@suse.de> PR tree-optimization/36967 * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p. Release defs of statements we remove. * gfortran.dg/pr36967.f: New testcase. From-SVN: r138318
2008-07-30arm.c (arm_expand_prologue): Use 0-length rtvec instead of NULL_RTVEC.Nathan Froyd2-1/+8
* config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec instead of NULL_RTVEC. From-SVN: r138317