Commit Graph

116685 Commits

Author SHA1 Message Date
Teresa Johnson 4e8ee9cbf7 This patch adds functionality to libgcov to enable user applications to collect...
This patch adds functionality to libgcov to enable user applications to
collect profile data only in regions of interest. This is useful, for
example, to collect profile data from a long-running server only
during the time when it is serving requests.

Specifically, the new routines __gcov_reset will clear all profile counters
to zero and __gcov_dump will write out the profile information collected so
far. A global variable is used to prevent writing out the profile a
second time during exit.

2012-05-08   Teresa Johnson  <tejohnson@google.com>

	* libgcc/libgcov.c (gcov_clear, __gcov_reset): New functions.
	(__gcov_dump): Ditto.
	(gcov_dump_complete): New global variable.
	(gcov_exit): Export hidden to enable use in L_gcov_dump.
	(__gcov_flush): Outline functionality now in gcov_clear.
	* libgcc/Makefile.in (L_gcov_reset, L_gcov_dump): Define.
	* gcc/gcov-io.h (__gcov_reset, __gcov_dump): Declare.
	* gcc/doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.

From-SVN: r187297
2012-05-08 21:22:28 +00:00
Jan Hubicka 564fe867d8 cgraph.c (cgraph_call_edge_duplication_hooks): Export.
* cgraph.c (cgraph_call_edge_duplication_hooks): Export.
	(cgraph_create_node_1): Rename to ...
	(cgraph_create_empty_node): ... this one; export.
	(cgraph_create_node): Update.
	(cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
	(cgraph_create_edge_including_clones): Likewise.
	(cgraph_find_replacement_node): Likewise.
	(cgraph_clone_edge): Likewise.
	(cgraph_clone_node): Likewise.
	(clone_function_name): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	(cgraph_remove_node_and_inline_clones): Likewise.
	(cgraph_redirect_edge_call_stmt_to_callee): Move here from
	cgraphunit.c
	* cgraph.h: Reorder declarations so they match file of origin.
	(cgraph_create_empty_node): Declare.
	* cgraphunit.c (update_call_expr): Move to cgraphclones.c
	(cgraph_copy_node_for_versioning): Likewise.
	(cgraph_function_versioning): Likewise.
	(cgraph_materialize_clone): Likewise.
	(cgraph_redirect_edge_call_stmt_to_callee): Likewise.
	(cgraph_materialize_all_clones): Likewise.
	* cgraphclones.c: New file.
	* Makefile.in: Update for cgraphclones.

From-SVN: r187296
2012-05-08 21:05:38 +00:00
Jan Hubicka 66a20fc2a7 cgraph.c (cgraph_call_edge_duplication_hooks): Export.
* cgraph.c (cgraph_call_edge_duplication_hooks): Export.
	(cgraph_create_node_1): Rename to ...
	(cgraph_create_empty_node): ... this one; export.
	(cgraph_create_node): Update.
	(cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
	(cgraph_create_edge_including_clones): Likewise.
	(cgraph_find_replacement_node): Likewise.
	(cgraph_clone_edge): Likewise.
	(cgraph_clone_node): Likewise.
	(clone_function_name): Likewise.
	(cgraph_create_virtual_clone): Likewise.
	(cgraph_remove_node_and_inline_clones): Likewise.
	(cgraph_redirect_edge_call_stmt_to_callee): Move here from
	cgraphunit.c
	* cgraph.h: Reorder declarations so they match file of origin.
	(cgraph_create_empty_node): Declare.
	* cgraphunit.c (update_call_expr): Move to cgraphclones.c
	(cgraph_copy_node_for_versioning): Likewise.
	(cgraph_function_versioning): Likewise.
	(cgraph_materialize_clone): Likewise.
	(cgraph_redirect_edge_call_stmt_to_callee): Likewise.
	(cgraph_materialize_all_clones): Likewise.
	* cgraphclones.c: New file.
	* Makefile.in: Update for cgraphclones.

From-SVN: r187295
2012-05-08 21:03:18 +00:00
Uros Bizjak aedfe0a806 * ChangeLog: Fix PR number of my last commit.
From-SVN: r187290
2012-05-08 18:09:30 +02:00
Uros Bizjak 3f3dcbb393 re PR target/53250 ([SH] ICE: in change_address_1, at emit-rtl.c:2018)
PR target/53250
	* config/i386/i386.c (ix86_set_reg_reg_cost): New function.
	(ix86_rtx_costs): Handle SET.

From-SVN: r187289
2012-05-08 18:01:54 +02:00
Michael Matz bcc708fcdc basic-block.h (struct rtl_bb_info): Remove visited member and move head_ member to ...
* basic-block.h (struct rtl_bb_info): Remove visited member and
	move head_ member to ...
	(struct basic_block_def.basic_block_il_dependent): ... the new
	member x, replacing but containing old member rtl.
	(enum bb_flags): New BB_VISITED flag.
	(BB_HEADER, BB_FOOTER): New macros.

	* jump.c (mark_all_labels): Adjust.
	* cfgcleanup.c (try_optimize_cfg): Adjust.
	* cfglayout.c (record_effective_endpoints): Adjust.
	(relink_block_chain): Ditto (and don't fiddle with visited).
	(fixup_reorder_chain): Adjust.
	(fixup_fallthru_exit_predecessor): Ditto.
	(cfg_layout_duplicate_bb): Ditto.
	* combine.c (update_cfg_for_uncondjump): Adjust.
	* bb-reorder.c (struct bbro_basic_block_data_def): Add visited
	member.
	(bb_visited_trace): New accessor.
	(mark_bb_visited): Move in front.
	(rotate_loop): Use bb_visited_trace.
	(find_traces_1_round): Ditto.
	(emit_barrier_after): Ditto.
	(copy_bb): Ditto, and initialize visited on resize.
	(reorder_basic_blocks): Initize visited member.
	(duplicate_computed_gotos): Clear bb flags at start, use
	BB_VISITED flags.

	* cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
	(rtl_verify_flow_info_1): Ditto.
	(cfg_layout_split_block): Ditto.
	(cfg_layout_delete_block): Ditto.
	(cfg_layout_merge_blocks): Ditto.
	(init_rtl_bb_info): Adjust and initialize il.x.head_ member.

From-SVN: r187288
2012-05-08 15:54:13 +00:00
Hans-Peter Nilsson 88231ff681 re PR target/53272 (wrong condition-codes for strict-low-part destination and small-integer source)
PR target/53272
	* gcc.dg/torture/pr53272-1.c, gcc.dg/torture/pr53272-2.c: New test.

From-SVN: r187284
2012-05-08 15:21:50 +00:00
Hans-Peter Nilsson b3374f1493 re PR target/53272 (wrong condition-codes for strict-low-part destination and small-integer source)
PR target/53272
	* config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
	when a constant source operand matches an "I" constraint, the "no
	CC0 change" applies to a register-destination only, not a
	strict_low_part-destination.

From-SVN: r187283
2012-05-08 15:20:52 +00:00
Richard Guenther ad9fc55abd fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2 to zero or to (X * CST1) & CST2' when...
2012-05-08  Richard Guenther  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
	to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.

	* gcc.dg/fold-bitand-4.c: New testcase.

From-SVN: r187280
2012-05-08 12:50:18 +00:00
Georg-Johann Lay 04d170d214 Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
* Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
	* doc/avr-mmcu.texi: New auto-generated file.
	* doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
	to document all valid -mmcu= arguments.
	* config/avr/avr.h (arch_info_s): New struct definition.
	* config/avr/avr-devices.c (avr_texinfo): New variable.
	* config/avr/gen-avr-mmcu-texi.c: New file.
	* config/avr/t-avr: New rules and dependencies to build	avr-mmcu.texi.

From-SVN: r187279
2012-05-08 12:28:29 +00:00
Dehao Chen 9c04723a04 predict.c (find_qualified_ssa_name): New
2012-05-08  Dehao Chen  <dehao@google.com>
gcc/
	* predict.c (find_qualified_ssa_name): New
	(find_ssa_name_in_expr): New
	(find_ssa_name_in_assign_stmt): New
	(is_comparison_with_loop_invariant_p): New
	(is_bound_expr_similar): New
	(predict_iv_comparison): New
	(predict_loops): Add heuristic for loop-nested branches that compare an
	induction variable to a loop bound variable.
	* predict.def (PRED_LOOP_IV_COMPARE): New macro
testsuite/
	* gcc.dg/predict-1.c: Check if LOOP_IV_COMPARE static predict
	heuristic is working properly.
	* gcc.dg/predict-2.c: Likewise.
	* gcc/dg/predict-3.c: Likewise.
	* gcc/dg/predict-4.c: Likewise.
	* gcc/dg/predict-5.c: Likewise.
	* gcc/dg/predict-6.c: Likewise.

From-SVN: r187277
2012-05-08 10:01:44 +00:00
Uros Bizjak 536b0cb7af i386.c (has_dispatch): Use TARGET_BDVER1 and TARGET_BDVER2 defines where appropriate.
* config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
	TARGET_BDVER2 defines where appropriate.

From-SVN: r187276
2012-05-08 08:56:11 +02:00
GCC Administrator ca9daea1ef Daily bump.
From-SVN: r187275
2012-05-08 00:18:16 +00:00
Eric Botcazou 36d2188379 configure.ac (PLUGIN_LD): Rename into...
* configure.ac (PLUGIN_LD): Rename into...
	(PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
	* config.in: Regenerate.
	* configure: Likewise.
	* collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.

From-SVN: r187269
2012-05-07 19:59:56 +00:00
Eric Botcazou b48e22b2bd tree-dfa.c (get_ref_base_and_extent): Do the offset computation using the precision of the index type.
* tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
	computation using the precision of the index type.
	* gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
	(fold_array_ctor_reference): Do index computations in the index type.

From-SVN: r187268
2012-05-07 18:57:23 +00:00
Ian Lance Taylor 62beea506b compiler: fix an ICE when parsing 0xdie, reject token 0x123i.
The lexer used to incorrectly accept a token like 0x123i
and interpreted it as 123i. It also used to die when encountering
0xdie.

From-SVN: r187266
2012-05-07 18:53:28 +00:00
Ian Lance Taylor ca30ba74c9 compiler: fix ICE in handling of rune constants.
This patch corrects an ICE in handling on constant expressions
such as

const r = ^'a'

Part of issue 9.

From-SVN: r187264
2012-05-07 18:36:36 +00:00
Ian Lance Taylor c414667bc2 compiler: reject NOT operator on integer types.
The Go specification only accepts the NOT operator on boolean
types.

Fixes issue 10.

From-SVN: r187262
2012-05-07 18:24:17 +00:00
Georg-Johann Lay 55796e9021 avr.c (avr_prologue_setup_frame): Fix mode passed down to plus_constant.
* config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
	down to plus_constant.
	(expand_epilogue): Ditto.

From-SVN: r187259
2012-05-07 16:31:44 +00:00
Steven Bosscher 8bb91f498b postreload.c (reload_cse_regs): Make static.
* postreload.c (reload_cse_regs): Make static.
	* reload.h (reload_cse_regs): Remove prototype.

From-SVN: r187258
2012-05-07 16:26:14 +00:00
Rainer Orth 527eeee5b3 Allow for objects in libatomic_la_LIBADD
* Makefile.am (libatomic.map-sun): Handle objects in
	libatomic_la_LIBADD.
	* aclocal.m4: Regenerate.
	* Makefile.in: Regenerate.

From-SVN: r187257
2012-05-07 16:11:14 +00:00
Rainer Orth e9885be5c6 Don't include XCFLAGS in CFLAGS
* configure.ac: Add $XPCFLAGS to CFLAGS, not $XCFLAGS.
	* configure: Regenerate.

From-SVN: r187256
2012-05-07 16:10:11 +00:00
Richard Henderson e220a04734 * config/alpha/alpha.md (clear_cache): New pattern.
From-SVN: r187255
2012-05-07 08:55:11 -07:00
Georg-Johann Lay 6aa52a58b7 config/avr/avr.c: Adjust indentation.
From-SVN: r187254
2012-05-07 15:34:27 +00:00
Janne Blomqvist f7d6bc0160 Bump minimum required MPFR version to 2.4.0.
2012-05-07  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Bump minimum MPFR version to 2.4.0.
	* configure: Regenerated.

From-SVN: r187253
2012-05-07 18:30:42 +03:00
Steven Bosscher 5be1632b7d re PR middle-end/53245 (ice in expand_case)
PR middle-end/53245
	* gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
	is folded to a type boundary value, verify that the resulting case
	label is still a care range.

From-SVN: r187248
2012-05-07 14:40:33 +00:00
Uros Bizjak 60197adbfd i386.md (ctz<mode>2): Emit rep;bsf only for TARGET_GENERIC, when not optimizing for size.
* config/i386/i386.md (ctz<mode>2): Emit rep;bsf
	only for TARGET_GENERIC, when not optimizing for size.
	(*ffs<mode>_1): Ditto.

From-SVN: r187247
2012-05-07 16:38:41 +02:00
Steven Bosscher 198fc9f199 tree-cfg.c (verify_gimple_switch): Tighten checks.
* tree-cfg.c (verify_gimple_switch): Tighten checks.

From-SVN: r187242
2012-05-07 13:47:11 +00:00
Jakub Jelinek 7a04f01cb7 re PR tree-optimization/53239 (VRP vs named value return opt)
PR tree-optimization/53239
	* tree-vrp.c (get_value_range): Set VR of
	SSA_NAME_IS_DEFAULT_DEF of DECL_BY_REFERENCE RESULT_DECL
	to nonnull.

	* g++.dg/opt/vrp3.C: New test.
	* g++.dg/opt/vrp3-aux.cc: New file.
	* g++.dg/opt/vrp3.h: New file.

From-SVN: r187240
2012-05-07 15:31:00 +02:00
Rainer Orth 4f22d4300f Allow for / comments in g++.dg/debug/dwarf2/nested-3.C
* g++.dg/debug/dwarf2/nested-3.C: Allow for / comments and missing
	.uleb128 support in assembler output.

From-SVN: r187236
2012-05-07 12:59:43 +00:00
Richard Biener fb7c3cc87e re PR lto/53195 (ICE seg fault in lto (in set_is_used (tp=Unhandled dwarf expression opcode 0xf3 ) at ../.././gcc/tree-flow-inline.h:567))
2012-05-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/53195
	* tree-inline.c (setup_one_parameter): Properly add referenced
	vars from the parameters new known value.

From-SVN: r187235
2012-05-07 12:59:05 +00:00
Steven Bosscher 75647adeca m68k.c (m68k_sched_branch_type): Remove.
* config/m68k/m68k.c (m68k_sched_branch_type): Remove.
	(sched_branch_type): Remove.
	(m68k_sched_md_init_global): Don't allocate it.
	(m68k_sched_md_finish_global): Don't free it.
	* config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
	* config/m68k/m68k.md: Set the type of insns using m68k_sched_branch_type
	to bcc directly.

From-SVN: r187234
2012-05-07 12:29:05 +00:00
Richard Guenther 7d7f7fb770 re PR lto/42987 (Testcases local1-a.cc and local1.C cause ICE when compiled with -flto -g)
2012-05-07  Richard Guenther  <rguenther@suse.de>

	PR lto/42987
	* g++.dg/lto/pr42987_0.C: New testcase.
	* g++.dg/lto/pr42987_1.C: Likewise.

From-SVN: r187231
2012-05-07 11:49:43 +00:00
Rainer Orth fe551ce4b1 Don't use DWARF 4 on Solaris
* config/sol2.c (solaris_override_options): New function.
	* config/sol2-protos.h (solaris_override_options): Declare.
	* config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.

From-SVN: r187230
2012-05-07 11:07:31 +00:00
Richard Guenther 1e3733905b tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return whether we failed to compute data dependences.
2012-05-07  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
	whether we failed to compute data dependences.
	(loop_prefetch_arrays): Fail if we failed.

From-SVN: r187227
2012-05-07 08:48:44 +00:00
Tobias Burnus e3a2ec56bc re PR fortran/53255 ([OOP] With TYPE, wrong type-bound operator used: of parent instead of overridden one)
2012-05-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53255
        * resolve.c (resolve_typebound_static): Fix handling
        of overridden specific to generic operator.

2012-05-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/53255
        * gfortran.dg/typebound_operator_15.f90: New.

From-SVN: r187226
2012-05-07 10:35:17 +02:00
GCC Administrator 6b3f712e21 Daily bump.
From-SVN: r187223
2012-05-07 00:18:42 +00:00
Uros Bizjak 19010925aa i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
* config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
	Emit bsf when optimizing for size.
	(*ffs<mode>_1): Ditto.


Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>

From-SVN: r187219
2012-05-07 01:07:38 +02:00
Oleg Endo 0345d1dd2a re PR target/53250 ([SH] ICE: in change_address_1, at emit-rtl.c:2018)
PR target/53250
	* config/sh/sh.c (sh_rtx_costs): Handle SET.

From-SVN: r187218
2012-05-06 22:38:57 +00:00
Uros Bizjak 69f088a73a re PR target/53227 (FAIL: gcc.target/i386/movbe-2.c scan-assembler-times movbe[ \t] 4)
PR target/53227
	* config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
	(bswapdi2): Split from bswap<mode>2.  Use nonnimediate_operand
	predicate for operand 1.  Force operand 1 to register for TARGET_BSWAP.
	(bswapsi2): Ditto.
	(*bswapdi2_doubleword): New insn pattern.
	(*bswap<mode>2): Rename from *bswap<mode>2_1.

From-SVN: r187215
2012-05-06 22:47:59 +02:00
Tobias Burnus ea59b186fb re PR fortran/41587 ([OOP] ICE with ALLOCATABLE CLASS components)
2012-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/41587
        * decl.c (build_struct): Don't ignore FAILED status.

2012-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/41587
        * gfortran.dg/class_array_13.f90: New.

From-SVN: r187214
2012-05-06 22:30:05 +02:00
Richard Sandiford 91000c66b9 mips.c (mips_set_reg_reg_piece_cost): New function.
gcc/
	* config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
	(mips_set_reg_reg_cost): Likewise.
	(mips_rtx_costs): Handle SET.

From-SVN: r187213
2012-05-06 19:12:51 +00:00
Richard Sandiford 69523a7c89 lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
gcc/
	* lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
	(compute_costs): Likewise for the zero extension.  Use set_rtx_cost
	to compute the cost of moves.  Set the mode of the target register.

From-SVN: r187212
2012-05-06 18:55:20 +00:00
Paolo Carlini 4fe977f2d6 re PR c++/53152 (In "no match for operatorXX" error message gives the wrong column info)
2012-05-06  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53152
	* call.c (op_error, build_new_op_1, build_new_op): Add location_t
	parameter.
	(build_conditional_expr_1): Adjust.
	* typeck.c (build_x_indirect_ref, build_x_binary_op,
	build_x_unary_op): Add location_t parameter.
	(rationalize_conditional_expr, build_x_array_ref,
	build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
	Adjust.
	* typeck2.c (build_x_arrow): Add location_t parameter.
	* semantics.c (finish_unary_op_expr): Likewise.
	(finish_increment_expr, handle_omp_for_class_iterator): Adjust.
	* decl2.c (grok_array_decl): Add location_t parameter.
	* parser.c (cp_parser_postfix_open_square_expression,
	cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
	cp_parser_binary_expression, cp_parser_builtin_offsetof,
	do_range_for_auto_deduction, cp_convert_range_for,
	cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
	location, adjust.
	* pt.c (tsubst_copy_and_build): Adjust.
	* tree.c (maybe_dummy_object): Likewise.
	* cp-tree.h: Update declarations.

From-SVN: r187211
2012-05-06 15:06:31 +00:00
Tristan Gingold 630dfc9c51 * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
From-SVN: r187210
2012-05-06 11:28:20 +00:00
Eric Botcazou 9422c886e9 decl.c (gnat_to_gnu_entity): In the renaming case...
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
	case, use the padded type if the renamed object has an unconstrained
	type with default discriminant.

From-SVN: r187209
2012-05-06 11:13:32 +00:00
Eric Botcazou 8009661301 trans.c (Loop_Statement_to_gnu): Also handle invariant conditions with only one bound.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant
	conditions with only one bound.
	(Raise_Error_to_gnu): Likewise.  New function extracted from...
	(gnat_to_gnu) <N_Raise_Constraint_Error>: ...here.  Call above function
	in regular mode only.

From-SVN: r187208
2012-05-06 10:51:37 +00:00
Eric Botcazou 1a5b6cd2af * gcc-interface/misc.c (gnat_post_options): Disable caret by default.
From-SVN: r187207
2012-05-06 10:46:17 +00:00
Eric Botcazou 842d4ee2ad gigi.h (make_packable_type): Declare.
* gcc-interface/gigi.h (make_packable_type): Declare.
	(make_type_from_size): Likewise.
	(relate_alias_sets): Likewise.
	(maybe_pad_type): Adjust.
	(init_gnat_to_gnu): Delete.
	(destroy_gnat_to_gnu): Likewise.
	(init_dummy_type): Likewise.
	(destroy_dummy_type): Likewise.
	(init_gnat_utils): Declare.
	(destroy_gnat_utils): Likewise.
	(ceil_pow2): New inline function.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2.
	<object>: Pass True for the final processing of alignment and size.
	<E_Subprogram_Type>: Only create the TYPE_DECL for a padded return
	type if necessary.
	(round_up_to_align): Delete.
	(ceil_alignment): Likewise.
	(relate_alias_sets): Move to...
	(make_aligning_type): Likewise.
	(make_packable_type): Likewise.
	(maybe_pad_type): Likewise.
	(make_type_from_size): Likewise.
	* gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete.
	(struct pad_type_hash): New type.
	(pad_type_hash_table): New static variable.
	(init_gnat_to_gnu): Merge into...
	(init_dummy_type): Likewise.
	(init_gnat_utils): ...this.  New function.
	(destroy_gnat_to_gnu): Merge into...
	(destroy_dummy_type): Likewise.
	(destroy_gnat_utils): ...this.  New function.
	(pad_type_hash_marked_p): New function.
	(pad_type_hash_hash): Likewise.
	(pad_type_hash_eq): Likewise.
	(relate_alias_sets): ...here.
	(make_aligning_type): Likewise.
	(make_packable_type): Likewise.
	(maybe_pad_type): Likewise.  Change same_rm_size parameter into
	set_rm_size; do not set TYPE_ADA_SIZE if it is false.  Do not set
	null as Ada size.  Do not set TYPE_VOLATILE on the padded type.  If it
	is complete and has constant size, canonicalize it.  Bail out earlier
	if a warning need not be issued.
	(make_type_from_size): Likewise.
	<INTEGER_TYPE>: Bail out if size is too large
	(gnat_types_compatible_p): Do not deal with padded types.
	(convert): Compare main variants for padded types.
	* gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils.
	(gnat_to_gnu): Do not convert at the end for a call to a function that
	returns an unconstrained type with default discriminant.
	(Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects.
	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise.
	Do not use the padded type if it is BLKmode and the inner type is
	non-BLKmode.

From-SVN: r187206
2012-05-06 10:41:03 +00:00
Eric Botcazou 6295740973 Adjust.
From-SVN: r187204
2012-05-06 09:24:21 +00:00