Age | Commit message (Collapse) | Author | Files | Lines |
|
PR rtl-optimization/40667
* defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
* doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
* config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
* config/i386/i386.c (ix86_minimum_alignment): New function.
* config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
* cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
* emit-rtl.c (gen_reg_rtx): Likewise.
* function.c (assign_parms): Likewise. If nominal_type needs
bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
rather than passed_type's alignment.
From-SVN: r149513
|
|
PR target/40668
* function.c (assign_parm_setup_stack): Adjust
MEM_OFFSET (data->stack_parm) if promoted_mode is different
from nominal_mode on big endian.
* gcc.c-torture/execute/pr40668.c: New test.
From-SVN: r149511
|
|
2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
* cgraphunit.c: Replace %J by an explicit location. Update all
calls.
* c-decl.c: Likewise.
* function.c: Likewise.
* varasm.c: Likewise.
* tree-ssa.c: Likewise.
* c-common.c: Likewise.
* tree-cfg.c: Likewise.
* config/spu/spu.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/v850/v850.c: Likewise.
java/
* class.c: Replace %J by an explicit location. Update all calls.
objc/
* objc-act.c: Replace %J by an explicit location. Update all
calls.
cp/
* init.c: Replace %J by an explicit location. Update all calls.
* decl.c: Likewise.
* typeck2.c: Likewise.
* pt.c: Likewise.
* name-lookup.c: Likewise.
From-SVN: r149312
|
|
PR bootstrap/40347
* function.c (reposition_prologue_and_epilogue_notes): If epilogue
contained no insns, reposition note before last insn.
From-SVN: r149158
|
|
2009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
* alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
JUMP_TABLE_DATA_P predicates where applicable.
* auto-inc-dec.c: Ditto.
* builtins.c: Ditto.
* caller-save.c: Ditto.
* calls.c: Ditto.
* cfgcleanup.c: Ditto.
* cfglayout.c: Ditto.
* cfgrtl.c: Ditto.
* combine.c: Ditto.
* combine-stack-adj.c: Ditto.
* cse.c: Ditto.
* cselib.c: Ditto.
* dbxout.c: Ditto.
* df-scan.c: Ditto.
* dse.c: Ditto.
* dwarf2asm.c: Ditto.
* dwarf2out.c: Ditto.
* emit-rtl.c: Ditto.
* except.c: Ditto.
* explow.c: Ditto.
* expmed.c: Ditto.
* expr.c: Ditto.
* final.c: Ditto.
* function.c: Ditto.
* fwprop.c: Ditto.
* gcse.c: Ditto.
* genpreds.c: Ditto.
* genrecog.c: Ditto.
* ifcvt.c: Ditto.
* ira-costs.c: Ditto.
* ira-lives.c: Ditto.
* jump.c: Ditto.
* loop-iv.c: Ditto.
* lower-subreg.c: Ditto.
* modulo-sched.c: Ditto.
* optabs.c: Ditto.
* postreload.c: Ditto.
* print-rtl.c: Ditto.
* recog.c: Ditto.
* reginfo.c: Ditto.
* regmove.c: Ditto.
* reload1.c: Ditto.
* reload.c: Ditto.
* reorg.c: Ditto.
* rtlanal.c: Ditto.
* rtl.c: Ditto.
* sched-vis.c: Ditto.
* sdbout.c: Ditto.
* sel-sched-ir.c: Ditto.
* simplify-rtx.c: Ditto.
* targhooks.c: Ditto.
* var-tracking.c: Ditto.
* vmsdbgout.c: Ditto.
From-SVN: r148786
|
|
gcc/java/
* java-gimplify.c (java_gimplify_block): New argument to
build_empty_stmt.
* expr.c (force_evaluation_order): Same.
* typeck.c: Add location to build_decl or PUSH_FIELD calls.
* class.c: Same.
* decl.c: Same.
* jcf-parse.c: Same.
* constants.c: Same.
* resource.c: Same.
* except.c: Same.
* builtins.c: Same.
* expr.c: Same.
* java-tree.h (PUSH_FIELD): Add location field.
gcc/objc/
* objc-act.c (finish_var_decl): Pass location to finish_decl.
(objc_get_parm_info): Same.
(get_super_receiver): Same.
* objc-act.c (objc_build_component_ref): Pass location to
build_compound_ref.
(build_module_initializer_routine): Pass location to
c_end_compound_stmt.
(objc_generate_static_init_call): Pass location to build_stmt.
(build_typed_selector_reference): New location argument.
(build_selector_reference): Same.
(objc_substitute_decl): Pass location to build_array_ref.
(next_sjlj_build_try_catch_finally): Pass location to build_stmt.
(objc_begin_catch_clause): Same.
(objc_finish_try_stmt): Same.
(objc_finish_catch_clause): Pass location to c_end_compound_stmt.
(objc_build_throw_stmt): New argument.
(generate_shared_structures): Pass location to build_c_cast.
(objc_build_message_expr): Use local location.
(objc_finish_message_expr): Use input_location.
(build_objc_method_call): New argument.
(objc_build_selector_expr): Same.
(get_super_receiver): Pass location to build_c_cast,
build_modify_expr, build_compound_expr.
* objc-act.c: Add location to all calls to start_struct, build_decl,
finish_struct.
gcc/
* tree-pretty-print.c (dump_generic_node): Dump column numbers.
* gimple-pretty-print.c (dump_gimple_stmt): Same.
* gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
created.
* c-parser.c (c_parser_binary_expression): Use current column while
building binary operations.
* common.opt (fshow-column): Enable by default.
* tree-vrp.c (check_array_ref): Use warning_at.
(check_array_bounds): Use location from call back if expr has no
location.
* tree.h: Add location argument to maybe_fold_*.
* tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
(maybe_fold_offset_to_array_ref): Add location argument and use it.
(maybe_fold_offset_to_component_ref): Same.
(maybe_fold_offset_to_reference): Same.
(maybe_fold_offset_to_address): Same.
(maybe_fold_stmt_indirect): Same.
(maybe_fold_stmt_addition): Same.
(fold_stmt_r): Pass location to maybe_fold_*.
(fold_gimple_assign): Same.
* c-tree.h: Add location argument to finish_decl,
default_function_array_conversion, store_init_value.
* c-decl.c (define_label): Use error_at.
(c_make_fname_decl): Pass location to finish_decl.
(finish_decl): New location argument.
(build_compound_literal): Pass location to store_init_value.
(grokdeclarator): Pass location to finish_decl.
(grokfield): Same.
* c-typeck.c (array_to_pointer_conversion): New location argument.
(function_to_pointer_conversion): Same.
(default_function_array_conversion): Same.
(parser_build_unary_op): Pass location to overflow_warning.
(parser_build_binary_op): Same. Use warning_at.
(build_unary_op): Pass location to array_to_pointer_conversion.
(build_c_cast): Pass location to digest_init.
(build_modify_expr): New location argument.
(convert_for_assignment): Same.
(store_init_value): Same.
(digest_init): Same.
(output_init_element): Pass location to digest_init and
array_to_pointer_conversion.
(c_finish_return): Pass location to convert_for_assignment.
* gimplify.c (gimplify_conversion): Pass location to
maybe_fold_offset_to_address.
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
to maybe_fold_stmt_addition.
* c-omp.c (c_finish_omp_atomic): Pass new location to
build_modify_expr.
(c_finish_omp_for): Same.
* c-common.c (overflow_warning): New argument.
* c-common.h: New argument to build_modify_expr, overflow_warning.
* c-parser.c (c_parser_declaration_or_fndef): Pass location to
finish_decl.
(c_parser_initializer): Pass location to
default_function_array_conversion.
(c_parser_initelt): Same.
(c_parser_initval): Same.
(c_parser_asm_operands): Same.
(c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
(c_parser_conditional_expression): Same.
(c_parser_binary_expression): Add location info to stack. Use it.
(c_parser_unary_expression): Pass location to
default_function_array_conversion, parser_build_unary_op,
build_indirect_ref, c_parser_postfix_expression_after_primary.
(c_parser_postfix_expression_after_primary): New location argument.
Use it.
(c_parser_expression_conv): Pass location to
default_function_array_conversion.
(c_parser_expr_list): Same.
(c_parser_omp_atomic): Same.
(c_parser_omp_for_loop): Same.
* c-tree.h: (struct c_declarator): Add comment to id_loc.
(build_array_declarator): New argument.
* c-decl.c (build_array_declarator): Add location argument.
(grokdeclarator): Set id_loc for cdk_array.
* c-parser.c (c_parser_direct_declarator_inner): Pass location to
build_array_declarator.
* tree.c (build_omp_clause): Add location argument.
* tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
(OMP_CLAUSE_LOCATION): New macro.
(struct tree_omp_clause): Add location field.
(build_omp_clause): Add argument.
* testsuite/gcc.dg/gomp/for-1.c: Fix column.
* cp/pt.c (tsubst_omp_for_iterator): Pass location to
build_omp_clause.
* cp/parser.c (cp_parser_omp_var_list_no_open): Same.
(cp_parser_omp_clause_collapse): Same.
(cp_parser_omp_clause_default): Same.
(cp_parser_omp_clause_if): Same.
(cp_parser_omp_clause_nowait): Same.
(cp_parser_omp_clause_num_threads): Same.
(cp_parser_omp_clause_ordered): Same.
(cp_parser_omp_clause_schedule): Same.
(cp_parser_omp_clause_untied): Same.
(cp_parser_omp_for_loop): Same.
(cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
* c-tree.h (c_start_case): Add location argument.
(c_process_expr_stmt): Same.
(c_finish_goto_*): Same.
* tree-parloops.c (initialize_reductions): Pass location to
build_omp_clause.
(create_parallel_loop): Same.
* fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
(gfc_trans_omp_reduction_list): Same.
(gfc_trans_omp_clauses): Same.
(gfc_trans_omp_do): Same.
* c-typeck.c (c_finish_goto_label): Same.
(c_finish_goto_ptr): New location argument.
(c_start_case): Same.
(emit_side_effect_warnings): Same.
(c_process_expr_stmt): Same.
(c_finish_stmt_expr): Same.
(c_finish_omp_clauses): Use error_at instead of error.
* gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
build_omp_clause.
* c-omp.c (c_split_parallel_clauses): New location argument.
* tree-nested.c (convert_nonlocal_reference_stmt): Pass location
to build_omp_clause.
(convert_local_reference_stmt): Same.
(convert_gimple_call): Same.
* c-common.h (c_split_parallel_clauses): New argument.
* c-parser.c (c_parser_statement_after_labels): Pass location to
c_finish_goto_label.
(c_parser_switch_statement): Pass location to c_start_case.
(c_parser_for_statement): Pass location to c_finish_expr_stmt,
and c_process_expr_stmt.
(c_parser_omp_variable_list): Add location argument.
(c_parser_omp_clause_collapse): Pass location to
build_omp_clause.
(c_parser_omp_clause_default): Same.
(c_parser_omp_clause_if): Same.
(c_parser_omp_clause_num_threads): Same.
(-c_parser_omp_clause_ordered): Same.
(c_parser_omp_clause_reduction): Pass location to
c_parser_omp_variable_list.
(c_parser_omp_clause_schedule): Pass location to build_omp_clause.
(c_parser_omp_clause_untied): Same.
(c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
(c_parser_omp_parallel): Pass location to
c_split_parallel_clauses.
* c-tree.h (check_for_loop_decls, undeclared_variable,
build_component_ref, build_array_ref, build_external_ref,
c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
build_conditional_expr, build_compound_expr, c_cast_expr,
build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
argument.
* c-semantics.c (build_stmt): Same.
(build_case_label): Same.
* c-decl.c (c_finish_incomplete_decl): Pass location on down.
(undeclared_variable): New argument.
(make_label): Same.
(lookup_label): Pass location on down.
(define_label): Same.
(finish_decl): Same.
(build_compound_literal): Same.
(finish_struct): Same.
(finish_function): Do not set location here.
(check_for_loop_decls): New argument.
* tree.c (save_expr): Set location.
(build_empty_stmt): New argument.
* tree.h (build_empty_stmt): New argument to build_empty_stmt.
(CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
* builtins.c (gimplify_va_arg_expr): Use locations.
(expand_builtin_sync_operation): Same.
* c-typeck.c (build_component_ref): New argument.
(build_array_ref): Same.
(build_external_ref): Same.
(c_expr_sizeof_expr): Same.
(c_expr_sizeof_type): Same.
(parser_build_unary_op): Same.
(build_conditional_expr): Same.
(build_compound_expr): Pass location on down.
(build_compound_expr): New argument.
(build_c_cast): Same.
(c_cast_expr): Same.
(build_asm_expr): Same.
(c_finish_return): Same.
(c_process_expr_stmt): Pass location on down.
(c_finish_stmt_expr): New argument.
(push_clenaup): Same.
(c_finish_omp_parallel): Same.
(c_finish_omp_task): Same.
* gimplify.c (gimplify_call_expr): Pass location on down.
* c-omp.c (c_finish_omp_master): New argument.
(c_finish_omp_critical): Same.
(c_finish_omp_ordered): Same.
(c_finish_omp_barrier): Same.
(-c_finish_omp_taskwait): Same.
(c_finish_omp_atomic): Same.
(c_finish_omp_flush): Same.
* tree-inline.c (copy_tree_body_r): Pass location on down.
(inline_forbidden_p): Remove use of input_location.
* c-gimplify.c (c_build_bind_expr): New argument.
* c-common.c (c_common_truthvalue_conversion): Pass location on down.
(c_sizeof_or_alignof_type): New argument.
(c_alignof_expr): Same.
(build_va_arg): Same.
(c_add_case_label): Same.
* c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
New argument.
* stub-objc.c (objc_build_selector_expr): Same.
(objc_build_throw_stmt): Same.
* c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
(c_parser_initelt): Same.
(c_parser_compound_statement): Same.
(c_parser_compound_statement_nostart): Same.
(c_parser_label): Same.
(c_parser_statement_after_labels): Same.
(c_parser_if_body): Same.
(c_parser_else_body): Same.
(c_parser_if_statement): Same.
(c_parser_switch_statement): Same.
(c_parser_while_statement): Same.
(c_parser_do_statement): Same.
(c_parser_for_statement): Same.
(c_parser_asm_statement): Same.
(c_parser_conditional_expression): Same.
(c_parser_binary_expression): Same.
(c_parser_cast_expression): Same.
(c_parser_unary_expression): Same.
(c_parser_sizeof_expression): Same.
(c_parser_alignof_expression): Same.
(c_parser_postfix_expression): Same.
(c_parser_expression): Same.
(c_parser_objc_receiver): Same.
(c_parser_omp_variable_list): Same.
(c_parser_omp_structured_block): Same.
(c_parser_omp_atomic): New argument.
(c_parser_omp_barrier): Same.
(c_parser_omp_critical): Same.
(c_parser_omp_flush): Pass location on down.
(c_parser_omp_for_loop): New argument.
(c_parser_omp_for): Same.
(c_parser_omp_master): Same.
(c_parser_omp_ordered): Same.
(c_parser_omp_sections_scope): Same.
(c_parser_omp_sections): Same.
(c_parser_omp_parallel): Same.
(c_parser_omp_single): Same.
(c_parser_omp_task): Same.
(c_parser_omp_taskwait): Pass location on down.
(c_parser_omp_construct): Same.
(c_parser_omp_threadprivate): Same.
* dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
config/i386/i386.c, stmt.c:
Add location argument to the following function definitions and/or
function calls: build_decl, objcp_start_struct, objcp_finish_struct,
start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
do_case, c_finish_bc_stmt, build_compound_literal,
build_function_call.
* c-decl.c (build_compound_literal): Add location argument.
Make all diagnostic calls use location.
(start_struct): Same.
(finish_struct): Same.
(start_enum): Same.
(build_enumerator): Same.
(start_function): Same.
(grokdeclarator): Make all diagnostic calls use location.
(store_parm_decls_oldstyle): Same.
* c-typeck.c (build_function_call): Add location argument.
Make all diagnostic calls use location.
(do_case): Same.
(c_finish_bc_stmt): Same.
* tree-nested.c (get_trampoline_type): Add argument.
Pass location to build_decl.
(lookup_tramp_for_decl): Pass location to get_trampoline_type.
* rtl.h (RTL_LOCATION): New.
* c-common.c (c_add_case_label): Add location argument.
Make all diagnostic calls use location.
* c-common.h: Add location argument to make_fname_decl, do_case,
c_add_case_label, build_function_call, resolve_overloaded_builtin.
* c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
Set it appropriately for every case. Pass enum_loc to start_enum
call. Pass value_loc first to build_enumerator. Pass enum_loc to
parser_xref_tag.
(c_parser_struct_or_union_specifier): Save location. Use it for
start_struct, finish_struct, and parser_xref_tag.
gcc/testsuite/
* gcc.dg/old-style-prom-3.c: Add column info.
* gcc.dg/overflow-warn-1.c
* gcc.dg/gomp/pr27415.c
* gcc.dg/gomp/for-1.c: Same.
* gcc.dg/enum-compat-1.c: Same.
* gcc.dg/c99-tag-3.c: Same.
* gcc.dg/Wredundant-decls-2.c: Same.
* gcc.dg/func-ptr-conv-1.c: Same.
* gcc.dg/asm-wide-1.c: Same.
* gcc.dg/nofixed-point-2.c: Same.
* gcc.dg/cpp/line3.c: Same.
* gcc.dg/array-10.c: Same.
* gcc.dg/c99-vla-jump-1.c: Same.
* gcc.dg/pr20368-1.c: Same.
* gcc.dg/Wshadow-3.c: Same.
* gcc.dg/c90-const-expr-8.c: Same.
* gcc.dg/label-decl-2.c: Same.
* gcc.dg/dremf-type-compat-2.c: Same.
* gcc.dg/c90-const-expr-5.c: Same.
* gcc.dg/builtins-30.c: Same.
* gcc.dg/Warray-bounds.c: Same.
* gcc.dg/Wcxx-compat-2.c: Same.
* gcc.dg/tree-ssa/col-1.c: Same.
* gcc.dg/old-style-prom-2.c: Same.
* gcc.dg/cast-function-1.c: Same.
* gcc.dg/pr15698-1.c: Same.
* gcc.dg/dremf-type-compat-3.c: Same.
* gcc.dg/vla-8.c: Same.
* gcc.dg/gomp/pr27415.c: Move firstprivate diagnostics to correct
line.
* gcc.dg/label-decl-2.c: Move label diagnostic to correct line.
* gcc.dg/old-style-prom-3.c: Check for error on the correct line.
* gcc.dg/enum-compat-1.c: Same.
* gcc.dg/dremf-type-compat-2.c: Same.
* gcc.dg/old-style-prom-2.c: Same.
* gcc.dg/pr15698-1.c: Same.
* gcc.dg/pr20368-1.c: Same.
* gcc.dg/dremf-type-compat-3.c: Same.
* gcc.dg/builtins-30.c: Same. Test for columns.
gcc/objcp/
* objcp-decl.h (c_end_compound_stmt): New argument.
* objcp-decl.c (objcp_start_struct): Add argument.
(objcp_finish_struct): Same.
gcc/cp/
* typeck.c (cp_build_binary_op): Pass location to overflow_warning.
(build_modify_expr): New arg.
* semantics.c (finish_unary_op_expr): Pass location to
overflow_warning.
(handle_omp_for_class_iterator): Pass location to build_modify_expr.
* typeck.c (cxx_sizeof_or_alignof_type): Pass location to
c_sizeof_or_alignof_type.
(build_array_ref): New argument.
(build_compound_expr): Same.
(build_const_cast): Same.
(build_ptrmemfunc): Pass location to build_c_cast.
* init.c (avoid_placement_new_aliasing): Pass location to
build_stmt.
(build_vec_delete_1): Pass location to cp_build_modify_expr,
build_compound_expr.
* class.c (build_vtbl_ref_1): Pass location to build_array_ref.
* decl.c (poplevel): Pass location to c_build_bind_expr.
(finish_case_label): Pass location to build_case_label.
(finish_constructor_body): Same.
(finish_destructor_body): Pass location to build_stmt.
(cxx_maybe_build_cleanup): Same, but to build_compound_expr.
* call.c (build_new_op): Pass location to build_array_ref.
(build_x_va_arg): Pass location to build_va_arg.
* except.c (expand_end_catch_block): Pass location to
build_stmt.
* cp-tree.h (build_array_ref): New argument.
(build_compound_expr): Same.
(build_c_cast): Same.
* cp-gimplify.c (gimplify_if_stmt): Pass location on down.
(gimplify_switch_stmt): Same.
* typeck2.c (split_nonconstant_init_1): Same.
* pt.c (tsubst_copy): Same.
* semantics.c (add_decl_expr): Same.
(do_poplevel): Same.
(push_cleanup): Same.
(finish_goto_stmt): Same.
(finish_expr_stmt): Same.
(begin_if_stmt): Same.
(begin_while_stmt): Same.
(begin_do_stmt): Same.
(finish_return_stmt): Same.
(begin_for_stmt): Same.
(finish_break_stmt): Same.
(finish_continue_stmt): Same.
(begin_switch_stmt): Same.
(begin_try_block): Same.
(begin_handler): Same.
(finish_asm_stmt): Same.
(finish_label_stmt): Same.
(finish_stmt_expr_expr): Same.
(finalize_nrv_r): Same.
(finish_omp_atomic): Same.
* name-lookup.c (do_using_directive): Same.
* decl2.c (grok_array_decl): Same.
* parser.c (cp_parser_cast_expression): Same.
(cp_parser_selection_statement): Same.
(cp_parser_implicitly_scoped_statement): Same.
(cp_parser_objc_selector_expression): Same.
(cp_parser_objc_synchronized_statement): Same.
(cp_parser_objc_throw_statement): Same.
(cp_parser_omp_critical): Same.
(cp_parser_omp_master): Same.
* typeck.c (build_function_call): Add location argument.
* init.c: Add location argument to all build_decl calls.
* class.c: Same.
* method.c: Same.
* rtti.c: Same.
* tree.c: Same.
* pt.c: Same.
* semantics.c: Same.
* lex.c: Same.
* decl2.c: Same.
* cp-gimplify.c: Same.
* decl.c: Same.
(cp_make_fname_decl): Add location argument. Pass location ot
build_decl.
(finish_case_label): Same.
* cp-tree.h (finish_case_label): Add location argument.
* parser.c (cp_parser_label_for_labeled_statement): Pass location to
finish_case_label.
gcc/fortran/
* trans-array.c (gfc_trans_allocate_array_storage): Pass
location on down.
(gfc_trans_array_constructor_value): Same.
(gfc_trans_scalarized_loop_end): Same.
(gfc_conv_ss_startstride): Same.
(gfc_trans_g77_array): Same.
(gfc_trans_dummy_array_bias): Same.
(gfc_conv_array_parameter): Same.
(structure_alloc_comps): Same.
* trans-expr.c (gfc_conv_function_call): Same.
(fill_with_spaces): Same.
(gfc_trans_string_copy): Same.
(gfc_trans_scalar_assign): Same.
* trans-stmt.c (gfc_trans_goto): Same.
(gfc_trans_if_1): Same.
(gfc_trans_simple_do): Same.
(gfc_trans_do): Same.
(gfc_trans_do_while): Same.
(gfc_trans_logical_select): Same.
(gfc_trans_select): Same.
(gfc_trans_forall_loop): Same.
(gfc_trans_nested_forall_loop): Same.
(generate_loop_for_temp_to_lhs): Same.
(generate_loop_for_rhs_to_temp): Same.
(gfc_trans_forall_1): Same.
(gfc_trans_where_assign): Same.
(gfc_trans_where_3): Same.
(gfc_trans_allocate): Same.
* trans.c (gfc_finish_block): Same.
(gfc_trans_runtime_check): Same.
(gfc_call_malloc): Same.
(gfc_allocate_with_status): Same.
(gfc_call_free): Same.
(gfc_deallocate_with_status): Same.
(gfc_call_realloc): Same.
(gfc_trans_code): Same.
* trans-decl.c (gfc_init_default_dt): Same.
(gfc_generate_constructors): Same.
* trans-io.c (gfc_trans_io_runtime_check): Same.
* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same.
(gfc_conv_intrinsic_fdate): Same.
(gfc_conv_intrinsic_ttynam): Same.
(gfc_conv_intrinsic_minmax): Same.
(gfc_conv_intrinsic_minmax_char): Same.
(gfc_conv_intrinsic_anyall): Same.
(gfc_conv_intrinsic_count): Same.
(gfc_conv_intrinsic_arith): Same.
(gfc_conv_intrinsic_minmaxloc): Same.
(gfc_conv_intrinsic_minmaxval): Same.
(gfc_conv_intrinsic_rrspacing): Same.
(gfc_conv_intrinsic_array_transfer): Same.
(gfc_conv_intrinsic_trim): Same.
(gfc_conv_intrinsic_repeat): Same.
From-SVN: r148442
|
|
gcc/
2009-06-12 Joey Ye <joey.ye@intel.com>
PR middle-end/39146
* cfgexpand.c (get_decl_align_unit): Update
max_used_stack_slot_alignment with align instead of
stack_alignment_needed.
* function.c (assign_stack_local_1): Update
max_used_stack_slot_alignment with alignment_in_bits instead
of stack_alignment_needed.
(locate_and_pad_parm): Don't update max_used_stack_slot_alignment
here.
gcc/testsuite/
2009-06-12 Joey Ye <joey.ye@intel.com>
H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/39146
* gcc.target/i386/stackalign/pr39146.c: New.
From-SVN: r148428
|
|
* cfgcleanup.c (try_crossjump_to_edge): Only skip past
NOTE_INSN_BASIC_BLOCK.
* cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
Duplicate NOTE_INSN_EPILOGUE_BEG notes.
* cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
to be deleted.
* dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
add in_use field.
(add_cfi): Disable check redefining cfa away from drap.
(lookup_cfa_1): Add remember argument; handle remember/restore.
(lookup_cfa): Pass remember argument.
(cfa_remember): New.
(compute_barrier_args_size_1): Remove sibcall check.
(dwarf2out_frame_debug_def_cfa): New.
(dwarf2out_frame_debug_adjust_cfa): New.
(dwarf2out_frame_debug_cfa_offset): New.
(dwarf2out_frame_debug_cfa_register): New.
(dwarf2out_frame_debug_cfa_restore): New.
(dwarf2out_frame_debug): Handle REG_CFA_* notes.
(dwarf2out_begin_epilogue): New.
(dwarf2out_frame_debug_restore_state): New.
(dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
DW_CFA_restore_state.
(output_cfi_directive): Likewise.
(convert_cfa_to_fb_loc_list): Likewise.
(dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
* dwarf2out.h: Update.
* emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
(copy_insn_1): Early out for null.
* final.c (final_scan_insn): Call dwarf2out_begin_epilogue
and dwarf2out_frame_debug_restore_state.
* function.c (prologue, epilogue, sibcall_epilogue): Remove.
(prologue_insn_hash, epilogue_insn_hash): New.
(free_after_compilation): Adjust freeing accordingly.
(record_insns): Create hash table if needed; push insns into
hash instead of array.
(maybe_copy_epilogue_insn): New.
(contains): Search hash table instead of array.
(sibcall_epilogue_contains): Remove.
(thread_prologue_and_epilogue_insns): Split eh_return insns
and mark them as epilogues.
(reposition_prologue_and_epilogue_notes): Rewrite epilogue
scanning in terms of basic blocks.
* insn-notes.def (CFA_RESTORE_STATE): New.
* jump.c (returnjump_p_1): Accept EH_RETURN.
(eh_returnjump_p_1, eh_returnjump_p): New.
* reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
CFA_REGISTER, CFA_RESTORE): New.
* rtl.def (EH_RETURN): New.
* rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
* config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
(eh_return_internal): Use eh_return rtx; split w/ epilogue.
* config/i386/i386.c (gen_push): Update cfa state.
(pro_epilogue_adjust_stack): Add set_cfa argument. When true,
add a CFA_ADJUST_CFA note.
(ix86_dwarf_handle_frame_unspec): Remove.
(ix86_expand_prologue): Update cfa state.
(ix86_emit_restore_reg_using_pop): New.
(ix86_emit_restore_regs_using_pop): New.
(ix86_emit_leave): New.
(ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
(ix86_expand_epilogue): Add notes for unwinding the epilogue.
* config/i386/i386.h (struct machine_cfa_state): New.
(ix86_cfa_state): New.
* config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
(eh_return_internal): Merge from eh_return_<mode>,
use eh_return rtx, split w/ epilogue.
From-SVN: r147995
|
|
2009-04-21 Taras Glek <tglek@mozilla.com>
* include/hashtab.h: Update GTY annotations to new syntax
* include/splay-tree.h: Likewise
gcc/ChangeLog
2009-04-21 Taras Glek <tglek@mozilla.com>
* alias.c: Update GTY annotations to new syntax
* basic-block.h: Likewise
* bitmap.h: Likewise
* c-common.h: Likewise
* c-decl.c: Likewise
* c-parser.c: Likewise
* c-pragma.c: Likewise
* c-tree.h: Likewise
* cfgloop.h: Likewise
* cgraph.h: Likewise
* config/alpha/alpha.c: Likewise
* config/arm/arm.h: Likewise
* config/avr/avr.h: Likewise
* config/bfin/bfin.c: Likewise
* config/cris/cris.c: Likewise
* config/darwin.c: Likewise
* config/frv/frv.c: Likewise
* config/i386/i386.c: Likewise
* config/i386/i386.h: Likewise
* config/i386/winnt.c: Likewise
* config/ia64/ia64.h: Likewise
* config/iq2000/iq2000.c: Likewise
* config/mips/mips.c: Likewise
* config/mmix/mmix.h: Likewise
* config/pa/pa.c: Likewise
* config/pa/pa.h: Likewise
* config/rs6000/rs6000.c: Likewise
* config/s390/s390.c: Likewise
* config/sparc/sparc.c: Likewise
* config/xtensa/xtensa.c: Likewise
* cselib.h: Likewise
* dbxout.c: Likewise
* dwarf2out.c: Likewise
* except.c: Likewise
* except.h: Likewise
* fixed-value.h: Likewise
* function.c: Likewise
* function.h: Likewise
* gimple.h: Likewise
* integrate.c: Likewise
* optabs.c: Likewise
* output.h: Likewise
* real.h: Likewise
* rtl.h: Likewise
* stringpool.c: Likewise
* tree-data-ref.c: Likewise
* tree-flow.h: Likewise
* tree-scalar-evolution.c: Likewise
* tree-ssa-address.c: Likewise
* tree-ssa-alias.h: Likewise
* tree-ssa-operands.h: Likewise
* tree.c: Likewise
* tree.h: Likewise
* varasm.c: Likewise
* varray.h: Likewise
* vec.h: Likewise
* coretypes.h: Do not define GTY macro if it is already defined
* doc/gty.texi: Update GTY documentation to new syntax
* gengtype-lex.l: Enforce attribute-like syntax for GTY annotations on structs
* gengtype-parse.c: Likewise
gcc/ada/ChangeLog
2009-04-21 Taras Glek <tglek@mozilla.com>
* gcc-interface/ada-tree.h: Update GTY annotations to new syntax
* gcc-interface/trans.c: Likewise
* gcc-interface/utils.c: Likewise
gcc/cp/ChangeLog
2009-04-21 Taras Glek <tglek@mozilla.com>
* cp-tree.h: Update GTY annotations to new syntax
* decl.c: Likewise
* mangle.c: Likewise
* name-lookup.c: Likewise
* name-lookup.h: Likewise
* parser.c: Likewise
* pt.c: Likewise
* rtti.c: Likewise
* semantics.c: Likewise
* typeck2.c: Likewise
gcc/fortran/ChangeLog
2009-04-21 Taras Glek <tglek@mozilla.com>
* f95-lang.c: Update GTY annotations to new syntax
* trans-intrinsic.c: Likewise
* trans-io.c: Likewise
* trans.h: Likewise
gcc/java/ChangeLog
2009-04-21 Taras Glek <tglek@mozilla.com>
* builtins.c: Update GTY annotations to new syntax
* decl.c: Likewise
* java-tree.h: Likewise
* jcf.h: Likewise
* lang.c: Likewise
gcc/objc/ChangeLog
2009-04-21 Taras Glek <tglek@mozilla.com>
* objc-act.c: Update GTY annotations to new syntax
* objc-act.h: Likewise
libcpp/ChangeLog
2009-04-21 Taras Glek <tglek@mozilla.com>
* include/cpp-id-data.h: Update GTY annotations to new syntax
* include/cpplib.h: Likewise
* include/line-map.h: Likewise
* include/symtab.h: Likewise
From-SVN: r146607
|
|
label for fall-through returns.
* function.c (expand_function_end): Do not emit a jump to the "naked"
return label for fall-through returns.
* except.c (sjlj_emit_function_exit): Always place the call to the
unregister function at the location installed by expand_function_end.
From-SVN: r146570
|
|
gcc/:
Fix enum conversions which are invalid in C++:
* auto-inc-dec.c (attempt_change): Change 0 to SET in function
call.
* calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function
call.
* cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
* dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
* dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function
call.
(dbxout_parms): Likewise.
* df-core.c (df_set_flags): Change changeable_flags parameter to
int.
(df_clear_flags): Likewise.
* df-problems.c (df_rd_bb_local_compute_process_def): Change
top_flag parameter to int.
(df_chain_create_bb_process_use): Likewise.
(df_chain_add_problem): Change chain_flags parameter to unsigned
int. Remove cast.
* df-scan.c (df_ref_create): Change ref_flags parameter to int.
(df_ref_create_structure, df_def_record_1): Likewise.
(df_defs_record, df_uses_record, df_get_call_refs): Likewise.
(df_notes_rescan): Change 0 to VOIDmode in function call.
(df_get_call_refs, df_insn_refs_collect): Likewise.
(df_bb_regs_collect): Likewise.
(df_entry_block_defs_collect): Likewise.
(df_exit_block_uses_collect): Likewise.
* df.h: Update declarations.
* double-int.c (double_int_divmod): Add cast to enum type.
* dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
* dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
(based_loc_descr): Likewise.
(loc_descriptor_from_tree_1): Change first_op and second_op to
enum dwarf_location_atom. Add cast to enum type.
* expmed.c (init_expmed): Change 0 to SET in function call.
* expr.c (init_expr_target): Change 0 to VOIDmode in function
call.
(expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
(do_store_flag): Likewise.
* fixed-value.h (struct fixed_value): Change mode to enum
machine_mode.
* function.c (assign_parms): Change 0 to VOIDmode in function
call.
* genautomata.c (insert_automaton_decl): Change 1 to INSERT in
function call.
(insert_insn_decl, insert_decl, insert_state): Likewise.
(automata_list_finish): Likewise.
* genrecog.c (process_define_predicate): Add cast to enum type.
* gensupport.c (init_predicate_table): Add cast to enum type.
* gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
function call.
(gimple_build_call_1, gimple_build_label): Likewise.
(gimple_build_goto, gimple_build_asm_1): Likewise.
(gimple_build_switch_1, gimple_build_cdt): Likewise.
* gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function
call.
(enum fallback): Rename from enum fallback_t.
(fallback_t): Typedef as int.
* gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
GSI_SAME_STMT in function call.
* ira.c (setup_class_subset_and_memory_move_costs): Add casts to
enum type.
(setup_reg_class_relations): Likewise.
(setup_reg_class_nregs): Change cl to int. Add casts to enum
type.
(setup_prohibited_class_mode_regs): Add cast to enum type.
(setup_prohibited_mode_move_regs): Likewise.
* ira-costs.c (record_reg_classes): Change rclass to enum
reg_class.
(record_address_regs): Change i to enum reg_class.
* lists.c (alloc_EXPR_LIST): Add cast to enum type.
* machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
(GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
(GET_MODE_2XWIDER_MODE): Likewise.
(GET_CLASS_NARROWEST_MODE): Likewise.
* omp-low.c (expand_omp_for): Add cast to enum type.
* optabs.c (debug_optab_libfuncs): Add casts to enum type.
* opts.c (enable_warning_as_error): Change kind to diagostic_t.
* postreload.c (reload_cse_simplify_operands): Change rclass local
to enum reg_class.
* predict.c (combine_predictions_for_insn): Change best_predictor
and predictor to enum br_predictor.
(combine_predictions_for_bb): Likewise.
(build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
use SET_PREDICT_EXPR_OUTCOME.
* real.c (real_arithmetic): Change icode to code in function
call.
* reginfo.c (init_move_cost): Add casts to enum type.
(init_reg_sets_1, init_fake_stack_mems): Likewise.
* regmove.c (regclass_compatible_p): Change class0 and class1 to
enum reg_class.
* reload.c (find_valid_class): Add casts to enum type.
(push_reload): Change 0 to NO_REGS in function call.
(find_reloads): Change this_alternative to array of enum
reg_class. Remove some now-unnecessary casts.
(make_memloc): Change 0 to VOIDmode in function call.
* reload1.c (reload): Change 0 to VOIDmode in function call.
(eliminate_regs_1, elimination_effects): Likewise.
(eliminate_regs_in_insn): Likewise.
(emit_input_reload_insns): Add cast to enum type.
(delete_output_reload): Change 0 to VOIDmode in function call.
* reorg.c (insn_sets_resource_p): Convert include_delayed_effects
to enum type in function call.
* tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
(SET_PREDICT_EXPR_OUTCOME): Define.
* tree-dump.c (get_dump_file_info): Change phase parameter to
int.
(get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
(dump_initialized_p, dump_flag_name, dump_end): Likewise.
(dump_function): Likewise.
* tree-dump.h: Update declarations.
* tree-pass.h: Update declarations.
* varasm.c (assemble_integer): Change mclass to enum mode_class.
* config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
enum type.
(arm_rtx_costs_1): Correct parenthesization.
(arm_rtx_costs): Add casts to enum type.
(adjacent_mem_locations): Reverse arguments to const_ok_for_op.
(vfp_emit_fstmd): Use add_rg_note.
(emit_multi_reg_push, emit_sfm): Likewise.
(thumb_set_frame_pointer): Likewise.
(arm_expand_prologue): Likewise.
(arm_regno_class): Change return type to enum reg_class.
(thumb1_expand_prologue): Use add_reg_note.
* config/arm/arm-protos.h (arm_regno_class): Update declaration.
* config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
in function call.
* config/arm/gentune.sh: Add cast to enum type.
* config/arm/arm-tune.md: Rebuild.
* config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
(ix86_split_fp_branch, predict_jump): Likewise.
(ix86_expand_multi_arg_builtin): Change sub_code from enum
insn_code to enum rtx_code.
(ix86_builtin_vectorized_function): Add cast to enum type.
* config/i386/i386.md (truncdfsf2): Change slot to enum
ix86_stack_slot.
(truncxf<mode>2, isinf<mode>2): Likewise.
* config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
enum type.
* config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
(spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
(insert_bundle_state): Change 1 to INSERT in function call.
(ia64_add_bundle_selector_before): Likewise.
* config/ia64/ia64.md (cpu attr): Add cast to enum type.
(save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
(restore_stack_nonlocal): Likewise.
* config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
function call.
* config/mips/mips.c (mips_binary_cost): Change 0 to SET in
function call.
(mips_rtx_costs): Likewise.
(mips_override_options): Add casts to enum type.
* config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
in function call.
* config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
(store_reg, set_reg_plus_d): Likewise.
(hppa_expand_prologue, hppa_profile_hook): Likewise.
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
cast to enum type.
(altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
function call.
(emit_unlikely_jump): Use add_reg_note.
(rs6000_emit_allocate_stack): Likewise.
(rs6000_frame_related, rs6000_emit_prologue): Likewise.
(output_toc): Change 1 to INSERT in function call.
(output_profile_hook): Change 0 to LCT_NORMAL in function call.
(rs6000_initialize_trampoline): Likewise.
(rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
function call.
* config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
(s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
(s390_expand_setmem, s390_expand_cmpmem): Likewise.
(save_gprs): Use add_reg_note.
(s390_emit_prologue): Likewise.
(s390_expand_builtin): Change 0 to EXPAND_NORMAL in function
call.
* config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
(sparc_fold_builtin): Add cast to enum type.
* config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
enum insn_code.
(spu_expand_prologue): Use add_reg_note.
(expand_builtin_args): Change 0 to EXPAND_NORMAL in function
call.
* c-parser.c (c_parser_attributes): Change VEC back to tree list.
(c_parser_postfix_expression_after_primary): Get VEC for list of
arguments. Get original types of arguments. Call
build_function_call_vec.
(cached_expr_list_1, cached_expr_list_2): New static variables.
(c_parser_expr_list): Change return type to VEC *. Add
p_orig_types parameter. Change all callers.
(c_parser_release_expr): New static function.
(c_parser_vec_to_tree_list): New static function.
* c-typeck.c (build_function_call): Rewrite to build a VEC and
call build_function_call_vec.
(build_function_call_vec): New function, based on old
build_function_call.
(convert_arguments): Remove nargs and argarray parameters. Change
values to a VEC. Add origtypes parameter.
(build_modify_expr): Add rhs_origtype parameter. Change all
callers.
(convert_for_assignment): Add origtype parameter. Change all
callers. If warn_cxx_compat, check for conversion to an enum
type when calling a function.
(store_init_value): Add origtype parameter. Change all callers.
(digest_init): Likewise.
(struct init_node): Add origtype field.
(add_pending_init): Add origtype parameter. Change all callers.
(output_init_element): Likewise.
(output_pending_init_elements): Pass origtype from init_node to
output_init_element.
(process_init_elemnt): Pass origtype from c_expr to
output_init_element.
(c_finish_return): Add origtype parameter. Change all callers.
* c-common.c (sync_resolve_size): Change params to VEC *. Change
caller.
(sync_resolve_params): Likewise.
(sync_resolve_return): Change params to first_param. Change
caller.
(resolve_overloaded_builtins): Change params to VEC *. Change
callers. Save first parameter around call to
build_function_call_vec.
* c-decl.c (finish_decl): Add origtype parameter. Change all
callers. Call build_function_call_vec rather than
build_function_call for cleanup.
* c-tree.h: Update declarations.
* c-common.h: Update declarations.
* stub-objc.c (objc_rewrite_function_call): Change parameter from
params to first_param.
* target.h (struct gcc_target): Change resolve_overloaded_builtin
params parameter from tree to void *.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Change arglist parameter to have type void *, and to be a pointer
to a VEC.
* config/rs6000/rs6000-protos.h
(altivec_resolve_overloaded_builtin): Update declaration.
* config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
fnargs parameter to have type void *, and to be a pointer to a
VEC. Call build_function_call_vec instead of
build_function_call.
* config/spu/spu-protos.h (spu_expand_builtin): Update
declaration.
gcc/cp/:
* typeck.c (build_function_call_vec): New function.
(cp_build_function_call): Only pass first parameter to
objc_rewrite_function_call.
(build_modify_expr): Add rhs_origtype parameter. Change all
callers.
* decl.c (finish_decl): Add origtype parameter. Change all
callers.
* semantics.c (finish_call_expr): Pass VEC to
resolve_overloaded_builtin.
gcc/objc:
* objc-act.c (objc_rewrite_function_call): Change parameter from
params to first_param. Change all callers.
gcc/testsuite:
* gcc.dg/Wcxx-compat-3.c: New testcase.
From-SVN: r146451
|
|
* df.h: Include "timevar.h".
(struct df_problem): Change tv_id field to timevar_id_t.
* tree-pass.h: Include "timevar.h".
(struct opt_pass): Change tv_id field to timevar_id_t.
* timevar.h (timevar_id_t): Define TV_NONE.
* passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
TV_NONE rather than tv_id != 0.
(execute_one_pass): Likewise.
* Makefile.in (DF_H): Add $(TIMEVAR_H).
(TREE_PASS_H): Define. Change all instances of tree-pass.h in
dependencies to $(TREE_PASS_H).
* bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
to TV_NONE.
(pass_branch_target_load_optimize2): Likewise.
* cfglayout.c (pass_into_cfg_layout_mode): Likewise.
(pass_outof_cfg_layout_mode): Likewise.
* cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
(pass_rebuild_cgraph_edges): Likewise.
(pass_remove_cgraph_callee_edges): Likewise.
* df-core.c (pass_df_initialize_opt): Likewise.
(pass_df_initialize_no_opt): Likewise.
(pass_df_finish): Likewise.
* emit-rtl.c (pass_unshare_all_rtl): Likewise.
* except.c (pass_set_nothrow_function_flags): Likewise.
(pass_convert_to_eh_region_ranges): Likewise.
* final.c (pass_compute_alignments): Likewise.
* function.c (pass_instantiate_virtual_regs): Likewise.
(pass_init_function): Likewise.
(pass_leaf_regs): Likewise.
(pass_match_asm_constraints): Likewise.
* gimple-low.c (pass_lower_cf): Likewise.
(pass_mark_used_blocks): Likewise.
* init-regs.c (pass_initialize_regs): Likewise.
* integrate.c (pass_initial_value_sets): Likewise.
* ira.c (pass_ira): Likewise.
* jump.c (pass_cleanup_barriers): Likewise.
* omp-low.c (pass_expand_omp): Likewise.
(pass_lower_omp): Likewise.
* matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
* recog.c (pass_split_all_insns): Likewise.
(pass_split_after_reload): Likewise.
(pass_split_before_regstack): Likewise.
(pass_split_before_sched2): Likewise.
(pass_split_for_shorten_branches): Likewise.
* reginfo.c (pass_reginfo_init): Likewise.
(pass_subregs_of_mode_init): Likewise.
(pass_subregs_of_mode_finish): Likewise.
* passes.c (pass_postreload): Likewise.
* stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
* tree-cfg.c (pass_remove_useless_stmts): Likewise.
(pass_warn_function_return): Likewise.
(pass_warn_function_noreturn): Likewise.
* tree-complex.c (pass_lower_complex): Likewise.
(pass_lower_complex_O0): Likewise.
* tree-if-conv.c (pass_if_conversion): Likewise.
* tree-into-ssa.c (pass_build_ssa): Likewise.
* tree-mudflap.c (pass_mudflap_1): Likewise.
(pass_mudflap_2): Likewise.
* tree-nomudflap.c (pass_mudflap_1): Likewise.
(pass_mudflap_2): Likewise.
* tree-nrv.c (pass_return_slot): Likewise.
* tree-object-size.c (pass_object_sizes): Likewise.
* tree-optimize.c (pass_all_optimizations): Likewise.
(pass_early_local_passes): Likewise.
(pass_all_early_optimizations): Likewise.
(pass_cleanup_cfg): Likewise.
(pass_cleanup_cfg_post_optimizing): Likewise.
(pass_free_datastructures): Likewise.
(pass_free_cfg_annotations): Likewise.
(pass_fixup_cfg): Likewise.
(pass_init_datastructures): Likewise.
* tree-ssa.c (pass_early_warn_uninitialized): Likewise.
(pass_late_warn_uninitialized): Likewise.
(pass_update_address_taken): Likewise.
* tree-ssa-ccp.c (pass_fold_builtins): Likewise.
* tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
(pass_cse_sincos): Likewise.
(pass_convert_to_rsqrt): Likewise.
* tree-ssa-structalias.c (pass_build_alias): Likewise.
* tree-stdarg.c (pass_stdarg): Likewise.
* tree-tailcall.c (pass_tail_recursion): Likewise.
(pass_tail_calls): Likewise.
* tree-vect-generic.c (pass_lower_vector): Likewise.
(pass_lower_vector_ssa): Likewise.
* tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
From-SVN: r146222
|
|
* function.c (current_function_assembler_name): Remove.
* function.h: Remove the prototype for
current_function_assembler_name.
From-SVN: r146209
|
|
PR debug/39485
* function.c (use_register_for_decl): When not optimizing, disregard
register keyword for variables with types containing methods.
From-SVN: r144939
|
|
* dse.c (struct group_info): Reorder fields for 64-bit hosts.
* matrix-reorg.c (struct matrix_info): Likewise.
* tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
* rtl.h (struct mem_attrs): Likewise.
* df.h (struct df): Likewise.
* tree-data-ref.h (struct data_dependence_relation): Likewise.
* ira-int.h (struct ira_allocno): Likewise.
* df-scan.c (struct df_collection_rec): Likewise.
* ira.c (struct equivalence): Likewise.
* function.c (struct temp_slot): Likewise.
* cfgloop.h (struct loop): Likewise.
* parser.c (struct cp_token): Reorder fields for 64-bit hosts.
(eof_token): Adjust.
* include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
From-SVN: r144938
|
|
PR middle-end/38028
* function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
determine alignment passed to assign_stack_local.
(assign_parms_unsplit_complex): Likewise.
* except.c (sjlj_build_landing_pads): Likewise.
From-SVN: r144696
|
|
From-SVN: r144324
|
|
PR target/35318
* function.c (match_asm_constraints_1): Skip over
initial optional % in the constraint.
* gcc.c-torture/compile/pr35318.c: New test.
From-SVN: r143901
|
|
CALL_EXPR_FN lookup.
* function.c (aggregate_value_p): Correctly extract the function
type from CALL_EXPR_FN lookup.
From-SVN: r143432
|
|
PR middle-end/38586
* function.c (struct temp_slot): Move to the section of the file
that deals with temp slots. Remove field 'address'.
(temp_slot_address_table): New hash table of address -> temp slot.
(struct temp_slot_address_entry): New struct, items for the table.
(temp_slot_address_compute_hash, temp_slot_address_hash,
temp_slot_address_eq, insert_temp_slot_address): Support functions
for the new table.
(find_temp_slot_from_address): Rewrite to use the new hash table.
(remove_unused_temp_slot_addresses): Remove addresses of temp
slots that have been made available.
(remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
worker function for remove_unused_temp_slot_addresses.
(assign_stack_temp_for_type): Don't clear the temp slot address list.
Add the temp slot address to the address -> temp slot map.
(update_temp_slot_address): Update via insert_temp_slot_address.
(free_temp_slots): Call remove_unused_temp_slot_addresses.
(pop_temp_slots): Likewise.
(init_temp_slots): Allocate the address -> temp slot map, or empty
the map if it is already allocated.
(prepare_function_start): Initialize temp slot processing.
From-SVN: r143041
|
|
2008-12-09 Kai Tietz <kai.tietz@onevision.com>
PR/38366
* function.c (aggregate_value_p): Get fntype from CALL_EXPR in any
case.
* calls.c (nitialize_argument_information): Add fntype argument
and use it for calls.promote_function_args.
(expand_call): Pass fntype to aggregate_value_p if no fndecl
available and pass additional fntype to
initialize_argument_information.
* config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part
to get function abi type.
(init_cumulative_args): Use for abi kind detection fntype, when no
fndecl is available.
From-SVN: r142584
|
|
attribute target)
PR 38240
* tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
(SET_TYPE_MODE): New.
* c-decl.c (parser_xref_tag): Use it.
(finish_enum): Likewise.
* tree.c (build_pointer_type_for_mode): Likewise.
(build_reference_type_for_mode, build_index_type): Likewise.
(build_range_type, make_vector_type): Likewise.
(build_common_tree_nodes_2): Likewise.
* stor-layout.c (compute_record_mode): Likewise.
(finalize_type_size, layout_type, make_fract_type): Likewise.
(make_accum_type, initialize_sizetypes): Likewise.
(vector_type_mode): New.
* function.c (allocate_struct_function): Call
invoke_set_current_function_hook before querying anything else.
* config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
cp/
* class.c (finish_struct_bits): Use SET_TYPE_MODE.
* decl.c (record_unknown_type): Likewise.
(start_enum, finish_enum): Likewise.
From-SVN: r142556
|
|
PR debug/38367
* function.c (assign_parm_find_stack_rtl): If promoted_mode
is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
big endian.
From-SVN: r142481
|
|
PR middle-end/37316
* function.c (assign_parm_remove_parallels): Pass
data->passed_type as third argument to emit_group_store.
From-SVN: r142115
|
|
verify_gimple_expr, at tree-cfg.c:3962)
PR middle-end/36125
* function.c (gimplify_parameters): For callee copies parameters,
move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
* gcc.c-torture/compile/pr36125.c: New test.
From-SVN: r141848
|
|
From-SVN: r141356
|
|
PR debug/34037
* gimplify.c (gimplify_type_sizes): When not optimizing, ensure
TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
VAR_DECL.
* cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
!DECL_IGNORED_P vars in local_decls list for instantiate_decls,
ggc_free other TREE_LIST nodes from that chain.
* function.c (instantiate_decls): Instantiate also DECL_RTL
of vars in cfun->local_decls, free that list afterwards.
From-SVN: r140459
|
|
ipa_transforms_to_apply and CFG...
* cgraph.c (cgraph_release_function_body): Plug memory leak on
ipa_transforms_to_apply and CFG; ggc_free gimple df and struct function
so we are sure we do not dangle it forever.
* function.c (outer_function_chain, find_function_data): Remove.
(function_context_stack): New.
(push_function_context, pop_function_context): Update.
* function.h (struct function): Remove pointer outer.
(outer_function_chain, find_function_data): Remove.
* stmt.c (force_label_rtx): Remove dead call of find_function_data.
From-SVN: r140285
|
|
* function.c (free_after_compilation): Call insn_locators_free.
* cfglayout.c (insn_locators_free): New function.
* rtl.h (insn_locators_free): Declare.
From-SVN: r140279
|
|
PR rtl-optimization/37408
* function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
if parm is promoted.
From-SVN: r140166
|
|
* config/mips/mips.h (enum reg_class): Add FRAME_REGS.
(REG_CLASS_NAMES): Update.
(REG_CLASS_CONTENTS): Update.
* config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
of ALL_REGS for regs 77 and 78.
* function.c (instantiate_virtual_regs_in_insn): Assert that
return value of simplify_gen_subreg is not NULL.
testsuite:
* gcc.c-torture/compile/20080903-1.c: New test.
From-SVN: r140035
|
|
PR ada/20548
* common.opt (-fstack-check): Do not declare the variable here.
(-fstack-check=): New option variant.
* doc/invoke.texi (Code Gen Options): Document it.
* expr.h (STACK_OLD_CHECK_PROTECT): New macro.
(STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
(STACK_CHECK_STATIC_BUILTIN): New macro.
* doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
* opts.c: Include expr.h.
(common_handle_option) <OPT_fold_stack_check_>: New case.
<OPT_fstack_check>: Likewise.
* calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
consistently in the test for variable-sized types. Adjust for
new behaviour of flag_stack_check.
* explow.c: Include except.h.
(allocate_dynamic_stack_space): Do not take into account
STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
* function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
for variable-sized parameters. Treat all parameters whose size is
greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
stack checking is enabled.
* gimplify.c (gimplify_decl_expr): Treat non-static objects whose
size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
if generic stack checking is enabled.
(expand_function_end): Adjust for new behaviour of flag_stack_check.
* reload1.c (reload): Likewise.
* stmt.c (expand_decl): Assert that all automatic variables have
fixed size at this point and remove dead code.
* flags.h (stack_check_type): New enumeration type.
(flag_stack_check): Declare.
* toplev.c (flag_stack_check): New global variable.
* Makefile.in (opts.o): Add dependency on EXPR_H.
(explow.o): Add dependency on except.h.
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
setjmp test consistently. Adjust for new behaviour of flag_stack_check.
* gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
test of flag_stack_check. Adjust for new behaviour of flag_stack_check.
From-SVN: r139159
|
|
* recog.c (split_all_insns): Set RTL profile
(peephole2_optimize): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* combine.c (combine_instructions): Likewise.
From-SVN: r138863
|
|
* builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
* calls.c (avoid_likely_spilled_reg): Likewise.
* cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
* cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
* config/i386/i386.c (ix86_expand_special_args_builtin,
ix86_secondary_reload): Likewise.
* except.c (struct eh_region, gen_eh_region_catch,
remove_unreachable_regions, duplicate_eh_regions,
assign_filter_values, build_post_landing_pads,
sjlj_find_directly_reachable_regions, remove_eh_handler,
reachable_next_level, foreach_reachable_handler,
can_throw_internal_1, can_throw_external_1,
collect_one_action_chain): Likewise.
* expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
* fold-const.c (twoval_comparison_p, eval_subst): Likewise.
* function.c (update_temp_slot_address, instantiate_new_reg,
instantiate_virtual_regs_in_rtx,
instantiate_virtual_regs_in_insn): Likewise.
* gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
* gimplify.c (gimplify_call_expr, gimplify_init_constructor,
gimplify_cleanup_point_expr): Likewise.
* ipa-cp.c (ipcp_lattice_changed): Likewise.
* passes.c (next_pass_1): Likewise.
* print-tree.c (print_node_brief, print_node): Likewise.
* profile.c (branch_prob): Likewise.
* tree-dump.c (dump_register): Likewise.
* tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
Likewise.
* tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
copy_edges_for_bb, copy_cfg_body, copy_tree_r,
copy_arguments_for_versioning, copy_static_chain): Likewise.
* tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
add_new_name_mapping, register_new_name_mapping): Likewise.
* tree-mudflap.c (mf_xform_derefs): Likewise.
* tree-predcom.c (struct chain, dump_chain, replace_ref_with,
get_init_expr, combine_chains): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-ssa-structalias.c (create_variable_info_for): Likewise.
* tree-vrp.c (simplify_cond_using_ranges): Likewise.
* tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
* value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
From-SVN: r138809
|
|
gcc/
2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/37009
* cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
for incoming stack boundary.
* function.c (assign_parm_find_entry_rtl): Update
parm_stack_boundary.
* function.h (rtl_data): Add parm_stack_boundary.
* config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
parm_stack_boundary for incoming stack boundary.
gcc/testsuite/
2008-08-06 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/37009
* gcc.dg/torture/stackalign/alloca-2.c: New.
* gcc.dg/torture/stackalign/alloca-3.c: Likewise.
* gcc.dg/torture/stackalign/alloca-4.c: Likewise.
* gcc.dg/torture/stackalign/vararg-3.c: Likewise.
* gcc.target/i386/incoming-1.c: Likewise.
* gcc.target/i386/incoming-2.c: Likewise.
* gcc.target/i386/incoming-3.c: Likewise.
* gcc.target/i386/incoming-4.c: Likewise.
* gcc.target/i386/incoming-5.c: Likewise.
From-SVN: r138806
|
|
drap_rtx must match.
2008-08-01 H.J. Lu <hongjiu.lu@intel.com>
* cfgexpand.c (expand_stack_alignment): Assert that
stack_realign_drap and drap_rtx must match.
* function.c (instantiate_new_reg): If DRAP is used to realign
stack, replace virtual_incoming_args_rtx with internal arg
pointer.
From-SVN: r138524
|
|
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
|
|
* predict.c (always_optimize_for_size_p): New function.
(optimize_bb_for_size_p, optimize_bb_for_speed_p,
optimize_edge_for_size_p, optimize_edge_for_speed_p,
optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
functions.
(rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
* function.c (prepare_function_start): Set default profile.
* function.h (rtl_data): Add maybe_hot_insn_p.
* cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
(construct_exit_block): Likewise.
(tree_expand_cfg): Likewise.
* basic-block.h
(optimize_bb_for_size_p, optimize_bb_for_speed_p,
optimize_edge_for_size_p, optimize_edge_for_speed_p,
optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
(rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
Declare.
From-SVN: r138237
|
|
2008-07-28 Richard Guenther <rguenther@suse.de>
Merge from gimple-tuples-branch.
* ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
* gimple.def: New file.
* gsstruct.def: Likewise.
* gimple-iterator.c: Likewise.
* gimple-pretty-print.c: Likewise.
* tree-gimple.c: Removed. Merged into ...
* gimple.c: ... here. New file.
* tree-gimple.h: Removed. Merged into ...
* gimple.h: ... here. New file.
* Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
--enable-checking=gimple flag.
* config.in: Likewise.
* configure: Regenerated.
* tree-ssa-operands.h: Tuplified.
* tree-vrp.c: Likewise.
* tree-loop-linear.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-dump.c: Likewise.
* tree-complex.c: Likewise.
* cgraphbuild.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-pretty-print.c: Likewise.
* tracer.c: Likewise.
* gengtype.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-ssa-loop-unswitch.c: Likewise.
* cgraph.c: Likewise.
* cgraph.h: Likewise.
* tree-ssa-loop-manip.c: Likewise.
* value-prof.c: Likewise.
* tree-ssa-loop-ch.c: Likewise.
* tree-tailcall.c: Likewise.
* value-prof.h: Likewise.
* tree.c: Likewise.
* tree.h: Likewise.
* tree-pass.h: Likewise.
* ipa-cp.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-scalar-evolution.h: Likewise.
* target.h: Likewise.
* lambda-mat.c: Likewise.
* tree-phinodes.c: Likewise.
* diagnostic.h: Likewise.
* builtins.c: Likewise.
* tree-ssa-alias-warnings.c: Likewise.
* cfghooks.c: Likewise.
* fold-const.c: Likewise.
* cfghooks.h: Likewise.
* omp-low.c: Likewise.
* tree-ssa-dse.c: Likewise.
* ipa-reference.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* toplev.c: Likewise.
* tree-gimple.c: Likewise.
* tree-gimple.h: Likewise.
* tree-chrec.c: Likewise.
* tree-chrec.h: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-sccvn.h: Likewise.
* cgraphunit.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-nomudflap.c: Likewise.
* tree-call-cdce.c: Likewise.
* ipa-pure-const.c: Likewise.
* c-format.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-ssa-math-opts.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-nrv.c: Likewise.
* tree-ssa-propagate.c: Likewise.
* ipa-utils.c: Likewise.
* tree-ssa-propagate.h: Likewise.
* tree-ssa-alias.c: Likewise.
* gimple-low.c: Likewise.
* tree-ssa-sink.c: Likewise.
* ipa-inline.c: Likewise.
* c-semantics.c: Likewise.
* dwarf2out.c: Likewise.
* expr.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* predict.c: Likewise.
* tree-ssa-loop.c: Likewise.
* tree-parloops.c: Likewise.
* tree-ssa-address.c: Likewise.
* tree-ssa-ifcombine.c: Likewise.
* matrix-reorg.c: Likewise.
* c-decl.c: Likewise.
* tree-eh.c: Likewise.
* c-pretty-print.c: Likewise.
* lambda-trans.c: Likewise.
* function.c: Likewise.
* langhooks.c: Likewise.
* ebitmap.h: Likewise.
* tree-vectorizer.c: Likewise.
* function.h: Likewise.
* langhooks.h: Likewise.
* tree-vectorizer.h: Likewise.
* ipa-type-escape.c: Likewise.
* ipa-type-escape.h: Likewise.
* domwalk.c: Likewise.
* tree-if-conv.c: Likewise.
* profile.c: Likewise.
* domwalk.h: Likewise.
* tree-data-ref.c: Likewise.
* tree-data-ref.h: Likewise.
* tree-flow-inline.h: Likewise.
* tree-affine.c: Likewise.
* tree-vect-analyze.c: Likewise.
* c-typeck.c: Likewise.
* gimplify.c: Likewise.
* coretypes.h: Likewise.
* tree-ssa-phiopt.c: Likewise.
* calls.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree.def: Likewise.
* tree-dfa.c: Likewise.
* except.c: Likewise.
* except.h: Likewise.
* cfgexpand.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-predcom.c: Likewise.
* lambda.h: Likewise.
* tree-mudflap.c: Likewise.
* ipa-prop.c: Likewise.
* print-tree.c: Likewise.
* tree-ssa-copy.c: Likewise.
* ipa-prop.h: Likewise.
* tree-ssa-forwprop.c: Likewise.
* ggc-page.c: Likewise.
* c-omp.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-nested.c: Likewise.
* tree-ssa.c: Likewise.
* lambda-code.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-inline.c: Likewise.
* tree-inline.h: Likewise.
* tree-iterator.c: Likewise.
* tree-optimize.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-vect-transform.c: Likewise.
* tree-object-size.c: Likewise.
* tree-outof-ssa.c: Likewise.
* cfgloop.c: Likewise.
* system.h: Likewise.
* tree-profile.c: Likewise.
* cfgloop.h: Likewise.
* c-gimplify.c: Likewise.
* c-common.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-flow.h: Likewise.
* c-common.h: Likewise.
* basic-block.h: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-ssa-structalias.h: Likewise.
* tree-cfg.c: Likewise.
* passes.c: Likewise.
* ipa-struct-reorg.c: Likewise.
* ipa-struct-reorg.h: Likewise.
* tree-ssa-reassoc.c: Likewise.
* cfgrtl.c: Likewise.
* varpool.c: Likewise.
* stmt.c: Likewise.
* tree-ssanames.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* langhooks-def.h: Likewise.
* tree-ssa-operands.c: Likewise.
* config/alpha/alpha.c: Likewise.
* config/frv/frv.c: Likewise.
* config/s390/s390.c: Likewise.
* config/m32c/m32c.c: Likewise.
* config/m32c/m32c-protos.h: Likewise.
* config/spu/spu.c: Likewise.
* config/sparc/sparc.c: Likewise.
* config/i386/i386.c: Likewise.
* config/sh/sh.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/ia64/ia64.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/pa/pa.c: Likewise.
* config/mips/mips.c: Likewise.
From-SVN: r138207
|
|
function specific basis
From-SVN: r138075
|
|
2007-07-21 Rafael Avila de Espindola <espindola@google.com>
* Makefile.in: Replace toplev.h with TOPLEV_H.
* c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
* c-lex.c (fe_file_change): Don't set in_system_header.
* c-parser.c (c_token): Remove in_system_header.
(c_lex_one_token): Don't set in_system_header.
(c_parser_set_source_position_from_token): Don't set in_system_header.
* diagnostic.c (diagnostic_report_diagnostic): Use location from
diagnostic_info.
(warning_at): New.
* diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
* flags.h (in_system_header): Remove.
* function.c (saved_in_system_header): Remove.
(push_cfun): Don't set in_system_header.
(pop_cfun): Don't set in_system_header.
(push_struct_function): Don't set in_system_header.
* input.h (expanded_location): Add sysp.
(in_system_header_at): New.
(in_system_header): New.
* toplev.c (in_system_header): Remove.
* toplev.h: Include input.h
(warning_at): New.
* tree-cfg.c (execute_warn_function_return): Call warning_at.
* tree-ssa.c (warn_uninit): Call warning_at.
(warn_uninitialized_var): Update calls to warn_uninit.
(warn_uninitialized_phi): Update calls to warn_uninit.
* tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
(expand_location): Initialize xloc.sysp.
* tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
(tree_decl_with_vis): Remove in_system_header_flag.
2007-07-21 Rafael Avila de Espindola <espindola@google.com>
* parser.c (cp_token): Remove in_system_header.
(eof_token): Remove in_system_header.
(cp_lexer_get_preprocessor_token): Don't set in_system_header.
(cp_lexer_set_source_position_from_token): Don't set in_system_header.
(cp_parser_member_declaration): Use in_system_header_at.
* pt.c (lookup_template_class): Don't set DECL_IN_SYSTEM_HEADER.
(pop_tinst_level): Don't set in_system_header.
(instantiate_class_template): Don't set in_system_header.
(instantiate_decl): Don't set in_system_header.
(instantiate_pending_templates): Don't set in_system_header.
From-SVN: r138031
|
|
gcc/
2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/36858
* function.c (locate_and_pad_parm): Cap boundary earlier.
testsuite/
2008-07-18 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/36858
* gcc.target/i386/vararg-1.c: New.
From-SVN: r137954
|
|
* function.c (assign_parm_remove_parallels): Check mode of
entry_parm.
(assign_parm_setup_block_p): Also check mode of entry_parm.
From-SVN: r137575
|
|
* function.c (assign_parm_remove_parallels): New.
(assign_parm_setup_block_p): Do not return true for non-BLKmode
PARALLELs.
(assign_parm_setup_block): Do not handle them.
(assign_parm_setup_reg, assign_parm_setup_stack): Call
assign_parm_remove_parallels.
From-SVN: r137326
|
|
the decl is nonzero.
gcc/
* function.c (allocate_struct_function): Only allocate a unique
funcdef_no if the decl is nonzero.
From-SVN: r137195
|
|
* dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
add_ranges_num, add_ranges_by_labels, file_info_cmp,
file_name_acquire, output_file_names, add_const_value_attribute,
premark_used_types_helper, file_table_eq, file_table_hash,
lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
-Wcast-qual warnings.
* ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
* emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
gen_reg_rtx, start_sequence, init_emit): Likewise.
* et-forest.c (et_new_occ, et_new_tree): Likewise.
* except.c (init_eh_for_function, gen_eh_region,
remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
arh_to_landing_pad, arh_to_label, add_action_record,
add_call_site, switch_to_exception_section): Likewise.
* expmed.c (synth_mult): Likewise.
* expr.c (gen_group_rtx, emit_group_load, emit_group_store,
store_expr): Likewise.
* final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
Likewise.
* function.c (assign_stack_temp_for_type,
allocate_struct_function, match_asm_constraints_1): Likewise.
* gcov-io.c (gcov_allocate): Likewise.
* gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
(gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
record_one_set, insert_expr_in_table, insert_set_in_table,
dump_hash_table, compute_hash_table_work, alloc_hash_table,
pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
-Wcast-qual warnings.
From-SVN: r137136
|
|
gcc/
* cgraph.c: Fix typos in comments.
(cgraph_availability_names): Fix string typo.
* fold-const.c: Fix typos in comments.
(fold_binary): Fix typo in warning.
* genautomata.c: Fix typos in comments.
(check_presence_pattern_sets): Fix typo in local variable.
(output_description): Fix typo in output.
* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
* hwint.h: Likewise.
* matrix-reorg.c (check_allocation_function): Likewise.
* omega.c (smooth_weird_equations): Likewise.
* auto-inc-dec.c: Fix typos in comments.
* bb-reorder.c: Likewise.
* builtins.c: Likewise.
* c-common.c: Likewise.
* c-cppbuiltin.c: Likewise.
* c-parser.c: Likewise.
* c-pretty-print.c: Likewise.
* cfgcleanup.c: Likewise.
* cfgexpand.c: Likewise.
* cfghooks.c: Likewise.
* cfglayout.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraphunit.c: Likewise.
* coverage.c: Likewise.
* dbxout.c: Likewise.
* df-byte-scan.c: Likewise.
* df-core.c: Likewise.
* df-problems.c: Likewise.
* df-scan.c: Likewise.
* dfp.c: Likewise.
* dominance.c: Likewise.
* domwalk.c: Likewise.
* dse.c: Likewise.
* dwarf2out.c: Likewise.
* emit-rtl.c: Likewise.
* et-forest.c: Likewise.
* function.c: Likewise.
* function.h: Likewise.
* gcc.c: Likewise.
* gcov-io.c: Likewise.
* gcov.c: Likewise.
* gcse.c: Likewise.
* genattrtab.c: Likewise.
* ggc-page.c: Likewise.
* gimplify.c: Likewise.
* gthr-lynx.h: Likewise.
* haifa-sched.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-prop.h: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-struct-reorg.c: Likewise.
* ipa-struct-reorg.h: Likewise.
* ipa-type-escape.c: Likewise.
* ipa.c: Likewise.
* loop-doloop.c: Likewise.
* mips-tfile.c: Likewise.
* mkmap-flat.awk: Likewise.
* mkmap-symver.awk: Likewise.
* modulo-sched.c: Likewise.
* omp-low.c: Likewise.
* optabs.c: Likewise.
* optabs.h: Likewise.
* opts.c: Likewise.
* passes.c: Likewise.
* postreload-gcse.c: Likewise.
* postreload.c: Likewise.
* predict.c: Likewise.
* pretty-print.h: Likewise.
* profile.c: Likewise.
* protoize.c: Likewise.
* ra-conflict.c: Likewise.
* real.c: Likewise.
* recog.c: Likewise.
* regclass.c: Likewise.
* regs.h: Likewise.
* reload.c: Likewise.
* rtl-error.c: Likewise.
* rtlanal.c: Likewise.
* scan.h: Likewise.
* sched-rgn.c: Likewise.
* see.c: Likewise.
* stmt.c: Likewise.
* target.h: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-flow-inline.h: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-nested.c: Likewise.
* tree-parloops.c: Likewise.
* tree-pass.h: Likewise.
* tree-pretty-print.c: Likewise.
* tree-profile.c: Likewise.
* tree-scalar-evolution.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-alias-warnings.c: Likewise.
* tree-ssa-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-live.h: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-loop-niter.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-phiprop.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa.c: Likewise.
* tree-vect-analyze.c: Likewise.
* tree-vect-transform.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vn.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tree.def: Likewise.
* tree.h: Likewise.
* unwind-dw2-fde.c: Likewise.
* unwind.inc: Likewise.
* value-prof.c: Likewise.
* vmsdbgout.c: Likewise.
From-SVN: r136425
|
|
2008-06-03 Kai Tietz <kai.tietz@onevision.com>
* doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
* doc/extend.texi (ms_abi,sysv_abi): New attribute description.
* function.c (allocate_struct_function): Use of
OVERRIDE_ABI_FORMAT.
* config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
of cfun and DEFAULT_ABI to deceide abi mode.
(DEFAULT_ABI): New.
(REG_PARM_STACK_SPACE): Removed.
(OUTGOING_REG_PARM_STACK_SPACE): Removed.
(STACK_BOUNDARY): Use default target to deceide stack boundary.
* config/i386/i386-protos.h (ix86_cfun_abi): New.
(ix86_function_abi): Likewise.
(ix86_function_type_abi): Likewise.
(ix86_call_abi_override): Likewise.
* confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
* config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
(X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
specific defines.
(X86_64_REGPARM_MAX): New.
(X86_64_SSE_REGPARM_MAX): New.
(X64_REGPARM_MAX): New.
(X64_SSE_REGPARM_MAX): New.
(X86_32_REGPARM_MAX): New.
(X86_32_SSE_REGPARM_MAX): New.
(ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
(ix86_function_regparm): Handle user calling abi.
(ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
by DEFAULT_ABI versus SYSV_ABI check.
(ix86_reg_parm_stack_space): New.
(ix86_function_type_abi): New.
(ix86_call_abi_override): New.
(ix86_function_abi): New.
(ix86_cfun_abi): New.
(init_cumulative_args): Call abi specific initialization.
(function_arg_advance): Remove TARGET_64BIT_MS_ABI.
(function_arg_64): Extend SSE_REGPARM_MAX check.
(function_arg (): Remove TARGET_64BIT_MS_ABI.
(ix86_pass_by_reference): Likewise.
(ix86_function_value_regno_p): Likewise.
(function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
(ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
(return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
(ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
(setup_incoming_varargs_64): Adjust regparm for call abi.
(ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
(ix86_va_start): Likewise.
(ix86_gimplify_va_arg): Likewise.
(ix86_expand_prologue): Likewise.
(output_pic_addr_const): Likewise.
(ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
(x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
(x86_output_mi_thunk): Likewise.
(x86_function_profiler): Likewise.
* config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
(SYSV_ABI, MS_ABI): New constants.
(DEFAULT_ABI): New.
(init_regs): Add prototype of function in regclass.c file.
(OVERRIDE_ABI_FORMAT): New.
(CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
(REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
(OUTGOING_REG_PARM_STACK_SPACE): New.
(ix86_reg_parm_stack_space): New prototype.
(CUMULATIVE_ARGS): Add call_abi member.
(machine_function): Add call_abi member.
* config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
by DEFAULT_ABI compare to MS_ABI.
From-SVN: r136311
|
|
gcc/
* rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
* emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
functions. Do not emit uses and clobbers of CONCATs; individually
use and clobber their operands.
* builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
gen_clobber, emit_use and gen_use.
(expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
(expand_builtin_return): Likewise.
* cfgbuild.c (count_basic_blocks): Likewise.
* cfgrtl.c (rtl_flow_call_edges_add): Likewise.
* explow.c (emit_stack_restore): Likewise.
* expmed.c (extract_bit_field_1): Likewise.
* expr.c (convert_move, emit_move_complex_parts): Likewise.
(emit_move_multi_word, store_constructor): Likewise.
* function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
(thread_prologue_and_epilogue_insns): Likewise.
* lower-subreg.c (resolve_simple_move): Likewise.
* optabs.c (widen_operand, expand_binop): Likewise.
(expand_doubleword_bswap, emit_no_conflict_block): Likewise.
* reload.c (find_reloads): Likewise.
* reload1.c (eliminate_regs_in_insn): Likewise.
* stmt.c (expand_nl_goto_receiver): Likewise.
* config/alpha/alpha.md (builtin_longjmp): Likewise.
* config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
* config/arm/arm.c (arm_load_pic_register): Likewise.
(thumb1_expand_epilogue, thumb_set_return_address): Likewise.
* config/arm/arm.md (untyped_return): Likewise.
* config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
* config/avr/avr.c (expand_prologue): Likewise.
* config/bfin/bfin.c (do_unlink): Likewise.
* config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
* config/cris/cris.c (cris_expand_prologue): Likewise.
* config/darwin.c (machopic_indirect_data_reference): Likewise.
(machopic_legitimize_pic_address): Likewise.
* config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
(frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
* config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
(ix86_expand_convert_uns_didf_sse): Likewise.
(ix86_expand_vector_init_general): Likewise.
* config/ia64/ia64.md (eh_epilogue): Likewise.
* config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
* config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
* config/m32r/m32r.c (m32r_reload_lr): Likewise.
(config/iq2000/iq2000.c): Likewise.
* config/mips/mips.md (fixuns_truncdfsi2): Likewise.
(fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
(builtin_longjmp): Likewise.
* config/mn10300/mn10300.md (call, call_value): Likewise.
* config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
* config/pdp11/pdp11.md (abshi2): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
* config/s390/s390.c (s390_emit_prologue): Likewise.
* config/s390/s390.md (movmem_long, setmem_long): Likewise.
(cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
(builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
* config/sh/sh.c (prepare_move_operands): Likewise.
(output_stack_adjust, sh_expand_epilogue): Likewise.
(sh_set_return_address, sh_expand_t_scc): Likewise.
* config/sparc/sparc.c (load_pic_register): Likewise.
* config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
* config/spu/spu.c (spu_expand_epilogue): Likewise.
* config/v850/v850.c (expand_epilogue): Likewise.
From-SVN: r136251
|
|
2008-05-26 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/36253
* caller-save.c (insert_restore): Verify alignment of spill
space.
(insert_save): Likewise.
* cfgexpand.c (LOCAL_ALIGNMENT): Removed.
* defaults.h (LOCAL_ALIGNMENT): New. Provide default.
(STACK_SLOT_ALIGNMENT): Likewise.
* function.c (LOCAL_ALIGNMENT): Removed.
(get_stack_local_alignment): New.
(assign_stack_local): Use it. Set alignment on stack slot.
(assign_stack_temp_for_type): Use get_stack_local_alignment.
* config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
(STACK_SLOT_ALIGNMENT): New.
* config/i386/i386.c (ix86_local_alignment): Handle caller-save
stack slot in XFmode.
* doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
From-SVN: r135927
|