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  <[email protected]>
 +
@@ -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  <[email protected]>
++
++      Backport from mainline:
++      2011-01-06  Rainer Orth  <[email protected]>
++
++      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  <[email protected]>
++
++      Backport from mainline
++      2010-12-30  Eric Botcazou  <[email protected]>
++
++      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  <[email protected]>
++
++      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  <[email protected]>
++
++      * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
++      patterns.
++
++2010-12-27  Yao Qi  <[email protected]>
++
++      Backport from mainline:
++      2010-10-14  Yao Qi  <[email protected]>
++
++      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  <[email protected]>
++          Richard Guenther  <[email protected]>
++
++      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  <[email protected]>
++
++      Backport from mainline
++      Fix PR45758: reset scevs before Graphite.
++        2010-09-24  Sebastian Pop  <[email protected]>
++
++      PR tree-optimization/45552
++      * graphite.c (graphite_initialize): Call scev_reset.
++
++2010-12-23  Sebastian Pop  <[email protected]>
++
++      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  <[email protected]>
++
++      Backport from mainline:
++      2010-12-09  Martin Jambor  <[email protected]>
++
++      PR middle-end/46734
++      * tree-sra.c (splice_param_accesses): Check that there are not
++      multiple ADDRESSABLE types.
++
++2010-12-19  John David Anglin  <[email protected]>
++
++      Backport from mainline:
++      2010-12-18  John David Anglin  <[email protected]>
++
++      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  <[email protected]>
++
++      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  <[email protected]>
 +
 +      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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to