--- Comment #11 from janus at gcc dot gnu dot org 2009-06-23 07:27 ---
Closing.
--
janus at gcc dot gnu dot org changed:
What|Removed |Added
Status|ASSIGNED
--- Comment #4 from burnus at gcc dot gnu dot org 2009-06-23 08:34 ---
(In reply to comment #3)
This patch gives the correct error messages for comment #1
+ actual-ts.derived actual-ts.derived-ts.is_iso_c
+ (formal-ts.derived-attr.use_rename
+ ||
For simple conditional expression like (flag == 1 ? 2 : 0), gcc generates not
optimized code in terms of both code size and performance.
--
Summary: missed optimization in conditional expression
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
--- Comment #1 from ramana at gcc dot gnu dot org 2009-06-23 09:05 ---
Can you specify options , example, target under consideration and version of
the source tree considered ?
--
ramana at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #2 from carrot at google dot com 2009-06-23 09:09 ---
Created an attachment (id=18053)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18053action=view)
test case
Compile the attached code with options -mthumb -march=armv5te -Os, gcc
generates
push{lr}
--- Comment #9 from ramana at gcc dot gnu dot org 2009-06-23 09:16 ---
(In reply to comment #4)
(In reply to comment #3)
Is this related to bug 39715?
Maybe.
39715 appears to be strictly a 4.5 missed optimization, but from comment #5 it
appears as though this is different
--- Comment #5 from paolo dot carlini at oracle dot com 2009-06-23 09:18
---
2.2.4 is definitely *very* old, but in principle the macro should be available,
as far as I know. Jakub, what do you think?
I'm thinking that in the configure tests, for the auto case, we have a special
check
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|--- |4.4.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40521
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-06-23 09:37 ---
The idea is ok though do not use make_rename_temp but the usual create_tmp_var,
add_referenced_var, make_ssa_name sequence.
The checking currently only matches the return value (it does so since the
beginning of
--- Comment #6 from rguenth at gcc dot gnu dot org 2009-06-23 09:43 ---
extern void abort (void);
int main ()
{
long int exp = -__LONG_MAX__ - 1;
unsigned long int test = (exp (long int) 2 ? 2 : (unsigned long int) exp);
if (test != 2)
abort ();
return 0;
}
this is fixed
--- Comment #7 from rguenth at gcc dot gnu dot org 2009-06-23 09:43 ---
*** Bug 40524 has been marked as a duplicate of this bug. ***
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #3 from steven at gcc dot gnu dot org 2009-06-23 09:47 ---
This should be done in if conversion. I'll have a look.
--
steven at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #10 from steven at gcc dot gnu dot org 2009-06-23 09:50 ---
Yes, this bug is indeed not related to bug 39715.
I have also verified that the SEE pass (sign-extend elimination, but also
should handle zero-extend) fails to handle this case. And that pass doesn't
exist anymore
gcc version:
g++ -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/usr/local
Thread model: posix
gcc version 4.5.0 20090521 (experimental) (GCC)
Command:
--
g++ -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-06-23 10:06 ---
You can attach it compressed, but I suggest that you update your GCC to a more
recent snapshot, some bugs in this area have been fixed by now.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40526
--- Comment #3 from jakub at gcc dot gnu dot org 2009-06-23 11:09 ---
I think if we don't want to emit .eh_frame, we should just default to
-fno-dwarf2-cfi-asm. But if we do want to generate it, I fail to see what do
we gain by also generating .debug_frame. Duplicating the same info,
--- Comment #8 from mkuvyrkov at gcc dot gnu dot org 2009-06-23 11:39
---
(In reply to comment #6)
But that was the meat of fixing PR28690. :-(
The insn should satisfy the constraints of alternative 4.
Well, not really. For the insn to match alternative 4 the pattern should be
--- Comment #9 from bonzini at gnu dot org 2009-06-23 12:04 ---
But % makes it commutative, no? So operand 2 matches operand 0, and operand 1
matches mSrIKLT.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37053
--- Comment #2 from ubizjak at gmail dot com 2009-06-23 12:09 ---
(In reply to comment #1)
Uros, this bug is from the pre-IRA times. Could you check if you still see
this problem, please?
Yes, it is still present as of gcc 4.5.0 20090623
--
ubizjak at gmail dot com changed
--- Comment #4 from drow at gcc dot gnu dot org 2009-06-23 12:24 ---
Subject: Re: [4.4/4.5 Regression] -g causes GCC to
generate .eh_frame
On Tue, Jun 23, 2009 at 11:09:48AM -, jakub at gcc dot gnu dot org wrote:
I think if we don't want to emit .eh_frame, we should just
--- Comment #10 from mkuvyrkov at gcc dot gnu dot org 2009-06-23 12:26
---
(In reply to comment #9)
But % makes it commutative, no?
Yes, but that only means that the operands can be swapped *if*
swap_commutative_operands_p() returns true. Due to the funny precedence that
does not
--- Comment #4 from steven at gcc dot gnu dot org 2009-06-23 12:31 ---
This is the usual idiotic behavior of ifcvt.c for targets that have conditional
execution, but not for all insns.
Normally the find_if_case_1() transformation should handle this optimization.
But the
--- Comment #9 from paolo at gcc dot gnu dot org 2009-06-23 12:36 ---
Subject: Bug 40518
Author: paolo
Date: Tue Jun 23 12:36:43 2009
New Revision: 148850
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=148850
Log:
2009-06-23 Paolo Carlini paolo.carl...@oracle.com
PR
--
ramana at gcc dot gnu dot org changed:
What|Removed |Added
AssignedTo|unassigned at gcc dot gnu |ramana at gcc dot gnu dot
|dot org
I do regard the alignment settings for structs, unions,
classes as important as the signature of functions.
compilation of structs in the scope of different
#pragma pack([push], n)
produces errors that are hard to understand.
The linker could produce errors or warnings when
combining
--- Comment #10 from paolo dot carlini at oracle dot com 2009-06-23 12:39
---
I think this is for mainline only. In a couple of few weeks a I will give it a
second thought for 4_4-branch but certainly isn't a regression.
--
paolo dot carlini at oracle dot com changed:
--- Comment #11 from bonzini at gnu dot org 2009-06-23 13:09 ---
Yes, but that only means that the operands can be swapped *if*
swap_commutative_operands_p() returns true. Due to the funny precedence that
does not happen.
Matching procedures do not take commutativeness into
--- Comment #10 from jamborm at gcc dot gnu dot org 2009-06-23 13:21
---
The miscompiled file seems to be gas/tc-i386.o. Early SRA is enough to trigger
the problem. Digging deeper...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40493
--- Comment #11 from hjl dot tools at gmail dot com 2009-06-23 13:40
---
(In reply to comment #10)
The miscompiled file seems to be gas/tc-i386.o. Early SRA is enough to
trigger
the problem. Digging deeper...
tc-i386.c uses union with bit fields. See opcodes/i386-opc.h
for
--- Comment #7 from jamborm at gcc dot gnu dot org 2009-06-23 14:12 ---
Fixed
--
jamborm at gcc dot gnu dot org changed:
What|Removed |Added
Status|ASSIGNED
--- Comment #2 from rolf dot wester at ilt dot fraunhofer dot de
2009-06-23 14:24 ---
Subject: Re: csr_wrap.cxx:46551: error: missing callgraph
edge for call stmt:
rguenth at gcc dot gnu dot org wrote:
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-06-23 10:06
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-06-23 14:25 ---
Thus fixed.
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #5 from janus at gcc dot gnu dot org 2009-06-23 15:43 ---
(In reply to comment #2)
The missing checks are due to the following code in interface.c
(compare_parameter):
if (formal-ts.type == BT_DERIVED
formal-ts.derived formal-ts.derived-ts.is_iso_c
--- Comment #7 from drow at gcc dot gnu dot org 2009-06-23 15:49 ---
Nope. It would be somewhere between hard and impossible to do in the linker,
because these have to go in the middle of the .text section, and within
compile-time known offsets from the using functions (to accommodate
--- Comment #6 from janus at gcc dot gnu dot org 2009-06-23 15:54 ---
Here is a maximally reduced test case, which yields the same error as
iso_c_binding_rename_1.f90 (if the code from comment #2 is removed):
module rename
use, intrinsic :: iso_c_binding, only: my_c_ptr_0 = c_ptr
end
--- Comment #12 from jamborm at gcc dot gnu dot org 2009-06-23 16:45
---
Reduced testcase:
extern void abort (void);
typedef union i386_operand_type
{
struct
{
unsigned int reg8:1;
unsigned int reg16:1;
unsigned int reg32:1;
unsigned int reg64:1;
Binutils and glibc implemented STT_GNU_IFUNC:
http://groups.google.com/group/generic-abi
A new ifunc attribute can provide user access to this
feature at C language level. Several options:
1. Ifunc attribute with argument:
int foo (
);
__typeof (foo) *
__attribute__ ((ifunc (foo)))
foo_ifunc
--- Comment #12 from mkuvyrkov at gcc dot gnu dot org 2009-06-23 17:21
---
(In reply to comment #11)
Still, I don't think a target hook is the solution. Even if it adds hack over
hack, having the funny precedence rules only before reload could be a
solution.
For the record, I
--- Comment #14 from sje at gcc dot gnu dot org 2009-06-23 18:28 ---
Subject: Bug 39297
Author: sje
Date: Tue Jun 23 18:28:26 2009
New Revision: 148862
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=148862
Log:
2009-06-23 Steve Ellcey s...@cup.hp.com
PR testsuite/39297
--- Comment #6 from jwakely dot gcc at gmail dot com 2009-06-23 18:32
---
This seems to be fixed in all open branches (4.3+)
--
jwakely dot gcc at gmail dot com changed:
What|Removed |Added
--- Comment #9 from jwakely dot gcc at gmail dot com 2009-06-23 18:40
---
The library pieces of Doug's patch that still need to be applied are:
* include/std/tuple (_Tuple_impl): Use lvalue references when
explicitly specifying the template argument to std::move.
--- Comment #1 from jakub at gcc dot gnu dot org 2009-06-23 19:19 ---
See http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#613
and http://gcc.gnu.org/viewcvs?root=gccview=revrev=145375
--
jakub at gcc dot gnu dot org changed:
What|Removed
--- Comment #6 from paolo dot carlini at oracle dot com 2009-06-23 19:41
---
As far as I'm concerned, we could also close the PR as WONFIX, in particular
since we have an excellent workaround: --enable-clocale=generic.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40511
gcc -v -save-temps -o
/home/mjordan/Download/build/linux2/source/blender/radiosity/intern/source/radfactors.o
-c -O3 -Wno-char-subscripts -Wdeclaration-after-statement -pipe -fPIC
-funsigned-char -fno-strict-aliasing -mtune=core2 -march=core2
-findirect-inlining -floop-interchange
--- Comment #1 from rperini at email dot it 2009-06-23 19:55 ---
Created an attachment (id=18054)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18054action=view)
The preprocessed source file.
The output from gcc -v -save-temps
--
--- Comment #2 from rperini at email dot it 2009-06-23 20:19 ---
If you remove the flag -ffast-math compilation goes well.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40529
--- Comment #1 from jakub at gcc dot gnu dot org 2009-06-23 20:23 ---
Introduced by PR34691 fix - r145709.
--
jakub at gcc dot gnu dot org changed:
What|Removed |Added
--- Comment #3 from roland at redhat dot com 2009-06-23 20:27 ---
I don't understand. Why can't it print the source-level variable name?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40517
--- Comment #5 from dominiq at lps dot ens dot fr 2009-06-23 20:46 ---
Dominique, to ignore a particular warning you can use dg-prune-output.
Yes I know that, but it is not a general solution.
Could someone make the call for this pr, either with the patch in comment #0 or
by XFAIL
--- Comment #6 from dominiq at lps dot ens dot fr 2009-06-23 20:49 ---
BTW the problem is still there, see
http://gcc.gnu.org/ml/gcc-testresults/2009-06/msg01902.html
FAIL: gcc.dg/vect/section-anchors-pr27770.c (test for excess errors)
FAIL: gcc.dg/vect/section-anchors-vect-69.c (test
I imagine a bitfield which does not specify 'signed' or 'unsigned'
will often be a bug in user code - maybe the programmer did not
know or did not remember that 'int i:3;' can be unsigned.
I suggest a warning for that in user code. Maybe included in
-Wextra, but I cannot guess how much such
Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/
/te
st/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/execute/20090618-1.c -w -O0 -lm
-o /test/gnu/gcc/objdir/gcc/testsuite/gcc/20090618-1.x0(timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
mempcpy (first
Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/
/te
st/gnu/gcc/gcc/gcc/testsuite/gcc.dg/builtins-65.c -O2 -ffast-math -lm -o
bu
iltins-65.exe(timeout = 300)
/usr/ccs/bin/ld: Unsatisfied symbols:
link_error (first referenced in /var/tmp//ccyLWKiQ.o) (code)
Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/
/te
st/gnu/gcc/gcc/gcc/testsuite/gcc.dg/ucnid-11.c -std=c99
-fextended-identifiers
-fdata-sections -lm -o ./ucnid-11.exe(timeout = 300)
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/ucnid-11.c:1:0: warning:
Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/
/te
st/gnu/gcc/gcc/gcc/testsuite/gcc.dg/vector-4.c-ansi -pedantic-errors -S -o
vector-4.s(timeout = 300)
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/vector-4.c:11:1: warning: alignment (16)
for a exceeds maximum
--- Comment #7 from mckelvey at maskull dot com 2009-06-24 02:47 ---
(In reply to comment #6)
As far as I'm concerned, we could also close the PR as WONFIX, in particular
since we have an excellent workaround: --enable-clocale=generic.
I'm trying that now. If it works, then WONTFIX
GCC 4.5.0 20090618.
bug.cc:
--
typedef void (__attribute__((__stdcall__)) * F)();
templatetypename T struct S {
S(T s) { T t = s; }
};
void f(F g)
{
SF h = g;
}
--
bug.cc: In function 'void
--- Comment #10 from christian dot joensson at gmail dot com 2009-06-24
05:56 ---
Backing out gcc commit r148408 from gcc trunk , using binutils 2.19.51.20090623
cvs checkout (03:52:32 UTC 2009), for r148850, gets bootstrap to complete.
Testresults posted at
58 matches
Mail list logo