packages: gcc/gcc.spec, gcc/gcc-branch.diff - rel 2; branch diff updated

arekm arekm at pld-linux.org
Sat Jan 8 18:34:41 CET 2011


Author: arekm                        Date: Sat Jan  8 17:34:41 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 2; branch diff updated

---- Files affected:
packages/gcc:
   gcc.spec (1.644 -> 1.645) , gcc-branch.diff (1.40 -> 1.41) 

---- Diffs:

================================================================
Index: packages/gcc/gcc.spec
diff -u packages/gcc/gcc.spec:1.644 packages/gcc/gcc.spec:1.645
--- packages/gcc/gcc.spec:1.644	Sat Dec 18 22:01:45 2010
+++ packages/gcc/gcc.spec	Sat Jan  8 18:34:35 2011
@@ -73,7 +73,7 @@
 Summary(pt_BR.UTF-8):	Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:		gcc
 Version:	%{major_ver}.%{minor_ver}
-Release:	1
+Release:	2
 Epoch:		6
 License:	GPL v3+
 Group:		Development/Languages
@@ -2238,6 +2238,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.645  2011/01/08 17:34:35  arekm
+- rel 2; branch diff updated
+
 Revision 1.644  2010/12/18 21:01:45  arekm
 - up to 4.5.2
 

================================================================
Index: packages/gcc/gcc-branch.diff
diff -u packages/gcc/gcc-branch.diff:1.40 packages/gcc/gcc-branch.diff:1.41
--- packages/gcc/gcc-branch.diff:1.40	Sat Dec 18 22:01:45 2010
+++ packages/gcc/gcc-branch.diff	Sat Jan  8 18:34:36 2011
@@ -1,7 +1,7 @@
 Index: libgomp/configure.tgt
 ===================================================================
---- libgomp/configure.tgt	(.../tags/gcc_4_5_2_release)	(wersja 168030)
-+++ libgomp/configure.tgt	(.../branches/gcc-4_5-branch)	(wersja 168030)
+--- libgomp/configure.tgt	(.../tags/gcc_4_5_2_release)	(wersja 168599)
++++ libgomp/configure.tgt	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -125,6 +125,10 @@
  	config_path="bsd posix"
  	;;
@@ -15,8 +15,8 @@
  
 Index: libgomp/ChangeLog
 ===================================================================
---- libgomp/ChangeLog	(.../tags/gcc_4_5_2_release)	(wersja 168030)
-+++ libgomp/ChangeLog	(.../branches/gcc-4_5-branch)	(wersja 168030)
+--- libgomp/ChangeLog	(.../tags/gcc_4_5_2_release)	(wersja 168599)
++++ libgomp/ChangeLog	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -1,3 +1,10 @@
 +2010-12-17  Rainer Orth  <ro at CeBiTec.Uni-Bielefeld.DE>
 +
@@ -28,23 +28,355 @@
  2010-12-16  Release Manager
  
  	* GCC 4.5.2 released.
