[Bug c/39620] New: wrong assumption of clobbered registers of inline assembly
I have the following code: static inline void zeromem4b(uint32t *dst, uint32t count) { asm volatile("xor %%eax,%%eax\n\trep stosl" : :"c"(count),"D"(dst) :"%eax", "cc", "memory"); } If I call it and after it want to, e.g. print out the value of *dst it gives me the value which it has after running the function. That means that gcc thinks that "%edi" hasn´t changed, but it did and I can not put it into the clobbered list, because this gives me an error. I compile with "-O2 -Wall -fno-builtin -march=i586". -- Summary: wrong assumption of clobbered registers of inline assembly Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: codemasterhs at yahoo dot de GCC host triplet: cygwin GCC target triplet: i586 elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39620
[Bug c/39620] wrong assumption of clobbered registers of inline assembly
--- Comment #1 from jakub at gcc dot gnu dot org 2009-04-03 08:11 --- User error, if you don't tell gcc that %edi is clobbered, obviously it can assume it hasn't. As rep stosl modifies both %ecx and %edi, you can write e.g.: int tmp1, tmp2; asm volatile("xor %%eax,%%eax\n\trep stosl" : "=c" (tmp1), "=D" (tmp2) : "0" (count), "1" (dst) : "%eax", "cc", "memory"); or: asm volatile("xor %%eax,%%eax\n\trep stosl" : "+c" (count), "+D" (dst) : : "%eax", "cc", "memory"); if you don't mind that the count and dst variables will change. Also note that __builtin_memset (dst, '\0', count); will in most cases result in more optimal code for your CPU, hardcoding these in assembly is usually a bad idea. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39620
[Bug c/39620] wrong assumption of clobbered registers of inline assembly
--- Comment #2 from codemasterhs at yahoo dot de 2009-04-03 08:30 --- Subject: Re: wrong assumption of clobbered registers of inline assembly The code is for my loader/os and so I can´t and do not want to use the builtin functions. Your 1st example works, but I find it a bit strange that I have to write such code only to tell gcc, that 2 registers are clobbered! Your 2nd example doesn´t work, because of the plus, this gives me an error. I think the better way would be either gcc assumes that edi and ecx are clobbered (which isn´t so) or I can specify that in the clobbered list (which is not possible)! jakub at gcc dot gnu dot org wrote: > --- Comment #1 from jakub at gcc dot gnu dot org 2009-04-03 08:11 --- > User error, if you don't tell gcc that %edi is clobbered, obviously it can > assume it hasn't. > As rep stosl modifies both %ecx and %edi, you can write e.g.: > int tmp1, tmp2; > asm volatile("xor %%eax,%%eax\n\trep stosl" : "=c" (tmp1), "=D" (tmp2) : "0" > (count), "1" (dst) : "%eax", "cc", "memory"); > or: > asm volatile("xor %%eax,%%eax\n\trep stosl" : "+c" (count), "+D" (dst) : : > "%eax", "cc", "memory"); > if you don't mind that the count and dst variables will change. > Also note that __builtin_memset (dst, '\0', count); will in most cases > result in more optimal code for your CPU, hardcoding these in assembly is > usually a bad idea. > > > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39620
[Bug c/39621] New: Delaying operation to end of function causes high stack usage
Function like this: extern int bar(void); int foo(int in) { in += bar(); in += bar(); in += bar(); in += bar(); return in; } Result in putting the output of bar on stack, and adding the result just before returning. It continues on until it about 16 iteration. Meaning useless heavy stack usage and for some targets much code. The general assembler will look like this: push stack call bar put result on stack call bar put result on stack call bar put result on stack call bar add to in add stack to in add stack to in add stack to in pop stack return This behaviour is seen on recent version for arm (4.3.3), x86 (4.3.3) and avr (4.3.2). Interresting is that providing the 'register' keyword on input for -00 'solves' the problem. It seems that GCC delays the add operations until returning, however delaying beyond a function call is normally pointless and more expensive in terms of code size and cycles. See attached file for a test case with for unroll-loops and normal code. -- Summary: Delaying operation to end of function causes high stack usage Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: wvangulik at xs4all dot nl GCC host triplet: linux-x86 GCC target triplet: multiple (at least: arm, x86, avr) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39621
[Bug c/39621] Delaying operation to end of function causes high stack usage
--- Comment #1 from wvangulik at xs4all dot nl 2009-04-03 08:48 --- Created an attachment (id=17580) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17580&action=view) C file showing bug compile using: gcc -S -funroll-loops -0[0123s] main.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39621
[Bug bootstrap/39622] New: Missing -isystem include-fixed when building canadian cross libgcc
The following is just a verbatim copy of http://gcc.gnu.org/ml/gcc-help/2009-04/msg00023.html For details and possible patch follow the link. -- I'd like to build a canadian cross configured with --host=i586-mingw32 --build=i686-linux-gnu Everything goes fine except building libgcc because limits.h cannot be found, as include-fixed is not in include path. The problem looks like this: For a native build, i.e. host=build, libgcc/Makefile sets CC to > CC = [target-gcc-build-dir]/./gcc/xgcc -B[target-gcc-build-dir]/./gcc/ but for host != build it is > CC = [target-gcc] without adding [target-gcc-build-dir]/./gcc/include-fixed to the include directory search path my means of -isystem. However, this directory contains the limits.h. -- Summary: Missing -isystem include-fixed when building canadian cross libgcc Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: georgjohann at web dot de GCC build triplet: i686-linux-gnu GCC host triplet: i586-mingw32 GCC target triplet: any http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39622
[Bug bootstrap/39617] bootstrap failure with ICE building libiberty in stage3
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-04-03 08:57 --- Can you attach preprocessed source? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39617
[Bug c++/39623] New: Optimizer changes return from htons(uint16)
The bug is known to occur with the following versions: - gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) - g++ (Ubuntu 4.3.2-2ubuntu11) 4.3.3 20090111 (prerelease) The symptom of the bug is that when you use -O2 htons(short) returns 'unsigned int' (32 bit) rather then the expected 16bit value. With no optimization it returns the correct 16bit. I'll attach a testcase. -- Summary: Optimizer changes return from htons(uint16) Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: strk at keybit dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39623
[Bug c++/39623] Optimizer changes return from htons(uint16)
--- Comment #1 from strk at keybit dot net 2009-04-03 09:01 --- Created an attachment (id=17581) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17581&action=view) Testcase for optimizer bug -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39623
[Bug c++/39404] -fpack-struct causes iostream to error, -O3 makes problem worse
--- Comment #11 from jmichae3 at yahoo dot com 2009-04-03 09:02 --- I get perfect code with the borland compiler packing switch with C++ code. it would be nice if gcc could do the same in C++. I don't necessarily have to have -O3, but I need to be able to pack structs somehow so I don't end up with holes. the structs are required for BIOS I/O or other things as well. any holes will render the I/O useless as I use sizeof() and it can be fooled with holes. any workarounds? sure-fire pragmas? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39404
[Bug c++/39623] Optimizer changes return from htons(uint16)
--- Comment #3 from strk at keybit dot net 2009-04-03 09:27 --- You mean I should file a bug against libc ? Or that it's a non-bug ? The htons() manual page states it'd return a short... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39623
[Bug c++/36982] Unfolding of template function (in namespace) using overloads (in same namespace) requires forward declarations
--- Comment #4 from lfn dot privat at mail dot dk 2009-04-03 09:41 --- Thanks for clarifying how the compiler works. Actually this was the kind of answer detail level I was looking for in the first place to find some kind of work around to the problem. Now, I assume that your answer implies that your described compiler behaviour is C++ standard compliant - is this a correct assumption ? I think many developers will find it easier to understand if the compiler delayed resolution of overloads until point of use/instantiation - in this case in the main() function. The understanding here is that the compiler should have the following picture when compiling main(): struct MyType { int i; }; namespace ReadSpace { static inline bool Read( const char* Str, int& v ); template< class T > static inline bool Read( const char* Str, std::vector< T >& v ); static inline bool Read( const char* Str, MyType& v ); } using namespace ReadSpace; int main() // Should have all the bricks to resolve intended use ... { std::vector< MyType > v; ... It appears that the compilers you refer to as broken has this picture and are able to offer much more flexibility (maybe more than the standard states I presume you will claim). By the way, it is interesting that the given example works for 'int' as 'int' is also in the global namespace (or is it implicit in any namespace ?). If you replace ... int main() { std::vector< MyType > v; ... with ... int main() { std::vector< int > v; ... the example compiles. But there is a catch here. If you move the Read( int& ) overload AFTER the Read( vector< T> ) in the namespace definition, the example does NOT compile: namespace ReadSpace { template< class T > static inline bool Read( const char* Str, std::vector< T >& v ) { T Help; if ( !Read( Str, Help ) ) return false; v.push_back( Help ); return true; } // Moved ... static inline bool Read( const char* Str, int& v ) { v = 0; return true; } } int main() { std::vector< int > v; // Does NOT compile ... // x.cpp:48: error: no matching function for call to // âRead(const char*&, int&)â - o - All in all I think this compiler behaviour makes it much harder to extend (template) libraries and developers are given much less order-of-definition flexibility. If it is standard C++ mandated, then we will have to live with that for now, but if it is not, I still think gcc/g++ may be broken on this issue. -- lfn dot privat at mail dot dk changed: What|Removed |Added CC||lfn dot privat at mail dot ||dk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36982
[Bug c++/39623] Optimizer changes return from htons(uint16)
--- Comment #2 from schwab at linux-m68k dot org 2009-04-03 09:22 --- probably defines different versions of htons depending on optimisation level. -- schwab at linux-m68k dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39623
[Bug tree-optimization/33237] [4.3/4.4/4.5 Regression] Tree memory partitioning is spending 430 seconds of a 490 second compile.
--- Comment #20 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 33237 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P
[Bug middle-end/13146] inheritance for nonoverlapping_component_refs_p
--- Comment #14 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 13146 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P
[Bug tree-optimization/33974] [meta-bug] memory partitioning sucks
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 33974 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/38301] vectorization breaks type-based aliasing rules
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 38301 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/34093] ICE in ssa_operand_alloc, at tree-ssa-operands.c:484
--- Comment #8 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 34093 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/38207] Union in structs are not well optimized
--- Comment #7 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 38207 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/39299] wrong PTA for structure copies
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 39299 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/38895] missed type-based disambiguation
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 38895 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/38049] points-to results imprecise
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 38049 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/23940] SSA_NAMEs are not released after no longer being used.
--- Comment #17 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 23940 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P
[Bug middle-end/38585] excessive time in compute_may_aliases
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 38585 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug middle-end/36201] [4.4/4.5 Regression] NVR in the front-end causes missed optimization later on ( thought to alias arguments)
--- Comment #7 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 36201 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/38230] SCCVN doesn't do expression lookups during stmt walks
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 38230 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug tree-optimization/38985] [4.3/4.4/4.5 Regression] missing VOPs for pointers accessed directly via their address
--- Comment #16 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 38985 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P
[Bug tree-optimization/36230] load PRE doesn't deal with more precise alias info on one path
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-04-03 10:26 --- Subject: Bug 36230 Author: rguenth Date: Fri Apr 3 10:24:28 2009 New Revision: 145494 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145494 Log: 2009-04-03 Richard Guenther PR middle-end/13146 PR tree-optimization/23940 PR tree-optimization/33237 PR middle-end/33974 PR middle-end/34093 PR tree-optimization/36201 PR tree-optimization/36230 PR tree-optimization/38049 PR tree-optimization/38207 PR tree-optimization/38230 PR tree-optimization/38301 PR tree-optimization/38585 PR middle-end/38895 PR tree-optimization/38985 PR tree-optimization/39299 * tree-ssa-structalias.h: Remove. * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. (NULL_DEF_OPERAND_P): Make of type def_operand_p. (struct vuse_element_d): Remove. (struct vuse_vec_d): Likewise. (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, VUSE_ELEMENT_VAR): Likewise. (struct voptype_d): Likewise. (NUM_VOP_FREE_BUCKETS): Likewise. (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. (struct stmt_operands_d): Remove. (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, VDEF_NUM, VDEF_VECT): Likewise. (copy_virtual_operands): Remove. (operand_build_cmp): Likewise. (create_ssa_artificial_load_stmt): Likewise. (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm vuse_index and mayuse_index members. Pack and move done and iter_type members to the front. (SSA_OP_VMAYUSE): Remove. (SSA_OP_VIRTUAL_USES): Adjust. (FOR_EACH_SSA_VDEF_OPERAND): Remove. (unlink_stmt_vdef): Declare. (add_to_addressable_set): Remove. * tree-vrp.c (stmt_interesting_for_vrp): Adjust. (vrp_visit_stmt): Likewise. * doc/tree-ssa.texi (Alias analysis): Update. * doc/invoke.texi (max-aliased-vops): Remove docs. (avg-aliased-vops): Likewise. * tree-into-ssa.c (syms_to_rename): Remove. (need_to_update_vops_p): Likewise. (need_to_initialize_update_ssa_p): Rename to ... (update_ssa_initialized_fn): ... this. Track function we are initialized for. (symbol_marked_for_renaming): Simplify. (add_new_name_mapping): Do not set need_to_update_vops_p. (dump_currdefs): Use SYMS_TO_RENAME. (rewrite_update_stmt): Always walk all uses/defs. (dump_update_ssa): Adjust. (init_update_ssa): Take function argument. Track what we are initialized for. (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. (create_new_def_for): Initialize for cfun, assert we are initialized for cfun. (mark_sym_for_renaming): Simplify. (mark_set_for_renaming): Do not initialize update-ssa. (need_ssa_update_p): Simplify. Take function argument. (name_mappings_registered_p): Assert we ask for the correct function. (name_registered_for_update_p): Likewise. (ssa_names_to_replace): Likewise. (release_ssa_name_after_update_ssa): Likewise. (update_ssa): Likewise. Use SYMS_TO_RENAME. (dump_decl_set): Do not print a newline. (debug_decl_set): Do it here. (dump_update_ssa): And here. * tree-ssa-loop-im.c (move_computations): Adjust. (movement_possibility): Likewise. (determine_max_movement): Likewise. (gather_mem_refs_stmt): Likewise. * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG or NAME_MEMORY_TAG. * tree-complex.c (update_all_vops): Remove. (expand_complex_move): Adjust. * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. Simplify test for memory referencing statement. Exclude non-invariant ADDR_EXPRs. * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. * tree-loop-distribution.c (generate_memset_zero): Adjust. (rdg_flag_uses): Likewise. * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag related code. (tree_optimize_tail_calls_1): Also split the edge from the entry block if we have degenerate PHI nodes in the first basic block. * tree.c (init_ttree): Remove memory-tag related code. (tree_code_size): Likewise. (tree_node_structure): Likewise. (build7_stat): Re-write to be build6_stat. * tree.h (MTAG_P,
[Bug middle-end/13146] inheritance for nonoverlapping_component_refs_p
--- Comment #15 from rguenth at gcc dot gnu dot org 2009-04-03 10:27 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13146
[Bug tree-optimization/23940] SSA_NAMEs are not released after no longer being used.
--- Comment #18 from rguenth at gcc dot gnu dot org 2009-04-03 10:29 --- Fixed for 4.5. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23940
[Bug tree-optimization/33237] [4.3/4.4 Regression] Tree memory partitioning is spending 430 seconds of a 490 second compile.
--- Comment #21 from rguenth at gcc dot gnu dot org 2009-04-03 10:29 --- Fixed for 4.5.0. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|rguenth at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW Known to work|4.2.3 |4.2.3 4.5.0 Summary|[4.3/4.4/4.5 Regression]|[4.3/4.4 Regression] Tree |Tree memory partitioning is |memory partitioning is |spending 430 seconds of a |spending 430 seconds of a |490 second compile. |490 second compile. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33237
[Bug tree-optimization/33974] [meta-bug] memory partitioning sucks
--- Comment #6 from rguenth at gcc dot gnu dot org 2009-04-03 10:30 --- Fixed for 4.5.0 - it's gone there. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Known to work||4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33974
[Bug tree-optimization/34093] ICE in ssa_operand_alloc, at tree-ssa-operands.c:484
--- Comment #9 from rguenth at gcc dot gnu dot org 2009-04-03 10:31 --- Really fixed for 4.5.0. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34093
[Bug tree-optimization/36230] load PRE doesn't deal with more precise alias info on one path
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-04-03 10:32 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36230
[Bug middle-end/36201] [4.4 Regression] NVR in the front-end causes missed optimization later on ( thought to alias arguments)
--- Comment #8 from rguenth at gcc dot gnu dot org 2009-04-03 10:32 --- Fixed for 4.5.0. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|rguenth at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW Known to work|4.3.0 4.1.2 |4.3.0 4.1.2 4.5.0 Summary|[4.4/4.5 Regression] NVR in |[4.4 Regression] NVR in the |the front-end causes missed |front-end causes missed |optimization later on |optimization later on |( thought to alias |( thought to alias |arguments) |arguments) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36201
[Bug tree-optimization/38049] points-to results imprecise
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 10:33 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38049
[Bug tree-optimization/38207] Union in structs are not well optimized
--- Comment #8 from rguenth at gcc dot gnu dot org 2009-04-03 10:34 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38207
[Bug tree-optimization/38230] SCCVN doesn't do expression lookups during stmt walks
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-04-03 10:34 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38230
[Bug tree-optimization/38985] [4.3/4.4 Regression] missing VOPs for pointers accessed directly via their address
--- Comment #17 from rguenth at gcc dot gnu dot org 2009-04-03 10:37 --- Fixed for 4.5.0. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|rguenth at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW Summary|[4.3/4.4/4.5 Regression]|[4.3/4.4 Regression] missing |missing VOPs for pointers |VOPs for pointers accessed |accessed directly via their |directly via their address |address | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38985
[Bug tree-optimization/39299] wrong PTA for structure copies
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-04-03 10:37 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to fail||4.4.0 Known to work||4.5.0 Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39299
[Bug middle-end/37696] [meta-bug] PRs blocking adoption of the alias-improvements branch
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-04-03 10:38 --- Fixed/merged. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37696
[Bug tree-optimization/38301] vectorization breaks type-based aliasing rules
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-04-03 10:35 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38301
[Bug tree-optimization/38895] missed type-based disambiguation
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 10:36 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38895
[Bug middle-end/38585] excessive time in compute_may_aliases
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 10:36 --- Fixed for 4.5.0. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38585
[Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering)
--- Comment #6 from rguenth at gcc dot gnu dot org 2009-04-03 11:16 --- Fixed for 4.5. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743
[Bug middle-end/34743] Testcase gcc.dg/tree-ssa/20070302-1.c is broken (unneeded call clobbering)
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-04-03 11:16 --- Subject: Bug 34743 Author: rguenth Date: Fri Apr 3 11:16:29 2009 New Revision: 145497 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145497 Log: 2009-04-03 Richard Guenther PR tree-optimization/34743 * gcc.dg/pr38984.c: Remove XFAIL, adjust. * gcc.dg/tree-ssa/20070302-1.c: Remove XFAIL. * gcc.dg/tree-ssa/alias-18.c: Likewise. * gcc.dg/tree-ssa/sra-3.c: Likewise. * gcc.dg/vect/no-vfa-vect-49.c: Likewise. * gcc.dg/vect/no-vfa-vect-53.c: Likewise. * gcc.dg/vect/no-vfa-vect-57.c: Likewise. * gcc.dg/vect/no-vfa-vect-61.c: Likewise. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/pr38984.c trunk/gcc/testsuite/gcc.dg/tree-ssa/20070302-1.c trunk/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c trunk/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-49.c trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-53.c trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34743
[Bug tree-optimization/2480] aliasing problem with global structures
--- Comment #13 from rguenth at gcc dot gnu dot org 2009-04-03 11:27 --- Fixed at -O2 since 4.4. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2480
[Bug fortran/39624] New: short-list explicit interfaces in generic interfaces if no match is found
It would be nice if we could provide a list of possible candidates for generic in the example below. (Something similar is implemented in C++ if a particular overload is not found, all possible prototypes are listed.) $> cat candidates.f90 MODULE amodule INTERFACE generic MODULE PROCEDURE specific_1 MODULE PROCEDURE specific_2 END INTERFACE CONTAINS SUBROUTINE specific_1(i) INTEGER, INTENT(in) :: i END SUBROUTINE SUBROUTINE specific_2(r) REAL, INTENT(in) :: r END SUBROUTINE END MODULE USE amodule CALL generic("string") END $> gfortran-svn candidates.f90 candidates.f90:18.24: CALL generic("string") 1 Error: There is no specific subroutine for the generic 'generic' at (1) [Candidates are: subroutine generic(integer) subroutine generic(real)] -- Summary: short-list explicit interfaces in generic interfaces if no match is found Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dfranke at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39624
[Bug c++/8781] Pessimization of C++ (functional) code
--- Comment #23 from rguenth at gcc dot gnu dot org 2009-04-03 11:37 --- On trunk we get the following after early optimizations: : predD.2646 = fD.2070; predD.2653.predD.2098 = &predD.2646; predD.2660.predD.2116 = &predD.2653; predD.2667.predD.2134 = &predD.2660; predD.2674.predD.2152 = &predD.2667; predD.2681.predD.2170 = &predD.2674; predD.2688.predD.2188 = &predD.2681; predD.2695.predD.2206 = &predD.2688; predD.2702.predD.2224 = &predD.2695; D.2720_24 = predD.2702.predD.2224; D.2728_25 = D.2720_24->predD.2206; D.2721_26 = D.2728_25->predD.2188; D.2727_27 = D.2721_26->predD.2170; D.2722_28 = D.2727_27->predD.2152; D.2726_29 = D.2722_28->predD.2134; D.2723_30 = D.2726_29->predD.2116; D.2725_31 = D.2723_30->predD.2098; D.2724_32 = *D.2725_31; D.2719_33 = D.2724_32 (); return D.2719_33; now, while SCCVN figures out that predD.2702.predD.2224 loads &predD.2695 it is not able to cascade here, which is because we do not "simplify" the vn references after substituting the value-numbers (PR37892). -- rguenth at gcc dot gnu dot org changed: What|Removed |Added BugsThisDependsOn||37892 Last reconfirmed|2006-04-05 16:11:16 |2009-04-03 11:37:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8781
[Bug tree-optimization/33344] if(!z) {a.b = x->b + 1; z = &a; } else if (!x) { a.b = z->b+1; x = &a; } use z->b and x->b; is not optimized
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 11:40 --- Fixed with the alias-improvements branch merge. g (struct f * b, struct f * c) { int prephitmp.20; int prephitmp.19; : if (b == 0B) goto ; else goto ; : prephitmp.19 = c->a; prephitmp.20 = prephitmp.19 + 1; goto ; : if (c == 0B) goto ; else goto ; : prephitmp.19 = c->a; prephitmp.20 = b->a; goto ; : prephitmp.20 = b->a; prephitmp.19 = prephitmp.20 + 1; : return prephitmp.20 + prephitmp.19; } -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33344
[Bug tree-optimization/17064] -falias-noargument-global doesn't eliminate dead stores/loads
--- Comment #16 from rguenth at gcc dot gnu dot org 2009-04-03 11:57 --- Re-confirmed with current trunk. The issue is that PTA computes Flow-insensitive points-to information for foo p_1(D), points-to vars: { PARM_NOALIAS.28 } (includes global vars) foo (int * p) { : *p_1(D) = 1; bar (); *p_1(D) = 2; return; note the 'includes global vars' flag. Note that "fixing" this would really make _both_ stores to *p dead, as "does-not-point-to-global" does not mean "does-point-to-local". A more proper definition of the effect of this flag should be given. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Last reconfirmed|2006-01-05 14:24:50 |2009-04-03 11:57:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17064
[Bug tree-optimization/19347] Invariant load not moved out of loop
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 12:06 --- The store to *ptr aliases the load from osmesa->clearpixel - there is no (easy) way to otherwise prove that it is not (at least with the testcase). We do not see where osmesa->buffer points to (it may point to &osmesa->clearpixel). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19347
[Bug tree-optimization/23086] incomming arguments cannot alias local variables
--- Comment #10 from rguenth at gcc dot gnu dot org 2009-04-03 12:19 --- *a = 1; <--- a cannot point to b here. if (b == 2) b != 2 you mean. This works for me with 4.0.4 even. Likely optimized on RTL level? Adjusted testcase: extern void link_error (void); extern void abort (void); int *t; int __attribute__((noinline)) g(int *a) { t = a; *a = 2; } void __attribute__((noinline)) f(int *a) { int b; b = 1; g(&b); b = 2; *a = 1; if (b != 2) link_error(); } int main(void) { int t; f(&t); if (t != 1) abort (); return 0; } On trunk we now have f (int * a) { int b; : b = 1; g (&b); *a = 1; return; } -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Known to fail||4.4.0 Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23086
[Bug other/39573] linking fails when optimizations are enabled
--- Comment #1 from fpbeekhof at gmail dot com 2009-04-03 12:01 --- I've tried compiling the same code on several machines. Outcome: intel machines are fine, AMD machines exhibit this behaviour. The second AMD machine has ubuntu 8.04 on it, and a different compiler version: $ gcc -v Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu3) Still, the result is the same: $ make CNF=gcc scons -j 2 CNF=gcc MODE= BACKEND= CVMLCPP_PREFIX=/user/l1/beekhof/ scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... g++ -o main.o -c -pipe -I. -Wall -O3 -funroll-loops -fopenmp -march=native -ftree-vectorize -DNDEBUG -I/user/l1/beekhof//include/ main.cpp g++ -o tinystr.o -c -pipe -I. -Wall -O3 -funroll-loops -fopenmp -march=native -ftree-vectorize -DNDEBUG -I/user/l1/beekhof//include/ tinystr.cpp g++ -o tinyxml.o -c -pipe -I. -Wall -O3 -funroll-loops -fopenmp -march=native -ftree-vectorize -DNDEBUG -I/user/l1/beekhof//include/ tinyxml.cpp g++ -o tinyxmlerror.o -c -pipe -I. -Wall -O3 -funroll-loops -fopenmp -march=native -ftree-vectorize -DNDEBUG -I/user/l1/beekhof//include/ tinyxmlerror.cpp g++ -o tinyxmlparser.o -c -pipe -I. -Wall -O3 -funroll-loops -fopenmp -march=native -ftree-vectorize -DNDEBUG -I/user/l1/beekhof//include/ tinyxmlparser.cpp g++ -o shapes -fopenmp -L/user/l1/beekhof//lib/ tinystr.o tinyxml.o tinyxmlerror.o tinyxmlparser.o main.o -lcvmlcpp -lz -lboost_iostreams main.o: In function `_ZN7cvmlcpp25extractSurfaceFromAdapterIN6shapes20ShapeSurfaceAdaptor_IdEEdEEvRKT_RNS_8GeometryIT0_EEd.omp_fn.9': main.cpp:(.text+0x2af2): undefined reference to `_ZN7cvmlcpp25extractSurfaceFromAdapterIN6shapes20ShapeSurfaceAdaptor_IdEEdEEvRKT_RNS_8GeometryIT0_EEd.omp_fn.9::C.497' collect2: ld returned 1 exit status scons: *** [shapes] Error 1 scons: building terminated because of errors. make: *** [compile] Error 2 I'll see if I can make a reduced test-case... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39573
[Bug tree-optimization/21855] array bounds checking elimination
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 12:07 --- Huh. C testcase please? I think this may be fixed now. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21855
[Bug tree-optimization/26608] address of local variables are said to escape even though it is obvious they don't
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-04-03 12:24 --- Works with 4.3. Very similar to PR23086. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26608
[Bug tree-optimization/34160] Useful loop invariant motion missing
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-04-03 12:27 --- : # i.21_754 = PHI # i.21_484 = PHI D.4090_71 = b[i.21_754]; x[i.21_754] = D.4090_71; D.4345_1088 = (unsigned int) i.21_484; D.4346_1089 = D.4345_1088 + 1; i.21_1090 = (int) D.4346_1089; if (n.17_753 > i.21_1090) goto ; else goto ; seems to work with 4.4. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Known to fail||4.3.3 Resolution||FIXED Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34160
[Bug middle-end/35358] Ansi aliasing info not fully utilized by tree SSA optimizations
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-04-03 12:30 --- Both testcases are now fixed on trunk. The first testcase is fixed for 4.4 as well. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35358
[Bug middle-end/35360] Static (base/offset/size rule) should be extended to handle array elements
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-04-03 12:32 --- Re-confirmed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Last reconfirmed|2008-02-25 11:44:45 |2009-04-03 12:32:48 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35360
[Bug tree-optimization/37810] Bad store sinking job
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-04-03 12:34 --- Re-confirmed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Last reconfirmed|2008-10-12 15:20:19 |2009-04-03 12:34:44 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37810
[Bug tree-optimization/23086] incoming arguments cannot alias local variables
--- Comment #11 from rguenth at gcc dot gnu dot org 2009-04-03 12:38 --- Subject: Bug 23086 Author: rguenth Date: Fri Apr 3 12:38:08 2009 New Revision: 145499 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145499 Log: 2009-04-03 Richard Guenther PR tree-optimization/2480 PR tree-optimization/23086 * gcc.dg/tree-ssa/pr2480.c: New testcase. * gcc.dg/tree-ssa/pr23086.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr23086.c trunk/gcc/testsuite/gcc.dg/tree-ssa/pr2480.c Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23086
[Bug tree-optimization/2480] aliasing problem with global structures
--- Comment #14 from rguenth at gcc dot gnu dot org 2009-04-03 12:38 --- Subject: Bug 2480 Author: rguenth Date: Fri Apr 3 12:38:08 2009 New Revision: 145499 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145499 Log: 2009-04-03 Richard Guenther PR tree-optimization/2480 PR tree-optimization/23086 * gcc.dg/tree-ssa/pr2480.c: New testcase. * gcc.dg/tree-ssa/pr23086.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr23086.c trunk/gcc/testsuite/gcc.dg/tree-ssa/pr2480.c Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=2480
[Bug tree-optimization/39604] [4.3/4.4/4.5 Regression] tree-ssa-sink breaks stack layout
--- Comment #9 from sandra at codesourcery dot com 2009-04-03 12:54 --- After the merge of the alias_improvements branch to trunk, the test case no longer compiles incorrectly at -O1. Is this coincidence, or a real fix that addresses the underlying problem? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39604
[Bug tree-optimization/39604] [4.3/4.4/4.5 Regression] tree-ssa-sink breaks stack layout
--- Comment #10 from rguenther at suse dot de 2009-04-03 13:23 --- Subject: Re: [4.3/4.4/4.5 Regression] tree-ssa-sink breaks stack layout On Fri, 3 Apr 2009, sandra at codesourcery dot com wrote: > --- Comment #9 from sandra at codesourcery dot com 2009-04-03 12:54 > --- > After the merge of the alias_improvements branch to trunk, the test case no > longer compiles incorrectly at -O1. Is this coincidence, or a real fix that > addresses the underlying problem? I believe this is a coincidence. Can you investigate what the difference is? Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39604
[Bug c++/8781] Pessimization of C++ (functional) code
--- Comment #24 from rguenth at gcc dot gnu dot org 2009-04-03 13:44 --- I have a patch. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2009-04-03 11:37:53 |2009-04-03 13:44:16 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8781
[Bug bootstrap/39483] [melt] - revision 144904 - Configuring with "--with-gc=zone" fails in ggc-zone.c
--- Comment #3 from rob1weld at aol dot com 2009-04-03 13:53 --- (In reply to comment #2) > Thanks. Patch commited as rev 144905 of MELT branch. Closing, FIXED. Rob -- rob1weld at aol dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39483
[Bug driver/39439] The Driver hides "undefined reference" messages from shared libs (but not object files) in linker phase
--- Comment #4 from rob1weld at aol dot com 2009-04-03 13:59 --- (In reply to comment #3) > Subject: Re: The Driver hides "undefined reference" messages from shared > libs (but not object files) in linker phase > > Sent from my iPhone > > On Mar 13, 2009, at 8:54 PM, "rob1weld at aol dot com" > > wrote: > > > ... (lengthy quoted text) > > > > > > The linker, upon 'discovering' the problem, simply prints: > > ../../interfaces/C/.libs/libppl_c.so: undefined reference to > > `typeinfo for int' > > collect2: ld returned 1 exit status > > The linker is suppressing the undefined reference in the first place > when creating the .so. I think this is a bug in ppl's make file and > not gcc. > OK. It's not "gcc"'s fault. Closing, INVALID. Rob -- rob1weld at aol dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39439
[Bug c++/25185] deep typedef substitution in error message
--- Comment #15 from jason at gcc dot gnu dot org 2009-04-03 14:09 --- Created an attachment (id=17582) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17582&action=view) Patch to add -fno-pretty-templates option Here's a patch for a different approach I tried which just adds a flag to disable pretty-printing of template functions, in case anyone is interested. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25185
[Bug ada/39625] New: Revision 145488 - Ada - Unable to coalesce ssa_names 96 and 455 which are marked as MUST COALESCE.
When building gcc I get this during the build of the gnattools: "Unable to coalesce ssa_names 96 and 455 which are marked as MUST COALESCE. first_with_96(ab) and first_with_455(ab)" I do not know the Ada Language, just trying to build it and email the Testsuite results. I Googled and checked the mailing list for this Bug without success. Now I'll go check the revisions and see if I can determine when this failure first occured. # uname -a OpenBSD openbsd.localdomain 4.5 GENERIC#19 i386 # prev-gcc/xgcc -v Using built-in specs. Target: i386-unknown-openbsd4.5 Configured with: /home/user/gcc_trunk/configure --prefix=/usr/obj/gcc_installed --enable-languages=c,ada,c++ --with-as=/usr/bin/as --with-ld=/usr/bin/ld --with-gnu-as --with-gnu-ld --enable-sjlj-exceptions --enable-shared --sysconfdir=/etc --mandir=/usr/local/man --infodir=/usr/local/man --enable-multilib --enable-stage1-checking --enable-checking=release --with-system-zlib --with-gmp=/usr/local --with-mpfr=/usr/local Thread model: single gcc version 4.5.0 20090403 (experimental) [trunk revision 145488] (GCC) ../../xgcc -B../../ -c -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -gnatpg -gnata -I- -I../rts -I. -I/home/user/gcc_trunk/gcc/ada /home/user/gcc_trunk/gcc/ada/prj-part.adb -o prj-part.o /home/user/gcc_trunk/gcc/ada/prj-part.adb: In function 'Prj.Part.Parse_Single_Project': /home/user/gcc_trunk/gcc/ada/prj-part.adb:159: warning: 'Project' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:159: note: 'Project' was declared here /home/user/gcc_trunk/gcc/ada/prj-part.adb:160: warning: 'Extends_All' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:160: note: 'Extends_All' was declared here /home/user/gcc_trunk/gcc/ada/prj-part.adb:952: warning: 'Canonical_Path_Name' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:953: warning: 'Project_Directory' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:957: warning: 'Extending' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:959: warning: 'Extended_Project' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:965: warning: 'Name_From_Path' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:966: warning: 'Name_Of_Project' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:968: warning: 'Duplicated' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:970: warning: 'First_With' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:971: warning: 'Imported_Projects' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:977: warning: 'Proj_Qualifier' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:978: warning: 'Qualifier_Location' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:939: warning: '' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:939: warning: '' may be used uninitialized in this function /home/user/gcc_trunk/gcc/ada/prj-part.adb:961: warning: 'a_project_name_and_node.node' may be used uninitialized in this function Unable to coalesce ssa_names 96 and 455 which are marked as MUST COALESCE. first_with_96(ab) and first_with_455(ab) +===GNAT BUG DETECTED==+ | 4.5.0 20090403 (experimental) [trunk revision 145488] (i386-unknown-openbsd4.5) GCC error:| | SSA corruption | | Error detected around /home/user/gcc_trunk/gcc/ada/prj-part.adb:939 | | Please submit a bug report; see http://gcc.gnu.org/bugs.html.| | Use a subject line meaningful to you and us to track the bug.| | Include the entire contents of this bug box in the report. | | Include the exact gcc or gnatmake command that you entered. | | Also include sources listed below in gnatchop format | | (concatenated together with no headers between files). | +==+ Please include these source files with error report Note that list may not be accurate in some cases, so please double check that the problem can still be reproduced with the set of files listed. /home/user/gcc_trunk/gcc/ada/prj-part.adb /home/user/gcc_trunk/gcc/ada/prj-part.ads /home/user/gcc_trunk/gcc/ada/prj.ads /home/user/gcc_trunk/gcc/ada/casing.ads /home/user/gcc_trunk/gcc/ada/types.ads /home/user/gc
[Bug fortran/37423] Fortran 2003: DEFERRED bindings not yet implemented
--- Comment #3 from domob at gcc dot gnu dot org 2009-04-03 14:46 --- Fixed on trunk (4.5) -- domob at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37423
[Bug fortran/39626] New: Fortran 2008: Implement BLOCK construct
The upcoming Fortran 2008 standard introduces the BLOCK construct which allows to declare local variables with a limited scope inside a procedure. This is not yet implemented by gfortran. Some ideas and discussion here: http://gcc.gnu.org/ml/fortran/2009-04/msg3.html -- Summary: Fortran 2008: Implement BLOCK construct Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: domob at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39626
[Bug fortran/39627] New: Fortran 2008 support
Tracking bug for "implement new Fortran 2008 feature" bugs. -- Summary: Fortran 2008 support Product: gcc Version: unknown Status: UNCONFIRMED Keywords: meta-bug Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: domob at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39627
[Bug target/39628] New: GCC incorrectly optimizes inline assembly, resulting in incorrect code
In trying to implement a fast rotate with carry on the avr platform, it should be possible to do a left shift on a register, and then add-with-carry that register and __zero_reg__. i.e.: asm volatile("lsl %0; adc %0, __zero_reg__" : "+r"(x) : "0"(x)); however, gcc doesn't seem to understand that the carry bit is set, and thus it only emits the lsl instruction. The workaround is to split it into 2 statements: asm volatile("lsl %0" : "+r"(x) : "0"(x)); asm volatile("adc %0, __zero_reg__" : "+r"(x) : "0"(x)); That generates the expected (correct) output. -- Summary: GCC incorrectly optimizes inline assembly, resulting in incorrect code Product: gcc Version: 4.3.4 Status: UNCONFIRMED Severity: critical Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dgrnbrg at mit dot edu GCC build triplet: --target=avr --program-prefx=avr --enable-languages=c -- disable- GCC host triplet: i688-linux GCC target triplet: avr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39628
[Bug target/39628] GCC incorrectly optimizes inline assembly, resulting in incorrect code
--- Comment #1 from dgrnbrg at mit dot edu 2009-04-03 15:05 --- Created an attachment (id=17583) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17583&action=view) .i file from incorrectly compiling file The incorrect code comes from the function bbspi_transmit_buf. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39628
[Bug ada/39138] Fix Copyright Dates Before 4.5.0 Branch (or sooner)
--- Comment #2 from rob1weld at aol dot com 2009-04-03 15:27 --- There has been some progress in this Bug Report: http://gcc.gnu.org/viewcvs/trunk/gcc/ada/?sortby=date "mlib-tgt-specific-solaris.adb144324 5 weeks jakub Update Copyright years for files modified in 2008 and/or 2009." If I spot any more that were missed I will post here. Thanks to the various persons involved, a consistent format for the Notice and a Maintainer script that "sed"ed everything would make this go much quicker next year. I thought FSF was particular about it's Copyrights, I can't speculate why this was lowered to a "minor". Rob -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39138
[Bug target/39628] GCC incorrectly optimizes inline assembly, resulting in incorrect code
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-04-03 15:39 --- GCC doesn't do anything with the asm stmts itself so it can't "only emit the lsl instruction". -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39628
[Bug libstdc++/39629] New: [4.5 Regression] Revision 145493 may have caused many failures
Revision 145493 http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg00114.html may have caused FAIL: 26_numerics/random/independent_bits_engine/cons/base_copy.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/cons/base_move.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/cons/default.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/cons/seed1.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/cons/seed2.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/cons/seed_seq.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/operators/equal.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/operators/serialize.cc (test for excess errors) FAIL: 26_numerics/random/independent_bits_engine/requirements/typedefs.cc (test for excess errors) FAIL: 26_numerics/random/knuth_b.cc execution test FAIL: 26_numerics/random/mt19937_64.cc (test for excess errors) FAIL: 26_numerics/random/piecewise_linear_distribution/operators/serialize.cc execution test FAIL: 26_numerics/random/ranlux48.cc execution test FAIL: 26_numerics/random/ranlux48_base.cc execution test on Fedora 9/ia32 and Fedora 10/x86-64. I got Executing on host: /export/gnu/import/svn/gcc-test/bld/./gcc/g++ -shared-libgcc -B/export/gnu/import/svn/gcc-test/bld/./gcc -nostdinc++ -L/export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/src -L/export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include -m32 -g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/include -I/export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/libsupc++ -I/export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/include/backward -I/export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/testsuite/util -Wl,--gc-sections /export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc -std=c++0x ./libtestc++.a -lm -m32 -o ./base_copy.exe(timeout = 600) In file included from /export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/random:55,^M from /export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc:26:^M /export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h: In instantiation of 'std::independent_bits_engine, 48u, long unsigned int>':^M /export/gnu/import/svn/gcc-test/src-trunk/libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/cons/base_copy.cc:39: instantiated from here^M /export/gnu/import/svn/gcc-test/bld/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h:968: error: static assertion failed: "template arguments out of bounds in independent_bits_engine"^M compiler exited with status 1 -- Summary: [4.5 Regression] Revision 145493 may have caused many failures Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl dot tools at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39629
[Bug libstdc++/39629] [4.5 Regression] Revision 145483 may have caused many failures
--- Comment #1 from hjl dot tools at gmail dot com 2009-04-03 16:00 --- Oops. It is revision 145483: http://gcc.gnu.org/ml/gcc-cvs/2009-04/msg00104.html -- hjl dot tools at gmail dot com changed: What|Removed |Added CC|paolo dot carlini at oracle |bkoz at redhat dot com |dot com | Summary|[4.5 Regression] Revision |[4.5 Regression] Revision |145493 may have caused many |145483 may have caused many |failures|failures http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39629
[Bug target/39628] GCC incorrectly optimizes inline assembly, resulting in incorrect code
--- Comment #3 from schwab at linux-m68k dot org 2009-04-03 16:15 --- On avr the semicolon is a comment character for the assembler. The line separator character is '$'. -- schwab at linux-m68k dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39628
[Bug fortran/39626] Fortran 2008: Implement BLOCK construct
--- Comment #1 from steven at gcc dot gnu dot org 2009-04-03 16:43 --- This feature requires a substantial re-work of symbol handling in gfortran (make it block based). -- steven at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-04-03 16:43:38 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39626
[Bug c++/39608] [4.4/4.5 Regression] 'expr' cannot appear in a constant-expression.
--- Comment #4 from jason at gcc dot gnu dot org 2009-04-03 17:25 --- Subject: Bug 39608 Author: jason Date: Fri Apr 3 17:24:46 2009 New Revision: 145508 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145508 Log: PR c++/39608 * semantics.c (finish_id_expression): Don't assume a dependent member of the current instantiation isn't a valid integral constant expression. Check dependent_scope_p. * pt.c (dependent_scope_p): Check TYPE_P. Added: trunk/gcc/testsuite/g++.dg/template/const2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39608
[Bug c++/39608] [4.4/4.5 Regression] 'expr' cannot appear in a constant-expression.
--- Comment #5 from jason at gcc dot gnu dot org 2009-04-03 17:27 --- Subject: Bug 39608 Author: jason Date: Fri Apr 3 17:26:50 2009 New Revision: 145509 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145509 Log: PR c++/39608 * semantics.c (finish_id_expression): Don't assume a dependent member of the current instantiation isn't a valid integral constant expression. Check dependent_scope_p. * pt.c (dependent_scope_p): Check TYPE_P. (tsubst_copy): If args is null, just return. Added: branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/const2.C - copied unchanged from r145508, trunk/gcc/testsuite/g++.dg/template/const2.C Modified: branches/gcc-4_4-branch/gcc/cp/ChangeLog branches/gcc-4_4-branch/gcc/cp/pt.c branches/gcc-4_4-branch/gcc/cp/semantics.c branches/gcc-4_4-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39608
[Bug libstdc++/39629] [4.5 Regression] Revision 145483 may have caused many failures
--- Comment #2 from paolo dot carlini at oracle dot com 2009-04-03 17:27 --- Note, most if not all, those fails seem trivial: we are just instantiating with a second non-type template argument (__w) which is too big compared to the size of the type of the third argument, a 32-bit unsigned long. We could either change the latter to unsigned long long or reduce the value of the second. If Benjamin doesn't come to this I'll do it, to my taste, just to quickly shut-up the noise. Also, I'm noticing the use of types like uint_fast64_t in the testcases, that at the moment is still not safe (will be when Joseph' work on PR 448 will be complete for all the OSes), because some targets may lack the stdint.h header completely. For now, instead of guarding the test with dg-require-cstdint I think we can safely change the types to some normal C++98 types. Or in fact maybe we could guard, it's easier to keep the test unchanged and remove the guards when 448 will be closed. Again, up to Benjamin of course, or I will shut the noise to my taste. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39629
[Bug c++/29607] [DR 224] [4.2/4.3/4.4 Regression] dependent name with base classes
--- Comment #20 from jason at gcc dot gnu dot org 2009-04-03 17:32 --- Subject: Bug 29607 Author: jason Date: Fri Apr 3 17:31:38 2009 New Revision: 145510 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145510 Log: Revert: PR c++/9634 PR c++/29469 PR c++/29607 Implement DR 224. * decl.c (make_typename_type): Do look inside currently open classes. * parser.c (cp_parser_lookup_name): Likewise. (cp_parser_template_name): Likewise. * pt.c (dependent_scope_p): New function. * cp-tree.h: Declare it. * class.c (currently_open_class): Return fast if T isn't a class. Removed: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/template/dependent-name5.C Modified: branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/class.c branches/gcc-4_3-branch/gcc/cp/cp-tree.h branches/gcc-4_3-branch/gcc/cp/decl.c branches/gcc-4_3-branch/gcc/cp/parser.c branches/gcc-4_3-branch/gcc/cp/pt.c branches/gcc-4_3-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29607
[Bug c++/29469] [DR 224] [4.2/4.3/4.4 Regression] error: non-template 'pair' used as template
--- Comment #15 from jason at gcc dot gnu dot org 2009-04-03 17:32 --- Subject: Bug 29469 Author: jason Date: Fri Apr 3 17:31:38 2009 New Revision: 145510 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145510 Log: Revert: PR c++/9634 PR c++/29469 PR c++/29607 Implement DR 224. * decl.c (make_typename_type): Do look inside currently open classes. * parser.c (cp_parser_lookup_name): Likewise. (cp_parser_template_name): Likewise. * pt.c (dependent_scope_p): New function. * cp-tree.h: Declare it. * class.c (currently_open_class): Return fast if T isn't a class. Removed: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/template/dependent-name5.C Modified: branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/class.c branches/gcc-4_3-branch/gcc/cp/cp-tree.h branches/gcc-4_3-branch/gcc/cp/decl.c branches/gcc-4_3-branch/gcc/cp/parser.c branches/gcc-4_3-branch/gcc/cp/pt.c branches/gcc-4_3-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29469
[Bug c++/9634] [DR224] Injected class name as qualifier should not make the name dependent
--- Comment #23 from jason at gcc dot gnu dot org 2009-04-03 17:32 --- Subject: Bug 9634 Author: jason Date: Fri Apr 3 17:31:38 2009 New Revision: 145510 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145510 Log: Revert: PR c++/9634 PR c++/29469 PR c++/29607 Implement DR 224. * decl.c (make_typename_type): Do look inside currently open classes. * parser.c (cp_parser_lookup_name): Likewise. (cp_parser_template_name): Likewise. * pt.c (dependent_scope_p): New function. * cp-tree.h: Declare it. * class.c (currently_open_class): Return fast if T isn't a class. Removed: branches/gcc-4_3-branch/gcc/testsuite/g++.dg/template/dependent-name5.C Modified: branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/class.c branches/gcc-4_3-branch/gcc/cp/cp-tree.h branches/gcc-4_3-branch/gcc/cp/decl.c branches/gcc-4_3-branch/gcc/cp/parser.c branches/gcc-4_3-branch/gcc/cp/pt.c branches/gcc-4_3-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9634
[Bug tree-optimization/39612] [4.4/4.5 Regression] Incorrect warning issued Re variable *is* used uninitialized in this function
-- rakdver at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rakdver at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2009-04-02 09:43:52 |2009-04-03 17:41:20 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39612
[Bug libstdc++/39629] [4.5 Regression] Revision 145483 may have caused many failures
--- Comment #3 from 3dw4rd at verizon dot net 2009-04-03 17:48 --- Created an attachment (id=17584) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17584&action=view) Fix a mistake in operator precedence in bits/random.h (_ShiftMin1) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39629
[Bug c++/38030] [4.2/4.3 Regression] name-lookup for non-dependent name in template function is wrong
--- Comment #14 from jason at gcc dot gnu dot org 2009-04-03 18:05 --- Subject: Bug 38030 Author: jason Date: Fri Apr 3 18:04:39 2009 New Revision: 145511 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145511 Log: PR c++/38030, 38850, 39070 * pt.c (type_dependent_expression_p_push): New fn. (tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the substitution makes the call non-dependent. Preserve koenig_p. * parser.c (cp_parser_postfix_expression): Only do arg-dep lookup for non-dependent calls. * semantics.c (finish_call_expr): Revert earlier changes. * cp-tree.h: Revert change to finish_call_expr prototype. Modified: branches/gcc-4_3-branch/gcc/cp/ChangeLog branches/gcc-4_3-branch/gcc/cp/cp-tree.h branches/gcc-4_3-branch/gcc/cp/parser.c branches/gcc-4_3-branch/gcc/cp/pt.c branches/gcc-4_3-branch/gcc/cp/semantics.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38030
[Bug c++/39608] [4.4/4.5 Regression] 'expr' cannot appear in a constant-expression.
--- Comment #6 from jason at gcc dot gnu dot org 2009-04-03 18:05 --- Fixed in 4.3, 4.4 and trunk. -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39608
[Bug fortran/39630] New: Fortran 2003: Procedure Pointer Components
While standard procedure pointers are implemented in gfortran, support for procedure pointer components is still missing. Short example: type(t) real :: r procedure(),pointer,nopass :: p end type -- Summary: Fortran 2003: Procedure Pointer Components Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39630
[Bug fortran/39594] [4.4/4.5 Regression] compiler falls over in gfc_get_symbol_decl
--- Comment #13 from burnus at gcc dot gnu dot org 2009-04-03 18:27 --- Subject: Bug 39594 Author: burnus Date: Fri Apr 3 18:26:44 2009 New Revision: 145513 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145513 Log: 2009-04-03 Tobias Burnus PR fortran/39594 * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol if it is not a procedure pointer. * primary.c (match_actual_arg): Ditto. 2009-04-03 Tobias Burnus PR fortran/39594 * gfortran.dg/common_12.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/common_12.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/primary.c trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39594
[Bug fortran/39630] Fortran 2003: Procedure Pointer Components
--- Comment #1 from janus at gcc dot gnu dot org 2009-04-03 18:29 --- Draft patch: http://gcc.gnu.org/ml/fortran/2009-04/msg00013.html. -- janus at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |janus at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-04-03 18:29:56 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39630
[Bug tree-optimization/21855] array bounds checking elimination
--- Comment #5 from pinskia at gcc dot gnu dot org 2009-04-03 19:18 --- There are multiple of issues here, first we have an issue that the java front-end is not telling the middle-end that args.length cannot be changed after a new has happened (an aliasing issue). And then we had some branch issues but those might have been fixed already. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21855
[Bug c++/25185] deep typedef substitution in error message
--- Comment #16 from dave at boost-consulting dot com 2009-04-03 19:38 --- (In reply to comment #13) > GCC will now say > > ../../../../boost/sequence/make_range.hpp:60: instantiated from > boost::sequence::detail::range_maker::type > boost::sequence::detail::range_maker CalcSize>::operator()(const L&, const B&, const E&, const C&) const [with L = > boost::sequence::intrinsic::iterator_range_operations, > boost::range_iterator > >::elements::type, B = char*, > E > = char*, C = boost::sequence::detail::size_difference, > const boost::array >, Elements = > boost::sequence::identity_property_map, Begin = char*, End = char*, CalcSize = > boost::sequence::detail::size_difference, > boost::array >, typename boost::result_of::type = > boost::detail::get_result_of 11u>, boost::array >, > boost::sequence::detail::size_difference, > boost::array >(), true>::type] > > note the last piece, > > typename boost::result_of::type = > boost::detail::get_result_of 11u>, boost::array >, > boost::sequence::detail::size_difference, > boost::array >(), true>::type Hi Jason, I'm afraid that's not an improvement. It remains just as opaque as ever. Basically, I never want to see a type name ending with >::identifier in error messages, or at least, I want a version where the canonical type name is spelled out. -- dave at boost-consulting dot com changed: What|Removed |Added Status|RESOLVED|UNCONFIRMED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25185
[Bug libstdc++/39629] [4.5 Regression] Revision 145483 may have caused many failures
--- Comment #4 from hjl dot tools at gmail dot com 2009-04-03 19:45 --- (In reply to comment #3) > Created an attachment (id=17584) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17584&action=view) [edit] > Fix a mistake in operator precedence in bits/random.h (_ShiftMin1) > It still doesn't work for 32bit: Executing on host: /export/build/gnu/gcc/build-x86_64-linux/./gcc/g++ -shared-libgcc -B/export/build/gnu/gcc/build-x86_64-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src -L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include -m32 -g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include -I/export/gnu/import/gcc/libstdc++-v3/libsupc++ -I/export/gnu/import/gcc/libstdc++-v3/include/backward -I/export/gnu/import/gcc/libstdc++-v3/testsuite/util -Wl,--gc-sections /export/gnu/import/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc -pthread -std=gnu++0x ./libtestc++.a -lm -m32 -o ./default_weaktoshared.exe(timeout = 600) In file included from /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/random:55,^M from /export/gnu/import/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:27:^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h: In instantiation of 'const long unsigned int std::__detail::_ShiftMin1::__value':^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h:390: instantiated from 'std::mersenne_twister_engine'^M /export/gnu/import/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:93: instantiated from here^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h:83: error: 'max' is not a member of '__gnu_cxx::__numeric_traits'^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h: In instantiation of 'std::mersenne_twister_engine':^M /export/gnu/import/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:93: instantiated from here^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h:410: error: non-constant condition for static assertion^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h: In instantiation of 'std::mersenne_twister_engine':^M /export/gnu/import/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:93: instantiated from here^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h:412: error: non-constant condition for static assertion^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h: In instantiation of 'std::mersenne_twister_engine':^M /export/gnu/import/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:93: instantiated from here^M /export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/bits/random.h:414: error: non-constant condition for static assertion^M compiler exited with status 1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39629
[Bug libstdc++/39629] [4.5 Regression] Revision 145483 may have caused many failures
--- Comment #5 from dje at gcc dot gnu dot org 2009-04-03 19:48 --- I see similar failures on AIX. -- dje at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-04-03 19:48:03 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39629
[Bug bootstrap/39631] New: f951 seg faults while building libgfortran
f951 generates a seg fault while building on hppa1.1-hp-hpux11.11. It can be reproduced by compiling the following fortran code with -O2 optimization: elemental function gfortran_specific_dim_r16 (p1, p2) real (kind=16), intent (in) :: p1, p2 real (kind=16) :: gfortran_specific_dim_r16 gfortran_specific_dim_r16 = dim (p1, p2) end function The segfault is coming from the ira_assert in ira_reuse_stack_slot at line 2966 of ira-color.c. allocno is NULL but gets dereferenced in the ALLOCNO_HARD_REGNO macro. It started failing sometime before r145385 and after r145268. During that period the compiler was not building correctly on PA so I don't yet know exactly what change broke it. -- Summary: f951 seg faults while building libgfortran Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: build Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sje at cup dot hp dot com GCC target triplet: hppa1.1-hp-hpux11.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39631
[Bug c++/25185] deep typedef substitution in error message
--- Comment #17 from jason at gcc dot gnu dot org 2009-04-03 20:51 --- Good point, I forgot to strip typedefs in the diagnostic code. I'm testing a patch that will make that typename boost::result_of::type = mpl_::integral_c -- jason at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-04-03 20:51:42 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25185
[Bug fortran/39594] [4.4/4.5 Regression] compiler falls over in gfc_get_symbol_decl
--- Comment #14 from burnus at gcc dot gnu dot org 2009-04-03 20:57 --- Subject: Bug 39594 Author: burnus Date: Fri Apr 3 20:56:54 2009 New Revision: 145519 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145519 Log: 2009-04-03 Tobias Burnus PR fortran/39594 * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol if it is not a procedure pointer. * primary.c (match_actual_arg): Ditto. 2009-04-03 Tobias Burnus PR fortran/39594 * gfortran.dg/common_12.f90: New. Added: branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/common_12.f90 Modified: branches/gcc-4_4-branch/gcc/fortran/ChangeLog branches/gcc-4_4-branch/gcc/fortran/primary.c branches/gcc-4_4-branch/gcc/fortran/resolve.c branches/gcc-4_4-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39594