Commit Graph

99433 Commits

Author SHA1 Message Date
Jakub Jelinek
fcd3c5a9be trans-decl.c (gfc_build_qualified_array): Ensure ubound.N and lbound.N artificial variable names don't appear in debug info.
* trans-decl.c (gfc_build_qualified_array): Ensure
	ubound.N and lbound.N artificial variable names don't appear
	in debug info.

From-SVN: r158451
2010-04-16 23:44:48 +02:00
Jakub Jelinek
24f8d71e41 re PR bootstrap/43767 (Revision 158401 failed to bootstrap)
PR bootstrap/43767
	* alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.

From-SVN: r158450
2010-04-16 23:43:36 +02:00
Doug Kwan
f1665f5cd2 tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2010-04-16  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
	(next_operand_entry_id): New static variable.
	(sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
	(add_to_ops_vec): Assigned unique ID to operand entry.
 	(struct oecount_s): New field ID.
	(oecount_cmp): Stabilize qsort comparotor by using unique IDs.
	(undistribute_ops_list): Assign unique IDs to oecounts.
	(init_reassoc): reset next_operand_entry_id.

From-SVN: r158449
2010-04-16 20:31:39 +00:00
Doug Kwan
f638261aea i386.md (*jcc_bt<mode>): Fix build breakage by adding missing left parenthesis.
2010-04-16  Doug Kwan  <dougkwan@google.com>

        * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
        missing left parenthesis.

From-SVN: r158448
2010-04-16 20:10:32 +00:00
Joseph Myers
a49b38053e * sv.po: Update.
From-SVN: r158443
2010-04-16 19:58:56 +01:00
Kaushik Phatak
a7494d9eb7 h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
* config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.

From-SVN: r158442
2010-04-16 12:58:03 -06:00
Kaushik Phatak
8cb81753ef h8300.md (movqi_h8sx, [...]): Emit instructions in #xx:3 and #xx:4 mode.
* config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx, 
	cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in #xx:3 
	and #xx:4 mode.

From-SVN: r158439
2010-04-16 12:19:50 -06:00
Uros Bizjak
4a81b41214 i386.md (*bt<mode>): Macroize insn from *btsi and *btdi_rex64 using SWI48 mode iterator.
* config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
	*btdi_rex64 using SWI48 mode iterator.
	(*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
	(*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
	*jcc_btdi_mask_rex64.

From-SVN: r158438
2010-04-16 19:58:12 +02:00
Anatoly Sokolov
9d4d1f8ef9 double-int.h (tree_to_double_int): Convert to macro.
* double-int.h (tree_to_double_int): Convert to macro.
	* double-int.c (tree_to_double_int): Remove.

From-SVN: r158437
2010-04-16 21:31:00 +04:00
Kaushik Phatak
6074408984 h8300.md (inverted load with HImode dest): Add support for H8300SX.
* config/h8300/h8300.md (inverted load with HImode dest): Add
	support for H8300SX.

From-SVN: r158436
2010-04-16 10:39:45 -06:00
Joseph Myers
58ad2aefa7 * crontab: Enable 4.6 snapshots.
From-SVN: r158434
2010-04-16 16:55:25 +01:00
Jakub Jelinek
835eb810f7 re PR debug/43762 (VLA artificial length var loclist is missing DW_OP_stack_value)
PR debug/43762
	* dwarf2out.c (add_bound_info): Always call loc_list_from_tree
	with want_address 2 and in case a single element list might be
	possible, call it again with want_address 0.

From-SVN: r158430
2010-04-16 17:34:47 +02:00
Kaushik Phatak
db624ecb93 predicate.md (bit_operand): Allow immediate values that satisfy 'U' constraint.
2010-04-12  Kaushik Phatak<kaushik.phatak@kpitcummins.com>

 	* config/h8300/predicate.md (bit_operand): Allow immediate values that
 	satisfy 'U' constraint.

From-SVN: r158429
2010-04-16 09:24:07 -06:00
Eric Botcazou
860603449e gigi.h (gnat_init_decl_processing): Delete.
* gcc-interface/gigi.h (gnat_init_decl_processing): Delete.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Constify a few variables.
	<object>: Do not create the fake PARM_DECL if no debug info is needed.
	Do not create the corresponding VAR_DECL of a CONST_DECL for debugging
	purposes if no debug info is needed.
	Fix formatting.  Reorder and add comments.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Reference>: Constify
	variable and remove obsolete comment.
	* gcc-interface/utils.c (convert_vms_descriptor64): Tweak comment.
	(convert_vms_descriptor32): Likewise.
	(convert): Remove dead code.
	<UNCONSTRAINED_ARRAY_REF>: Pass the field instead of its name to build
	the reference to the P_ARRAY pointer.
	<POINTER_TYPE>: Likewise.
	(maybe_unconstrained_array) <UNCONSTRAINED_ARRAY_TYPE>: Likewise.
	(gnat_init_decl_processing): Delete, move contents to...
	* gcc-interface/misc.c (gnat_init): ...here.

From-SVN: r158428
2010-04-16 15:04:26 +00:00
Joseph Myers
9b04d6de98 be.po, [...]: Update.
* be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, id.po, ja.po,
	nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r158426
2010-04-16 15:55:56 +01:00
Joseph Myers
54c61d7706 be.po, [...]: Update.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po, ja.po,
	nl.po, ru.po, sr.po, sv.po, tr.po, zh_CN.po, zh_TW.po: Update.

From-SVN: r158424
2010-04-16 15:52:16 +01:00
Rainer Orth
8ccb78f2d0 configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx separately.
toplevel:
	* configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx
	separately.
	* configure: Regenerate.

	gcc:
	* configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx
	flavor.
	* configure: Regenerate.
	* config.in: Regenerate.
	* doc/install.texi (Prerequisites): Document that Solaris 2 libelf
	works.

	gcc/lto:
	* lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
	function.

From-SVN: r158423
2010-04-16 13:45:25 +00:00
Richard Guenther
bc9c331d43 tree.h (struct tree_decl_minimal): Move pt_uid ...
2010-04-16  Richard Guenther  <rguenther@suse.de>

	* tree.h (struct tree_decl_minimal): Move pt_uid ...
	(struct tree_decl_common): ... here.
	(DECL_PT_UID): Adjust.
	(SET_DECL_PT_UID): Likewise.
	(DECL_PT_UID_SET_P): Likewise.

From-SVN: r158421
2010-04-16 13:33:31 +00:00
Richard Guenther
12de635528 re PR tree-optimization/43572 (FAIL: gfortran.dg/PR19872.f execution test; formatted read - wrong numbers)
2010-04-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/43572
	* tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
	* tree-ssa-alias.c (call_may_clobber_ref_p): Export.
	* tree-flow.h (is_call_clobbered): Remove.
	* tree-flow-inline.h (is_call_clobbered): Likewise.
	* tree-dfa.c (dump_variable): Do not dump call clobber state.
	* tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
	(execute_return_slot_opt): Adjust.
	* tree-tailcall.c (suitable_for_tail_opt_p): Remove
	check for call clobbered vars here.
	(find_tail_calls): Move tailcall verification to the
	proper place.

	* gcc.dg/tree-ssa/tailcall-5.c: New testcase.

From-SVN: r158418
2010-04-16 13:21:38 +00:00
Diego Novillo
6ab643b5a4 Fixed ChangeLog entry.
From-SVN: r158416
2010-04-16 08:38:22 -04:00
Diego Novillo
b836060309 typo fix
From-SVN: r158415
2010-04-16 08:38:14 -04:00
Diego Novillo
5074f57630 rephrase text
From-SVN: r158414
2010-04-16 08:38:04 -04:00
Diego Novillo
e54655a20e Clarify what happens with an unrecognized -Wno- option
From-SVN: r158413
2010-04-16 08:37:55 -04:00
Eric Botcazou
68a3eb69b1 trans.c (unchecked_conversion_nop): Handle function calls.
* gcc-interface/trans.c (unchecked_conversion_nop): Handle function
	calls.  Return true for conversion from a record subtype to its type.

From-SVN: r158412
2010-04-16 12:23:39 +00:00
Eric Botcazou
1139f2e89d decl.c (gnat_to_gnu_entity): Use boolean_type_node in lieu of integer_type_node for boolean operations.
* gcc-interface/decl.c (gnat_to_gnu_entity): Use boolean_type_node in
	lieu of integer_type_node for boolean operations.
	(choices_to_gnu): Likewise.
	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
	(Loop_Statement_to_gnu): Likewise.
	(establish_gnat_vms_condition_handler): Likewise.
	(Exception_Handler_to_gnu_sjlj): Likewise.
	(gnat_to_gnu): Likewise.
	(build_unary_op_trapv): Likewise.
	(build_binary_op_trapv): Likewise.
	(emit_range_check): Likewise.
	(emit_index_check): Likewise.
	(convert_with_check): Likewise.
	* gcc-interface/utils.c (convert_vms_descriptor64): Likewise.
	(convert_vms_descriptor32): Likewise.
	(convert_vms_descriptor): Likewise.
	* gcc-interface/utils2.c (nonbinary_modular_operation): Likewise.
	(compare_arrays): Use boolean instead of integer constants.
	(build_binary_op) <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR,
	TRUTH_OR_EXPR, TRUTH_XOR_EXPR>: New case.  Check that the result type
	is a boolean type.
	<GE_EXPR, LE_EXPR, GT_EXPR, LT_EXPR>: Remove obsolete assertion.
	<EQ_EXPR, NE_EXPR>: Check that the result type is a boolean type.
	<PREINC/PREDECREMENT_EXPR, POSTINC/POSTDECREMENT_EXPR>: Delete.
	<TRUTH_NOT_EXPR>: Check that the result type is a boolean type.
	(build_unary_op): Use boolean_type_node in lieu of integer_type_node
	for boolean operations.
	(fill_vms_descriptor): Likewise.  Fix formatting nits.

From-SVN: r158411
2010-04-16 12:07:02 +00:00
Eric Botcazou
d88bbbb943 ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
* gcc-interface/ada-tree.def (LOOP_STMT): Change to 4-operand nodes.
	* gcc-interface/ada-tree.h (LOOP_STMT_TOP_COND, LOOP_STMT_BOT_COND):
	Merge into...
	(LOOP_STMT_COND): ...this.
	(LOOP_STMT_BOTTOM_COND_P): New flag.
	(LOOP_STMT_TOP_UPDATE_P): Likewise.
	* gcc-interface/trans.c (can_equal_min_or_max_val_p): New function.
	(can_equal_min_val_p): New static inline function.
	(can_equal_max_val_p): Likewise.
	(Loop_Statement_to_gnu): Use build4 in lieu of build5 and adjust to
	new LOOP_STMT semantics.  Use two different strategies depending on
	whether optimization is enabled to translate the loop.
	(gnat_gimplify_stmt) <LOOP_STMT>: Adjust to new LOOP_STMT semantics.

From-SVN: r158410
2010-04-16 11:54:51 +00:00
Eric Botcazou
586388fd72 uintp.adb (UI_From_Dint): Remove useless code.
* uintp.adb (UI_From_Dint): Remove useless code.
	(UI_From_Int): Likewise.
	* uintp.h: Reorder declarations.
	(UI_From_gnu): Declare.
	(UI_Base): Likewise.
	(Vector_Template): Likewise.
	(Vector_To_Uint): Likewise.
	(Uint_0): Remove.
	(Uint_1): Likewise.
	* gcc-interface/gigi.h: Tweak comments.
	* gcc-interface/cuintp.c (UI_From_gnu): New global function.
	* gcc-interface/decl.c (maybe_pad_type): Do not warn if either size
	overflows.
	(annotate_value) <INTEGER_CST>: Call UI_From_gnu.
	* gcc-interface/trans.c (post_error_ne_num): Call post_error_ne.
	(post_error_ne_tree): Call UI_From_gnu and post_error_ne.
	* gcc-interface/utils.c (max_size) <tcc_binary>: Do not special-case
	TYPE_MAX_VALUE.

From-SVN: r158408
2010-04-16 10:16:52 +00:00
Bernd Schmidt
f0c6475aea re PR target/40603 (unnecessary conversion from unsigned byte load to signed byte load)
PR target/40603
	* config/arm/arm.md (cbranchqi4): New pattern.
	* config/arm/predicates.md (const0_operand,
	cbranchqi4_comparison_operator): New predicates.

	PR target/40603
	* gcc.target/arm/thumb-cbranchqi.c: New test.

From-SVN: r158407
2010-04-16 10:04:15 +00:00
Richard Guenther
f010714542 gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2010-04-16  Richard Guenther  <rguenther@suse.de>

	* gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
	(dump_gimple_stmt): Likewise.

From-SVN: r158406
2010-04-16 09:49:20 +00:00
Bernd Schmidt
3302cfa12a arm.md (addsi3_cbranch): If destination is a high register...
* config/arm/arm.md (addsi3_cbranch): If destination is a high
	register, inputs must be low registers and we need a low register
	scratch.  Handle alternative 2 like alternative 3.

From-SVN: r158405
2010-04-16 09:47:17 +00:00
Bernd Schmidt
6ea007e447 re PR target/41514 (redundant compare instruction of consecutive conditional branches)
PR target/41514
	* config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
	If the previous insn is a cbranchsi4_insn with the same arguments,
	omit the compare instruction.

	PR target/41514
	gcc.target/arm/thumb-comparisons.c: New test.

From-SVN: r158404
2010-04-16 09:42:32 +00:00
Bernd Schmidt
6ddfdb0f7e recog.h (struct recog_data): New field is_operator.
* recog.h (struct recog_data): New field is_operator.
	(struct insn_operand_data): New field is_operator.
	* recog.c (extract_insn): Set recog_data.is_operator.
	* genoutput.c (output_operand_data): Emit code to set the
	is_operator field.
	* reload.c (find_reloads): Use it rather than testing for an
	empty constraint string.

From-SVN: r158403
2010-04-16 09:32:21 +00:00
Jakub Jelinek
5312b0660e alias.c (memrefs_conflict_p): If x and y are the same VALUE, don't call get_addr on both.
* alias.c (memrefs_conflict_p): If x and y are the same VALUE,
	don't call get_addr on both.  If one expression is a VALUE and
	the other a REG, check VALUE's locs if the REG isn't among them.

From-SVN: r158401
2010-04-16 11:26:43 +02:00
Kevin Williams
d5cc2ee390 * MAINTAINERS (Write After Approval): Add myself.
From-SVN: r158400
2010-04-16 09:15:59 +00:00
Christian Bruel
7a296495eb add accumulate-outgoing-args and omit-frame-pointer for SH
From-SVN: r158399
2010-04-16 10:04:05 +02:00
Eric Botcazou
169afcb99f decl.c (make_type_from_size): Just copy TYPE_NAME.
* gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Just copy
	TYPE_NAME.
	* gcc-interface/trans.c (smaller_packable_type_p): Rename into...
	(smaller_form_type_p): ...this.  Change parameter and variable names.
	(call_to_gnu): Use the nominal type of the parameter to create the
	temporary if it's a smaller form of the actual type.
	(addressable_p): Return false if the actual type is integral and its
	size is greater than that of the expected type.

From-SVN: r158398
2010-04-16 06:58:43 +00:00
GCC Administrator
1f24872b63 Daily bump.
From-SVN: r158397
2010-04-16 00:17:47 +00:00
Kaz Kojima
7140f0f90e re PR target/43741 (sh-elf ICEs for libstdc++-v3/src/ios_init.cc with -m2a)
PR target/43471
	* config/sh/sh.c (sh_legitimize_reload_address): Use
	MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
	Remove a unneeded check for offset_base.

From-SVN: r158393
2010-04-15 21:51:14 +00:00
Steven G. Kargl
e3e529d14c re PR fortran/30073 (Array out of bounds gives name of RHS array not LHS array)
PR fortran/30073
    * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
    block of code.  Set name to the variable associated with the descriptor.

From-SVN: r158392
2010-04-15 21:32:21 +00:00
Eric Botcazou
58c8f7700a cuintp.c (UI_To_gnu): Fix long line.
* gcc-interface/cuintp.c (UI_To_gnu): Fix long line.
	* gcc-interface/gigi.h (MARK_VISITED): Skip objects of constant class.
	(process_attributes): Delete.
	(post_error_ne_num): Change parameter name.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not force debug info
	with -g3.  Remove a couple of obsolete lines.  Minor tweaks.
	If type annotating mode, operate on trees to compute the adjustment to
	the sizes of tagged types.  Fix long line.
	(cannot_be_superflat_p): Tweak head comment.
	(annotate_value): Fold local constant.
	(set_rm_size): Fix long line.
	* gcc-interface/trans.c (Identifier_to_gnu): Rework comments.
	(Attribute_to_gnu): Fix long line.
	<Attr_Size>: Remove useless assertion.
	Reorder statements.  Use size_binop routine.
	(Loop_Statement_to_gnu): Use build5 in lieu of build_nt.
	Create local variables for the label and the test.  Tweak comments.
	(Subprogram_Body_to_gnu): Reset cfun to NULL.
	(Compilation_Unit_to_gnu): Use the Sloc of the Unit node.
	(process_inlined_subprograms): Integrate into...
	(Compilation_Unit_to_gnu): ...this.
	(gnat_to_gnu): Fix long line.
	(post_error_ne_num): Change parameter name.
	* gcc-interface/utils.c (process_attributes): Static-ify.
	<ATTR_MACHINE_ATTRIBUTE>: Set input_location before proceeding.
	(create_type_decl): Add comment.
	(create_var_decl_1): Process the attributes after adding the VAR_DECL
	to the current binding level.
	(create_subprog_decl): Likewise for the FUNCTION_DECL.
	(end_subprog_body): Do not reset cfun to NULL.
	(build_vms_descriptor32): Fix long line.
	(build_vms_descriptor): Likewise.
	(handle_nonnull_attribute): Likewise.
	(convert_vms_descriptor64): Likewise.
	* gcc-interface/utils2.c (fill_vms_descriptor): Fix long line.
	(gnat_protect_expr): Fix thinko.

From-SVN: r158390
2010-04-15 21:15:47 +00:00
Eric Botcazou
1fc24649bc trans.c (gigi): Set DECL_IGNORED_P on EH functions.
* gcc-interface/trans.c (gigi): Set DECL_IGNORED_P on EH functions.
	(gnat_to_gnu) <N_Op_Eq>: Restore the value of input_location
	before translating the top-level node.
	(lvalue_required_p) <N_Function_Call>: Return 1 if !constant.
	<N_Object_Declaration>: Likewise.
	<N_Assignment_Statement>: Likewise.
	<N_Unchecked_Type_Conversion>: Likewise.
	(call_to_gnu): Remove kludge.
	(gnat_to_gnu) <N_Return_Statement>: When not optimizing, force labels
	associated with user returns to be preserved.
	(gnat_to_gnu): Add special code to deal with boolean rvalues.
	* gcc-interface/utils2.c (compare_arrays): Set input_location on all
	comparisons.
	(build_unary_op) <ADDR_EXPR>: Call build_fold_addr_expr.
	<INDIRECT_REF>: Call build_fold_indirect_ref.

From-SVN: r158388
2010-04-15 20:21:08 +00:00
H.J. Lu
bafaef55aa Regenerate gcc/configure.
2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>

	* configure: Regenerated.

From-SVN: r158386
2010-04-15 12:00:27 -07:00
Andreas Krebbel
e8de8feae8 s390.c (s390_call_save_register_used): Switch back to HARD_REGNO_NREGS.
2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_call_save_register_used): Switch back
	to HARD_REGNO_NREGS.

From-SVN: r158384
2010-04-15 16:30:32 +00:00
Joel Sherrill
8c70969598 g-socket.adb: A target can have multiple missing errno's.
2010-04-15  Joel Sherrill <joel.sherrill@oarcorp.com>

	* g-socket.adb: A target can have multiple missing errno's.  This
	will result in multiple errno's being defined as -1.  Because of this
	we can not use a case but must use a series of if's to avoid 
	a duplicate case error in GNAT.Sockets.Resolve_Error.

From-SVN: r158382
2010-04-15 15:39:47 +00:00
Joel Sherrill
d8a653c546 gsocket.h: Run-time can no longer be built without network OS headers available.
2010-04-13  Joel Sherrill <joel.sherrill@oarcorp.com>

	* gsocket.h: Run-time can no longer be built without network
	OS headers available.  Changing RTEMS GNAT build procedure to
	reflect this and letting run-time build use network .h files.

From-SVN: r158381
2010-04-15 15:35:27 +00:00
Richard Guenther
038a39d1c5 alias.c (alias_set_subset_of): Handle alias-set zero child properly.
2010-04-15  Richard Guenther  <rguenther@suse.de>

	* alias.c (alias_set_subset_of): Handle alias-set zero
	child properly.

From-SVN: r158380
2010-04-15 15:30:17 +00:00
Mark Shinwell
28907f9a0a thumb2.md (thumb2_movsi_insn): Split ldr and str alternatives according to use of high and low regs.
gcc/
	* config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
	alternatives according to use of high and low regs.
	* config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
	optimizing for size on Thumb-2.


Co-Authored-By: Julian Brown <julian@codesourcery.com>

From-SVN: r158378
2010-04-15 14:39:22 +00:00
Thomas Schwinge
3f56ef8b60 config.gcc: Handle softfp as for Linux.
2010-04-15 Thomas Schwinge <tschwinge@gnu.org>

	gcc/
	* config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.

	libgcc/
	* config.host <i[34567]86-*-gnu*>: Handle softfp as for Linux.

From-SVN: r158375
2010-04-15 15:29:07 +02:00
Richard Guenther
25a6a8731c tree-ssa-structalias.c (struct variable_info): Add is_fn_info flag.
2010-04-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add
	is_fn_info flag.
	(new_var_info): Initialize it.
	(dump_constraints): Support printing last added constraints.
	(debug_constraints): Adjust.
	(dump_constraint_graph): Likewise.
	(make_heapvar_for): Check for NULL cfun.
	(get_function_part_constraint): New function.
	(get_fi_for_callee): Likewise.
	(find_func_aliases): Properly implement IPA PTA constraints.
	(process_ipa_clobber): New function.
	(find_func_clobbers): Likewise.
	(insert_into_field_list_sorted): Remove.
	(create_function_info_for): Properly allocate vars for IPA mode.
	Do not use insert_into_field_list_sorted.
	(create_variable_info_for): Properly generate constraints for
	global vars in IPA mode.
	(dump_solution_for_var): Always dump the solution.
	(set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
	(find_what_var_points_to): Adjust.
	(pt_solution_set): Change.
	(pt_solution_ior_into): New function.
	(pt_solution_empty_p): Export.
	(pt_solution_includes_global): Adjust.
	(pt_solution_includes_1): Likewise.
	(pt_solutions_intersect_1): Likewise.
	(dump_sa_points_to_info): Check some invariants.
	(solve_constraints): Move constraint dumping ...
	(compute_points_to_sets): ... here.
	(ipa_pta_execute): ... and here.
	(compute_may_aliases): Do not re-compute points-to info
	locally if IPA info is available.
	(ipa_escaped_pt): New global var.
	(ipa_pta_execute): Properly implement IPA PTA.
	* tree-into-ssa.c (dump_decl_set): Support dumping
	decls not in referenced-vars.
	* tree-flow.h (struct gimple_df): Add ipa_pta flag.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
	(dump_points_to_solution): Likewise.
	* tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
	* tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
	(remap_gimple_stmt): Reset call clobber/use information if
	necessary.
	(copy_decl_to_var): Copy DECL_PT_UID.
	(copy_result_decl_to_var): Likewise.
	* tree.c (make_node_stat): Initialize DECL_PT_UID.
	(copy_node_stat): Copy it.
	* tree.h (DECL_PT_UID): New macro.
	(SET_DECL_PT_UID): Likewise.
	(DECL_PT_UID_SET_P): Likewise.
	(struct tree_decl_minimal): Add pt_uid member.
	* tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
	(pt_solution_empty_p): Declare.
	(pt_solution_set): Adjust.
	(ipa_escaped_pt): Declare.
	* cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
	* gimple-pretty-print.c (pp_points_to_solution): New function.
	(dump_gimple_call): Dump call clobber/use information.
	* tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
	* tree-pass.h (TDF_ALIAS): New dump option.
	* tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
	* doc/invoke.texi (-fipa-pta): Update documentation.

	* gcc.dg/ipa/ipa-pta-1.c: New testcase.
	* gcc.dg/ipa/ipa-pta-2.c: Likewise.
	* gcc.dg/ipa/ipa-pta-3.c: Likewise.
	* gcc.dg/ipa/ipa-pta-4.c: Likewise.
	* gcc.dg/ipa/ipa-pta-5.c: Likewise.
	* gcc.dg/ipa/ipa-pta-6.c: Likewise.
	* gcc.dg/ipa/ipa-pta-7.c: Likewise.
	* gcc.dg/ipa/ipa-pta-8.c: Likewise.
	* gcc.dg/ipa/ipa-pta-9.c: Likewise.
	* gcc.dg/ipa/ipa-pta-10.c: Likewise.
	* gcc.dg/ipa/ipa-pta-11.c: Likewise.
	* gcc.dg/ipa/ipa-pta-12.c: Likewise.
	* gcc.dg/ipa/ipa-pta-13.c: Likewise.
	* gcc.dg/torture/ipa-pta-2.c: Likewise.
	* gcc.dg/torture/ipa-pta-1.c: Adjust.

From-SVN: r158374
2010-04-15 13:16:44 +00:00
Richard Guenther
cbdd87d444 Makefile.in (OBJS-common): Add gimple-fold.o.
2010-04-15  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (OBJS-common): Add gimple-fold.o.
	(gimple-fold.o): New rule.
	* tree.h (maybe_fold_offset_to_reference,
	maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
	prototypes ...
	* gimple.h: ... here.
	* tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
	may_propagate_address_into_dereference): Move prototypes ...
	* gimple.h: ... here.
	* tree-ssa-ccp.c (get_symbol_constant_value,
	may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
	maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
	maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
	maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
	ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
	fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
	gimplify_and_update_call_from_tree): Move ...
	* gimple-fold.c: ... here.  New file.
	(ccp_fold_builtin): Rename to ...
	(gimple_fold_builtin): ... this.
	* tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.

From-SVN: r158373
2010-04-15 12:58:05 +00:00