+Index: gcc/tree-loop-distribution.c
+===================================================================
+--- gcc/tree-loop-distribution.c	(.../tags/gcc_4_5_2_release)	(wersja 168599)
++++ gcc/tree-loop-distribution.c	(.../branches/gcc-4_5-branch)	(wersja 168599)
+@@ -251,7 +251,7 @@
+ 
+ /* Generate a call to memset.  Return true when the operation succeeded.  */
+ 
+-static bool
++static void
+ generate_memset_zero (gimple stmt, tree op0, tree nb_iter,
+ 		      gimple_stmt_iterator bsi)
+ {
+@@ -265,45 +265,27 @@
+ 
+   DR_STMT (dr) = stmt;
+   DR_REF (dr) = op0;
+-  if (!dr_analyze_innermost (dr))
+-    goto end;
++  res = dr_analyze_innermost (dr);
++  gcc_assert (res && stride_of_unit_type_p (DR_STEP (dr), TREE_TYPE (op0)));
+ 
+-  /* Test for a positive stride, iterating over every element.  */
+-  if (integer_zerop (size_binop (MINUS_EXPR,
+-				 fold_convert (sizetype, DR_STEP (dr)),
+-				 TYPE_SIZE_UNIT (TREE_TYPE (op0)))))
+-    {
+-      addr_base = fold_convert_loc (loc, sizetype,
+-				    size_binop_loc (loc, PLUS_EXPR,
+-						    DR_OFFSET (dr),
+-						    DR_INIT (dr)));
+-      addr_base = fold_build2_loc (loc, POINTER_PLUS_EXPR,
+-				   TREE_TYPE (DR_BASE_ADDRESS (dr)),
+-				   DR_BASE_ADDRESS (dr), addr_base);
++  nb_bytes = build_size_arg_loc (loc, nb_iter, op0, &stmt_list);
++  addr_base = size_binop_loc (loc, PLUS_EXPR, DR_OFFSET (dr), DR_INIT (dr));
++  addr_base = fold_convert_loc (loc, sizetype, addr_base);
+ 
+-      nb_bytes = build_size_arg_loc (loc, nb_iter, op0, &stmt_list);
+-    }
+-
+   /* Test for a negative stride, iterating over every element.  */
+-  else if (integer_zerop (size_binop (PLUS_EXPR,
+-				      TYPE_SIZE_UNIT (TREE_TYPE (op0)),
+-				      fold_convert (sizetype, DR_STEP (dr)))))
++  if (integer_zerop (size_binop (PLUS_EXPR,
++				 TYPE_SIZE_UNIT (TREE_TYPE (op0)),
++				 fold_convert (sizetype, DR_STEP (dr)))))
+     {
+-      nb_bytes = build_size_arg_loc (loc, nb_iter, op0, &stmt_list);
+-
+-      addr_base = size_binop_loc (loc, PLUS_EXPR, DR_OFFSET (dr), DR_INIT (dr));
+-      addr_base = fold_convert_loc (loc, sizetype, addr_base);
+       addr_base = size_binop_loc (loc, MINUS_EXPR, addr_base,
+ 				  fold_convert_loc (loc, sizetype, nb_bytes));
+       addr_base = size_binop_loc (loc, PLUS_EXPR, addr_base,
+ 				  TYPE_SIZE_UNIT (TREE_TYPE (op0)));
+-      addr_base = fold_build2_loc (loc, POINTER_PLUS_EXPR,
+-				   TREE_TYPE (DR_BASE_ADDRESS (dr)),
+-				   DR_BASE_ADDRESS (dr), addr_base);
+     }
+-  else
+-    goto end;
+ 
++  addr_base = fold_build2_loc (loc, POINTER_PLUS_EXPR,
++			       TREE_TYPE (DR_BASE_ADDRESS (dr)),
++			       DR_BASE_ADDRESS (dr), addr_base);
+   mem = force_gimple_operand (addr_base, &stmts, true, NULL);
+   gimple_seq_add_seq (&stmt_list, stmts);
+ 
+@@ -311,14 +293,11 @@
+   fn_call = gimple_build_call (fn, 3, mem, integer_zero_node, nb_bytes);
+   gimple_seq_add_stmt (&stmt_list, fn_call);
+   gsi_insert_seq_after (&bsi, stmt_list, GSI_CONTINUE_LINKING);
+-  res = true;
+ 
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     fprintf (dump_file, "generated memset zero\n");
+ 
+- end:
+   free_data_ref (dr);
+-  return res;
+ }
+ 
+ /* Tries to generate a builtin function for the instructions of LOOP
+@@ -332,7 +311,6 @@
+   unsigned i, x = 0;
+   basic_block *bbs;
+   gimple write = NULL;
+-  tree op0, op1;
+   gimple_stmt_iterator bsi;
+   tree nb_iter = number_of_exit_cond_executions (loop);
+ 
+@@ -368,26 +346,17 @@
+ 	}
+     }
+ 
+-  if (!write)
++  if (!stmt_with_adjacent_zero_store_dr_p (write))
+     goto end;
+ 
+-  op0 = gimple_assign_lhs (write);
+-  op1 = gimple_assign_rhs1 (write);
+-
+-  if (!(TREE_CODE (op0) == ARRAY_REF
+-	|| TREE_CODE (op0) == INDIRECT_REF))
+-    goto end;
+-
+   /* The new statements will be placed before LOOP.  */
+   bsi = gsi_last_bb (loop_preheader_edge (loop)->src);
++  generate_memset_zero (write, gimple_assign_lhs (write), nb_iter, bsi);
++  res = true;
+ 
+-  if (gimple_assign_rhs_code (write) == INTEGER_CST
+-      && (integer_zerop (op1) || real_zerop (op1)))
+-    res = generate_memset_zero (write, op0, nb_iter, bsi);
+-
+   /* If this is the last partition for which we generate code, we have
+      to destroy the loop.  */
+-  if (res && !copy_p)
++  if (!copy_p)
+     {
+       unsigned nbbs = loop->num_nodes;
+       edge exit = single_exit (loop);
+@@ -531,24 +500,6 @@
+ static void rdg_flag_vertex_and_dependent (struct graph *, int, bitmap, bitmap,
+ 					   bitmap, bool *);
+ 
+-/* Flag all the uses of U.  */
+-
+-static void
+-rdg_flag_all_uses (struct graph *rdg, int u, bitmap partition, bitmap loops,
+-		   bitmap processed, bool *part_has_writes)
+-{
+-  struct graph_edge *e;
+-
+-  for (e = rdg->vertices[u].succ; e; e = e->succ_next)
+-    if (!bitmap_bit_p (processed, e->dest))
+-      {
+-	rdg_flag_vertex_and_dependent (rdg, e->dest, partition, loops,
+-				       processed, part_has_writes);
+-	rdg_flag_all_uses (rdg, e->dest, partition, loops, processed,
+-			   part_has_writes);
+-      }
+-}
+-
+ /* Flag the uses of U stopping following the information from
+    upstream_mem_writes.  */
+ 
+@@ -720,68 +671,13 @@
+     }
+ }
+ 
+-/* Flag all the nodes of RDG containing memory accesses that could
+-   potentially belong to arrays already accessed in the current
+-   PARTITION.  */
+-
+-static void
+-rdg_flag_similar_memory_accesses (struct graph *rdg, bitmap partition,
+-				  bitmap loops, bitmap processed,
+-				  VEC (int, heap) **other_stores)
+-{
+-  bool foo;
+-  unsigned i, n;
+-  int j, k, kk;
+-  bitmap_iterator ii;
+-  struct graph_edge *e;
+-
+-  EXECUTE_IF_SET_IN_BITMAP (partition, 0, i, ii)
+-    if (RDG_MEM_WRITE_STMT (rdg, i)
+-	|| RDG_MEM_READS_STMT (rdg, i))
+-      {
+-	for (j = 0; j < rdg->n_vertices; j++)
+-	  if (!bitmap_bit_p (processed, j)
+-	      && (RDG_MEM_WRITE_STMT (rdg, j)
+-		  || RDG_MEM_READS_STMT (rdg, j))
+-	      && rdg_has_similar_memory_accesses (rdg, i, j))
+-	    {
+-	      /* Flag first the node J itself, and all the nodes that
+-		 are needed to compute J.  */
+-	      rdg_flag_vertex_and_dependent (rdg, j, partition, loops,
+-					     processed, &foo);
+-
+-	      /* When J is a read, we want to coalesce in the same
+-		 PARTITION all the nodes that are using J: this is
+-		 needed for better cache locality.  */
+-	      rdg_flag_all_uses (rdg, j, partition, loops, processed, &foo);
+-
+-	      /* Remove from OTHER_STORES the vertex that we flagged.  */
+-	      if (RDG_MEM_WRITE_STMT (rdg, j))
+-		for (k = 0; VEC_iterate (int, *other_stores, k, kk); k++)
+-		  if (kk == j)
+-		    {
+-		      VEC_unordered_remove (int, *other_stores, k);
+-		      break;
+-		    }
+-	    }
+-
+-	/* If the node I has two uses, then keep these together in the
+-	   same PARTITION.  */
+-	for (n = 0, e = rdg->vertices[i].succ; e; e = e->succ_next, n++);
+-
+-	if (n > 1)
+-	  rdg_flag_all_uses (rdg, i, partition, loops, processed, &foo);
+-      }
+-}
+-
+ /* Returns a bitmap in which all the statements needed for computing
+    the strongly connected component C of the RDG are flagged, also
+    including the loop exit conditions.  */
+ 
+ static bitmap
+ build_rdg_partition_for_component (struct graph *rdg, rdgc c,
+-				   bool *part_has_writes,
+-				   VEC (int, heap) **other_stores)
++				   bool *part_has_writes)
+ {
+   int i, v;
+   bitmap partition = BITMAP_ALLOC (NULL);
+@@ -793,13 +689,6 @@
+       rdg_flag_vertex_and_dependent (rdg, v, partition, loops, processed,
+ 				     part_has_writes);
+ 
+-  /* Also iterate on the array of stores not in the starting vertices,
+-     and determine those vertices that have some memory affinity with
+-     the current nodes in the component: these are stores to the same
+-     arrays, i.e. we're taking care of cache locality.  */
+-  rdg_flag_similar_memory_accesses (rdg, partition, loops, processed,
+-				    other_stores);
+-
+   rdg_flag_loop_exits (rdg, loops, partition, processed, part_has_writes);
+ 
+   BITMAP_FREE (processed);
+@@ -863,6 +752,79 @@
+   BITMAP_FREE (saved_components);
+ }
+ 
++/* Returns true when it is possible to generate a builtin pattern for
++   the PARTITION of RDG.  For the moment we detect only the memset
++   zero pattern.  */
++
++static bool
++can_generate_builtin (struct graph *rdg, bitmap partition)
++{
++  unsigned i;
++  bitmap_iterator bi;
++  int nb_reads = 0;
++  int nb_writes = 0;
++  int stores_zero = 0;
++
++  EXECUTE_IF_SET_IN_BITMAP (partition, 0, i, bi)
++    if (RDG_MEM_READS_STMT (rdg, i))
++      nb_reads++;
++    else if (RDG_MEM_WRITE_STMT (rdg, i))
++      {
++	nb_writes++;
++	if (stmt_with_adjacent_zero_store_dr_p (RDG_STMT (rdg, i)))
++	  stores_zero++;
++      }
++
++  return stores_zero == 1 && nb_writes == 1 && nb_reads == 0;
++}
++
++/* Returns true when PARTITION1 and PARTITION2 have similar memory
++   accesses in RDG.  */
++
++static bool
++similar_memory_accesses (struct graph *rdg, bitmap partition1,
++			 bitmap partition2)
++{
++  unsigned i, j;
++  bitmap_iterator bi, bj;
++
++  EXECUTE_IF_SET_IN_BITMAP (partition1, 0, i, bi)
++    if (RDG_MEM_WRITE_STMT (rdg, i)
++	|| RDG_MEM_READS_STMT (rdg, i))
++      EXECUTE_IF_SET_IN_BITMAP (partition2, 0, j, bj)
++	if (RDG_MEM_WRITE_STMT (rdg, j)
++	    || RDG_MEM_READS_STMT (rdg, j))
++	  if (rdg_has_similar_memory_accesses (rdg, i, j))
++	    return true;
++
++  return false;
++}
++
++/* Fuse all the partitions from PARTITIONS that contain similar memory
++   references, i.e., we're taking care of cache locality.  This
++   function does not fuse those partitions that contain patterns that
++   can be code generated with builtins.  */
++
++static void
++fuse_partitions_with_similar_memory_accesses (struct graph *rdg,
++					      VEC (bitmap, heap) **partitions)
++{
++  int p1, p2;
++  bitmap partition1, partition2;
++
++  for (p1 = 0; VEC_iterate (bitmap, *partitions, p1, partition1); p1++)
++    if (!can_generate_builtin (rdg, partition1))
++      for (p2 = 0; VEC_iterate (bitmap, *partitions, p2, partition2); p2++)
++	if (p1 != p2
++	    && !can_generate_builtin (rdg, partition2)
++	    && similar_memory_accesses (rdg, partition1, partition2))
++	  {
++	    bitmap_ior_into (partition1, partition2);
++	    VEC_ordered_remove (bitmap, *partitions, p2);
++	    p2--;
++	  }
++}
++
+ /* Aggregate several components into a useful partition that is
+    registered in the PARTITIONS vector.  Partitions will be
+    distributed in different loops.  */
+@@ -885,8 +847,7 @@
+       if (bitmap_bit_p (processed, v))
+ 	continue;
+ 
+-      np = build_rdg_partition_for_component (rdg, x, &part_has_writes,
+-					      other_stores);
++      np = build_rdg_partition_for_component (rdg, x, &part_has_writes);
+       bitmap_ior_into (partition, np);
+       bitmap_ior_into (processed, np);
+       BITMAP_FREE (np);
+@@ -932,6 +893,8 @@
+     VEC_safe_push (bitmap, heap, *partitions, partition);
+   else
+     BITMAP_FREE (partition);
++
++  fuse_partitions_with_similar_memory_accesses (rdg, partitions);
+ }
+ 
+ /* Dump to FILE the PARTITIONS.  */
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP	(.../tags/gcc_4_5_2_release)	(wersja 168030)
-+++ gcc/DATESTAMP	(.../branches/gcc-4_5-branch)	(wersja 168030)
+--- gcc/DATESTAMP	(.../tags/gcc_4_5_2_release)	(wersja 168599)
++++ gcc/DATESTAMP	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -1 +1 @@
 -20101216
