PR rtl-opt/33721
* explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
required_align, tidy the code a bit. Emit split_stack code in the
right place. Mark the return value with the alignment properly.
* expr.h (allocate_dynamic_stack_space): Update decl.
* builtins.c (expand_builtin_apply): Update call to
allocate_dynamic_stack_space.
(expand_builtin_alloca): Likewise. Remove TARGET parameter.
* calls.c (initialize_argument_information): Update call to
allocate_dynamic_stack_space.
(expand_call): Likewise.
* cfgexpand.c (get_decl_align_unit): Don't limit alignment.
Don't update_stack_alignment here.
(alloc_stack_frame_space): Make ALIGN unsigned.
(stack_var_cmp): Sort by alignment too.
(partition_stack_vars): Don't merge large and small alignment vars.
(expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
Take care when BASE is not virtual_stack_vars_rtx.
(expand_stack_vars): Allocate dynamic stack space for large
alignment variables.
(expand_one_stack_var): Update all to expand_one_stack_var_at.
(defer_stack_allocation): True for large alignment vars.
(update_stack_alignment): Merge into ...
(expand_one_var): ... here.
(gimple_expand_cfg): Place code from expand_stack_vars.
From-SVN: r165240
2010-10-09 Richard Guenther <rguenther@suse.de>
PR lto/45956
* lto-streamer-in.c (lto_register_var_decl_in_symtab):
Properly check if a decl is an automatic var.
* gcc.dg/lto/20101009-2_0.c: New testcase.
* gcc.dg/lto/20101009-2_1.c: Likewise.
* gcc.dg/lto/20101009-2_2.c: Likewise.
From-SVN: r165235
2010-10-09 Richard Guenther <rguenther@suse.de>
PR lto/45947
* tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
* g++.dg/lto/20101009-1_0.C: New testcase.
From-SVN: r165234
* config/avr/avr-protos.h (function_arg): Delete.
(function_arg_advance): Delete.
* config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/avr/avr.c (function_arg): Rename to...
(avr_function_arg): ...this. Make static. Take a const_tree and
a bool.
(function_arg_advance): Rename to...
(avr_function_arg_advance): ...this. Make static. Take a
const_tree and a bool.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
From-SVN: r165226
2010-10-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/std/future (_Result_alloc): Derive from _Alloc,
exploit the Empty Base Optimization.
From-SVN: r165194
2010-10-08 Richard Guenther <rguenther@suse.de>
* lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
Re-construct BLOCK_VARS.
(lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
* lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
* tree.c (free_lang_data_in_block): Remove.
(free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
Do not touch the BLOCK tree.
* expr.c (expand_expr_real_1): Allow externals.
From-SVN: r165191
2010-10-08 Richard Guenther <rguenther@suse.de>
* lto-streamer-out.c (lto_output_ts_block_tree_pointers):
Do not output BLOCK_SUBBLOCKS.
* lto-streamer-in.c (lto_input_ts_block_tree_pointers):
Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
Re-construct BLOCK_SUBBLOCKS of parent block.
(lto_input_ts_binfo_tree_pointers): Reserve exact space needed
for BINFO_BASE_ACCESSES.
From-SVN: r165190
* config/s390/s390-protos.h (s390_function_arg_advance): Delete.
(s390_function_arg): Delete.
* config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/s390/s390.c (s390_function_arg_float): Take a const_tree.
(s390_function_arg_integer): Likewise.
(s390_function_arg_advance): Make static. Take a const_tree and
a bool.
(s390_function_arg): Likewise.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
From-SVN: r165180
* config/spu/spu-protos.h (spu_function_arg): Delete.
* config/spu/spu.h (FUNCTION_ARG): Delete.
(FUNCTION_ARG_ADVANCE): Move code to ...
* config/spu/spu.c (spu_function_arg_advance): New function.
(spu_function_arg): Make static. Take a const_tree and a bool.
(spu_setup_incoming_varargs): Call spu_function_arg_advance.
(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
From-SVN: r165179
* tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
(init_vn_nary_op_from_op): New function.
(init_vn_nary_op_from_stmt): New function.
(vn_nary_op_lookup_1): New function.
(sizeof_vn_nary_op): New function.
(alloc_vn_nary_op_noinit): New function.
(alloc_vn_nary_op): New function.
(vn_nary_op_insert_into): New function.
(vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
(vn_nary_op_lookup): Likewise.
(vn_nary_op_lookup_stmt): Likewise.
(vn_nary_op_insert_pieces): Likewise.
(vn_nary_op_insert): Likewise.
(vn_nary_op_insert_stmt): Likewise.
(copy_nary): Likewise.
(set_value_id_for_result): New function.
(set_hashtable_value_ids): Call it.
From-SVN: r165178
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Check_Duplicate_Pragma): Check for entity match
* gcc-interface/Make-lang.in: Update dependencies.
* einfo.ads: Minor reformatting.
2010-10-08 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, sem_aux.adb,
sem_aux.ads, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
exp_ch3.adb: Change Is_Inherently_Limited_Type to
Is_Immutably_Limited_Type to accord with new RM terminology.
* sem_aux.adb (Is_Immutably_Limited_Type): A type that is a descendant
of a formal limited private type is not immutably limited in a generic
body.
From-SVN: r165175
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_cat.adb (Check_Categorization_Dependencies): Remote types
packages can depend on preleborated packages.
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Pragmas
Interrupt_Handler and Attach_Handler not allowed in generics.
From-SVN: r165172
2010-10-08 Robert Dewar <dewar@adacore.com>
* ali.adb: Set Allocator_In_Body if AB parameter present on M line
* ali.ads (Allocator_In_Body): New flag
* bcheck.adb (Check_Consistent_Restrictions): Handle case of main
program violating No_Allocators_After_Elaboration restriction.
* gnatbind.adb (No_Restriction_List): Add entries for
No_Anonymous_Allocators, and No_Allocators_After_Elaboration.
* lib-load.adb: Initialize Has_Allocator flag
* lib-writ.adb: Initialize Has_Allocator flag
(M_Parameters): Set AB switch if Has_Allocator flag set
* lib-writ.ads: Document AB flag on M line
* lib.adb (Has_Allocator): New function
(Set_Has_Allocator): New procedure
* lib.ads (Has_Allocator): New function
(Set_Has_Allocator): New procedure
(Has_Allocator): New flag in Unit_Record
* sem_ch4.adb (Analyze_Allocator): Add processing for
No_Allocators_After_Elaboration.
From-SVN: r165171
2010-10-08 Geert Bosch <bosch@adacore.com>
* a-textio.adb (Get_Line): Rewrite to use fgets instead of fgetc.
2010-10-08 Javier Miranda <miranda@adacore.com>
* sem_prag.adb (Analyze_Pragma): Relax semantic rule of
Java_Constructors because in the JRE library we generate occurrences
in which the "this" parameter is not the first formal.
From-SVN: r165170
2010-10-08 Robert Dewar <dewar@adacore.com>
* par-ch3.adb: Minor reformatting.
2010-10-08 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_DT): Do not generate dispatch tables for CIL/Java
types.
2010-10-08 Robert Dewar <dewar@adacore.com>
* par-ch8.adb (P_Use_Type_Clause): Recognize ALL keyword in Ada 2012
mode.
* sinfo.adb (Use_Type_Clause): Add All_Present flag.
* sinfo.ads (Use_Type_Clause): Add All_Present flag.
* s-rident.ads: Add entry for No_Allocators_After_Elaboration,
No_Anonymous_Allocators.
2010-10-08 Vincent Celier <celier@adacore.com>
* bindgen.adb (Gen_Restrictions_Ada): No new line after last
restriction, so that the last comma is always replaced with a left
parenthesis.
2010-10-08 Javier Miranda <miranda@adacore.com>
* sem_prag.adb (Analyze_Pragma): Add specific check on the type of the
first formal of delegates.
From-SVN: r165169
2010-10-08 Robert Dewar <dewar@adacore.com>
* sem_aggr.adb: Minor reformatting.
2010-10-08 Robert Dewar <dewar@adacore.com>
* exp_imgv.adb (Expand_Image_Attribute): Handle special calling
sequence for soft hyphen for Character'Image case.
* rtsfind.ads (Image_Character_05): New entry
* s-imgcha.adb (Image_Character_05): New procedurew
* s-imgcha.ads (Image_Character_05): New procedure
* s-imgwch.adb (Image_Wide_Character): Deal with Ada 2005 soft hyphen
case.
* s-valcha.adb (Value_Character): Recognize SOFT_HYPHEN for 16#AD#
* sem_attr.adb (Eval_Attribute, case Width): Handle soft_hyphen name
properly.
From-SVN: r165168