source:
patches/gcc-4.4.1-branch_update-1.patch@
28428e9
Last change on this file since 28428e9 was 9dc416eb, checked in by , 15 years ago | |
---|---|
|
|
File size: 6.5 KB |
-
gcc/resource.c
Submitted By: Jim Gifford (jim at cross-lfs dot org) Date: 07-22-2009 Initial Package Version: 4.4.1 Origin: Upstream Upstream Status: Applied Description: This is a branch update for gcc-4.4.1, and should be rechecked periodically. This patch was made from Revision # 149965. diff -Naur gcc-4.4.1.orig/gcc/resource.c gcc-4.4.1/gcc/resource.c
old new 945 945 946 946 /* If we found a basic block, get the live registers from it and update 947 947 them with anything set or killed between its start and the insn before 948 TARGET. Otherwise, we must assume everything is live. */ 948 TARGET; this custom life analysis is really about registers so we need 949 to use the LR problem. Otherwise, we must assume everything is live. */ 949 950 if (b != -1) 950 951 { 951 regset regs_live = df_get_live_in(BASIC_BLOCK (b));952 regset regs_live = DF_LR_IN (BASIC_BLOCK (b)); 952 953 rtx start_insn, stop_insn; 953 954 954 955 /* Compute hard regs live at start of block. */ … … 1052 1053 { 1053 1054 HARD_REG_SET extra_live; 1054 1055 1055 REG_SET_TO_HARD_REG_SET (extra_live, df_get_live_in(bb));1056 REG_SET_TO_HARD_REG_SET (extra_live, DF_LR_IN (bb)); 1056 1057 IOR_HARD_REG_SET (current_live_regs, extra_live); 1057 1058 } 1058 1059 } -
gcc/testsuite/gcc.c-torture/compile/pr40321.c
diff -Naur gcc-4.4.1.orig/gcc/testsuite/gcc.c-torture/compile/pr40321.c gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40321.c
old new 1 struct X { int flag; int pos; }; 2 int foo(struct X *a, struct X *b) 3 { 4 while (1) 5 { 6 if (a->flag) 7 break; 8 ({ struct X *tmp = a; a = b; b = tmp; }); 9 } 10 11 return a->pos + b->pos; 12 } -
gcc/testsuite/g++.dg/torture/pr40321.C
diff -Naur gcc-4.4.1.orig/gcc/testsuite/g++.dg/torture/pr40321.C gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40321.C
old new 1 /* { dg-do compile } */ 2 3 struct VectorD2 4 { 5 VectorD2() : x(0), y(0) { } 6 VectorD2(int _x, int _y) : x(_x), y(_y) { } 7 int x, y; 8 int GetLength2() const { return x*x + y*y; }; 9 VectorD2 operator+(const VectorD2 vec) const { 10 return VectorD2(x+vec.x,y+vec.y); 11 } 12 }; 13 struct Shape 14 { 15 enum Type { ST_RECT, ST_CIRCLE } type; 16 VectorD2 pos; 17 VectorD2 radius; 18 bool CollisionWith(const Shape& s) const; 19 }; 20 bool Shape::CollisionWith(const Shape& s) const 21 { 22 if(type == ST_CIRCLE && s.type == ST_RECT) 23 return s.CollisionWith(*this); 24 return (pos + s.pos).GetLength2() < (radius + s.radius).GetLength2(); 25 } -
gcc/tree-ssa-pre.c
diff -Naur gcc-4.4.1.orig/gcc/tree-ssa-pre.c gcc-4.4.1/gcc/tree-ssa-pre.c
old new 3507 3507 } 3508 3508 3509 3509 3510 /* Add OP to EXP_GEN (block), and possibly to the maximal set if it is 3511 not defined by a phi node. 3512 PHI nodes can't go in the maximal sets because they are not in 3513 TMP_GEN, so it is possible to get into non-monotonic situations 3514 during ANTIC calculation, because it will *add* bits. */ 3510 /* Add OP to EXP_GEN (block), and possibly to the maximal set. */ 3515 3511 3516 3512 static void 3517 3513 add_to_exp_gen (basic_block block, tree op) … … 3523 3519 return; 3524 3520 result = get_or_alloc_expr_for_name (op); 3525 3521 bitmap_value_insert_into_set (EXP_GEN (block), result); 3526 if (TREE_CODE (op) != SSA_NAME 3527 || gimple_code (SSA_NAME_DEF_STMT (op)) != GIMPLE_PHI) 3528 bitmap_value_insert_into_set (maximal_set, result); 3522 bitmap_value_insert_into_set (maximal_set, result); 3529 3523 } 3530 3524 } 3531 3525 … … 3544 3538 add_to_value (get_expr_value_id (e), e); 3545 3539 bitmap_insert_into_set (PHI_GEN (block), e); 3546 3540 bitmap_value_insert_into_set (AVAIL_OUT (block), e); 3541 if (!in_fre) 3542 { 3543 unsigned i; 3544 for (i = 0; i < gimple_phi_num_args (phi); ++i) 3545 { 3546 tree arg = gimple_phi_arg_def (phi, i); 3547 if (TREE_CODE (arg) == SSA_NAME) 3548 { 3549 e = get_or_alloc_expr_for_name (arg); 3550 add_to_value (get_expr_value_id (e), e); 3551 bitmap_value_insert_into_set (maximal_set, e); 3552 } 3553 } 3554 } 3547 3555 } 3548 3556 } 3549 3557 … … 4254 4262 FOR_ALL_BB (bb) 4255 4263 { 4256 4264 print_bitmap_set (dump_file, EXP_GEN (bb), "exp_gen", bb->index); 4257 print_bitmap_set (dump_file, TMP_GEN (bb), "tmp_gen", 4258 bb->index); 4259 print_bitmap_set (dump_file, AVAIL_OUT (bb), "avail_out", 4260 bb->index); 4265 print_bitmap_set (dump_file, PHI_GEN (bb), "phi_gen", bb->index); 4266 print_bitmap_set (dump_file, TMP_GEN (bb), "tmp_gen", bb->index); 4267 print_bitmap_set (dump_file, AVAIL_OUT (bb), "avail_out", bb->index); 4261 4268 } 4269 4270 print_bitmap_set (dump_file, maximal_set, "maximal", 0); 4262 4271 } 4263 4272 4264 4273 /* Insert can get quite slow on an incredibly large number of basic -
gcc/version.c
diff -Naur gcc-4.4.1.orig/gcc/version.c gcc-4.4.1/gcc/version.c
old new 14 14 Makefile. */ 15 15 16 16 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION; 17 const char pkgversion_string[] = PKGVERSION;17 const char pkgversion_string[] = "(GCC for Cross-LFS 4.4.1.20090722) "; -
libstdc++-v3/include/std/valarray
diff -Naur gcc-4.4.1.orig/libstdc++-v3/include/std/valarray gcc-4.4.1/libstdc++-v3/include/std/valarray
old new 1 1 // The template and inlines for the -*- C++ -*- valarray class. 2 2 3 3 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 4 // 2006, 2007, 200 94 // 2006, 2007, 2008, 2009 5 5 // Free Software Foundation, Inc. 6 6 // 7 7 // This file is part of the GNU ISO C++ Library. This library is free … … 647 647 template<typename _Tp> 648 648 inline 649 649 valarray<_Tp>::valarray(initializer_list<_Tp> __l) 650 650 : _M_size(__l.size()), _M_data(__valarray_get_storage<_Tp>(__l.size())) 651 651 { std::__valarray_copy_construct (__l.begin(), __l.end(), _M_data); } 652 652 #endif 653 653 … … 681 681 { 682 682 _GLIBCXX_DEBUG_ASSERT(_M_size == __l.size()); 683 683 std::__valarray_copy(__l.begin(), __l.size(), _M_data); 684 return *this; 684 685 } 685 686 #endif 686 687
Note:
See TracBrowser
for help on using the repository browser.