-+20101218
++20110108
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE	(.../tags/gcc_4_5_2_release)	(wersja 168030)
-+++ gcc/DEV-PHASE	(.../branches/gcc-4_5-branch)	(wersja 168030)
+--- gcc/DEV-PHASE	(.../tags/gcc_4_5_2_release)	(wersja 168599)
++++ gcc/DEV-PHASE	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/tree-ssa-sccvn.c
 ===================================================================
---- gcc/tree-ssa-sccvn.c	(.../tags/gcc_4_5_2_release)	(wersja 168030)
-+++ gcc/tree-ssa-sccvn.c	(.../branches/gcc-4_5-branch)	(wersja 168030)
+--- gcc/tree-ssa-sccvn.c	(.../tags/gcc_4_5_2_release)	(wersja 168599)
++++ gcc/tree-ssa-sccvn.c	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -1063,6 +1063,7 @@
        size2 = TREE_INT_CST_LOW (gimple_call_arg (def_stmt, 2)) * 8;
        if ((unsigned HOST_WIDE_INT)size2 / 8
@@ -75,9 +407,143 @@
  	return (void *)-1;
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog	(.../tags/gcc_4_5_2_release)	(wersja 168030)
-+++ gcc/ChangeLog	(.../branches/gcc-4_5-branch)	(wersja 168030)
-@@ -1,3 +1,23 @@
+--- gcc/ChangeLog	(.../tags/gcc_4_5_2_release)	(wersja 168599)
++++ gcc/ChangeLog	(.../branches/gcc-4_5-branch)	(wersja 168599)
+@@ -1,3 +1,157 @@
++2011-01-07  Rainer Orth  <ro at CeBiTec.Uni-Bielefeld.DE>
++
++	Backport from mainline:
++	2011-01-06  Rainer Orth  <ro at CeBiTec.Uni-Bielefeld.DE>
++
++	PR target/43309
++	* config/i386/i386.c (legitimize_tls_address)
++	<TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
++	* config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
++	(tls_initial_exec_64_sun): New pattern.
++
++2011-01-03  Eric Botcazou  <ebotcazou at adacore.com>
++
++	Backport from mainline
++	2010-12-30  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR target/47038
++	* config/sparc/sparc.c (sparc_file_end): Call resolve_unique_section
++	on the GOT helper if USE_HIDDEN_LINKONCE.
++
++	2010-12-02  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR target/46685
++	* config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
++	(sparc_expand_move): Call it to decide whether to emit the special
++	mov{si,di}_pic_label_ref patterns.
++	(sparc_legitimize_pic_address): Call it to decide whether to emit
++	the regular PIC sequence for labels.  Fix long line.
++	(sparc_file_end): Set is_thunk for the PIC helper.
++
++2010-12-30  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
++
++	* config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
++	patterns.
++
++2010-12-27  Yao Qi  <yao at codesourcery.com>
++
++	Backport from mainline:
++	2010-10-14  Yao Qi  <yao at codesourcery.com>
++
++	PR target/45447
++	* config/arm/arm.c (arm_build_builtin_va_list): Assign
++	va_list_name to TYPE_STUB_DECL (va_list_type).
++
++2010-12-23  Sebastian Pop  <sebastian.pop at amd.com>
++	    Richard Guenther  <rguenther at suse.de>
++
++	PR tree-optimization/46758
++	* graphite-sese-to-poly.c (scan_tree_for_params_right_scev): Use
++	tree_int_to_gmp instead of int_cst_value.
++	(scan_tree_for_params_int): Same.
++	(scan_tree_for_params): Same.
++	(pdr_add_data_dimensions): Use ppl_set_inhomogeneous_tree.
++
++2010-12-23  Sebastian Pop  <sebastian.pop at amd.com>
++
++	Backport from mainline
++	Fix PR45758: reset scevs before Graphite.
++        2010-09-24  Sebastian Pop  <sebastian.pop at amd.com>
++
++	PR tree-optimization/45552
++	* graphite.c (graphite_initialize): Call scev_reset.
++
++2010-12-23  Sebastian Pop  <sebastian.pop at amd.com>
++
++	PR tree-optimization/43023
++	* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
++	Removed.
++	(stores_zero_from_loop): Call stmt_stores_zero.
++	(stmt_with_adjacent_zero_store_dr_p): New.
++	* tree-data-ref.h (stmt_with_adjacent_zero_store_dr_p): Declared.
++	(stride_of_unit_type_p): New.
++	* tree-loop-distribution.c (generate_memset_zero): Do not return a
++	boolean.  Call gcc_assert on stride_of_unit_type_p.
++	(generate_builtin): Call stmt_stores_zero.
++	(rdg_flag_all_uses): Removed.
++	(rdg_flag_similar_memory_accesses): Removed.
++	(build_rdg_partition_for_component): Removed parameter
++	other_stores.  Removed call to rdg_flag_similar_memory_accesses.
++	(can_generate_builtin): New.
++	(similar_memory_accesses): New.
++	(fuse_partitions_with_similar_memory_accesses): New.
++	(rdg_build_partitions): Call
++	fuse_partitions_with_similar_memory_accesses.
++
++2010-12-21  Martin Jambor  <mjambor at suse.cz>
++
++	Backport from mainline:
++	2010-12-09  Martin Jambor  <mjambor at suse.cz>
++
++	PR middle-end/46734
++	* tree-sra.c (splice_param_accesses): Check that there are not
++	multiple ADDRESSABLE types.
++
++2010-12-19  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
++
++	Backport from mainline:
++	2010-12-18  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
++
++	PR target/46915
++	* config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
++	of next_real_insn.  Search forward checking for both ASM_INPUT and
++	ASM_OPERANDS asms until exit condition is found.
++	(branch_needs_nop_p): Likewise.
++	(use_skip_p): New function.
++	(output_cbranch): Use use_skip_p.
++	(output_bb, output_bvb): Likewise.
++
++2010-12-19  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR target/46729
++	* config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
++	(PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
++	* config/sparc/sparc.c (pic_helper_needed): Delete.
++	(global_offset_table): Likewise.
++	(pic_helper_symbol): Rename to...
++	(got_helper_rtx): ...this.
++	(global_offset_table_rtx): New global variable.
++	(sparc_got_symbol): Likewise.
++	(sparc_got): New static function.
++	(check_pic): Use local variable and call sparc_got.
++	(sparc_tls_symbol): Initialize to NULL_RTX.
++	(sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
++	and 32-bit ABI and copy the GOT symbol to a new register otherwise.
++	(get_pc_thunk_name): Rename local variable.
++	(gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
++	(load_pic_register): Rename to...
++	(load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
++	(sparc_expand_prologue): Do not test flag_pic.
++	(sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
++	(sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
++	Rename local variable and do not call get_pc_thunk_name again.
++	* config/sparc/sparc.md (load_pcrel_sym): Add operand #3.
++
 +2010-12-18  Alexandre Oliva  <aoliva at redhat.com>
 +
 +	PR debug/46756
@@ -101,10 +567,18 @@
  2010-12-16  Release Manager
  
  	* GCC 4.5.2 released.
+Index: gcc/testsuite/gcc.target/arm/pr45447.c
+===================================================================
+--- gcc/testsuite/gcc.target/arm/pr45447.c	(.../tags/gcc_4_5_2_release)	(wersja 0)
++++ gcc/testsuite/gcc.target/arm/pr45447.c	(.../branches/gcc-4_5-branch)	(wersja 168599)
+@@ -0,0 +1,3 @@
++/* { dg-do compile } */
++/* { dg-options "-g -femit-struct-debug-baseonly" } */
++typedef __builtin_va_list x;
 Index: gcc/testsuite/gnat.dg/opt13.adb
 ===================================================================
 --- gcc/testsuite/gnat.dg/opt13.adb	(.../tags/gcc_4_5_2_release)	(wersja 0)
-+++ gcc/testsuite/gnat.dg/opt13.adb	(.../branches/gcc-4_5-branch)	(wersja 168030)
++++ gcc/testsuite/gnat.dg/opt13.adb	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -0,0 +1,13 @@
 +-- { dg-do run }
 +-- { dg-options "-O" }
@@ -122,7 +596,7 @@
 Index: gcc/testsuite/gnat.dg/opt13_pkg.adb
 ===================================================================
 --- gcc/testsuite/gnat.dg/opt13_pkg.adb	(.../tags/gcc_4_5_2_release)	(wersja 0)
-+++ gcc/testsuite/gnat.dg/opt13_pkg.adb	(.../branches/gcc-4_5-branch)	(wersja 168030)
++++ gcc/testsuite/gnat.dg/opt13_pkg.adb	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -0,0 +1,31 @@
 +package body Opt13_Pkg is
 +
@@ -158,7 +632,7 @@
 Index: gcc/testsuite/gnat.dg/opt13_pkg.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/opt13_pkg.ads	(.../tags/gcc_4_5_2_release)	(wersja 0)
-+++ gcc/testsuite/gnat.dg/opt13_pkg.ads	(.../branches/gcc-4_5-branch)	(wersja 168030)
++++ gcc/testsuite/gnat.dg/opt13_pkg.ads	(.../branches/gcc-4_5-branch)	(wersja 168599)
 @@ -0,0 +1,15 @@
 +package Opt13_Pkg is
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc.spec?r1=1.644&r2=1.645&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc-branch.diff?r1=1.40&r2=1.41&f=u



More information about the pld-cvs-commit mailing list